IPv6 Clients, Blocklist, DNSv6 und Hostname-Auflösung mit FritzBox und Fragen

Hallo ihr freundlichen Helfer aus der Nachbarschaft,

ich habe mir vor einer woche einen Pi 4 Rev.B zugelegt um ihm in meinem Heimnetzwerk (und später auch mit Wireguard) mit Pi-Hole zu betreiben, jedoch mit ich mit fortschreitender Anforderung meinerseits an ein paar Grenzen gestoßen und ich weiß tatsächlich nicht einmal wo ich konkret anfangen soll:

Zunächst aber einmal - Grundlegend funktiorniert alles. Jedoch bin ich mit einer Aufgabe am Verzweifeln und zwar mit dem Group Management der Clients.

Hier aber erstmal meine Ausgangskonfiguration:

  • Modem + Router gebrandete FritzBox 6591 von Vodafone
    • über diesen läuft weiterhin der DHCPv4- und DHCPv6-Server
    • es folgen weitere Router + Repater in einem AVM-Mesh:
      • FritzBox 6590 per LAN an FritzBox 6591
      • FritzBox 4040 per WiFi an FritzBox 6590
      • FritzRepeater 2400 per WiFi an FritzBox 6591

Hier eine Übersicht (nichts alles enthalten):

  • Raspberry Pi 4 ist an der FritzBox 6591 über LAN angebunden
    • auf diesen Läuft der DNS-Server (in meinem Fall außerhalb des DHCP-Adressraumes unter
      192.168.178.203)
    • ebenfalls ist IPv6 aktivert im Router
      • inklusive Eintrag des DNSv6-Servers vom Pi 4
        • ip -6 address show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000 inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000 inet6 fd00::aecd:c608:b369:4907/64 scope global dynamic mngtmpaddr noprefixroute valid_lft 7015sec preferred_lft 3415sec inet6 2a02:8109:8580:366c:a0b4:67ed:d00c:e817/64 scope global dynamic mngtmpaddr noprefixroute valid_lft 4635sec preferred_lft 1935sec inet6 fe80::3598:6d19:b14d:452b/64 scope link valid_lft forever preferred_lft forever
    • image
      • dort sieht man auch ganz gut die anderen Einstellungen, die vorgenommen worden sind.

Nun meine Anliegen und so wie es scheint sind sie alle miteinander verknüpft:

Es gibt hier Bewohner im Haus, die auch gerne Zugriff auf Facebook usw. haben wollen, dafür bietet sich ja das Group Management an. Nun habe ich dazu die Gruppe Free erstellt, um diese vom Pi-Hole erstmal komplett auszuschließen.

Dieser Gruppe habe ich Clients hinzugefügt.

Hier das Aber: Ich habe zwar der Gruppe die besagten Clients zugeteilt jedoch hatte das keine Wirkung auf den Zugriff auf Facebook. Daraufhin habe ich im Query Log unnd im Tail pihole.log nachgeschaut und anscheinend wird weiterhin über IPv6 blockiert. Nun wollte ich die IPv6-Adressen ebenfalls hinzufügen, jedoch ist mir auf gefallen, dass tweilweise jedes Gerät drei oder mehr Adressen hat und diese sich fortwährend ändern. Dazu kommt, dass die Host Names nicht immer beim Pi-Hole ankommen, sondern eben anders Bezeichnungen.

image
image
image
image

Zum beispiel gibt es den Computer storm-pc-2.fritz.box überhaupt gar nicht, sondern eigentlich nur storm-pc.fritz.box.

Ich habe mich dabei so gut es geht an diese und diese Anleitung bzw. Erlärungen gehalten.

Jedoch sind mir da auch noch ein paar Sachen unbekannt. Unter dem ersten Link schreibt der Autor:

in der Fritzbox unter Heimnetz und IPv6 “ULA immer zuweisen anmachen”. “DNSv6 über Router Advertisment bekannt machen” aktivieren. Dort die fd00 des Raspberry eintragen (der bekommt mit der Einstellung in der FB eine solche Adresse). Wichtig: sollten es mehrere sein, die der Raspberry im fd00 Bereich bekommen hat, die nutzen, welche der MAC Adresse ähnlich ist.

Muss es die fd00-Adresse sein? Ich hatte die genommen, die mir zum Ende der Erstkonfiguration angezeigt worden ist. Siehe oben. Wenn ja und/oder nein welche Konsequenzen bedeuten diese?

Desweiteren hat ein anderer (zweiter Link) einen Menüpunkt, den ich aufgrund der gebrandeten FritzBox nicht habe. Siehe

Bekomme ich das anderweitig "gelöst"?

Tatsächlich sehe ich den Wald vor lauter Bäumen im Moment nicht mehr. Am Anfang war das Meiste ja soweit klar, jedoch je spezifischer es wurde, umso mehr verliere ich den Zusammenhang was denn eigentlich noch mit was verknüpft ist. :face_with_monocle: :scream:

Könnt ihr mir vielleicht bitte dabei helfen?

Danke!

First of all, nice job writing everything up. That makes troubleshooting that much easier.

I’m not sure if this helps you, but I just checked setting up groups for my devices and added a device with its IPv4 address (can be set in fritzbox to always receive the same) there to not block Facebook.
It was still blocked, but the problem was that my iPhone used my router as the DNS server, and I cannot split the router into multiple groups, it will forward requests and they’re blocked for all devices hooked up to the router. If I set the DNS IP address in my iPhone’s WiFi settings to the pihole’s, it directly requested DNS records and was recognized in the appropriate group and could access Facebook. So maybe you have to tell your friends to set up the appropriate DNS IP in their devices directly.

1 Like

Thank you Olli for your reply!

If I remember correctly I already did this. For testing reasons I gave every affected device a static IP adress in the DHCP Server. Also to keep overview to the. :sweat_smile:

That was a good hint, so looked in one of those affected devices (In that case a Nokia 6.1 with Android OS 10) network settings and was happy and disappointed at the same time.

Happy because the right DNS Server (IPv4 and IPv6) got resolved right but disappointed that this wasn't the issue. :sweat_smile: So in other words the problem remains. :pensive:

Nevertheless thank you for your help! :v::+1: Every hint is welcome!

According to another post you need to add both IPv6 and v4 addresses for each device in the group management.
Also make sure that you actually have the rules for the groups configured properly. I assume you have, but that is something I didn't see in your screenshots. =)

The issue with multiple (and changing) IPv6 addresses per client is going to be addressed in a future version. It will be possible to define clients for group management via their MAC address.

1 Like

The "rule" which I have set for the devices as a group is actually nonexistend. Group Free (you can See it in the screenshot of my first post) should make it possible that nothing is getting blocked by Pi-Hole - for now at least.

That's the point. Every of those five devices has three or more Ipv6 adresses and they are changing and become more. :sweat_smile: Simply said I have to hunt them down over and over again by typing them in and look which device is affected. Addtionally I can't see at first glance the device names, cause the host names are just partly resolved. You can see the amount of IP adresses in the drop down menu in the first post.

That would be awesome. I just got questions there:

This behaviour - is it a recent problem? I mean how did other work around this "issue"?
Second: Does this require the DHCP server on the Pi-Hole? Cause I would like to use the Fritzbox for this.
Third: Is there a timeline when the update is getting released? I'm just asking to tell my roommate how long he has to bear with it. :face_with_hand_over_mouth:

I'm not using IPv6 so I have only basic knowledge. I've seen some disabling IPv6, some disabled privacy extension.
No, you don't need Pihole to be your DHCP.

But: do you need IPv6?

ADD

Search the Forum for Fritzbox and IPv6, this is a common issue. Usually Bucking_Horn provides very usefull answers and explanations.

1 Like

It is planed for v5.2 according to the tag at the pull request (Allow defining clients by their MAC address by DL6ER · Pull Request #1285 · pi-hole/web · GitHub). So far, v5.1 is not released (but should not take long).

1 Like

Good Question there. Actually no, but my ISP gave a branded Modem/Router. So I can not actively disable IPv6. So there is sadly no way. :pensive:

I'll look for it!

Got high hopes for this! :grin:

I know you don't want, but using Pihole as DHCP server would be a way :wink:

It is still in development but you could already try it out (written in the first post of the above linked discourse topic). There is the possibility that something breaks, but so far for me and others it was working good. It won't solve the problem of many clients appearing in the list, but you don't have to assign each with the group management. One word of caution: if you use this development branch there is no way back without loosing your long-term data!

1 Like

It is not that I don't what, but rather the fear that I'm gonna screw this up, cause of the lack of my own knowledge and confidence that I won't have access to the network (and if the Pi fails) anymore.

But what would change if I use the DHCP server on Pi-Hole regarding the host names and the amount of IPv6 adresses?

You can disable (or not enable) IPv6 in Pihole's DHCP server. The hostnames are likely those that have been set at the clients itself.

You could also do: restrict the DHCP range of the fritzbox to 1 address and assign it to the pihole. Then enable Pihole's DHCP server with a non overlapping DHCP range for all other devices.

1 Like

Das Häkchen bei “ULA Präfix manuell festlegen”, kann weg.
Ansonsten hätte ich gedacht, dass die ULAs (fangen mit fd00 an) konstant sind für deine Devices.
Aber ich habe ehrlich gesagt keine Ahnung von IPv6. Ich suche mir meist zusammen, was andere mit mehr Ahnung posten.

If your friends’ devices all connected to a specific router in your setup, you could just add that to a group instead of each device separately. But that might not be possible, depending on how your network is being used.

Would that really do anything about IPv6 adresses tough, if he cannot turn it off in the router?
Wouldn’t the Fritzbox still use IPv6 with connected devices, no matter what pihole does with its DHCP?
:thinking:

1 Like

I don't know - no IPv6 knowledge here :sweat_smile:
Maybe @XShocker22 can try it out and let us know :smiley:

1 Like

I gave some thought to it. Because at a certain point it is indispensable to use IPv6 for some web services and web pages. So I believe it is better to use it now instead of reconfigure it later again.

Warum das?

Soweit ich es verstanden habe, ist es notwendig, dass die Geräte verschiedene IPv6-Adressen haben, eben weil dadurch kein NAT nötig ist. Siehe: IPv4 / IPv6 - Verwirrung, wann was notwendig - #3 by ampfinger

It is all running under the same domain.

Ein Gerät kann durchaus mehrere Namen haben.
Konkret würde ich hier vermuten, dass Dein PC unter Windows läuft und über zwei Netzwerkschnittstellen oder mehrere Netzwerkprofile verfügt - Windows ergänzt dann bei der DHCP-Registrierung u.U. den Hostnamen um eine Nummer.

Mit folgendem Befehl kannst Du die aktuell für eine IP-Adresse bekannten Namen anzeigen lassen:

dig -x 192.168.178.1 +short

wobei die IP-Adresse 192.168.178.1 jeweils durch die gewünschte Adresse zu ersetzen ist.

Nein, du kannst auch die öffentliche IPv6-Adresse (Adressbereich 2000::/3) verwenden.

Das hat aber unter Umständen den Nachteil, dass sich alle Deine IPv6-Adressen ändern, wenn Dein ISP Dir ein neues IPv6-Präfix zuteilen sollte. Je nach ISP und Anschluss kann das ziemlich regelmässig passieren, z.B. bei der täglichen Zwangstrennung, oder selten, z.B. bei Neustart des Routers.

Da Pi-hole unter einer stabilen Adresse erreichbar sein muss, empfiehlt sich also u.U. die Verwendung eines ULA-Präfixes.

Darüber hinaus werden IPv6-Adressen von den Clients in Deinem Netzwerk überwiegend selbst erzeugt (genauer: aus dem schon erwähnten IPv6-Präfix und dem autonom berechneten Interface Identifier zusammengesetzt).

Es gibt also zwei Quellen für mögliche Adressänderungen:
Entweder das Präfix ändert sich, oder der Interface Identifier wird vom Gerät neu berechnet, z.B. durch Privacy Extensions oder bei subnetzübergreifender Verwendung von statischen privaten Adressen, oder wegen client-seitig aktivierter MAC-Adress-Randomisierung.

Du müsstest ggf. also entsprechend das Verhalten Deiner Clients anpassen, um diese von der Konstruktion neuer Adressen abzuhalten. Alternativ kannst Du auch versuchen, IPv6 in Deinem Netzwerk komplett zu deaktivieren, sofern Dein Router das unterstützt und Du nicht zwingend darauf angewiesen bist.

Um die Menge der in Pi-hole beobachteten IPv6-Adressen zu reduzieren, kann Dir möglicherweise auch folgende, nicht ganz saubere Konfiguration helfen: Du kannst versuchen, Pi-holes link-lokale IPv6-Adresse (aus dem Bereich fe80::/10) in der FB einzutragen. Dadurch zwingst Du Clients, ebenfalls nur link-lokal anzufragen.

In segmentierten Netzwerken wird dies allerdings nicht mehr sauber funktionieren: Geräte, die in unterschiedlichen VLANs liegen oder über zusätzliche Netzwerkgeräte wie z.B. einen weiteren Router, AP oder L3-Switch verbunden sind, können Pi-hole über die link-lokale IPv6-Adresse nicht erreichen.

2 Likes

Passiert leider nichts. Das Terminal bleibt leer. Versucht mit verschiedenen Netzwerkgeräten.

Ist bei mir wahrscheinlich der Fall. Es gibt einmal im Monat eine neue IP (bzw. ja neue IPs) von Vodafone.

Bei der IP des Pi bzw. Pi-Hole habe ich jetzt diese in der FritzBox stehen:

image

Durch den Befehl

ip -6 adress show

habe jetzt die fd00:-Adresse eingetragen:

Ist das soweit korrekt? Auch wurde das ULA-Präfix festgelegt.

Das ist irgendwie in soweit klar.

Sind auf den "betroffenen" Geräten deaktiviert.

Du meinst subnetzübergreifen nach Präfix fd80, fd00, 2003, 2a02 usw.?

Sind

und

nicht dasselbe? So habe ich das jetzt bei ein paar Posts herausgelesen.

Das hatte ich oben schon einmal angedeutet, es ist vermutlich bei meinem ganzen Text und Bildern irgendwie untergegangen. :sweat_smile:, denn ich habe hier eine FritzBox 6591 von Vodafone stehen und der Menüpunkt im FritzOS ist leider nicht vorhanden, um IPv6 zu deaktivieren. Auch dachte ich, dass ich eher mit dem Rad der Zeit gehe, ehe es irgendwann zu neukonfigurationen kommt, wenn einige Web Services und Webseiten explizit auf IPv6 setzen.

Hierbei kann ich Dir nichts ganz folgen, was Du meinst. Ist damit der DNSv6-Server gemeint, dass ich den mit der fe80::-Adresse füttern soll?

Meine Router bzw. Reapter (abseits der FB6591) sind als IP-Client konfiguriert. Was wäre damit?

(Du kannst Ausgaben von Kommandos als Text einfügen und über die Menü-Option </> Preformatted text formatieren. Das fördert die Lesbarkeit und die Wiederverwendung durch Kopieren, und sensitive Informationen sind so ggf. auch leichter zu entfernen bzw. zu verdecken.).

IPv6 Privacy Extensions (PE) und MAC-Adress-Randomisierung sind nicht dasselbe, aber beide führen im Ergebnis zur Berechnung eines neuen Interface Identifiers; erstere prinzipiell und letztere, weil die MAC-Adresse als wesentlicher Parameter in die Berechnung eingeht, bei einer EUI-Adresse sogar fast eins zu eins.

Als potentiell sensitive Information ist die MAC-Adresse jedoch schützenswert, und das ist auch der Grund, warum PE mit ihren temporär überlagernden Gültigkeiten überhaupt eingeführt wurden.
(Daher würde ich selbst auch keine Bildschirmfotos mit solchen Adressen posten.)

Weil ständig wechselnde Adressen jedoch unerwünscht sein können (z.B. bei Servern), bieten die erwähnten RFC 7217-Adressen eine Möglichkeit, einen stabilen Interface Identifier zu berechnen, ohne die MAC preiszugeben.
Die Berechnung wird dabei für das jeweils massgebliche Präfix neu angestossen, so dass in der Tat link-lokale, ULA und öffentliche Adressen für dasselbe Gerät jeweils unterschiedliche Identifier bekommen. Bei einer EUI-Adresse wäre der Identifier hingegen identisch.
In Raspbian z.B. sind RFC7217-Adressen standardmässig aktiviert (siehe slaac private in /etc/dhcpcd.conf).

Eine solche Adresse wird dabei statt der EUI-Adresse berechnet. Im Gegensatz dazu werden die temporären PE-Adressen zusätzlich zu bereits vorhandenen Adressen erzeugt.

Um die Anfragen von Clients über link-lokale Adressen zu erzwingen, kannst Du Pi-holes link-lokale IPv6-Adresse als DNS-Server bekannt geben - mit den beschriebenen Einschränkungen:
Wenn in Deinem Netzwerk L3-Switching stattfindet, werden Geräte in anderen Netzwerksegmenten Pi-hole nicht erreichen und damit keine Namen mehr auflösen können.

Ob L3-Switching in Deinem Netzwerk stattfindet, kannst Du nur selbst herausfinden, oft genug nur über Versuch und Irrtum.

1 Like