BrowserTools
Werbung
Startseite / Netzwerk / IPv6-Expander und -Kompressor

IPv6-Expander und -Kompressor

Erweitere jede IPv6-Adresse zu ihrer vollständigen Form mit 8 Gruppen oder komprimiere sie zur kanonischen Form nach RFC 5952, lokal in deinem Browser.

IPv6-Expander und -Kompressor wird geladen… Wenn nichts passiert, aktiviere JavaScript.

Eine IPv6-Adresse ist eine 128-Bit-Zahl, normalerweise geschrieben als acht Gruppen von je vier hexadezimalen Ziffern, getrennt durch Doppelpunkte, zum Beispiel 2001:0db8:0000:0000:0000:0000:0000:0001. Da diese vollständige Form lang und voller Nullen ist, erlaubt IPv6 zwei Kurzschreibregeln: führende Nullen innerhalb einer Gruppe dürfen weggelassen werden, und eine Folge aufeinanderfolgender Gruppen, die alle null sind, darf durch einen doppelten Doppelpunkt ersetzt werden. Dieselbe Adresse kann daher kompakt als 2001:db8::1 geschrieben werden. Das Problem ist, dass eine einzige Adresse viele gültige textuelle Darstellungen hat, was die Adressen schwer mit bloßem Auge vergleichbar, fehleranfällig beim Eintippen in Firewall-Regeln und inkonsistent über Protokolle und Konfigurationsdateien hinweg macht.

Häufig gestellte Fragen

Wird die Adresse, die ich eingebe, an einen Server gesendet?
Nein. Die gesamte Validierung und Konvertierung läuft vollständig in deinem Browser in reinem TypeScript. Die IPv6-Adresse, die du eintippst, wird niemals hochgeladen, übertragen oder irgendwo gespeichert. Das Werkzeug funktioniert vollständig offline, sobald die Seite geladen ist, daher ist es sicher, es mit internen oder privaten Adressen zu verwenden.
Was ist der Unterschied zwischen erweiterter und komprimierter IPv6?
Die erweiterte Form zeigt alle acht Gruppen mit jeder führenden Null, zum Beispiel 2001:0db8:0000:0000:0000:0000:0000:0001. Die komprimierte Form wendet die beiden Kurzschreibregeln an, lässt führende Nullen weg und fasst die längste Folge von Nullgruppen zu :: zusammen, was 2001:db8::1 ergibt. Beide stellen genau dieselbe 128-Bit-Adresse dar; es sind nur unterschiedliche Schreibweisen.
Was verlangt RFC 5952 für die kanonische Form?
RFC 5952 legt eine einzige bevorzugte Schreibweise fest, damit Adressen konsistent sind. Es verlangt hexadezimale Ziffern in Kleinbuchstaben, das Entfernen aller führenden Nullen in jeder Gruppe, die Verwendung von :: zum Verkürzen der längsten Folge aufeinanderfolgender Nullgruppen und dass :: niemals für eine einzelne Nullgruppe verwendet wird. Wenn zwei Nullfolgen gleich lang sind, wird die am weitesten links stehende verkürzt. Dieses Werkzeug befolgt all diese Regeln.
Warum darf :: nur einmal in einer Adresse vorkommen?
Der doppelte Doppelpunkt bedeutet, die Lücke mit so vielen Nullgruppen zu füllen, wie nötig sind, um insgesamt acht Gruppen zu erreichen. Erschiene :: zweimal, wäre die Adresse mehrdeutig, weil es keine Möglichkeit gäbe zu wissen, wie viele Nullgruppen zu welcher Lücke gehören. Der Standard erlaubt daher höchstens ein :: pro Adresse, und dieses Werkzeug weist Eingaben mit mehr zurück.
Kann ich eine Adresse mit Klammern oder einer Zonen-ID einfügen?
Ja. Der Parser entfernt umschließende eckige Klammern wie in [2001:db8::1], so erscheinen IPv6-Adressen in URLs, und er entfernt einen abschließenden Zonenbezeichner wie %eth0, der für Link-Local-Adressen verwendet wird. Die Konvertierung wird anschließend auf der zugrunde liegenden Adresse durchgeführt.
Verarbeitet es IPv4-gemappte Adressen wie ::ffff:192.168.0.1?
Ja. Ein eingebettetes IPv4-Suffix in punktierter Dezimalform wird vor der Erweiterung und Komprimierung in die zwei entsprechenden 16-Bit-Hexadezimalgruppen umgewandelt. So wird ::ffff:192.168.0.1 zu 0000:0000:0000:0000:0000:ffff:c0a8:0001 erweitert und in reiner Hex-Kanonikform wieder zu ::ffff:c0a8:1 komprimiert.
Was gilt hier als ungültige IPv6-Adresse?
Das Werkzeug meldet einen Fehler, wenn eine Adresse die falsche Anzahl von Gruppen hat, mehr als ein :: enthält, eine Gruppe mit mehr als vier Hexadezimalziffern oder einem Wert außerhalb des Bereichs besitzt, Zeichen enthält, die keine gültigen Hexadezimalziffern oder Trennzeichen sind, oder :: dort verwendet, wo es nicht für mindestens eine Nullgruppe stehen würde. Die Meldung erklärt, welche Regel verletzt wurde.
Warum kommt meine Adresse in Kleinbuchstaben zurück?
RFC 5952 schreibt Kleinbuchstaben für die hexadezimalen Ziffern a bis f in der kanonischen Form vor. Großbuchstaben sind technisch eine gültige Eingabe und werden problemlos verarbeitet, aber das Werkzeug normalisiert die Ausgabe auf Kleinbuchstaben, damit das Ergebnis dem Standard entspricht und über Werkzeuge und Protokolle hinweg konsistent bleibt.

Über IPv6-Expander und -Kompressor

Dieses Werkzeug konvertiert in beide Richtungen. Gib ihm eine beliebige gültige IPv6-Adresse in beliebiger Notation, und es erzeugt die vollständig erweiterte Form, alle acht Gruppen auf vier Ziffern aufgefüllt mit jeder sichtbaren Null, sowie die komprimierte kanonische Form nach RFC 5952. Die erweiterte Form ist ideal, wenn du einen eindeutigen Wert für einen exakten Zeichenkettenvergleich brauchst, um eine Adresse in ihre Netzwerk- und Schnittstellenhälften aufzuteilen, oder um zu vermitteln, wie die Adresse aufgebaut ist. Die komprimierte Form ist die kürzeste korrekte Darstellung und diejenige, die du speichern und anzeigen solltest, denn RFC 5952 beseitigt die Mehrdeutigkeit, indem es genau eine kanonische Schreibweise pro Adresse festlegt.

Das gesamte Parsen und Konvertieren geschieht in reinem TypeScript, das lokal in deinem Browser läuft. Nichts von dem, was du eingibst, wird hochgeladen, übertragen oder protokolliert, sodass du interne Adressen, Präfixe und Host-Bezeichner gefahrlos untersuchen kannst. Der Parser prüft seine Eingabe und meldet einen klaren Fehler bei Problemen wie zu vielen Gruppen, mehr als einem doppelten Doppelpunkt, Werten außerhalb des Bereichs oder ungültigen Zeichen. Er versteht auch einige praxisnahe Annehmlichkeiten: umschließende eckige Klammern, wie sie in URLs verwendet werden, einen abschließenden Zonenbezeichner wie %eth0 und ein eingebettetes IPv4-Suffix wie ::ffff:192.168.0.1, das er vor dem Erweitern oder Komprimieren in die entsprechenden hexadezimalen Gruppen umwandelt.

Warum eine Adresse so viele Schreibweisen hatte

Als IPv6 entworfen wurde, war das Ziel ein riesiger Adressraum von 128 Bit, genug für etwa 340 Sextillionen Adressen. Eine solche Zahl vollständig auszuschreiben ist unhandlich, daher fügten die Entwickler eine Abkürzung hinzu: führende Nullen in jeder Gruppe weglassen und eine Folge von Nullgruppen zu einem doppelten Doppelpunkt zusammenfassen. Diese Regeln machten Adressen weit lesbarer, brachten aber ein subtiles Problem mit sich. Eine einzige Adresse konnte nun auf viele gleichermaßen gültige Arten geschrieben werden, die sich darin unterschieden, wo das :: platziert war, ob Nullen aufgefüllt wurden und ob Buchstaben groß- oder kleingeschrieben waren.

Diese Flexibilität verursachte echte betriebliche Kopfschmerzen. Protokolle zweier Systeme konnten denselben Host mit unterschiedlichen Schreibweisen festhalten, Zugriffssteuerungslisten konnten eine Übereinstimmung wegen eines Groß-Klein-Unterschieds verfehlen, und einem einfachen Zeichenkettenvergleich konnte man nicht vertrauen, um festzustellen, ob zwei Adressen dieselben waren. Netzwerktechniker vergeudeten Zeit mit der Jagd nach Fehlern, die in Wirklichkeit nur zwei Schreibweisen einer Adresse waren, die beim Vergleich nicht als gleich galten.

RFC 5952, veröffentlicht 2010, behob dies, indem es eine empfohlene kanonische Darstellung definierte. Es schrieb hexadezimal in Kleinbuchstaben vor, keine führenden Nullen, das Verkürzen der längsten Nullfolge mit ::, niemals :: für eine einzelne Nullgruppe und eine Tie-Break-Regel zugunsten der am weitesten links stehenden Folge. Mit einer offiziellen Schreibweise pro Adresse konnten Werkzeuge IPv6-Adressen endlich zuverlässig normalisieren und vergleichen. Dieser Konverter setzt genau diesen Algorithmus um, weshalb seine komprimierte Ausgabe gefahrlos als kanonischer Schlüssel verwendet werden kann.

Werbung
Werbung
Werbung