PTR einer ULA wird an Upstream DNS weitergeleitet obwohl Conditional Forwarding aktiv

Mir ist heute aufgefallen, dass der Pi-hole PTR request fĂŒr eine ULA an den Upstream DNS weiterleitet obwohl Conditional Forwarding aktiv ist, somit sollte das eigentlich an den lokalen router gehen.

nslookup fd00::20c:11xx:22yy:8z99
Server:  pi-hole
Address:  fd00::20c:11xx:22yy:8z99

*** fd00::20c:11xx:22yy:8z99 wurde von pi-hole nicht gefunden: Non-existent domain.

Und hier der Eintrag aus dem Pi-hole log

dnsmasq[7699]: query[PTR] 9.9.z.8.y.y.2.2.x.x.1.1.c.0.2.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.d.f.ip6.arpa from fd00::78hd:92ej:29af:2d2f
dnsmasq[7699]: forwarded 9.9.z.8.y.y.2.2.x.x.1.1.c.0.2.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.d.f.ip6.arpa to ::1
dnsmasq[7699]: forwarded 9.9.z.8.y.y.2.2.x.x.1.1.c.0.2.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.d.f.ip6.arpa to to 127.0.0.1
dnsmasq[7699]: reply fd00::20c:11xx:22yy:8z99 is NXDOMAIN

Kannst Du uns bitte ein Debug Token zur VerfĂŒgung stellen?

pihole -d

oder ĂŒber die Web-OberflĂ€che
Tools | Generate debug log

Klar :slight_smile:
https://tricorder.pi-hole.net/mdemcsjzsg

Die Reverse Lookups gehen bei Dir auch an den öffentlichen Server, weil Deine Konfiguration das erlaubt:

*** [ DIAGNOSING ]: Setup variables
  DNS_BOGUS_PRIV=false

Du kannst das ĂŒber Settings | DNS unterbinden, indem Du Never forward reverse lookups for private IP ranges anhakst.

Auch die darĂŒber angezeigte Option Never forward non-FQDNs wĂŒrde ich anhaken, sofern fĂŒr Pi-hole öffentliche Upstream-DNS-Server konfiguriert sind (in Deiner Konstellation indirekt via unbound), da reine Hostnamen (also z.B. laptop oder pi-hole) in aller Regel ohnhehin nur lokal bekannt sind.

UnabhĂ€ngig von Deiner Frage ist mir in Deinem Debug Log noch folgendes aufgefalllen (klicken fĂŒr Details)
*** [ DIAGNOSING ]: Setup variables
  PIHOLE_DNS_1=127.0.0.1#5353
  PIHOLE_DNS_2=::1#5353

passt nicht zu:

*** [ DIAGNOSING ]: contents of /etc/dnsmasq.d
-rw-r--r-- 1 root root 1503 Apr 12 17:41 /etc/dnsmasq.d/01-pihole.conf
  server=127.0.0.1
  server=::1

Es fehlt die Angabe der Ports (also #5353).

Zeigt Pi-hole in seinen Upstream DNS Servers tatsÀchlich keine Ports an?

Dann solltest Du die dort (wieder) ergÀnzen, damit die Anfragen auch entsprechend an unbound gehen, d.h: 127.0.0.1#5353.

Und noch ein Hinweis zum verwendeten Port:
5353 ist der Standard-Port fĂŒr mDNS. Das ist ein fĂŒr lokale Namensauflösung und Dienste-Erkennung insbesondere von Apple-GerĂ€ten verwendetes Protokoll, das z.B. von Bonjour und Avahi implementiert wird.
Um potentielle Seiteneffekte oder Störungen bei Verwendung von Apple-GerĂ€ten in Deinem Netzwerk zu vermeiden (und ggf. um Netzwerk-Analysetools nicht zu verwirren), wĂŒrde ich einen anderen Port verwenden, z.B. 5153.


Mhh... sollte dass dann nicht besser in der Pihole <-> unbound Anleitung geÀndert werden?

Problem ist ja nicht, dass Pi-hole diese forwarded, sondern das sie an den falschen resolver forwarded werden, statt an den upstream resolver mĂŒssten diese wie private IPv4 Adressen an den localen resolver forwarded werden, was Pi-hole ja bei IPv4 bei aktiviertem "Conditional Forwarding" auch tut.

Ich habe die beiden Optionen aktiviert, aber dennoch löst Pi-hole ULAŽs nicht auf, weswegen auf dem Dashboard die ULAŽs statt der Hostnamen angezeigt werden.

nslookup fd00::xx9x:xxxx:xx67:b4xx
Server:  pi-hole
Address:  fd00::xx9x:xxxx:xx67:b4xx

*** fd00::xx9x:xxxx:xx67:b4xx wurde von pi-hole nicht gefunden: Non-existent domain.

nslookup fd00::xx9x:xxxx:xx67:b4xx 192.168.2.1
Server:  fritz.box
Address:  192.168.2.1

Name:    DS-P51.fritz.box
Address:  fd00::xx9x:xxxx:xx67:b4xx

doch diese werden korrekt angezeigt.

image

Das sind zwei separate Probleme, von denen wir das erste gelöst haben:
a) ungewollte Weiterleitung an den Upstream-Server (gelöst durch bogus-priv)
b) fehlende Auflösung von lokalen IPv6-Adressen

b) wird in der Tat fĂŒr IPv6 von Pi-hole noch nicht vollstĂ€ndig unterstĂŒtzt.
Du kannst manuell folgende Zeile zur dnsmasq-Konfiguration hinzufĂŒgen (z.B. in /etc/dnsmasq.d/90-reverse-ipv6.conf):

server=/0.0.0.0.0.0.0.0.0.0.0.0.0.0.d.f.ip6.arpa/192.168.2.1

Das wird aber dennoch nicht fĂŒr alle GerĂ€te die gewĂŒnschte Namensauflösung bringen.

Grund hierfĂŒr ist IPv6 selbst, das auf gerĂ€te-autarke Verfahren zur Netzwerkintegration setzt.
Dabei entscheidet das GerÀt selbst (oder besser gesagt, sein Betriebssystem), welches Verfahren verwendet wird: SLAAC bzw. Stateless oder Stateful DHCPv6.
WĂ€hrend z.B. Windows-GerĂ€te DHCPv6 bevorzugen, unterstĂŒtzen Android-GerĂ€te ausschliesslich SLAAC. Und bei SLAAC bleiben lokale Hostnamen aussen vor, wĂ€hrend DHCPv6 dies in RFC4704 regelt.

FĂŒr Android-Smartphones wirst Du ĂŒber CF also keine Hostnamen erhalten, es sei denn, Deine Router-Firmware verwendet entsprechende Tools, die diese LĂŒcke schliessen (z.B. ip6neigh fĂŒr OpenWRT).

Um dies auszugleichen, kannst Du Hostnamen fĂŒr IPv6-Adressen in /etc/hosts/ definieren.

Nur zur Info: jemand anderes hatte die Idee auch schon.

Habe das jetzt so eingetragen allerdings statt der IPv4 die ULA der FritzBox und es funktioniert :slight_smile:
Als Lösung brĂ€uchte man beim Conditional Forwarding ja nur 2 IP Felder jeweils fĂŒr IPv4 & IPv6 (ULA)

Bei aktiver Privacy Extensions leider nicht praktikabel, da sich der Interface Identifier ja stÀndig Àndert.

Kannst Du so machen, ist absolut gleichwertig zur IPv4-Adresse (oder anders gesagt: egal :wink: ).

Und natĂŒrlich mĂŒsste bei anderen Konfigurationen die DomĂ€ne fĂŒr den Reverse Lookup entsprechend der jeweiligen ULA angepasst werden.
Das obige Beispiel habe ich extra fĂŒr Dich aus den Daten in Deinem Debug Log abgeleitet.

DiesbezĂŒglich ist bereits eine Anpassung in Arbeit. :wink:

Das hÀngt von der von Deinen Clients verwendeten SLAAC-Implementierung ab.
Sofern z.B. RFC 7217 unterstĂŒtzt wird, können private Adressen stabil bleiben (also bei Dir fe80: und fd00:). Globale IPv6-Adressen (2000::/3) bleiben natĂŒrlich aussen vor, da hat aber Dein ISP ggf. Kontrolle ĂŒber die Namen.
Mein Pi-hole-RPi lÀuft jedenfalls schon lange mit derselben ULA-Adresse.

Es geht hier um RFC4941

Wenn die Privacy Extensions aktiv ist (slaac privat) werden temporÀre Adressen verwendet.
Wenn deaktiviert (slaac hwaddr) dann ist die ULA statisch und beinhaltet die MAC Adresse der NIC

Bei slaac privat ist es gerade gewollt, dass der Interface Identifier wechselt um eine Identifizierung des Client zu erschweren.

Aus RFC 7217:

The method specified in this document is orthogonal to the use of temporary addresses [RFC4941], since it is meant to improve the security and privacy properties of the stable addresses that are employed along with the aforementioned temporary addresses.

Privacy Extensions und stabile private Adressen schliessen sich also nicht aus.

Unter Raspbian z.B. editiert man fĂŒr RFC7217-Adressen etc/dhcpcd.conf und setzt slaac private, siehe auch

man dhcpcd.conf

slaac [hwaddr | private]
Selects the interface identifier used for SLAAC generated IPv6 addresses. If private is used, a RFC7217 address is generated.


Nein, das sind genau die stabilen RFC7217-Adressen. :wink:

Kurze Frage, bitte:
Auch bei mir werden die kryptischen IPv6-Namen im dashboard angezeigt, wobei eine FritzBox verwendet wird, die weiterhin der DHCP-Server ist.

Ich habe nun versucht, via Terminal folgendes zu machen:
editieren -> sudo nano /etc/dnsmasq.d/90-reverse-ipv6.conf
einfĂŒgen -> server=/0.0.0.0.0.0.0.0.0.0.0.0.0.0.d.f.ip6.arpa/192.168.2.1

Jedoch gibt es in dem Verzeichnis lediglich die Datei 01-pihole.conf. Dort sollte man es wahrscheinlich nicht eintragen. Wo dann ?

Und, muss ich die EinfĂŒgezeile anpassen, wenn die FritzBox bei 192.168.178.1 liegt ? Nochwas anpassen ?

Dann wurde geschrieben, die ungewollte Weiterleitung an den Upstream-Server sei gelöst. Wo finde ich diese Lösung ?

Danke...

Wenn du die FritzBox als Upstream DNS verwendest, solltest du diesen Eintrag nicht machen mĂŒssen, dieser ist nur erforderlich, wenn dein Pi-hole nicht die FritzBox als Upstream DNS verwendet.

In die Datei 01-pihole.conf sollte man keine manuellen EintrĂ€ge machen, denn die Datei wird vom Pi-hole ggf ĂŒberschrieben.

Daher eine neue Datei anlegen z.B. 90-reverse-ipv6.conf
Der Befehl

sudo nano /etc/dnsmasq.d/90-reverse-ipv6.conf

sollte das eigentlich auch tun, sofern man das speichern am ende nicht vergisst.

Ja und nein, Windows 10 z.B. verwendet jeweils eine statische private Adressen fĂŒr ULA & GUA aber auch jeweils eine TemporĂ€re Adresse fĂŒr ULA & GUA und diese werden bevorzugt genutzt und Ă€ndern sich alle 24 Std.

IPv6-Adresse. . . . . . . . . . . : 2001:1111:2222:3333:4444:5555:6666:7f29(Bevorzugt)
IPv6-Adresse. . . . . . . . . . . : fd00::4444:5555:6666:7f29(Bevorzugt)
TemporÀre IPv6-Adresse. . . . . . : 2001:1111:2222:3333:4444:5555:6666:9370(Bevorzugt)
TemporÀre IPv6-Adresse. . . . . . : fd00::4444:5555:6666:9370(Bevorzugt)

Weswegen mein Win10 Client auch inzwischen 4x in der Top Clients Liste enthalten, mit 4 verschiedenen ULAÂŽs

Hm, ich verwende die FritzBox als Upstream... dann muss ich also nichts Àndern...

Aber, warum werden die die kryptischen IPv6-Adressen im Dashboard "fd00..." anstatt "iPhone" angezeigt ?

Wenn du nur die FB als Upstream benutzt, sollten die folgende Optionen unter DNS nicht aktiv sein

Never forward reverse lookups for private IP ranges

Werden bei allen Clients die ULAÂŽs angezeigt oder nur bei manchen?
Die FB löst nicht alle PTR Anfragen korrekt auf.

Mit slaac [hwaddr|private] kontrollierst Du auf Deinem Pi-hole-Rechner den Wechsel zwischen EUI-64 und stabiler privater RFC7217-Adresse (die eben gerade keine temporÀren PE-Adresse ist).

Die Frage dreht sich aber eigentlich darum, ob man durch EintrĂ€ge in hosts fĂŒr eine bessere Namensauflösung sorgen kann.

Und hier macht ein Eintrag einer temporÀren PE-Adresse wenig Sinn, aber bei Verwendung der stabilen lokalen IPv6-Adressen (egal ob EUI-64 oder RFC7217) lÀsst sich durchaus eine Verbesserung erzielen.

Unter Windows (mindestens ab W7) könntest Du ggf. noch versuchen, ĂŒber gezielte Anpassung von PrioritĂ€ten fĂŒr prefix policies eine Änderung zu erreichen. Die vorhandenen lassen sich wie folgt anzeigen:

netsh interface ipv6 show prefixpolicies

Änderungen gehen ĂŒber set, fĂŒr das Du die Hilfe wie folgt aufrufst:

netsh interface ipv6 set prefixpolicy ?

Allerdings habe ich selbst noch nie etwas an diesen Rangfolgen verÀndert

Alternativ lÀsst sich eventuell auch die temporÀre IPv6-ULA-Adresse löschen:

netsh interface ipv6 delete address [[interface=]Zeichenfolge] [address=]IPv6-Adresse [[store=]{active | persistent}]

Auch das habe ich selbst noch nicht ausprobiert.
Eventuell ergÀnzt Windows diese Adresse umgehend oder nach einem Neustart auch einfach wieder.
(Alle angefĂŒhrten netsh-Kommandos gehen zudem auch deutlich ĂŒber Pi-hole hinaus :wink: ).

Komplett auflösen lassen wird sich das wegen der Unstimmigkeiten in IPv6 bezĂŒglich der lokalen Namensvergabe allerdings nie vollstĂ€ndig.

Pi-holes Entwickler tun hier das bestmögliche, um Verbesserungen herauszuholen, die die Protokolle alleine nicht hergeben, z.B. im verbesserten Network overview in Pihole 5. :wink:

2 posts were merged into an existing topic: Provide MAC address as option for Per-client blocking