IPv6 Routing: Zugriff auf ULA IP der FritzBox aus zweitem ULA Netz funktioniert nicht

fansari

New member
Ich habe meiner Fritz Box ein ULA Netz gegeben und ihr in diesem Netz eine IPv6 Adresse gegeben.

Wenn ich nun aus einem anderen ULA Netz komme ist diese IP nicht erreichbar (ping geht nicht).

Das funktioniert selbst dann nicht wenn ich eine statische Route anlege, die dieses zweite Netz auf die public IPv6 Adresse dieses Hosts (aus dem /64 Netz, das der FritzBox zugewiesen wurde) verweist.

Hintergrund: da man als Privatkunde keinen festen /64 Präfix hat möchte ich eigentlich in meinem internen Netz an so vielen Stellen wie möglich mit privaten ULAs arbeiten. Ich habe daher meinem Host und auch der podman Container Schnittstelle jeweils einen /64 Bereich als ULA gegeben und möchte nun eigentlich auf die Fritzbox aus beiden ULA Bereichen auf ihrer ULA ansprechen.

Für diese Anwendung (mit Container Bridge) ist mir natürlich klar, dass ich dann per ndppd oder manuelle neighbor proxy mich um neighbor discovery kümmern muss, damit das externe Interface sich für IPs aus dem zweiten ULA Bereich zuständig fühlt. Das habe ich für diesen Fall auch alles schon probiert - ohne Erfolg.

Daher habe ich nun den oben beschriebenen vereinfachten Test durchgeführt - und auch der war erfolglos.

Ein Paketmtschnitt auf dem LAN Interface der FritzBox zeigt, dass es auf den ping request keine response gibt (dasselbe sehe ich auf dem Host mit tcpdump). Allerdings sehe ich sogar neighbor solicitation und neighbor discovery im Paketmitschnitt und auf dem Host.

Hat jemand schon mal dasselbe versucht oder kann mir sagen warum die FritzBox das nicht mag?

15:10:59.921421 IP6 fdc2:xxxx:xxxx:f3c1:8aae:ddff:fe08:4818 > fdc2:xxxx:xxxx:f3c0:2e91:abff:fe27:2421: ICMP6, echo request, id 14, seq 1, length 64
15:11:00.943900 IP6 fdc2:xxxx:xxxx:f3c1:8aae:ddff:fe08:4818 > fdc2:xxxx:xxxx:f3c0:2e91:abff:fe27:2421: ICMP6, echo request, id 14, seq 2, length 64
15:11:01.967881 IP6 fdc2:xxxx:xxxx:f3c1:8aae:ddff:fe08:4818 > fdc2:xxxx:xxxx:f3c0:2e91:abff:fe27:2421: ICMP6, echo request, id 14, seq 3, length 64
15:11:02.991888 IP6 fdc2:xxxx:xxxx:f3c1:8aae:ddff:fe08:4818 > fdc2:xxxx:xxxx:f3c0:2e91:abff:fe27:2421: ICMP6, echo request, id 14, seq 4, length 64
15:11:04.015935 IP6 fdc2:xxxx:xxxx:f3c1:8aae:ddff:fe08:4818 > fdc2:xxxx:xxxx:f3c0:2e91:abff:fe27:2421: ICMP6, echo request, id 14, seq 5, length 64
15:11:05.039768 IP6 fdc2:xxxx:xxxx:f3c1:8aae:ddff:fe08:4818 > fdc2:xxxx:xxxx:f3c0:2e91:abff:fe27:2421: ICMP6, echo request, id 14, seq 6, length 64
15:11:05.039817 IP6 fe80::8aae:ddff:fe08:4818 > fe80::2e91:abff:fe27:2421: ICMP6, neighbor solicitation, who has fe80::2e91:abff:fe27:2421, length 32
15:11:05.041270 IP6 fe80::2e91:abff:fe27:2421 > fe80::8aae:ddff:fe08:4818: ICMP6, neighbor advertisement, tgt is fe80::2e91:abff:fe27:2421, length 24
15:11:06.063786 IP6 fdc2:xxxx:xxxx:f3c1:8aae:ddff:fe08:4818 > fdc2:xxxx:xxxx:f3c0:2e91:abff:fe27:2421: ICMP6, echo request, id 14, seq 7, length 64
 
Das funktioniert selbst dann nicht wenn ich eine statische Route anlege, die dieses zweite Netz auf die public IPv6 Adresse dieses Hosts (aus dem /64 Netz, das der FritzBox zugewiesen wurde) verweist.
Das wird auch nicht funktionieren, Du kannst nämlich ULA nicht über GA routen; genau das versucht Du aber. Du müsstest die ULA tunneln, also einen VPN-Tunnel zwischen Deinen beiden FritzBoxen etablieren und dann kannst Du die beiden ULA-Netze durch den Tunnel routen.


Hintergrund: da man als Privatkunde keinen festen /64 Präfix hat
Das stimmt so nicht ganz. Bei vielen Providern kann man auch als Privatkunde eine "feste IP" oder ein IP-Subnetz buchen. Ich habe bei meinem Provider feste IPs, IPv4 und IPv6, auf einem 08/15 Privat-DSL.
 
Das kann man auch ganz kurz und knackig formulieren:
-> "Nein." 😄

in meinem internen Netz
Das funktioniert selbst dann nicht wenn ich eine statische Route anlege, die dieses zweite Netz auf die public IPv6 Adresse dieses Hosts (aus dem /64 Netz, das der FritzBox zugewiesen wurde) verweist.
Nur damit das korrekt verstanden wird... Es geht nicht um remote-Netze, sondern nur um das lokale an einem Standort. Podman ist ja auch wieder so ein Container-Zeugs... gehe ich richtig in der Annahme, dass da es einfach mehrere Netze hintereinander sind und Du aus dem hinteren (ggf. Container?-)Netz das vordere (Fritzbox) ansprechen willst?

Wenn Du vorn ULA nutzt und hinten ULA nutzt, dann sollte die Fritzbox auch eine statische Route mit einer ULA-Gateway-Adresse bekommen. Voraussetzung dafür ist natürlich, dass das vermeintlich innenliegende Gateway (sofern vorhanden) sowas auch entsprechend weiterleitet. Hab mit Containern bisher noch nicht soviel an der Mütze gehabt, aber bei Containern hat man ja immer direkt einen ganzen Haufen an Möglichkeiten, von daher....

"Wie" und "was" hast Du netzwerk-technisch konfiguriert - also in Bezug auf die Container-Geschichten, die Fritzbox kannst Du erstmal völlig aussen vor lassen (denke ich). Hier sind durchaus Personen vertreten, die sich mit sowas auskennen, nur müsste man da eben schon entsprechend die richtigen Informationen bereitstellen ☺️
 
Zuletzt bearbeitet:
Ja, es ist alles lokal und hängt an einem Switch.

Die FritzBox hat das ULA Netz fdc2:xxxx:xxxx:f3c0::/64, die podman bridge hat fdc2:xxxx:xxxx:f3c1::/64.

Das externe Interface des PCs ist im Netzwerkbereich fdc2:xxxx:xxxx:f3c0::/64, ebenso die FritzBox.

Da der Zugriff vom fdc2:xxxx:xxxx:f3c1::/64 Netz auf die FritzBox ULA nicht funktioniert habe ich einen weiteren Host ins Netz gehängt und mit fdc2:xxxx:xxxx:f3c1::/64 konfiguriert. Dieser kann dann ebenfalls nicht auf die ULA der FritzBox zugreifen.

Daher dachte ich, ich könnte nun auf der FritzBox eine statische Route anlegen und fdc2:xxxx:xxxx:f3c1::/64 zum Testen auf die public IP des Hosts zeigen lassen (das ist das /64 Netz, das mir von meinem ISP zugewiesen wird, indem sowohl der Host als auch die FritzBox liegen) - aber auch damit funktioniert es nicht.
 
Zuletzt bearbeitet:
Sorry, ich finde diese ganzen "wall of texts" total verwirrend. Kann aber auch an mir liegen; so hatte ich ursprünglich auch verstanden, dass Du die ULA-Netze von zwei FritzBoxen verbinden willst und das über die GA.

Du musst eigentlich nur auf der FritzBox und auf der Podman jeweils eine statische Route in das ULA des jeweils anderen legen.
Die FritzBox mit fdc2:xxxx:xxxx:f3c0::/64 muss eine statische Route zu fdc2:xxxx:xxxx:f3c1::/64 und die Podman mit fdc2:xxxx:xxxx:f3c1::/64 muss eine statische Route zu fdc2:xxxx:xxxx:f3c0::/64 haben.

Dazu müssen beide Geräte FritzBox und Podman natürlich in einem gemeinsamen Netz sein, dass kann ein LLA oder ein ULA sein.
 
Bin leider nicht so bewandert in den Container-Netzwerk-Dingen, aber i.d.R. gibt es ja für die Container ein "eigenes" internes Netz, wobei die Container dann über den Host rausgehen. Alternativ dazu - z.B. aus der Docker-Welt - eben via macvlan/ipvlan, womit sich die Container dann aber schon "direkt" im Netzwerk der Fritzbox befinden würden. "Dagegen" spricht allerdings dieser Auszug aus Deinem Log:
15:10:59.921421 IP6 fdc2:xxxx:xxxx:f3c1:8aae:ddff:fe08:4818 > fdc2:xxxx:xxxx:f3c0:2e91:abff:fe27:2421: ICMP6, echo request, id 14, seq 1, length 64
Hier rückt ja eine IP aus dem Podman-Netzwerk bei der Fritzbox an und NAT sehe ich da auch nicht, ansonsten wäre es ja die f3c0... Ich persönlich würde es so versuchen, wie @Barungar schon gesagt hat, aber als Gateway dann eben die ULA des Podman-Hosts angeben (erstmal ganz blöd in der Hoffnung, dass das Ding schon weiss, was es dann damit machen soll) 😄 Spätestens dort wird man dann sehen, wohin die Reise geht.

Könntest auch einfach mal das WAN-Interface der Fritzbox mitschneiden, evtl. wurde ja versucht, die Antwort dort rauszuschicken (aufgrund fehlerhafter Routing-Informationen) 🙃
 
Zuletzt bearbeitet:
Wenn ich zwischen ULAs in einem LAN route, mache ich das für gewöhnlich über die LLA.
Auf meiner FritzBox sieht das z.B. so aus:
1671299621473.png
Hier route ich vier 64 Bit ULA-Netze (als Summen-Route ist das dann /62) auf die LLA meiner HA-OPNsense, daher ist es eine CARP v6 LLA-Adresse. Natürlich würde ich auch lieber echtes Routing verwenden, wenn die FritzBox das zum LAN hin könnte. Also helfe ich mir mit einer statischen Route auf eine IPv6 CARP LLA aus. Somit erreiche ich immer den aktiven Knoten des Firewall-Clusters. ;)
 
Auf dem Host brauche ich keine weiteren Routen - wenn ich ein Netz verlasse greift immer die default Route - und das ist eben die FritzBox.

Einen Paketmitschnitt auf dem WAN Inteface der FritzBox habe ich auch gemacht - da ging aber nichts raus. Sonst hätte ich ja schon einen Hinweis gehabt - nämlich dass die Pakete über das falsche Interface raus gehen. Genau das passiert aber offenbar nicht. Das ist ja auch richtig.

Der Traffic ist wie gesagt nur auf dem LAN Interface zu sehen. Da auch neigbor solicitation and advertisment sowohl im FritzBox Paketmitschnitt als auch auf dem Host zu sehen sind habe ich momentan keine Idee, was da nicht passt.
 
Wie sieht denn Dein statischen Routeneintrag auf der FB aus? Das Problem scheint ja eher zu sein, dass die FritzBox nicht weiß, wie sie da auf den ICMP6-Request antworten soll.
 
Code:
Netzwerk                       Präfixlänge     Gateway
fdc2xxxx:xxxx:f3c1:0:0:0:0     64              2a02:xxxx:xxxx:xxxx:8aae:ddff:fe08:4818

Das ist jetzt die Route für den Test mit dem separaten Host. Die public IP, die ich hier als GW eingetragen habe ist auf dem Host.

Daher würde ich erwarten, dass die FritzBox Pakete, die von diesem /64 Netz kommen dorthin routet.
 
Zuletzt bearbeitet:
Dir ist aber schon klar, dass da immer noch eine GA ist? Ich würde auf die LLA oder eine ULA ändern.
Zumindest klappt es bei mir so (siehe Route aus Post #7) und diesem PING

1671305484531.png
Dabei route ich auf die LLA des Gateways zwischen den beiden unterschiedlichen ULA-Subnetzen.
Ich habe die Route aber aber auch ohne die nachfolgenden Nullen eingetragen (siehe auch Post #7).
 
Ich habe nun als GW für diese Route auf der FritzBox fe80:0:0:0:8aae:ddff:fe08:4818 eingetragen um die LLA zu verwenden.

Code:
Netzwerk                       Präfixlänge     Gateway
fdc2xxxx:xxxx:f3c1:0:0:0:0     64              fe80::8aae:ddff:fe08:4818

Die ersten drei Pings liefen durch:

ping fdc2:xxxx:xxxx:f3c0:2e91:abff:fe27:2421
PING fdc2:xxxx:xxxx:f3c0:2e91:abff:fe27:2421(fdc2:xxxx:xxxx:f3c0:2e91:abff:fe27:2421) 56 data bytes
64 bytes from fdc2:xxxx:xxxx::f3c0:2e91:abff:fe27:2421: icmp_seq=2 ttl=64 time=2.82 ms
64 bytes from fdc2:xxxx:xxxx:f3c0:2e91:abff:fe27:2421: icmp_seq=3 ttl=64 time=1.25 ms
64 bytes from fdc2:xxxx:xxxx:f3c0:2e91:abff:fe27:2421: icmp_seq=5 ttl=64 time=2.65 ms

Danach war dann Stillstand.

Wenn ich dagegen die LLA der FritzBox pinge geht der ping dauerhaft:

PING fe80::2e91:abff:fe27:2421%enp89s0(fe80::2e91:abff:fe27:2421%enp89s0) 56 data bytes
64 bytes from fe80::2e91:abff:fe27:2421%enp89s0: icmp_seq=1 ttl=64 time=1.23 ms
64 bytes from fe80::2e91:abff:fe27:2421%enp89s0: icmp_seq=2 ttl=64 time=0.980 ms
64 bytes from fe80::2e91:abff:fe27:2421%enp89s0: icmp_seq=3 ttl=64 time=0.948 ms
64 bytes from fe80::2e91:abff:fe27:2421%enp89s0: icmp_seq=4 ttl=64 time=0.813 ms
64 bytes from fe80::2e91:abff:fe27:2421%enp89s0: icmp_seq=5 ttl=64 time=1.63 ms
64 bytes from fe80::2e91:abff:fe27:2421%enp89s0: icmp_seq=6 ttl=64 time=1.75 ms

Das hat aber schon immer funktioniert. Ich verwende die LLA ja als default Route.

Aber im Container Szenario steht mir die LLA ja nicht zur Verfügung.

Vermutlich ist das auch der Unterschied zu deinem CARP Szenario: bei dir liegen beide HAs direkt am Router, richtig?

Im Container Szenario ist dagegen ein Netz nicht direkt mit dem Router verbunden - über eine Bridge.

Ich frage mich allmählich ob die FritzBox über ihre eigene Firewall einfach verhindert, dass Pakete für Netzwerke ins LAN geschickt werden, die sie nicht kennt. Aber was wäre dann der Sinn der statischen Routen?

Zumal doch die Beschreibung genau zu meinem Szenario passt:

"Wenn Ihr Netzwerk aus mehreren Subnetzen besteht, die nicht direkt mit der FRITZ!Box verbunden sind, können Sie für diese statische IPv6-Routen in der FRITZ!Box einrichten."
 
Zuletzt bearbeitet:
Wenn Du aber keine LLA hast, dann kannst Du eigentlich auch nicht routen.
Eine Route in ein anderes Netzwerk muss immer auf einen "next hop" im gleichen linklokalen Segment verweisen!
Du kannst keine Routen "bauen", deren Gateway selbst über eine andere Route erreicht werden muss.
Das Gateway (aka "next hop") muss linklokal sein.

Alternativ könntest Du es lösen, in dem Du ein "fähigeres" Gerät zum internen Router machst. z.B. eine Firewall oder ein L3-Switch; da kannst Du dann den Container in ein anderes VLAN hängen. Und lässt das fähige Gerät zwischen dem VLAN mit Fritzbox ULA f3c0 und dem - dann - VLAN mit dem Container f3c1 routen.

Ich habe es so verstanden, das im moment der Host des Containers der "interne" Router ist.
 
Zuletzt bearbeitet:
Das ist richtig. Deswegen kann ich die public IP der FritzBox auch aus meinem Container erreichen. Da ich von meinem ISP nur einen /64 Bereich habe trenne ich mir einen /96 Bereich für meine Container Bridge ab und damit funktioniert das dann.

Natürlich könnte ich die gleiche Vorgehensweise auch für die ULA verwenden - das würde vermutlich funktionieren. Aber ich empfand das als Notlösung denn soviel ich weiß sind bei IPv6 keine kleineren Netze als /64 vorgesehen.
 
Das ist ein ulkiger Provider, der nur ein /64 rausrückt... da muss der aber schon ein Alleinstellungsmerkmal haben, dass Du den nimmst.
Mein Provider gibt ein /48 Bit IPv6-Subnet raus; das finde ich okay. Auch ein /56 Bit IPv6 Subnetz (macht glaube ich die Telekom) würde ich noch akzeptieren. Aber /64 Bit ist eine Frechheit.

Das "Spiel mit dem /96" braucht es aber nicht; Du kannst das schon sauber mit ganzen /64 ULA-Netzen machen. Es scheint auch eher an dem zweiten "Router" zu liegen. Das man es mit der FritzBox machen kann, ist nicht die Frage.

Aber ich empfand das als Notlösung denn soviel ich weiß sind bei IPv6 keine kleineren Netze als /64 vorgesehen.
Es passt zumindest nicht zu den geltenden Standards, weil Du bei einem /96 Bit IPv6-Subnetz schon in der MAC des Clients drin bist, wenn Du stateless IPv6 Adressen hast. Da musst Du dann schon entweder DHCPv6 oder statische IPv6 verwenden.
 
Zuletzt bearbeitet:
Was du mit "zweitem Router" meinst, weiß ich nicht. Ich teste mit zwei Hosts und der FritzBox.

Ich bin bei Vodafone und habe die FritzBox 6660 Cable. Da habe ich nie mehr als diesen einen /64 Präfix bekommen und auch der ist offiziell dynamisch.

Von einem /48 Netz kann ich nur träumen - sowas hatte ich vor Jahren mal bei SixXS.

Ich habe heute noch ein wenig mit /64 experimentiert - ich komme da auf keinen grünen Zweig.

Daher bin ich nun den umgekehrten Weg gegangen und arbeite nur noch mit einer /64 ULA, die ich mir je nach Host in /96 einteile.

Damit funktioniert alles. Auch die FritzBox kann ich nun auf ihrer ULA aus meinen Containern erreichen.

Da ich eh mit statischen IPv6 Adressen arbeite gibt es keine Probleme.

Voraussetzung ist natürlich, dass ich auch hier wieder dem externen Interface "Bescheid sage" was mit den IPs passieren soll.

Ich muss also den ndppd für beide /96 Netze in der /etc/ndppd.conf konfigurieren:

Code:
proxy enp6s0 {
  rule 2a02:xxxx:xxxx:xxxx:ff::/96 {
    iface podman1
  }
  rule fdc2:xxxx:xxxx:f3c0:ff::/96 {
    iface podman1
  }
}

Und auf dem anderen Host:

Code:
proxy enp89s0 {
  rule 2a02:xxxx:xxxx:xxxx:fe::/96 {
    iface podman1
  }
  rule fdc2:xxxx:xxxx:f3c0:fe::/96 {
    iface podman1
  }
}

Desweiteren ist ein passendes Routing erforderlich:

Code:
fdc2:xxxx:xxxx:f3c0:fe::/96 via fe80::8aae:ddff:fe08:4818 dev enp6s0

Und auf dem anderen Host:

Code:
fdc2:xxxx:xxxx:f3c0:ff::/96 via fe80::1e1b:dff:fe61:63d2 dev enp89s0
 
Zuletzt bearbeitet:
Naja, die Hauptsache ist, dass es für Dich funktioniert. (y)

Was du mit "zweitem Router" meinst, weiß ich nicht. Ich teste mit zwei Hosts und der FritzBox.
"Router" ist jeder Netzwerk-Host, der auf Layer 3 zwischen verschiedenen Netzen vermittelt. Wenn Deine Container in einem ULA laufen sollen, dass getrennt vom ULA der FritzBox funktioniert, dann muss es da einen "Router" geben. Das sind die Basics von IP-Netzen (egal ob IPv4 oder IPv6). Die FritzBox kann es in dem Fall nicht sein, weil sie dieses andere ULA nicht linklokal kennt. Folglich muss es einen zweiten "Router" geben. Ich gehe mal davon aus, dass es der Träger-Host der Contrainer in dem Fall ist. Aber dafür kenne ich Dein Netz nicht gut genug; aber Du solltest diesen "Router" kennen.
 
Kannst mal probieren unter Internetzugang > IPv6 ein /56 oder /59 Prefix anzufordern.
Mit TC4400 Modem und EdgeRouterX kann ich jedenfalls bei Vodafone West (Baden-Württemberg) ein /56 bekommen für Prefix Delegation. Normaler Dual-Stack Privatanschluss.
Aber ja, der ist "dynamisch".
 
Ich habe nun nochmal mit /64 ULAs experimentiert und auch die FritzBox noch mal neu gestartet.

Dabei bin ich auf etwas sehr Merkwürdiges gestoßen.

Das Problem tritt nur bei dem ULA Netz fdc2:xxxx:xxxx::f3c1::/64 auf.

Wenn ich stattdessen fdc2:xxxx:xxxx::f3c3::/64 verwende funktioniert der ping aus dem Container auf die FritzBox.

Auch mit fdc2:xxxx:xxxx::f3c2::/64 und fdc2:xxxx:xxxx::f3c4::/64 funktioniert es.

Natürlich habe ich darauf geachtet, die Routen auf dem Host, die Rückrouten auf der FritzBox und die Konfiguration des ndppd immer entsprechend anzupassen.

Da ich nirgends mit /63 arbeite und ich fdc2:xxxx:xxxx::f3c1::/64 auch sonst nirgendwo verwende ist mir unklar was das Problem versacht.
 
Ah, moment... da war was. Jetzt wo Du es sagst. :cool:

Vom zugewiesenen Subnetz nimmt die FritzBox immer für das "Hauptnetz" das erste /64-Netz (Das erste Netz ist das mit 0, denn IT'ler zählen bekanntlich ab der 0!), das zweite /64-Netz wird zwangsläufig immer für das Gastnetz verwendet/reserviert.

Während im IPv4 das Gast-Netz einfach und unverrückbar auf 192.168.179.0/24 steht; ist es im IPv6 ein Bit höher als das "Hauptnetz". Das gilt für alle Subnetze, also ULA und GA. Das kann gerne jeder der will an seiner FritzBox selbst nachvollziehen.

Beispiel:
  • vom Provider erhält man das Subnetz 2001:db8::/56 zugewiesen
  • an der FritzBox stellt man das ULA fd00:aaaa:bbbb::/64 ein
Dann nimmt sich die FritzBox für das "Hauptnetz" 2001:db8:0:0::/64 und fd00:aaaa:bbbb:0::/64; und für das Gastnetz wird dann, auch unverrückbar (also auch fast wie im IPv4), einfach 2001:db8:0:1::/64 und fd00:aaaa:bbbb:1::/64 von der FritzBox verwendet.

Das ist eigentlich bekannt... da habe ich wohl Deinen Thread tatsächlich nur halbherzig gelesen. :ROFLMAO: War ja beim ersten Post auch schon so, wo ich dachte Du redest von zwei ULAs an zwei FritzBoxen.

Irgendwie sind Deine Problembeschreibungen und meine Auffassungsgabe scheinbar nicht kompatibel.

Es ist also alles gut, und wie heißt es so schön: works as designed
 

Letzte Anleitungen

Statistik des Forums

Themen
4.386
Beiträge
45.276
Mitglieder
3.987
Neuestes Mitglied
angrybobcat
Zurück
Oben