PiHole - tips & tricks

neon admin

UniFier
11 mei 2022
93
52
18
(Typisch, hier is niet echt een duidelijk (sub)forum voor).

Ik heb een Unifiy netwerk gebaseerd op een USG, twee APs en een controller die bedraad op een Raspberry Pi draait.
Ik heb 3 Wifi netwerken (omdat het kan): Een eigen netwerk, een 'open' netwerk en een gastnetwerk. Deze hebben allemaal andere IP-ranges: 192.168.8.* , 172.20.*.* en 172.23.*.* . Mijn eigen netwerk is dus afgeschermd van gasten.

Ik heb PiHole geïnstalleerd op een Raspberry Pi. Voor wie het niet kent: PiHole is een DNS server die je gebruikt in je netwerk; deze zet DNS requests door maar blokkeert DNS requests voor bekende advertentie-servers.
Daarmee blokkeer je advertenties voor je hele netwerk, dus ook op telefoons en tablets waar je geen adblocker hebt staan.

Wat ik wil:
De PiHole draait in mijn beschermde netwerk, dus in 192.168.8.*
Ik wil echter dat alle clients, dus ook op de gastnetwerken, er van gebruik maken.

Probleem:
De instructie van PiHole zegt: Stel PiHole in als DNS server voor je DHCP. Dan gaat elke client dus zelf op zoek naar PiHole als DNS server.
Alleen staat PiHole natuurlijk in één van de 3 netwerken. En ik wil niet dat de andere clients uit de andere netwerken in het afgeschermde netwerk terechtkomen.

Wat ik geconfigureerd heb:
Ik heb de USG als DNS ingesteld voor alle clients. Dat betekent: Geen verandering, dat stond altijd al zo.
Op de USG heb ik ingesteld, onder System->Internet: Jouw primaire DNS is de PiHole.

Dus voorbeeld:
Client 172.20.0.123 op het gastnetwerk wil naar Nu.nl. Hij vraagt aan de USG (172.20.0.1): Wat is het IP adres van Nu.nl?
De USG weet het niet. Die vraagt aan zijn DNS, dus de Pi-Hole (192.168.8.53): Wat is het ip adres van Nu.nl?
De PiHole weet het ook niet. Dus die gaat naar zijn primaire DNS: 8.8.8.8 van Google.


Vraag:
Het werkt uitstekend, maar mijn vraag is: Is dit extreem slim van mij? ? Of zie ik iets over het hoofd?
 
  • Leuk
Waarderingen: Hempie
PiHole is een DNS server

PiHole is zelf geen DNS server maar een Ad-blocker; na toetsing tegen de Ad-list wordt de request doorgestuurd naar een nader te bepalen upstream DNS server. Die kun je ook lokaal draaien; kan ik warm aanbevelen, super snel.

Probleem:
De instructie van PiHole zegt: Stel PiHole in als DNS server voor je DHCP. Dan gaat elke client dus zelf op zoek naar PiHole als DNS server.

Dat is toch echt de bedoeling en de kortste route.

Alleen staat PiHole natuurlijk in één van de 3 netwerken. En ik wil niet dat de andere clients uit de andere netwerken in het afgeschermde netwerk terechtkomen.

Dat gebeurt niet als je firewall goed ingesteld is. Voor Guest netwerken gaat dat vanzelf. Je Pihole wordt alleen als DNS gebruikt; verder kun je er niks mee.

Dus voorbeeld:
Client 172.20.0.123 op het gastnetwerk wil naar Nu.nl. Hij vraagt aan de USG (172.20.0.1): Wat is het IP adres van Nu.nl?
De USG weet het niet. Die vraagt aan zijn DNS, dus de Pi-Hole (192.168.8.53): Wat is het ip adres van Nu.nl?
De PiHole weet het ook niet. Dus die gaat naar zijn primaire DNS: 8.8.8.8 van Google.

En je krijgt zo wel adblocking ?
 
Laatst bewerkt:
  • Leuk
Waarderingen: Hempie
Jawel, ik krijg zo wel adblocking.
Het is dus een mooie u-bocht, van gastnetwerk naar router, en van daar even het thuisnetwerk in, en daar weer uit richting internet.

Als toevoeging op de 'PiHole weet het ook niet en gaat naar de 8.8.8.8' - als het een bekend advertentie-adres is, dan geeft hij als antwoord terug 'ai dat adres bestaat helaas niet'.
Hij blokkeert inderdaad prima.

Wat er ook gebeurt: De USG kent de namen van de interne apparaten. Omdat hij de 1e vraagbaak is voor alle DNS-queries, kan hij daar al antwoord op geven.
De PiHole kent die namen zelf niet. Als ik de PiHole als primaire DNS instel voor de clients, kunnen ze binnen het netwerk elkaar niet meer bij naam noemen.
 
Jawel, ik krijg zo wel adblocking.
Het is dus een mooie u-bocht, van gastnetwerk naar router, en van daar even het thuisnetwerk in, en daar weer uit richting internet.

Als toevoeging op de 'PiHole weet het ook niet en gaat naar de 8.8.8.8' - als het een bekend advertentie-adres is, dan geeft hij als antwoord terug 'ai dat adres bestaat helaas niet'.
Hij blokkeert inderdaad prima.

Wat er ook gebeurt: De USG kent de namen van de interne apparaten. Omdat hij de 1e vraagbaak is voor alle DNS-queries, kan hij daar al antwoord op geven.
De PiHole kent die namen zelf niet. Als ik de PiHole als primaire DNS instel voor de clients, kunnen ze binnen het netwerk elkaar niet meer bij naam noemen.
Nice; ik wist dit niet, in mijn beleving was die WAN DNS er alleen voor de UDM/USG zelf (S/W updates etc) maar deze wordt dus ook gebruikt als je een client DNS naar de UDM/USG laat verwijzen, wat niet onlogisch is. Ik heb die WAN DNS waardes leeg en dan krijgt de UDM de DNS server via DHCP van de ISP. Weer wat geleerd....leuk topic.
 
Laatst bewerkt:
  • Leuk
Waarderingen: neon admin en dbw
Volgens mij doe je een aantal dingen niet heel efficient. Je hebt een aantal (WiFi-) netwerken aangemaakt op de USG, gebruikt de DHCP-server van PiHole en laat het DNS verkeer via de USG en PiHole verlopen. Hierdoor genereer je wel heel veel heen-en-weer verkeer over je netwerken. Hoewel ik geen PiHole gebruik, maar AdGuardHome op een Rasberry Pi (een vergelijkbare adblocker als PiHole), heb ik mijn (V)Lan’s en WiFi-netwerken aangemaakt op een Unifi-router (EdgeRouter X). De uitgifte van IP-adressen laat ik door de DHCP-server van de EdgeRouter doen. Hierdoor is het gehele beheer van het netwerk (inclusief de clients) geregeld in de router. Als DNS-server gebruik ik dus AdGuardHome in combinatie met Unbound (beide op de Pi). Unbound is wel een echte DNS-server. De combinatie PiHole/Unbound werkt overigens ook prima (zie bijvoorbeeld de filmpjes op YouTube). Unbound werkt als een recursive DNS server en AdGuardHome als de adblocker. Eventueel kan je Unbound zo instellen dat de servers van Internic als root hosts worden geraadpleegd. Volgens mij is dit de meest efficiente en meest veilige manier.
En wat al eerder gezegd is, door het instellen van de juiste Firewall-rules kan je alle clients gebruik laten maken van de DNS-server (en AdBlocker) op de Pi.
 
Laatst bewerkt:
@Eddie de Eagle: voor wat betreft de DHCP afhandeling; je hebt gelijk, dat heb ik in de post van TS niet goed gelezen of geïnterpreteerd.

Dat PiHole érg goed is in adblocking staat volgens mij buiten kijf. Maar om nu de Google-servers als primairy DNS-server te gebruiken voor PiHole komt over als een contradictio in terminis 😉. Het zal ongetwijfeld goed werken, maar om zoveel mogelijk reclames te voorkomen én te gelijkertijd gebruik te maken van Google (uitleg over hun businessmodel lijkt me niet nodig) zou niet mijn keuze zijn. Dat is ook een van de redenen waarom ik de Internic servers gebruik (met versleutelde queues).
 
  • Leuk
Waarderingen: Eddie the Eagle
Dat PiHole érg goed is in adblocking staat volgens mij buiten kijf. Maar om nu de Google-servers als primairy DNS-server te gebruiken voor PiHole komt over als een contradictio in terminis 😉.
Helemaal mee eens; al je bestemmingsverkeer ligt op straat.
 
Volgens mij doe je een aantal dingen niet heel efficient. Je hebt een aantal (WiFi-) netwerken aangemaakt op de USG, gebruikt de DHCP-server van PiHole en laat het DNS verkeer via de USG en PiHole verlopen. Hierdoor genereer je wel heel veel heen-en-weer verkeer over je netwerken. Hoewel ik geen PiHole gebruik, maar AdGuardHome op een Rasberry Pi (een vergelijkbare adblocker als PiHole), heb ik mijn (V)Lan’s en WiFi-netwerken aangemaakt op een Unifi-router (EdgeRouter X). De uitgifte van IP-adressen laat ik door de DHCP-server van de EdgeRouter doen. Hierdoor is het gehele beheer van het netwerk (inclusief de clients) geregeld in de router. Als DNS-server gebruik ik dus AdGuardHome in combinatie met Unbound (beide op de Pi). Unbound is wel een echte DNS-server. De combinatie PiHole/Unbound werkt overigens ook prima (zie bijvoorbeeld de filmpjes op YouTube). Unbound werkt als een recursive DNS server en AdGuardHome als de adblocker. Eventueel kan je Unbound zo instellen dat de servers van Internic als root hosts worden geraadpleegd. Volgens mij is dit de meest efficiente en meest veilige manier.
En wat al eerder gezegd is, door het instellen van de juiste Firewall-rules kan je alle clients gebruik laten maken van de DNS-server (en AdBlocker) op de Pi.

Als ik het goed begrijp, heb jij net als ik je adblocking-DNS in netwerk A staan.
Een client in netwerk C krijgt dan, via DHCP, te horen hij die adblocking DNS in netwerk A als DNS moet gebruiken.

Met een firewall rule stel je in dat die client uit C voor deze éne functie bij A mag komen.
En je stelt op je AdBlocking-DNS in dat als het een locaal adres is, hij het bij de USG moet proberen.

En net als jij laat ik de uitgifte van DCHP door de Unifi Router (USG) doen.

Klopt dat?

Inderdaad is dat een fractie sneller dan mijn methode, want bij mij zit er een extra host tussen elke DNS-aanvraag.
Het scheelt mij wel een aantal wijzigingen van de default
- Bij jou moet je voor elk netwerk firewall regels instellen (ik vind die dingen lastig én lastig te debuggen)
- Je moet voor elk netwerk DCHP-DNS van de default afhalen - ik kan hem ongewijzigd op de USG laten staan
- je moet waarschijnlijk op je adblocker instellen dat hij voor lokale adressen de USG moet gebruiken. Bij mij blijft die instelling ook op de default.

Ik moet alleen als extra wijziging onder Settings->Internet instellen dat de USG voor al zijn vragen een interne DNS server moet raadplegen.
Maar dat is dan ook de enige instelling die ik moet zetten om het meteen voor alle netwerken werkend te hebben.
 
Hi Neon admin,

Om te beginnen, ik ben geen netwerk specialist (meer) en heb ook zeker niet de wijsheid in pacht. Ik vind het wel leuk om zaken die mij interesseren grondig uit te zoeken en kennis op te doen en te delen. Vandaar mijn bijdrage.

De aangemaakte netwerken (en Vlan’s) maken gebruik van de DHCP-server(s) op de (in mijn geval) EdgeRouter X. Bij de creatie van zo’n netwerk het ik aangegeven van welke DNS-server ze gebruik moeten maken (het IP-adres van Raspberry Pi). Als je de netwerken gescheiden hebt, moet je inderdaad een extra firewall-rule toevoegen die toegang geeft tot de Pi. Deze komt uiteraard voor de rules die je voor de scheiding van de netwerken aanmaakt (door alleen een ander ip-range te creëren zijn je netwerken noch logisch, noch fysiek gescheiden). Helemaal met je eens trouwens dat firewall-rules potentiële hoofdpijnbezorgers zijn.
Op de Raspberry heb ik naast AdGuardHome ook Unbound draaien. Deze laatste is de DNS server en zorgt voor het omzetten van een naam naar een ip-adres (inclusief cache functie). Wordt de naam niet herkent door Unbound, dan gaat hij deze opvragen bij de Internic-servers (en dus niet zoals bij jou naar Edgerouter of USG). De Internic-servers zijn de originele IP omzet servers. Ze worden daarom ook gebruikt door google, cloudflare en alle andere zogenaamde DNS-server providers, die feitelijk alleen maar een proxy functie hebben (en een commercieel belang).

Een van mijn valkuilen is om een goed werkend systeem aan te passen en daarmee te frustreren/kapot te maken (waarna ik weer een tijdje bezig ben om het weer up and running te krijgen). Don’t fix it if ain’t broken 😁
 
Tezamen met Unifi OS 3.0. En dat zal nog wel even duren denk ik want die is in alpha fase.
 
Leuk topic!

Nu het toch over gaat... Wie heeft er advies mbt tot de volgende keuze;
Laat ik Pihole DHCP server zijn of doe ik dat via de USG? (ik ben ook bezig om meerdere vlans te configureren)
Wat zijn volgens jullie voor- en nadelen?

Vooralsnog zie ik 2 voordelen om DHCP in Pihole onder te brengen;
- hostnames worden getoond ipv ip nummers
- beter / overzicht van de dhcp reservations.
 
Leuk topic!

Nu het toch over gaat... Wie heeft er advies mbt tot de volgende keuze;
Laat ik Pihole DHCP server zijn of doe ik dat via de USG? (ik ben ook bezig om meerdere vlans te configureren)
Wat zijn volgens jullie voor- en nadelen?

Vooralsnog zie ik 2 voordelen om DHCP in Pihole onder te brengen;
- hostnames worden getoond ipv ip nummers
- beter / overzicht van de dhcp reservations.
Ik vind dat DHCP net zoals vele andere services (VPN , VLAN, IPS) centraal op de gateway thuishoren ipv verspreid over allerlei apparaten, om het netwerk enigszins overzichtelijk te houden en conflicten te voorkomen. Ik draai `m dus om.....tenzij er een echt goede reden is om een andere machine in te zetten, wordt het de USG/UXG/UDR/UDM. En Pihole/Unbound combo vind ik een goede reden, dat kan de Unifi gateway niet (goed genoeg).
 
Ik vind dat DHCP net zoals vele andere services (VPN , VLAN, IPS) centraal op de gateway thuishoren ipv verspreid over allerlei apparaten, om het netwerk enigszins overzichtelijk te houden en conflicten te voorkomen. Ik draai `m dus om.....tenzij er een echt goede reden is om een andere machine in te zetten, wordt het de USG/UXG/UDR/UDM. En Pihole/Unbound combo vind ik een goede reden, dat kan de Unifi gateway niet (goed genoeg).
Eens! Ik heb jarenlang Pihole gebruikt als DHCP server. Ik ben daar van afgestapt toen ik een UniFi controller ging gebruiken. In eerste instantie op een Pi (met de USG4), later op de UDR. Het centraal houden van jouw netwerkbeheerapplicaties (3x woordwaarde :p) maakt het beheer van jouw netwerk overzichtelijker. Dat de Pihole als DNS functioneert is natuurlijk prima. Ik gebruik inmiddels zelf Adguard Home omdat deze beter in-app reclame blokkeert. Daar kan de ad blocker van UI niet tegenop ;)
 
  • Leuk
Waarderingen: Eddie the Eagle
Oke, duidelijk.
Dus nu de volgende overweging
- maak ik een overstap naar Adguard Home? hmmm lijkt er opdat ik dan op alle device in huis iets moet gaan installeren...weet niet of ik daar blij van word.
- en / of is er een manier zodat ik host names zie in Pihole ? (ik wil af en toe weten wie welke sites bezoekt / en of er zaken tussen staan die geblocked moeten worden en dus een gesprekje waard zijn ;) )
 
Als je in de network app DNS instelt op het ip van Adguard hoef je helemaal niets in te stellen op de clients.

Als je in Pinhole wil zien welk apparaat wat doet kun je óf de ip adressen uit je hoofd leren (of alles statisch instellen) óf je creëert een hosts file op het apparaat waar de pihole op draait. Daar zijn genoeg handleidingen voor bij de pihole community. 😁
 
Activiteit
Er wordt op dit moment (nog) geen nieuwe reactie gepost.
  Topic Status: Hallo . Er is al meer dan 14 dagen geen nieuwe reactie meer geplaatst.
  De inhoud is mogelijk niet langer relevant.
  Misschien is het beter om in plaats daarvan een nieuw onderwerp te starten..