Pi-hole with pfSense
-
@iptvcld While your setup should be able to work, I would highly recommend against a setup like that.
Not only does your pfsense have to forward all DNS requests to Pi-hole, but in Pi-hole you will get no info on which clients asked what/was blocked.
you should disable the DNS forwarder as well, and simply input the Pi-hole IP address in you DHCP server settings (under DNS) so your clients use it directly.
-
@keyser Thanks for the reply; if I disable my DNS forwarder and Resolver how can I get my local DNS names i have set in Host overrides? I am using that in connection with HAProxy.
Also if i set one DNS server under DHCP, i am worried if that Pi ever goes down or reboots (as its installed on a LXC container via Proxmox) then all my clients will loose DNS. I tired adding that Pi-hole DNS in that section already but I also added 8.8.8.8 as DNS2 and my clients did not like that as some were using 8.8.8.8 and some were using my pi. I guess I am trying to say, can can i add redundancy? Would I need 2xPi-holes and then put both PI DNS IP's under DNS1 and DNS2?
Thank you,
-
Mine is setup somewhat differently than you propose.
pfSense is pointed at Cloudflare. pfSense can always get to a DNS server.
PiHole is using unbound, but could as easily be pointed at Google, functionally it does not matter.
PiHole is pointed to pfSense for local queries. *.home.arpa
DHCP gives out only PiHole DNS. I have more than one for redundancy.I also force all DNS queries to PiHole through a small series of rules. Should all the PiHoles die at one time I just need to change 1 alias on pfSense and then all queries could be forced to pfSense.
https://forum.netgate.com/topic/156453/pfsense-dns-redirect-to-local-dns-server?_=1663853296484 -
@AndyRH is unbound on Pi-hole something that needs to be installed extra? So a DNS request from Client1 goes directly to Pi-hole first then Pi-hole upstreams to pfsense and gets a response from Cloudflare?
-
@iptvcld last time i used it, yes...needs to be installed extra.
You could also set pihole in pfsense dhcp as dns, make some rule all clients are only allowed to use that IP (pihole) for dns.
In pihole forward to pfsense.
Have unbound run on pfsense to resolve.
Use pfblocker to add geoIP blocking.
I had that running and it worked well in my little home network.
Now i only use pfblocker and unbound, all running on pfsense. Save some energy, less complicated, same effect... :) -
@the-other Thank you, just want to confirm - on pfSense did you have any DNS servers under System\General? If Pi-hole is upstreaming back to pfSense and pfSense is the resolver, where does pfSense get the response from?
-
@iptvcld Yes, unbound is an extra step. It is popular, but it is not required.
-
@iptvcld hey there,
No, i do not have anything under general > dns servers...
Unbound does what it...well does. Asking those top level domain servers and caching those commen ones.
No need to enter a specific dns. -
Now.. what if I dump Pi-hole and go with installing AdGuard Home directly on pfSense and then just use the resolver within pfSense?
-
@iptvcld Why not go with pfBlocker?
-
@AndyRH I had pfBlock going on for a while now but I find it hard to navigate and also want something new to tinker with
-
@iptvcld said in Pi-hole with pfSense:
Would someone be able to let me know if my setup is correct?
That is not how I use pihole, nor would I ever do it that way ;) not a fan of forwarding to external dns..
But forwarding is for sure a viable option.. I am just not a fan..
How I use pihole is pihole is set to forward to unbound on pfsense. My clients point to pihole.. pfsense has zero need to ask pihole for anything.. Really the only thing pfsense ever needs to lookup is for updates and packages, or if you click an IP in your firewall log for example. So it just uses itself (unbound in resolver mode)
Pfsense is what holds all the dns records for all my local devices, etc. So if some client says hey pihole whats the IP of nas.home.arpa it forwards that to pfsense and gets the answer.
If a client says hey pihole, whats the IP of somethingblocked.com - it just gets back the blocked IP, and done. Now if client asks pihole for something not blocked, it forwards to unbound, unbound resolves it, dnssec is enabled because I am resolving.. And hands what it resolves back to pihole to hand back to the client.
-
@johnpoz Thank you, and what resolves the website? as if what public resolver is used if pihole is using pfsense as its reslover and in pfsense, there is not public DNS IP anywhere.
-
@iptvcld said in Pi-hole with pfSense:
here is not public DNS IP anywhere.
huh.. Out of the box unbound resolves, any public domain via walking down from roots.. That is how a resolver works.
-
@johnpoz said in Pi-hole with pfSense:
any public domain via walking down from roots.. That is how a resolver works.
ahh ok.. so it has its built in roots. got it