Skip to main content
Warum O2
Warenkorb
Service

Guten Tag Community und O2 Team,

mein Post ist mehr eine Frage/Information an die Technik von O2. Mir ist vor ein paar Tagen aufgefallen, dass mein OpenWrt Router keinen IPv6 PD Block mehr erhielt und bin der Sache mal auf den Grund gegangen.

Es scheint, als würde O2 seinen Präfix nicht von einer FE80::/8 Adresse verschicken, sondern von einer Adresse, die den Anschein macht als würde sie gerne eine FE80::/8 Adresse sein:

Adresse von der ich die DHCPv6 Antwort bekomme: 0:80fe::f6e4:51ff:fed3:bc71
Adresse von der ich die DHCPv6 Antwort erwartete: fe80::f6e4:51ff:fed3:bc71

 

Insbesondere, da vorher der Juniper Router mit der erwarteten Adresse schon mehrfach geantwortet hat.

Mein OpenWrt Router hatte einen Filter in der Firewall in dem nur DHCPv6 Pakete von Link-local (FE80::/8) Adressen erwartet wird, daher hat er die zuvor immer verworfen. Nachdem ich den rausgenommen habe funktioniert wieder alles wunderbar.

Ich hatte keine Ahnung was ich mit der Information anfangen soll, daher ist sie jetzt hier in dem Forum gelandet. :)

Meine Frage wäre jetzt, ob das Absicht ist/war das von einer etwas kruden IP-Adresse zu verschicken, oder vielleicht ein kleiner Konfigurationsfehler ist. Ich bin nicht böse, wenn man aufgrund operativer Geheimnisse vielleicht auf eine öffentliche Antwort verzichtet, mich würds einfach nur interessieren. :)

Schöne Grüße.

 

Sind IPv6-Adressen mit 0000:: überhaupt gültig? 

keine Antwort, ein Kollege schrieb mir dazu gerade

0000:: Adressen mit solch einem Präfix sind gültig und werden bei bestimmten Begebenheiten innerhalb von IPv6 verwendet.”

Dann versuche ich mal zu helfen.

Zunächst muss man verstehen, dass es die Möglichkeit gibt IPv6-Adresse nach einem festgelegten Schema zu verkürzen (siehe https://datatracker.ietf.org/doc/html/rfc4291#section-2.2). Statt

2001:DB8:0000:0000:0008:8000:200C:417A oder 0000:0000:0000:0000:0000:0000:0000:1

schreibt man dann komprimiert

2001:DB8::8:800:200C:417A oder ::1 

Das heißt konkret:

  1. Führende Nullen werden weggelassen: 0008 → 8
  2. Blöcke mit nur Nullen werden komplett leer gelassen: :0000: → ::
  3. Aufeinanderfolgende, leere Blöcke werden ebenso zusammengefasst: :::: → ::

Die zweite Sache, die man verstehen muss ist die Kennzeichnung für Netzwerke (https://datatracker.ietf.org/doc/html/rfc4291#section-2.3). In den Beispielen oben haben wir immer genau eine Adresse genommen, will man aber ein Netzwerk definieren, so muss man ja einen Block von Adressen spezifizieren. Hier schreibt man hinter die Adresse einen Slash (/) und die Anzahl der Bits von vorne, die fix sind. Zum Beispiel

2001:0DB8:0:CD30::/64

Die ersten 64 Bit sind festgelegt, jeder Block hat 16 Bit, also sind die ersten vier Blöcke fix.

Schaut man jetzt in die Liste der IANA (https://www.iana.org/assignments/ipv6-address-space/ipv6-address-space.xhtml), so findet man den Eintrag:

::/8     Reserved by IETF

Ich verstehe das so: Alles was mit den ersten acht Bit gleich “0” anfängt ist von der IETF reserviert. Oder aufgedröselt, jede Adresse die dem folgen Schema entspricht:

00xx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx

Und da fällt ja 0000:: nach meiner Auffassung rein. Daher sollte nur die IETF Adressen in diesem Bereich vergeben. Die einzigen, mir bekannten Adressen sind in https://www.iana.org/assignments/iana-ipv6-special-registry/iana-ipv6-special-registry.xhtml gelistet: Die Unspecified Address (alles Null) und die Loopback-Adresse (ganz hinten eine 1).

Meiner Meinung nach gilt daher: 0000::-Adressen sind zwar gültig, dürfen aber nicht einfach so von jedem benutzt werden. Insofern hat der Kollege recht, insbesondere mit der Einschränkung “bei bestimmten Begebenheiten” - dies schließt IMHO DHCP nicht mit ein. :)

Hope that helps.


@Tumblebit, danke für den Hinweis auf die 16 bit je Block. War mir durchgerutscht heute früh. Wenn ich das Ruleset wie folgt anpasse:

ip6 saddr { fe80::/10, 0:80fe::/32 } ip6 daddr { fe80::/10, 0:80fe::/32 } udp sport 547 udp dport 546 accept

ist alles korrekt (wenn auch unschön). Mal sehen, ob der Workaround damit soweit funktioniert. Eigentlich muss das Problem aber an anderer Stelle gelöst werden.

Ich war mir nicht sicher, ob das Problem nicht doch bei mir liegt, weil es nach einem Server-Neustart ja bislang immer erstmal funktioniert. Kann aber auch Zufall sein.


Guten Abend zusammen \o/ 

Ein kurzes Lebenszeichen von mir, ich hab mich nicht aus dem Staub gemacht, es gibt mich noch 😁

Wir haben jetzt an den richtigen Türen geklopft, es hat halt bei diesem crazy Fehlerbild etwas gedauert, bis wir jemanden gefunden hatten, der uns weiterhelfen konnte 💥 

Gute Nachricht zuerst: Die Kolleg:innen konnten den Fehler jetzt dieses mal tatsächlich nachstellen und reproduzieren \o/  (Ich bin mir sicher, das ich beim ersten Versuch zur Klärung das ganze nur zu dilettantisch übermittelt hatte, sonst hatte das sicher auch schon vorher geklappt). 

Zur Lösung müssen wir hier wohl mit irgendwelchen Herstellen Hand in Hand arbeiten und an gewissen Stellen aktiv werden. Ich kann mir vorstellen, dass ihr es ganz genau wissen wollt, ich war aber erst mal happy, das ich überhaupt was vermelden kann, daher wollte ich die Kollegen auch nicht mit vielen weiteren Fragen nerven 😄 Ich vermute mal, das an irgendeiner Stelle der Hersteller eines Netzelements /Servers / whatever irgendwas patchen oder updaten oder einfach nur neu konfigurieren muss, daran wird jetzt aber gearbeitet.

Da ich jetzt weiß, wen ich fragen muss, kann ich versuchen an detaillierte Infos zu kommen, ich möchte aber nichts versprechen, seht es mir nach 😄

Beste Grüße und einen schönen zweiten Advent morgen \o/

Matze


Deine Antwort