I've had pi-hole for quite a while but something that hassled me was the choice between either running it as my DHCP server or forwarding all upstream queries through my router (which is my DHCP server today) and losing DNSSEC, performance and so on.

Today I finally got around to testing and implementing conditional forwarding for my pi-hole!

Step 1 - Create a custom configuration file, in my case it's called 0.5-custom.conf

sudo vim /etc/dnsmasq.d/05-custom.conf

Step 2 - Into the file place the following

server=/local/192.168.1.1

Essentially this tells DNSMASQ (which is the current backend DNS forwarder for pi-hole) to forward all requests for domains under local (eg - myiphone.local) to your router (eg - 192.168.1.1). Change the values to suit your network.

Step 3 - In the pi-hole gui feel free to change your upstream away from your router, to GoogleDNS or something else

Step 4 - Restart DNS on the pi-hole using pihole restartdns or the web ui

You're done. You can verify the effect using query logs and also using the pie chart on the pi-hole admin page which will start to change to show your new upstream whilst still showing requests to your router for local names.

Also if you want to override some public DNS (for say, running your own Steam cache) just use address= instead of network=

address=/content1.steampowered.com/192.168.1.2
address=/.steamcontent.com/192.168.1.2

Note the above list is incomplete, it includes content1.steampowered.com and all *.steamcontent.com.