I am using option 2 and the last paragraph of Option 2 does not explain why it is making this last paragraph recommendation. It seems like the last step for option 2 would stop all upstream DNS queries from resolving. If I have my router point to my piHole, and my piHole point to my router as its only upstream then I will never resolve anything that hasn't been cached already. What am I missing? And what is the purpose of this last step?
On Pi-hole, login to the web interface (http://pi.hole ) > Settings > DNS and instead of choosing upstream servers like Google or OpenDNS, set the upstream to be the IP address of the router as the only upstream DNS server. Do not define any other DNS entries for Pi-hole:
Your router does not point to Pi-hole in that scenario.
There's a difference between the upstream DNS resolvers your router itself would be using and the local DNS resolvers that your router is telling your network to use. Not every router would expose respective configuration options.
Option 2 is suggesting a configuration where you configure your router to distribute your Pi-hole's IP as local DNS resolver via DHCP.
Any DHCP client having acquired a DHCP lease from your router would then talk to Pi-hole for DNS (instead of talking to your router as before).
Using your router as Pi-hole's upstream would allow Pi-hole to resolve local hostnames as known by your router (provided your router would register hostnames with its own DNS resolver).
In that scenario, a client's DNS resolution chain would look like this:
client Pi-hole router router's upstreams (...)
You could also pick a public upstream for Pi-hole instead, but then you should consider to enable Pi-hole's Conditional Forwarding for local hostname resolution.
ok so I think I got it...
clients will ignore (or not receive it at all) what I have in the routers config for "Static DNS" (I am using dd-wrt) but will take what is advertised to them. Then if pihole doesn't have the IP, pihole will ask the router, if the router doesn't have the IP the router will ask what is in the Static DNS fields.
pihole-FTL dhcp-discover did not receive any DHCP broadcast replies as you run a dockered Pi-hole.
In that case, you'd have to consult your router's documentation and support on its DHCP DNS configuration details.
Your screenshot seems to suggest that you would configure your router's DHCP server, so the Static DNS settings would be the ones distributed to DHCP clients.
That's just a guess, though - I don't know your router nor dd-wrt.
You'd have to check its documentation for details.
But regardless whether those would be the local DNS resolvers to be distributed via DHCP or the upstream DNS resolvers to be used by the router:
Pi-hole has to be the sole DNS resolver for your network.
Otherwise, clients may by-pass Pi-hole via those alternatives at their own discretion.
So in theory the dnsmasq should take care of the advertisement and the local DNS flag should mean that it is not taking care of the local DNS but acting only as upstream?
The FAQ didn't include what they have for their DHCP settings so I am not fully sure how it would be setup....but if they are saying that the upstream dns for pihole should be the router then the router needs an upstream if it needs to resolve something that is not already known and cached....so the upstream needs to be defined somewhere....right?
This is my DHCP setting that I think you were referencing before: