IPv6 mit Fritzbox und Pihole

Hallo allerseits,
das Thema IPv6 gibt es häufiger, dennoch habe ich die Antwort auf meine Frage nicht finden können.

Folgendes zur Grundeinstellung:
Router: Fritzbox 7590
ISP: Telekom

Pi-hole Version v4.4
Web Interface Version v4.3.3
FTL Version v4.3.1

Einstellungen der FB:

  • Internet -> Zugangsdaten -> IPv6 -> Aktiviert (Native IPv4 Anbindung verwenden)
  • Internet -> Zugangsdaten -> DNS-Server -> Vom Internetanbieter zugewiesene DNSv4/DNSv6-Server verwenden
  • Heimnetz -> Netzwerk -> Netzwerkeinstellungen -> IPv4-Adressen -> Lokaler DNS-Server = IP vom Raspberry mit Pihole
  • Heimnetz -> Netzwerk -> Netzwerkeinstellungen -> IPv6-Adressen -> "Unique Local Addresses (ULA) immer zuweisen" aktiviert
  • Heimnetz -> Netzwerk -> Netzwerkeinstellungen -> IPv6-Adressen -> Lokaler DNSv6-Server = IPv6 vom Rpi (mit fd00 am Anfang)
  • Heimnetz -> Netzwerk -> Netzwerkeinstellungen -> IPv6-Adressen -> DHCPv6-Server in der FRITZ!Box für das Heimnetz aktivieren -> Nur DNS-Server zuweisen (aktiv)
  • Heimnetz -> Netzwerk -> Netzwerkeinstellungen -> DNS-Rebind-Schutz -> IP vom Pihole-RPi eingetragen

Einstellungen im Pihole:

  • IPv4 und IPv6 sind in der setupVars.conf korrekt eingetragen und werden auch korrekt angezeigt.
  • Settings -> DNS -> Alle vorgegebenen UpStream-DNS-Server sind deaktiviert.
  • Settings -> DNS -> Custom 1 (IPv4) = IP von Fritzbox
  • Settings -> Advanced DNS settings -> Never forward non-FQDNs -> deaktiviert
  • Settings -> Advanced DNS settings -> Never forward reverse lookups for private IP ranges -> deaktiviert
  • Settings -> Advanced DNS settings -> Use DNSSEC -> deaktiviert
  • Settings -> Advanced DNS settings -> Use Conditional Forwarding -> aktiviert mit IP der FB und "fritz.box" als local domain name

Den Clients werden über die Fritzbox (die nach wie vor DHCP macht) auch die korrekten DNS-IPs des Pi-Holes übermittelt.
Das Funktioniert soweit, das Routing sieht also wie folgt aus:

Client -> Pihole -> Fritzbox -> ISP-DNS (weil noch die standard-ISP-DNS in der FB drin ist)

Das macht für IPv4 auch alles Sinn und diese Umsetzung wird auch oft so vorgeschlagen, damit die lokale Namensauflösung weiterhin funktioniert.

ABER - und nun zur eigentlichen Frage:
Wenn ein Client über eine IPv6 Adresse sucht, endet seine Suchanfrage doch mit dieser Einstellung im Pi-hole, weil dort kein IPv6-Upstream eingetragen ist, oder nicht?
Müsste da nicht noch (parallel zur IPv4) die IPv6 der Fritzbox bei Custom 3 (IPv6) eingetragen werden?

Ich habe hier nochmal alle Einstellungen als Screenshot hochgelagen:

Willkommen hier im Forum!
Kurz: ja
Dann sollte auch v6 klappen

Bei den erweiterten Einstellungen noch die erste Einstellung aktivieren.

1 Like

Das ging ja schnell - vielen Dank!
Dann habe ich das System also verstanden.
Kannst du mir noch fix verraten, wie ich die IPv6 der Fritzbox herausfinde, die ich dann bei "Custom 3 (IPv6)" im Pihole-Upstream eintragen muss?

Never forward non-FQDNs ?
OK, hab ich aktiviert.

IPv6-Adresse der Fritzbox, zu finden unter Heimnetz -> Netzwerk -> Netzwerkeinstellungen > IPv6-Adressen -> Unique Local Address

2 Likes

Wow...manchmal sieht man den Wald vor lauter Bäumen nicht.
Vielen Dank!

Hm...Internetaufrufe wirken immer noch sehr träge.
Das wurde besser, als ich im Pihole mal direkt ein paar DNS-server eingetragen habe, den Umweg zurück über die FB also übergangen bin.
Dieser scheint aber für lokale Namensauflösung nötig zu sein.

Ganz dumm gefragt....kann man irgendwie testen, ob alles richtig funktioniert (sowohl IPv4 als auch IPv6)?

Mir kommt es fast so vor, als würde mein Rechner (Client) versuchen irgendwas über IPv6 aufzurufen, das geht ins leere und über den Notweg geht man dann per IPv4 raus, was halt dauert....laienhaft gesprochen

Lass dem System mal was Zeit, dass muss sich erst "einschwingen". Morgens habe ich auch manchmal den Eindruck, es dauert etwas länger, so nach dem Motto: Ich muss erst mal meine Caches wieder füllen.
Danach läuft es dann super.
Also Geducd: Comuter sind auch nur Menschen :wink:

1 Like

Ah, okay...danke.
Rein aus Interesse: gäbe es denn eine Möglichkeit zu testen, ob alles seinen richtigen Weg geht?

Das muss doch irgendwie möglich sein :thinking:

Wenn in "Network" alle Clients grün aufgeführt sind, sollte alles iO sein.

1 Like

Alles klar.

Über https://www.dnsleaktest.com/ bekomme ich jedenfalls auch den korrekten IPv4-DNS angezeigt.
Dann scheint es wohl zu klappen.

Weißt du zufällig noch, wieso unter "network" die Hostnamen nicht korrekt aus dem Fritzbox DHCP übernommen werden?

Beispiel:
192.168.178.201 - t540p.fritz.box
Im FB-DHCP wurde dieser aber in "Markus-T540p" umbenannt...eigentlich sollte der Name doch auch von der FB zurück an Pihole übertragen werden, oder?

Nein, das ist ein Denkfehler - die Anfragen enden aus Sicht eines Clients *immer* am Pi-hole, völlig unabhängig davon, ob dieser Client über IPv4 oder IPv6 angebunden ist. Darüber hinaus definiert die DNS-Anfrage selbst die gewünschte Adresse, nicht die Art der Anbindung (klicken für mehr).

Pi-hole schickt die Anfrage erst durch seinen Filter und stellt sie dann -sofern nicht gefiltert wurde- an einen Upstream-DNS-Server. Dieser kann sowohl IPv4- als auch IPv6-Adressen zurückgeben, genau wie Pi-hole.

Deinem Client ist dabei völlig unbekannt (und mithin egal), ob Pi-hole die Antwort über IPv4 oder IPv6 ermittelt hat oder selbst wusste - ihn interessiert nur, ob er die angefragte IPv4 (A) oder IPv6 (AAAA) erhält.

Nachvollziehen kann man das exemplarisch, wenn man folgende Kommandos ausführt:

nslookup -type=A heise.de

oder

nslookup -type=AAAA heise.de

Die Kommandos werden eine Auflösung liefern, unabhängig davon, wie Dein Pi-hole DNS-Anfragen weiterleitet.

(EDIT: Passendes Beispiel ergänzt/ersetzt)


Es gibt hierfür zwei Erklärungen:
a) Einträge im Network Overview sind nicht live, d.h. es kann etwas dauern, bevor ein geänderter Name hier übernommen wird.
b) Ein Gerät muss nicht zwingend nur einen Namen haben.
Wegen des Aha-Effekts empfehle ich hier zum besseren Verständnis gerne eine reverse Auflösung für die lokale IP-Adresse der FritzBox :wink: (also standardmässig nslookup 192.168.178.1).
Welchen Namen Pi-hole zur Anzeige wählt, kann nicht direkt beeinflusst werden.
Wenn's stört (z.B. weil für Android-Phones partout der automatisch generierte Name a la android-abcd1234gefh5678 angezeigt wird), kann auf der Pi-hole-Maschine über entsprechende Einträge in /etc/hosts die Verwendung der gewünschten Namen erzwungen werden. Und in der kommenden v5 wird Pi-hole die Vergabe von Namen auch direkt über die Web-Oberfläche erlauben. :slight_smile:

2 Likes

Wow...danke für die ausführliche Erklärung.

Dann habe ich das Ganze doch nicht richtig verstanden.

Jetzt tun sich mir weitere Fragen auf:

  1. Wenn ich im Pihole also nur eine IPv4 im Upstream eingetragen habe (wie es im Start-Beitrag der Fall war) hieße das also, dass mein Client (Notebook, Handy, ...) eine Anfrage über IPv4 ODER IPv6 zum Pihole stellt, Pihole dann über IPv4 zur Fritzbox geht und die wiederum per IPv4 oder IPv6 raus an einen eingetragenen DNS-Server geht...also ist nur die Verbindung zwischen Pihole und FB auf IPv4-Basis, der Rest könnte beides, verstehe ich das richtig?

  2. Wenn ich dich richtig verstehe, ist es also völliger Unsinn, dass mein Notebook eine IPv6 bekommt, weil mein Netzwerk niemals so groß sein wird, dass das von Nöten wäre?
    Warum ist das dann so?...Habe ich das mit den Fritzbox-Einstellungen verpfuscht oder ist das mittlerweile Standard und ging an mir vorbei?

  3. Ist es denn grundlegend verkehrt die IPv6 der Fritzbox als IPv6 Upstream im Pihole einzutragen? (Zusätzlich zur IPv4 der Fritzbox) Bzw. macht das dann überhaupt Sinn?

  4. Das Notebook stellt die Anfrage an Pihole -> Pihole bekommt es irgendwoher -> Pihole antwortet dem client... ok.

nslookup 192.168.178.1
Server:  raspberrypi
Address:  fd00::1735:27ee:XXXX:4f92

Name:    fritz.box
Address:  192.168.178.1
  1. beim Bundesgesundheitsministerium.de bekomme ich nur über -type=A eine Antwort, die scheinen also keine IPv6 hinterlegt zu haben.
    *** Keine IPv6 address (AAAA)-Einträge für bundesgesundheitsministerium.de verfügbar.

Wer entscheidet denn dann wann ich eine domain als IPv4 aufgelöst bekomme oder eben als IPv6, wenn ich die Anfrage abschicke?
z.B.
Google.de -> IPv4 = 216.58.207.35
IPv6 = 2a00:1450:4001:816::2003

Wenn ich "google.de" in den Browser eintippe und damit die Anfrage zum DNS-Server schicke, wird der ja mit einer von beiden IPs als erstes antworten -> mit welcher und warum?

Grund für das ganze Dilemma, weshalb ich der Sache überhaupt näher auf den Grund gegangen bin ist der, dass Seiten ziemlich langsam aufgelöst wurden, seitdem ich mit dem IPv6 Kram und Pihole rumgespielt habt.
Es machte auf mich immer den Eindruck, als würde man immer erstmal die "falsche Antwort" bekommen und müsste eine erneute Abfrage raus schicken...laienhaft habe ich vermutet, dass alles erstmal über IPv6 angefragt wird, im PiHole dann ins leere geht, weil gar kein IPv6 Upstream eingetragen war und kurz drauf die ganze Anfrage über IPv4 neugestartet wird und zum Erfolg führt.
Genau DAS scheint ja ein mächtiger Denkfehler zu sein.
Vielleicht war aber auch einfach zufällig der DNS-Server der Telekom langsam...hm

  1. Zum Thema Namen im Pihole: Es wundert mich nur, dass es immer die Host-Namen der Geräte sind, wie sie im Gerät selbst eingetragen sind (z.B. eben diese generischen Android-Namen).
    Das ist bei jedem Gerät so.
    Ich hätte gedacht durch ein Ändern der Namen im Fritzbox-DHCP wäre das Handling im Hintergrund schlau genug, dass der DHCP der FB dann eben die Namen, die in ihr hinterlegt sind, weiter als hostnamen verteilt.
    Scheinbar ist das aber nur eine Lokale Anpassung für die Menschliche Übersicht in der Fritzbox selbst und muss auf dem PiHole parallel nochmal komplett neu angelegt werden.
    Schön, wenn das irgendwann über das Webinterface geht.
    Ärgerlich ist's trotzdem.

Schlimmer ist, dass manche Dinge wie z.B. "octopi.local" nicht mehr funktionieren, weil der nun als "octopi.fritz.box" im pihole hinterlegt ist....das müsste man also alles händisch in der hosts-datei nachpflegen :frowning:

Zu 1):

Es kommt nicht auf die Konnektivität an, sondern - wie bereits gesagt - auf die DNS-Anfrage.

Ein plakatives Beispiel:
Du gibst einem Taxifahrer (Pi-hole) in Köln einen Zettel mit der deutschen Adresse (Hostname), zu der Du willst. Der fährt Dich hin, egal ob Du jetzt holländisch (IPv6) oder englisch (IPv4) sprichst. Es kommt nur darauf an, was auf dem Zettel (DNS-Anfrage) steht.
Einmal angekommen, kannst Du Dich mit Deinem Gesprächspartner (IP-Adresse) gerne englisch oder holländisch unterhalten.
Das ist dem Taxifahrer schnurz. :wink:


Zu 2) , 3), 5):

Kein Unsinn, denn IPv6 wird IPv4 zukünftig in öffentlichen Netzen verdrängen.
Es gibt bereits heute Dienste, die ausschließlich über IPv6 (oder IPv4) erreichbar sind.

Nur wenn Dein Notebook über eine IPv6-Adresse verfügt, kann es auch direkt mit einem öffentlichen IPv6-Server kommunizieren.
Hat es nur eine IPv4-Adresse, muss auf der Strecke zwischen Dir und dem IPv6-Server eine Umaddressierng stattfinden (entweder durch Deinen Router oder Deinen ISP).

Daraus kann man aber derzeit nicht ableiten, dass IPv6 schneller als IPv4 ist.
Es kommt letztlich darauf an, wie weit der Server entfernt ist, mit dem Du kommunizierst. Insbesondere bei den großen Diensten gibt es zwar häufig IPv4- und IPv6-Server, aber vielfach ist die lokale Versorgung mit IPv4 historisch länderübergreifend gut, während die IPv6-Server oft nur in den USA stehen. Das gleiche kann umgekehrt aber auch für IPv4 gelten, das hängt allein von den Entscheidungen der Server-Betreiber ab.

( 4) war keine Frage, oder ich habe sie nicht verstanden.)

zu 5):

Stimmt, das BMG hat nur IPv4 - man sollte doch seine eigenen Beispiele kontrollieren. Ich habe oben ein passendes ergänzt.

zu 6)

Doch, die FB liefert die Namen schon aus - hast Du den erwähnten reversen nslookup auf die IP bei Dir schon gemacht?

Nach meiner Erfahrung ist es eher zufällig, in welcher Reihenfolge die FB die Namen liefert und Pi-hole seine Auswahl trifft. Möglicherweise hat AVM auch das Verhalten in einem der letzten FritzOS-Updates geändert; unter 6.x hatte ich jedenfalls anständige Namen.

1 Like

Wirklich vielen Dank, dass du dir die Zeit nimmst und die Mühe machst mir das so schön deppensicher zu erklären, dass ich es auch verstehe :smiley:
Jedenfalls wird es mir nun alles klarer.

Das war das, was ich unter 4. aufgelistet hatte - hier nochmal:

 nslookup 192.168.178.1
Server:  raspberrypi
Address:  fd00::1735:27ee:XXXX:4f92

Name:    fritz.box
Address:  192.168.178.1

Ein anderes Beispiel (Octopi):

Server:  raspberrypi
Address:  fd00::1735:27ee:2426:4f92

Name:    octopi.fritz.box
Address:  192.168.178.17

Hier nochmal zwei Screenshots vom Pihole und von der Fritzbox.

Weiterhin ist da ein Screenshot der Pihole-log mit dabei.
Wenn ich beim Pihole die log einfach mal mitlaufen lasse und da gucke, was die Fritzbox so antwortet, dann ist sieht man schön, dass die FB "octopi.local" wohl nicht mehr auflösen möchte..."octopi" ohne suffix wird scheinbar automatisch zu "octopi.fritz.box" und funktioniert damit wieder.
Aber "Markus-octopi-SWX1", wie es in der FB hinterlegt ist, taucht nirgends auf.
Beim letzten Screenshot sieht man auch schön den Taxi-Verlauf :slight_smile:

Führ das nslookup mal auf Deinem RPi aus -. Windows verschluckt hier eine Menge :wink:

Und bedanken kannst Du Dich vor allem bei @Gert_Chlupaty, der ja die passenden Konfig-Tipps für Dich parat hatte.- z.B, indem Du seinen Post :heart:st oder den passenden Post als Lösung markierst

Ich wollte ja eigentlich nur kurz was erläutern :wink:

1 Like
pi@raspberrypi:~ $ nslookup 192.168.178.1
1.178.168.192.in-addr.arpa      name = fritz.box.
1.178.168.192.in-addr.arpa      name = www.fritz.box.
1.178.168.192.in-addr.arpa      name = myfritz.box.
1.178.168.192.in-addr.arpa      name = www.myfritz.box.
1.178.168.192.in-addr.arpa      name = fritz.nas.
1.178.168.192.in-addr.arpa      name = www.fritz.nas.
1.178.168.192.in-addr.arpa      name = fritz-nas.fritz.box.
1.178.168.192.in-addr.arpa      name = fritz-nas.box.
1.178.168.192.in-addr.arpa      name = wpad.box.
1.178.168.192.in-addr.arpa      name = wpad.fritz.box.

pi@raspberrypi:~ $ nslookup 192.168.178.17
17.178.168.192.in-addr.arpa     name = octopi.fritz.box.
17.178.168.192.in-addr.arpa     name = Markus-octopi-SWX1.fritz.box.

pi@raspberrypi:~ $ nslookup 192.168.178.10
10.178.168.192.in-addr.arpa     name = Datengrab.fritz.box.

Oh...mein Fehler.
Da kommt schon mehr rum.
Beim Datengrab fehlt zum Beispiel noch der echte Name aus der FB, den der octopi scheinbar mitgeliefert bekommt.

SOLL denn die Netzwerkliste so aussehen, wie sie aussieht (Screenshot)?

"Markus-octopi-SWX1.fritz.box" taucht da ja scheinbar nicht auf - wenn ich dich richtig verstehe - weil die Fritzbox "octopi.fritz.box" als erstes liefert

Und ganz kurz nochmal zum Upstream im Piohole.
Hätte es denn dann nicht letztendlich doch gereicht, wenn NUR die IPv4 Adresse der Fritzbox eingetragen gewesen wäre?
So wie ich dich verstehe, ist es doch überflüssig die IPv6 ebenfalls einzutragen, weil Pihole sich dann halt alles über IPv4 von der Fritzbox holt?

Hätte es.

Mit derselben Argumentation könntest Du auch ausschließlich eine IPv6-Adresse eintragen und behaupten, IPv4 wäre überflüssig.

Es gibt hier kein richtig oder falsch ;)

Pi-hole wird aus der Menge der konfigurierten Upstream-DNS-Server automatisch bevorzugt den auswählen und beauskunften, der am schnellsten antwortet.

Deshalb macht es generall Sinn, hier alle bekannten IPv4- und IPv6-Adressen einzutragen; um die Auswahl kümmert sich Pi-hole.

In Bezug auf den Sonderfall der FB als lokaler Upstream-DNS ist ein zeitlicher Vorteil höchstwahrscheinlich zu vernachlässigen, auszuschliessen ist er aber nicht (u.a. weil wir nicht wissen, nach welchen Kriterien genau die FB DNS-Anfragen weiterleitet).

Wichtig ist letztlich nur, dass Deine Konfiguration funktioniert, am besten so, wie Du das möchtest. :wink:

1 Like

Vielen Dank, das leuchtet mir ein :slight_smile:

Ich hänge mich mal mit dran, da es zum Thema passt.

Ich habe das Problem, dass wenn ich auf interne Clients zugreife, der Zugriff (PING)immer über IPv4 erfolgt, wenn ich den Pi-hole als DNS nutze im Log sehe ich auch beim AAAA Type ein NODATA

Trage ich allerdings die FritzBox als DNS im Client ein, erfolg der Zugriff (PING) per IPv6

Mein Setup ist wie im ersten Post beschrieben und in der FritzBox ist die Einstellung "Unique Local Addresses (ULA) immer zuweisen" aktiviert.

A post was merged into an existing topic: Lost connection to api