Kategorien
Allgemein Netzwerk(e) Windows Wissen

IPv6: pfSense hinter FRITZ!Box 6360 (Kabel Deutschland)

Vorab

Ich beschreibe hier lediglich die IPv6-Anbindung. Informationen zu IPv4 sollten selbsterklärend sein. In meinem Szenario verwende ich eine pfSense, die an einer FRITZ!Box 6360 von Kabel Deutschland hängt.

Ich bemühe mich, die Anleitung so allgemein wie möglich zu halten, damit sie möglichst leicht auf eigene Szenarien angewandt werden kann.

Betrachtung der Internetanbindung

Ein erster Blick in den Online-Monitor der FRITZ!Box offenbart uns, dass wir ein /62 Netz erhalten.

In diesem Fall lautet das uns zugewiesene Netz:

  • xxxx:xxxx:dc0:4818::/62

Daraus ergeben sich laut diesem IPv6-Subnetzrechner vier /64 Subnetze. Wenn man ein paar Geräte an die FRITZ!Box hängt und deren IP-Anbindung betrachtet, erkennt man, dass diese Netze zumindest bei der FRITZ!Box 6360 wie folgt verwendet werden:

  • xxxx:xxxx:0dc0:4818::/64 [LAN]
  • xxxx:xxxx:0dc0:4819::/64 [Gastzugang]
  • xxxx:xxxx:0dc0:481a::/64 [Geräte „Heimnetzwerk“]
  • xxxx:xxxx:0dc0:481b::/64 [Geräte „Heimnetzwerk“]

Unser Ziel ist, die letzten beiden /64 Netze (bzw. das daraus resultierende /63 Netz) durch die pfSense an die Clients durchzureichen.

Alle Geräte aus dem Heimnetzwerk sollen eine IPv6-Adresse aus diesem Netz erhalten:

  • xxxx:xxxx:dc0:481a::/63

Erste Vorbereitung(en) auf der FRITZ!Box

Unter Heimnetz -> Heimnetzübersicht findet man den Reiter „Netzwerkeinstellungen“ und hier den Button „IPv6-Adressen“. Dort aktiviert man:

[x] DNS-Server, Präfix (IA_PD) und IPv6-Adresse (IA_NA) zuweisen

Was man damit einschaltet, ergibt sich aus dem entsprechenden Hilfstext:

FRITZ!Box als DNS-Server via DHCPv6 bekannt geben. Teile des vom Internetanbieter zugewiesenen IPv6-Netzes an nachgelagerte Router weitergeben. Geräte im Heimnetzwerk bekommen eine IPv6-Adresse via DHCPv6 zugewiesen.

(Auszug aus der Online-Hilfe der FRITZ!Box 6360)

Das bedeutet:

  • Die FRITZ!Box spielt weiterhin DNS und DHCP für IPv6
  • Die pfSense darf via Router Advertisement ein IPv6-Netz von der FRITZ!Box anfordern und hier Adressen vergeben
  • Geräte, die an die FRITZ!Box angeschlossen werden, bekommen weiterhin eine IPv6-Adresse

Zusätzlich habe ich noch folgende Punkte aktiviert:

[x] Unique Local Adresses (ULA) immer zuweisen
[x] ULA-Präfix manuell festlegen

Das ULA-Präfix sollte man zufällig generieren, bei mir hat der Zufallsgenerator mein Geburtsdatum, gefolgt von abcd ausgeworfen. Was für ein unglaublicher Zufall! 🙂

Die Adresse bei „DNSv6-Server im Heimnetz“ muss man übrigens nicht an die ULA-Adresse der FRITZ!Box anpassen. Zum Einen wird die Option sowieso ignoriert, da die Option nicht aktiviert ist. Zum Anderen wird hier beim Speichern die Adresse von der Fritz!Box eingetragen, falls kein eigener (von der Fritz!Box abweichender) DNS angegeben ist.

Hier ein Bild von meinen Einstellungen:

Die Schnittstellen auf der pfSense

Die WAN-Schnittstelle konfiguriert man als DHCP6 Client.

In den erweiterten Einstellungen legt man die Größe vom Prefix fest, welches die pfSense anfordern soll:

[ ] Only request an IPv6 prefix, do not request an IPv6 address
DHCPv6 Prefix Delegation size: 63
[x] Send an IPv6 prefix hint to indicate the desired prefix size for delegation

Grund, warum ich „Only request an IPv6 prefix, do not request an IPv6 address“ im Gegensatz zu vielen anderen Tutorials nicht(!) anhake ist der, dass ich die IPv6-Adresse der pfSense dann auf der FRITZ!Box „greifbar“ habe (z.B. für Forwardings, Filterregeln, Profile usw. usf.).

Auch hier sagt ein Bild mehr als 1000 Worte:

Bei der LAN-Schnittstelle schauen wir quasi durch die WAN-Schnittstelle auf die Fritz!Box.

Die dazugehörige Schnittstelle wird auf „Track Interface“ gesetzt. In den entsprechenden Optionen ist folgendes konfiguriert:

IPv6 Interface: WAN
IPv6 Prefix ID: 0

Eine andere ID als 0 würde hier keinen Sinn machen. Wir haben ein /63er Netz angefordert, ein /63er Netz erhalten und möchten ein /63er Netz verteilen. Von daher nehmen wir natürlich das Erste und Einzige Netz mit dem Index 0.

Der obligatorische Screenshot:

Auch wenn man bei der Konfiguration mit diversen „Apply Changes“ Anfragen konfrontiert wird: Es empfiehlt sich, die pfSense jetzt einmal neu zu starten.
Nach dem Neustart schaue ich in die Netzwerkeinstellungen unter Status -> Interfaces, ob die pfSense die Adressen übernommen hat. Bei mir sieht das so aus:

Die wesentliche Information findet sich hinter „IPv6 Address“: Hier sollte jetzt eine Adresse aus dem Netz auftauchen, das wir vom Internetanbieter dynamisch zugewiesen bekommen haben. Vergleiche dazu den vorangegangenen Abschnitt „Betrachtung der Netzwerkanbindung“.

Wer jetzt, wie ich, unter chronischer Vergleicheritis leidet, „auf Nummer Sicher“ gehen möchte und ein Gefühl dafür bekommen möchte, welche Adressen wo auftauchen, schaut sich die pfSense in der Heimnetzübersicht der FRITZ!Box an:

„Ja aber bei IPv6 sind doch mehrere Adressen pro Schnittstelle möglich und üblich – müsste dann nicht auch die ULA-Adresse (aus unserem „zufällig zusammengewürfelten“ fd00::/8 Netz) in der Netzwerkübersicht der pfSense angezeigt werden?“

Ja, das müsste sie – wird sie aber nicht 🙂

Die pfSense hat dennoch eine Adresse aus dem ULA-Netz erhalten und kennt diese auch. Wer es nicht glaubt, kann das (auf der pfSense) in einer Shell mit „ipconfig -a“ überprüfen. Es handelt sich schlichtweg um einen Fehler in der Anzeige. Wer es nicht glaubt – ich trete gerne den Beweis an:

Hier sieht man, dass das WAN-Interface drei Adressen vorhält:

  • Die Adresse mit dem Präfix fe80::/64 ist die Link-Local-Adresse
  • Die Adresse aus dem Subnetz xxxx:xxxx:0dc0:481a::/64 stammt von unserem Internetanbieter. Vergleiche dazu den vorangegangenen Abschnitt „Betrachtung der Netzwerkanbindung“
  • Die Adresse aus dem Subnetz fd00::/8 Netz stammt aus unserem ULA-Netz auf der FRITZ!Box

Auf der LAN-Schnittstelle sieht es änlich aus mit dem Unterschied, dass hier keine ULA-Adresse aus dem Netz der FRITZ!Box konfiguriert ist. ULA-Adressen existieren immer nur innerhalb eines Netzwerksegmentes. Die trennende Komponente ist hier die pfSense, so dass die das ULA-Netz zwar ein-, aber nicht ausgehend sieht.

Wir haben jetzt das IPv6-Netz auf der pfSense und fahren mit der Konfiguration der Firewall fort.

Damit die pfSense weiß, wo sie ihren IPv6-Traffic los wird, setzen wir unter System -> Routing -> Gateways das entsprechende Gateway. Das geschieht nicht automatisch (…und ich wäre fast wahnsinnig geworden!).

Auch wenn es noch so verführerisch erscheint: Der DHCPv6-Server wird nicht aktiviert und hier muss auch nichts konfiguriert werden.

Statt dessen setzen wir unter Services -> DHCPv6 Server & RA -> Router Advertisements den „Router Mode“ auf Unmanaged:

Das war’s 🙂

Betrachtung des Ergebnisses

Ein „Windows 10“ PC hängt an der LAN-Schnittstelle der pfSense und bezieht via DHCP seine IPv4- und (hoffentlich auch) seine IPv6-Adresse.

In der Eingabeaufforderung verschaffen wir uns mit ipconfig /a einen ersten Überblick:

Unser Windows-PC hält, IPv6-technisch gesehen, drei Adressen vor:

  • Die Adresse mit dem Präfix fe80::/64 ist die Link-Local-Adresse
  • Die IPv6-Adresse aus dem Subnetz xxxx:xxxx:0dc0:481a::/64 stammt von unserem Internetanbieter
  • Die temporäre IPv6-Adresse aus dem Subnetz xxxx:xxxx:0dc0:481a::/64 stammt von unserem Internetanbieter

Aus Gründen des Datenschutzes wird unter Windows (m.W. seit „Windows 7“) immer eine temporäre Adresse gebildet. Diese wird unter Zuhilfenahme von zufällig generierten Daten generiert bei jedem Neustart neu gebildet. Somit soll sichergestellt werden, dass ein PC nicht anhand seiner IP-Adresse wiedererkannt werden kann.

Weitere Beweise für das Überschreiten der Zielgeraden verschaffen wir uns so:

  • Der ping auf eine „beliebige“ IPv6-Adresse (z.B. 2620:fe::fe, das ist der DNS-Server von Quad 9) verläuft problemlos
  • Der ping auf die ULA-Adresse der FRITZ!Box funktioniert ebenfalls
  • Unsere FRITZ!Box löst den eigenen Hostnamen fritz.box fehlerfrei auf. Als Antwort erhalten wir ihre IP-Adresse aus dem öffentlichen Netz unseres Anbieters und die ULA-Adresse
  • Unsere FRITZ!Box löst die eigene ULA-Adresse revers auf. Als Antwort erhalten wir – wie erhofft – den Hostnamen fritz.box

Ein letzter prüfender Blick geht auf einen der zahlreichen Dienste, mit denen man seine IPv6-Anbindung überprüfen kann. Das Ergebnis:

Und? Was fällt uns auf? Richtig – es wird tatsächlich die temporäre IPv6-Adresse unseres „Windows 10“ PCs verwendet. Seine eigene, ebenfalls öffentliche IPv6-Adresse wird verschleiert – was dem Datenschutz sicher keinen Abbruch tut.

Ich würde mal behaupten, wir sind „fertig“. Fragen, Anregungen und Ergänzungen gerne in den Kommentaren 🙂

11 Antworten auf „IPv6: pfSense hinter FRITZ!Box 6360 (Kabel Deutschland)“

Hallo, vielen Dank für die Anleitung.
Ich habe folgende Abweichung, mein ISP (Unitymedia Hessen) gibt mir eine 3ae0::/59 IPv6.
Ich meine alles dementsprechend sinngemäß befolgt, zu haben, aber meine PFSense gibt auf dem LAN die IPv6 nicht weiter.
Ich benötige Hilfe… 🙂
Vielen Dank

Hallo,

ja, das ist tatsächlich etwas „tricky“. Im ersten Schritt könnte man z.B. schauen, welche IP-Adressen die pfSense auf der WAN-Schnittstelle hat.

Dort muss neben der IPv4-Adresse auch eine Adresse aus dem externen Netz (von UM) und – so ein ULA-Netz aktiv ist – auch eine Adresse aus dem ULA-Netz stehen.

Im zweiten Schritt versucht man, von der pfSense aus irgend etwas IPv6-technisch anzupingen. Wenn das auch geht, schaut man sich halt das Router Advertising usw. an. Viele schalten hier z.B. gleichzeitig DHCPv6 und RA ein.

Dann guckt man auf die Filterregeln und schaut, ob man eventuell die ausgehende IPv6-Regel vergessen hat.

usw. usf. – ich befürchte, um eine systematische Fehlersuche wird man da nicht rumkommen 🙂

Anzumerken wäre auch, dass man den IPv6-Support in der pfSense komplett abschalten kann. Da der standardmäßig aktiv ist, bin ich hier nicht weiter darauf eingegangen.

Das findet man unter System -> Advanced -> Networking (der Haken unter „Allow IPv6“ muss gesetzt sein.

Gruß,
Jörg

Das Problem ist, dass alle Anbieter turnusmäßig den Präfix wechseln. Dieser wird aber im Rahmen Delegation und DHCP6 nicht unmittelbar an nachgelagerte Router,etc. weitergereicht.
In der Praxis arbeiten bis zum „Refresh“ alle Clients im Heimnetz mit „toten“ IPv6 Adressen….und das ggf. über Stunden hinweg.
Die Krux: Diesen Umstand bemerkt man im Alltagsbetrieb nicht unmittelbar, letzten Endes sind prinzipiell alle Webseiten und -services auch durchgängig über IPv4 erreichbar…und man hat ja auch am Client eine (tote) IPv6 Adresse…geht also nach den ersten Tests von einem Erfolg aus.

Nach einem Präfixwechsel wird dieser nur unmittelbar an nachgelagerte weitergereicht bzw. neu abgefragt, wenn das Interface neu gestartet wird (FritzBox oder pfSense Neustart, Script mit Restart der Schnittstelle,…).

Lassen Sie sich zum Test auf der Fritzbox im laufenden Betrieb „neu verbinden“ und erzwingen sie damit einen Präfixwechsel (kein Neustart/Neuverbinden an Geräten durchführen)…und testen Sie unmittelbar danach die v6-Funktionslität eines Clients….sollte nicht mehr funktionieren.

Hallo,

Nachtrag: Bei der 2.5.0 hat man sich wohl des Themas angenommen.

Im Changelog steht dazu: „Fixed issues with WAN not renewing IPv6 address after an upstream failure“, in der Beschreibung zu Bug #10966 findet man etwas mehr zu dem Thema.

Gruß,
Jörg

Hallo,
vielen Dank für diese Anleitung.

Ich habe eine Frage im Zusammenhang mit der WLAN Schnittstelle der Fritzbox 6490:
Was muss in der pfSense eingerichtet werden, damit Wifi Clients einen Broadcast in das LAN machen können?

Soweit ich das verstanden habe wird das LAN von der pfSense bereitgestellt.

Anwendungsbeispiel:
Wifi Lautsprecher + LAN Connector von Teufel werden über Smartphone App gesteuert und gleichzeit müssen auch Spotify-Clients im LAN mit den Wifi Lautsprechern kommunizieren.

Hallo,

Broadcasts über mehrere Schnittstellen sind nicht möglich. Ein Broadcast wird an die 255.255.255.255 geschickt und erreicht „nur“ die Rechner des jeweiligen Subnetzes.

Abgesehen davon sollte es vor der Firewall eigentlich nichts weiter geben (auch nicht im W-LAN des Routers). Ich würde da noch mal die grundsätzliche Netzwerkstruktur überdenken.

Gruß,
Jörg

Hallo,
das bedeutet dann, LAN und WLAN Schnittstellen der Fritzbox werden nicht genutzt sondern durch das LAN mit zusätzlichem Wifi AP der pfSense ersetzt?

Gruß

Hallo

sehr gute Anleitung die mir genau gezeigt hat was ich falsch gemacht habe. Leider habe ich ein kleines Problem mit dem DNS. In Ihrer Anleitung kann man sehen, dass bei den Tests ipv4 und ipv6 aktiv sind und bei DNS nur ein ipv4 DNS server hinterlegt ist. Bei mir ist es noch konfuser, da ich ipv6 DNS server mit der Addresse fec0:0:0:fffff::1 zugewiesen bekomme und ich diesen präfix nirgends eingestellt habe.

Haben Sie eine Idee wie man das DNS aus der Fritzbox an die Endgeräte weiterleitet?

Hallo,

das ist eine Site Local Unicast Adresse. Vermutlich die von der FRITZ!Box und vermutlich hat die pfSense die per DHCP bekommen?!?

Normalerweise leitet man auch nicht den DNS weiter welchen die FRITZ!Box vom ISP kennt, sondern verteilt statt dessen die FRITZ!Box „an sich“ als lokalen DNS.

Gruß,
Jörg

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert