IPv6

Aus VMS1 Tutorial

Dies ist eine alte Version. Zeitpunkt der Bearbeitung: 13:57, 5. Sep. 2012 durch Jpwfour (Diskussion | Beiträge).
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Mit IPv6 wird die Version 6 des "Internet Protocols" bezeichnet. Sie folgt auf IPv4.

Testen der IPv6 Konnektivität: http://test-ipv6.com/

IPv6 Adressen

IPv6 Adressen sind 128-Bit lang, im Vergleich dazu sind IPv4 Adressen nur 32-Bit lang.

Aufgrund ihrer Länge erfolgt die Darstellung hexadezimal in 8 Blöcken je 16 Bit:

2001:0db8:85a3:08d3:1319:8a2e:0370:7344

Führende 0en innerhalb eines Blocks und aufeinanderfolgende Blöcke, die nur aus 0en bestehen, dürfen ausgelassen werden, so dass auch Kurzformen möglich sind:

2001:0db8:0:0:0:0:1428:57ab
2001:db8::1428:57ab

Localhost

Die aus IPv4 bekannte "lokale Adresse" 127.0.0.1 ist in IPv6:

0:0:0:0:0:0:0:1

bzw. in Kurzschreibweise:

::1/128

Datenbank

Im VMS1 und vielen Addons werden IPv4 Adressen als "String" (Text) abgespeichert:

`ip` varchar(15) NOT NULL default ' '

IPv4 Adressen können maximal 15 Zeichen lang sein (4 * 3 Zahlen + 3 Punkte). IPv6 Adressen bestehen aber aus 8 Blöcken je 4 Zeichen, dazu 7 Trennzeichen (Doppelpunkt), also sind max. 39 Zeichen erforderlich:

`ip` varchar(39) NOT NULL default ' '

Die Erweiterung der betreffenden Spalten in der Datenbank sollte grundsätzlich ausreichend sein, um ein VMS "IPv6 ready" zu machen.

Wie aber schon in Platz sparen bei IP Adressen vorgeschlagen, macht eine rein textuelle Speicherung wenig Sinn, was Platzverbrauch und performante Durchsuchbarkeit/Sortierbarkeit angeht.

Für eine IPv6 Adresse werden 16 Bytes benötigt, daher bieten sich verschieden Arten der Speicherung an:

  • 2 x BIGINT (je 8 Byte)
  • DECIMAL(39)
  • VARBINARY(16) oder BINARY(16)

Ab MySQL Version 5.6 liefert MySQL die benötigten Funktionen für IPv6 mit: http://dev.mysql.com/doc/refman/5.6/en/miscellaneous-functions.html#function_inet6-aton

SpaltentypBytes
2x BIGINT16
DECIMAL(39)18
BINARY(16)16
VARBINARY(16)1-17 (Länge der Daten +1)

Je nach Tabelle macht es Sinn, das statische / starre Format BINARY zu verwenden, solange die gesamte Tabelle dadurch statisch wird. Solange man aber auch noch IPv4 Adressen (während der Übergangszeit) speichert, ist VARBINARY die bessere Wahl (da eine IPv4 Adresse so nur 5 Bytes belegt).

Persönliche Werkzeuge