Raspberry Pi Zero WH - Pihole-DNS-Setup

T00L schrieb:
Wird die Fritzbox als DNS Server übermittelt, kann man Redundanz über den primären und sekundären DNS Server erzeugen, indem man primär pihole und sekundär eine Alternative (vom Provider) einträgt. Nachteil wie beschrieben, alle Einträge in pihole werden von der Fritzbox erzeugt.
Das hat mit Redundanz wenig zu tun. Bei Redundanz müssen beide DNS denselben Informationsgehalt haben, sozusagen zwei Instanzen desselben DNS. Zwei verschiedene DNS sind und bleiben zwei verschiedene DNS und nicht "doppelte DNS" wie es bei Redundanz eigentlich sein müsste.

Der Nachteil ist auch nicht, dass die Einträge in pihole auf die Fritzbox als Client zeigen, sondern vielmehr, dass primärer und sekundärer DNS nicht als Fallback im eigentlichen Sinne gesehen werden können. Es gibt verschiedene Mechanismen wie der primäre und der sekundäre DNS genutzt werden.
Simples Beispiel: Round Robin. Ein User hier im Forum hat mal die Probe aufs Exempel gemacht und mittels Wireshark am WAN-Port der Fritzbox mitgeschnitten wie das dort abläuft. Das Resultat war, dass die Fritzbox regelmäßig auch den sekundären DNS benutzt hat. Die Vermutung war, dass die Fritzbox hier abwechselnd primär und sekundären DNS verwendet. Nutzt man jedoch pihole und zB den Provider-DNS, wird man regelmäßig DNS-Leaks haben, die an pihole vorbeigehen und eben keine Werbung/Tracker blockieren.


Abgesehen von der Möglichkeit, pihole auch als DHCP zu nutzen, gibt es 2 Varianten wie man pihole ins Netzwerk einbinden kann. Richtig oder falsch gibt es da nicht, beides hat Vor- und Nachteile:

Variante 1)
Fritzbox gibt via DHCP als DNS sich selbst an die Clients weiter
Fritzbox Upstream-DNS = pihole
pihole Upstream-DNS = zB 8.8.8.8

DNS-Aufrufkette (public + local domain): Client --> Fritzbox --> pihole --> 8.8.8.8

Vorteil: pihole wirkt sich auch im Gastnetzwerk der Fritzbox aus, weil die Fritzbox selbst an pihole weiterreicht
Nachteil: pihole sieht nur genau einen Client, die Fritzbox.


Variante 2)
Fritzbox gibt via DHCP als DNS pihole an die Clients weiter
Fritzbox-Upstream-DNS = Provider, 8.8.8.8, o.ä.
pihole Upstream-DNS = Fritzbox
oder
pihole Upstream-DNS = zB 8.8.8.8 + conditional forwarding an die Fritzbox

DNS-Aufrufkette (public + local domain) : Client --> pihole --> Fritzbox --> 8.8.8.8
oder
DNS-Aufrufkette (public domain) : Client--> pihole --> 8.8.8.8
DNS-Aufrufkette (local domain) : Client--> pihole --> Fritzbox



Public und local domain beziehen sich dabei auf die Art der Domain, die angefragt wird. computerbase.de ist beispielsweise public, während die Fritzbox ab Werk fritz.box als lokale Domain verwendet. Diese lokale Domain wird an jeden Hostnamen im lokalen Netzwerk angehängt. Das NAS mit dem Hostnamen "MeinNAS" heißt also in voller Gänze "MeinNAS.fritz.box". Conditional forwarding in pihole sorgt nun dafür, dass alle Anfragen zu dieser lokalen Domain eben nicht an den public DNS geschickt werden - der weiß ja nix davon - sondern explizit an die Fritzbox gehen, da diese den DHCP-Server darstellt und fritz.box verwaltet.

Passt man bei der Konfiguration von pihole nicht auf, kann es passieren, dass lokale Namen nicht mehr aufgelöst werden können. Es ist daher wichtig, dass die Fritzbox - oder zumindest das Gerät, das den DHCP-Server stellt - irgendwo in der DNS-Aufrufkette auftaucht.
 
  • Gefällt mir
Reaktionen: tschesny
Ich bin noch neu auf dem Gebiet und verstehe leider meist nicht alles, was hier gepostet wird.

@Raijin Ich nutze also demnach Variante 1? In der Fritzbox ist als lokaler DNS mein Pihole eingetragen. Im Pihole habe ich dann OpenDNS eingetragen.

Dennoch sehe ich aber die Requests von einzelnen Geräten (wo insb. der Samsung-TV echt aktiv ist).

Schalte ich den Pi aus, dann gibt es aber weiterhin irgendwie eine zuverlässige Namensauflösung. Erkennt die Fritze dann den nicht erreichbaren DNS und schaltet wieder auf den ISP-DNS zurück?
 
Zuletzt bearbeitet:
Am besten kann man das beurteilen, wenn du Screenshots lieferst. Das ist belastbarer als textuelle Beschreibungen, die beliebig ungenau sein können. Nicht selten stellt sich nämlich hinterher heraus, dass die tatsächliche Konfiguration eine ganz andere ist als sie beschrieben wurde.

Client: Start --> cmd --> ipconfig /all --> Screenshot
Fritzbox: Screenshot von den DHCP-Einstellungen sowie den Internet-Einstellungen (jeweils da wo der DNS steht)


tschesny schrieb:
Dennoch sehe ich aber die Requests von einzelnen Geräten (wo insb. der Samsung-TV echt aktiv ist).
Das kann aber nur dann der Fall sein, wenn eben diese Geräte pihole direkt fragen. Sobald pihole von der Fritzbox angesteuert wird, die Geräte also erst die Fritzbox fragen, hat pihole keine Möglichkeit mehr, die Clients zu unterscheiden. Sowas deutet dann darauf hin, dass eben eine etwas merkwürdige Konfiguration vorliegt.


tschesny schrieb:
Schalte ich den Pi aus, dann gibt es aber weiterhin irgendwie eine zuverlässige Namensauflösung. Erkennt die Fritze dann den nicht erreichbaren DNS und schaltet wieder auf den ISP-DNS zurück?
Unwahrscheinlich, aber nicht unmöglich. Allerdings kann es dafür diverse Erklärungen geben, solange nicht einwandfrei belegt ist wie die Konfiguration aussieht. Simpel ausgedrückt: Wenn ein Client in den IP-Einstellungen von Hand die 8.8.8.8 als DNS bekommen hat, interessiert ihn weder die Fritzbox noch pihole, weil er direkt die 8.8.8.8 nach DNS fragt.
 
  • Gefällt mir
Reaktionen: tschesny
So,

hat 'ne Weile gedauert. Ich war mir nicht sicher wie kritisch das Teilen von Hardwareadressen und IPv6-Adressen ist. Aber die brauchen wir bestimmt auch nicht in den Screenshots. Habe mal alles rangehängt was mir wichtig erschien.

EDIT: Meine Mobilgeräte nennen mir auch alle 192.168.178.41 als den DNS-Server. Dort ist nichts manuell eingetragen worden.
 

Anhänge

  • 01_FritzBox.jpg
    01_FritzBox.jpg
    149 KB · Aufrufe: 179
  • 02_FritzBox2.jpg
    02_FritzBox2.jpg
    55,3 KB · Aufrufe: 176
  • 03_PiHole1.jpg
    03_PiHole1.jpg
    37,7 KB · Aufrufe: 165
  • 04_PiHole2.jpg
    04_PiHole2.jpg
    74,8 KB · Aufrufe: 171
  • 05_PiHole3.jpg
    05_PiHole3.jpg
    132,9 KB · Aufrufe: 175
  • 06_ipconfig.jpg
    06_ipconfig.jpg
    201,3 KB · Aufrufe: 180
Das ist ganz offensichtlich Variante 2. Im DHCP der Fritzbox hast du eindeutig die IP des pihole als DNS eingetragen und bei ipconfig sieht man auch, dass der Client den pihole direkt als DNS verwendet. Deswegen tauchen deine Clients in pihole auch einzeln auf.

Wenn DNS weiterhin funktioniert, sobald du pihole ausschaltest, ist davon auszugehen, dass parallel ein IPv6-DNS genutzt wird. Die Fritzbox hat damit nur etwas zu tun, wenn eben dieser IPv6-DNS die Fritzbox ist. Dann kannst du dir allerdings auch nicht sicher sein, dass bei laufendem pihole immer dieser benutzt wird, da Windows nach Möglichkeit IPv6 stets bevorzugt. Im Zweifelsfalle werden also auch mit pihole dann DNS-Queries an pihole vorbeigehen, wenn sie via IPv6 mutmaßlich an die Fritzbox geschickt werden.




Lokale Namen: Um sicherzustellen, dass lokale Namen zuverlässig aufgelöst werden können, solltest du in pihole conditional forwarding aktivieren und fritz.box an die 192.168.178.1 durchreichen.
 
Danke für die weitere Erläuterung!

Bzgl. conditional forwarding reicht mir das so bisher, da ja die Namen erkennbar sind, eben mit dem besagten "fritz.box" hintendran.

Tatsächlich sind einige Anfragen auf dem Dashboard, ca. 1/10 der Gesamtmenge, als "AAAA" also IPv6 markiert. In den Setup-Guides wird meist empfohlen nur IPv4 weiterzureichen, und IPv6 von der Fritzbox verwaltet zu lassen. Sollte ich für ein besseres Filterergebnis IPv6 dann noch meine PiHole-Adresse eintragen und im Pi-Hole noch bei OpenDNS die IPv6-Server anhaken, oder ist davon abzuraten (weil ich mir dann Windows-Funktionalitäten einschränken könnte?).
 
Zurück
Oben