IPv6 Expand ↔ Compress
Konvertiert zwischen erweiterter und komprimierter ipv6 Notation
Das IPv6 Expand/Compress-Tool konvertiert IPv6-Adressen zwischen ihrer vollständigen 8-Gruppen-Hexadezimalnotation und der verkürzten :: komprimierten Form. Geben Sie eine Adresse wie 2001:db8::1 ein, um die expandierte Form 2001:0db8:0000:0000:0000:0000:0000:0001 zu sehen, oder fügen Sie eine Adresse in Vollform ein, um die kürzeste gültige komprimierte Darstellung gemäß RFC 5952 zu erhalten.
IPv6-Adressnotation verstehen
IPv6-Adressen sind 128 Bits lang, was bedeutet, dass die vollständige Notation 32 Hexadezimalziffern erfordert. Um das handhabbar zu machen, werden die Ziffern in acht Gruppen zu je vier aufgeteilt, getrennt durch Doppelpunkte: 2001:0db8:0000:0000:0000:0000:0000:0001. Aber selbst mit der Gruppierung wird das Tippen und Lesen von 39 Zeichen für jede Adresse schnell mühsam, besonders wenn die meisten dieser Zeichen Nullen sind. Deshalb hat RFC 2373 Kompressionsregeln eingeführt, und RFC 5952 hat später die kanonische Kurzform standardisiert.
Kompression funktioniert auf zwei Arten. Erstens können führende Nullen innerhalb jeder Gruppe weggelassen werden: 0db8 wird zu db8, und 0000 wird zu 0. Zweitens kann die längste aufeinanderfolgende Sequenz von Nur-Null-Gruppen durch :: ersetzt werden. So wird 2001:0db8:0000:0000:0000:0000:0000:0001 zu 2001:db8::1 komprimiert -- eine deutlich lesbarere Form mit sieben Zeichen. Der Haken ist, dass :: nur einmal pro Adresse verwendet werden darf, weil man bei zweifacher Verwendung nicht wüsste, wie viele Nullgruppen jedes :: repräsentiert.
Diese beiden Formen sind vollständig äquivalent -- sie repräsentieren dieselbe 128-Bit-Zahl und funktionieren identisch in jedem Netzwerkkontext. Die Wahl zwischen ihnen ist eine Frage der Lesbarkeit und der Systemanforderungen. Konfigurationsdateien und Firewall-Regeln verwenden typischerweise die komprimierte Form für Kürze. Datenbankspeicher, SNMP-Systeme und einige Protokollanalyse-Tools bevorzugen die expandierte Form, weil ihre feste Breite von 39 Zeichen das Parsen vereinfacht. Dieses Tool ermöglicht die sofortige Konvertierung zwischen den beiden, und es erzeugt immer die korrekte kanonische Form gemäß RFC 5952, sodass Ihre Adressen in all Ihrer Dokumentation und Ihren Konfigurationen konsistent sind.
Eine IPv6-Adresse expandieren oder komprimieren
- Geben Sie eine IPv6-Adresse in komprimiertem oder expandiertem Format ein
- Wählen Sie Expand, um die vollständige 8-Gruppen-Notation mit führenden Nullen zu erzeugen, oder Compress, um die kürzeste gültige Darstellung zu erzeugen
- Sehen Sie das konvertierte Ergebnis zusammen mit beiden Formen nebeneinander zum Vergleich
Beispiele für IPv6-Expansion und -Kompression
| Komprimierte Form | Expandierte Form |
|---|---|
::1 | 0000:0000:0000:0000:0000:0000:0000:0001 |
:: | 0000:0000:0000:0000:0000:0000:0000:0000 |
2001:db8::1 | 2001:0db8:0000:0000:0000:0000:0000:0001 |
2001:db8::ff00:42:8329 | 2001:0db8:0000:0000:0000:ff00:0042:8329 |
fe80::1 | fe80:0000:0000:0000:0000:0000:0000:0001 |
::ffff:c0a8:101 | 0000:0000:0000:0000:0000:ffff:c0a8:0101 |
2001:db8:85a3::8a2e:370:7334 | 2001:0db8:85a3:0000:0000:8a2e:0370:7334 |
ff02::1 | ff02:0000:0000:0000:0000:0000:0000:0001 |
Kompression bei mehreren Nullfolgen
Wenn eine Adresse mehrere aufeinanderfolgende Sequenzen von Nur-Null-Gruppen enthält, wird nur die längste Folge durch :: ersetzt. Bei gleicher Länge wird gemäß RFC 5952 die linke komprimiert:
| Expandierte Form | Korrekte Kompression | Falsch |
|---|---|---|
2001:0db8:0000:0000:0001:0000:0000:0001 | 2001:db8::1:0:0:1 | 2001:db8:0:0:1::1 |
2001:0000:0000:0001:0000:0000:0000:0001 | 2001:0:0:1::1 | 2001::1:0:0:0:1 |
0000:0000:0000:0001:0000:0000:0000:0001 | ::1:0:0:0:1 | 0:0:0:1::1 |
Wann IPv6 Expand/Compress verwenden
- Konfigurationsdatei-Standardisierung -- sicherstellen, dass alle IPv6-Adressen in Firewall-Regeln, DNS-Einträgen und Router-Konfigurationen denselben Notationsstil verwenden
- Adressvergleich und Deduplizierung -- zwei Adressen in die Vollform expandieren, um festzustellen, ob
2001:db8::1und2001:0db8:0000:0000:0000:0000:0000:0001dieselbe Adresse sind (sie sind es) - BIND-Zonendatei-Vorbereitung -- einige DNS-Systeme erfordern expandierte oder spezifische Notation für AAAA-Einträge und Reverse-Zone-Delegation
- IPv6-Struktur erlernen -- komprimierte Adressen expandieren, um genau zu sehen, welche Gruppen Null sind, und das vollständige 128-Bit-Adresslayout zu verstehen
- ACL- und Richtlinienüberprüfung -- Adressen in eine kanonische Form normalisieren, bevor Sicherheitsrichtlinien über Geräte hinweg verglichen werden, die Adressen möglicherweise unterschiedlich speichern
- Datenbanknormalisierung -- alle Adressen vor dem Einfügen in eine Datenbank in dasselbe Format konvertieren, um zuverlässige Abfragen und Deduplizierung zu ermöglichen
Wie die IPv6-Adresskompression funktioniert
Expansionsalgorithmus
- Wenn
::vorhanden ist, die vorhandenen Gruppen auf jeder Seite zählen - Fehlende Gruppen berechnen:
8 - (linke_gruppen + rechte_gruppen) ::durch die berechnete Anzahl von0000-Gruppen ersetzen- Jede Gruppe mit führenden Nullen auf genau 4 Hex-Ziffern auffüllen
Beispiel: Expandierung von 2001:db8::ff00:42:8329
Links von :: → 2001:db8 (2 Gruppen)
Rechts von :: → ff00:42:8329 (3 Gruppen)
Fehlend → 8 - 2 - 3 = 3 (drei 0000-Gruppen)
Ergebnis → 2001:0db8:0000:0000:0000:ff00:0042:8329
Kompressionsalgorithmus
- Alle Gruppen auf 4 Hex-Ziffern auffüllen und in 8 Gruppen aufteilen
- Die längste aufeinanderfolgende Sequenz von Nur-Null-Gruppen finden
- Diese Sequenz durch
::ersetzen (die linke gewinnt bei Gleichstand) - Führende Nullen aus jeder verbleibenden Gruppe entfernen
- Das Ergebnis ist die kanonische komprimierte Form gemäß RFC 5952
RFC 5952 Regeln für die kanonische Form
- Hex-Ziffern müssen in Kleinbuchstaben sein (
2001:db8, nicht2001:DB8) - Führende Nullen müssen entfernt werden (
db8, nicht0db8) - Die längste aufeinanderfolgende Sequenz von
0-Gruppen muss komprimiert werden ::darf nicht für eine einzelne0-Gruppe verwendet werden (stattdessen0verwenden)
Praktische Ratschläge zur IPv6-Notation
Konsistenz ist das Wichtigste bei der Wahl eines Notationsstils. Wählen Sie eine Form -- normalerweise komprimiert für menschengerichtete Konfigurationen und expandiert für maschinell geparste Daten -- und bleiben Sie dabei in Ihrer gesamten Dokumentation, Ihren Firewall-Regeln und Konfigurationsvorlagen. Das Mischen von 2001:db8::1 an einer Stelle und 2001:0db8:0000:0000:0000:0000:0000:0001 an einer anderen erschwert das Suchen, Greppen und Vergleichen von Adressen über Dateien hinweg.
Beim Troubleshooting ist die expandierte Form Ihr Verbündeter. Wenn Sie zwei Adressen vergleichen und sie in komprimierter Form unterschiedlich aussehen, expandieren Sie beide in die Vollnotation und vergleichen Sie Gruppe für Gruppe. Das zeigt sofort, ob die Adressen sich unterscheiden oder nur in verschiedenen Kompressionsstilen geschrieben sind. Es macht es auch einfacher zu erkennen, welcher Teil der Adresse das Netzwerkpräfix und welcher der Interface Identifier ist, besonders bei nicht-standardmäßigen Präfixlängen wie /48 oder /56.
Ein subtiler Fallstrick: Einige ältere Tools und Systeme verarbeiten :: nicht korrekt, insbesondere wenn es am Anfang oder Ende der Adresse steht. Wenn Sie auf ein System stoßen, das mit ::1 oder fe80:: nicht zurechtkommt, versuchen Sie stattdessen die expandierte Form. Dies wird zunehmend selten, da die IPv6-Unterstützung gereift ist, aber Sie können es immer noch bei eingebetteten Systemen, Legacy-Monitoring-Plattformen oder benutzerdefinierten Skripten antreffen, die naives String-Parsing statt richtiger Adressbibliotheken verwenden.
Häufig gestellte Fragen
Sind 2001:db8::1 und 2001:0db8:0000:0000:0000:0000:0000:0001 dieselbe Adresse?
Ja, sie repräsentieren exakt dieselbe 128-Bit-Adresse. Die expandierte Form zeigt alle 32 Hexadezimalziffern explizit, während die komprimierte Form :: verwendet, um aufeinanderfolgende Nullgruppen auszulassen, und unnötige führende Nullen weglässt. Die Konvertierung beider in dieselbe Notation bestätigt die Äquivalenz.
Warum verlangen einige Systeme die expandierte Form?
Ältere Netzwerkgeräte, bestimmte SNMP-Implementierungen und einige Protokollanalyse-Tools erwarten ein Adressformat mit fester Länge von 39 Zeichen. Die expandierte Form mit Doppelpunkten hat immer genau 39 Zeichen (xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx), was das Parsen in Systemen mit festem Feldformat vereinfacht.
Ändert die Kompression den Adresswert?
Nein. Kompression ist rein eine Notationsänderung. Der zugrundeliegende 128-Bit-Binärwert bleibt identisch. Das Expandieren und anschließende Komprimieren einer Adresse gibt immer den ursprünglichen Wert zurück, und beide Formen sind in jedem Kontext, der IPv6-Adressen akzeptiert, austauschbar.
Warum verlangt RFC 5952 Kleinbuchstaben für Hex-Ziffern?
RFC 5952 standardisiert die kanonische Darstellung, um Konsistenz zu gewährleisten. Obwohl sowohl 2001:DB8::1 als auch 2001:db8::1 gültig sind, verhindert eine einzige kanonische Form doppelte Einträge in Datenbanken, vereinfacht Zeichenfolgenvergleiche und macht Grep-/Suchoperationen zuverlässig. Kleinbuchstaben wurden als kanonische Form gewählt.
Kann ich dieses Tool mit IPv4-Mapped IPv6-Adressen verwenden?
Ja. Eine Adresse wie ::ffff:192.168.1.1 kann expandiert werden, um die vollständige Notation anzuzeigen. Die gemischte Notation mit eingebetteter IPv4-Adresse wird ebenfalls unterstützt, obwohl die expandierte Form den IPv4-Teil als zwei Hexadezimalgruppen anzeigt (z. B. ::ffff:c0a8:0101).
Verwandte Tools
- IPv6 Validator - IPv6-Adressen validieren (vollständige und komprimierte Formate)
- IPv6 ↔ BigInt Converter - IPv6-Adressen in/aus 128-Bit-Ganzzahlen konvertieren
- IPv6 ↔ Binary Converter - IPv6-Adressen in/aus Binärnotation konvertieren
- IPv4-Mapped IPv6 Converter - Zwischen IPv4 und IPv4-Mapped IPv6 (::ffff:) konvertieren
- IPv4 Validator - IPv4-Adressen im strikten Dotted-Quad-Format validieren