Um eines vorwegzunehmen: mein bestehendes IPv4-Netz hat nach dem Umschalten auf DS-Lite (d.h. das reduzierte IPv6-Netzangebot von UPC) problemlos weiterfunktioniert. Der einzig spürbare Unterschied war eine IPv4-Adresse aus einem anderen Adressenblock (31.x.y.z).
Wie es dann mit IPv6 funktioniert, habe ich alleine herausfinden müssen, da die Support von UPC so gut wie nutzlos war. Die einzige Aussage war, dass ein Router nicht funktionieren würde. Eine Begründung dafür wollte man mir nicht geben. Ich musste es in der Folge selber herausfinden.
Mein Router ist ein USG 3P von Unifi. Dieser kann zwar Prefix Delegation, was anscheinend die bequemste Art ist, IPv6 einzurichten. Prefix Delegation funktioniert aber bei UPC nicht. Folglich habe ich es mit einer statischen Konfiguration versucht.
Der Router hat auf Anhieb keine IPv6-Nummer von UPC bezogen. Ich habe also zwei weiteren Maschinen ans Modem angeschlossen und geschaut, ob sie es können. Bei MacOS und bei Raspberry 3B mit Ubuntu hat es sofort geklappt. So habe ich herausfinden können, dass UPC einen /64-Block vergibt (Betonung auf “einen”). Die IPv6-Adresse der angeschlossen Maschine ergibt sich, indem man die oberen 64 Bit vom /64-Block und die unteren 64 Bit von der Link-Local-Adresse der jeweiligen Maschine kopiert.
Da der Unifi USG 3P letzten Endes auch nur eine Linux-Kiste ist, konnte ich so mit einer statischen Konfiguration für den Router auch eine funktionierende IPv6-Nummer aaufsetzen.
Damit war aber Schluss und zwar, weil ich keine zweite IPv6-Nummer bekommen habe. Die Grundfunktion eines Routers ist das Routen von Nachrichten von einer Adresse zur nächsten. Dafür braucht man ja zwei Adressen.
Aber, wenn man für IPv6 einen /64-Block bekommt, hat man ja innerhalb dieses Blockes 2 hoch 64 verschiedenen Adressen, oder? Ja, aber jetzt kommen wir zu einem wesentlichen Unterschied zwischen IPv4 und IPv6. In IPv4 erfolgt das Routing zwischen irgendwelchem Adresspaar (z.B. zwischen einer 192.168.x.y-Nummer und einer 80.a.b.c-Nummer der UPC). In IPv6 ist alles anders. Das Routen in IPv6 erfolgt zwischen Nummernblöcken. Da ein /64-Block, wie er von UPC vergeben wird, per definitionem nur ein Block ist, fehlt der zweite Block, mit dem man das eigene Intranet adressieren lassen könnte. Und so kann derselbe Router, der mit IPv4 funktioniert, mit IPv6 nicht funktionieren.
Aber was ist mit der Link-Local-Adresse des eigenen Intranets? Diese hat leider von der Spezifikation von IPv6 her (ähnlich wie die 192.168.x.y-Nummern von IPv4) im grossen, weiten Internet nichts zu suchen und wird von keinem Router weitergeleitet. Eine NAT-Funktion, wie man sie von IPv4 kennt, gibt es in IPv6-Routern anscheinend auch nicht.
So kann ein Router hinter dem UPC-Modem mit IPv6 tatsächlich nicht funktionieren.
Es ist mir nicht klar, ob die Vergabe eines einzigen /64-Blockes mit DS-Lite zusammenhängt, oder ob es sich um ein Konstrukt des UPC-Marketings handelt. So oder so hat UPC meines Erachtens diesbzüglich schlechte Entscheidungen getroffen.
Ich hoffe, dass ich hiermit eventuelle Fragen von anderen Abenteuerlustigen in Sachen IPv6 beantworten kann. Es bleibt mir allerdings ein Rätsel, wieso UPC diesen Tatbestand nirgends selber dokumentiert. Es würde ihren Kunden helfen, und sie könnten es benutzen, um die eigene Hotline auszubilden.
Steve