Prevent local DNS loops on local network after turning on Conditional forwarding

Just to help anyone out so you don’t have to go through what I did to figure out my problem.

When I installed my pihole I pointed everything in my local network to the pihole including my network devices.
When I turned on conditional forwarding I created a loop between my router and the pihole. Basically any query my router couldn’t solve was being sent to the pihole and the pihole would send another request looking for the same thing.
Solution was to leave my network equipment with their own public nameservers, specifically my router.

I now have local network name resolution and my dashboard is starting to fill up with hostnames.

EDIT: After going back and checking my changes I noticed only some of my IPs were resolving to hostnames. I figured out it was the default subnet I configured in the pihole webgui. None of my vlan subnets were being resolved to hostnames.
To fix this I have to make a custom dnsmasq .conf file in /etc/dnsmasq.d/ and define my other subnets and their routers:

From dnsmasq.conf :
# Add other name servers here, with domain specs if they are for
# non-public domains.
#server=/localnet/192.168.0.1

# Example of routing PTR queries to nameservers: this will send all
# address->name queries for 192.168.3/24 to nameserver 10.1.2.3
#server=/3.168.192.in-addr.arpa/10.1.2.3

Now all my local IPs regardless of vlan is being resolved to hostname - changes were almost immediate in pihole dashboard.

Does your pi-hole use the router dns or use external dns serers?

External addresses are used on the pinhole.

You can put twice the same address in the router of the pi-hole under the DNS settings in the router.

The pi-hole should be the only one handling DNS requests and sent them to external.

I don’t think you understand the problem I was having. My whole network uses pihole for DNS queries. However, my router hardware (ie. managment interface has public nameservers - these do not get used by clients within my network) requried the public nameservers so it wouldnt pass private addresses it didn’t know back to the pihole which in turn sent back to the router to get resolved creating a loop.