IPv6
Aus VMS1 Tutorial
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
Spaltentyp | Bytes |
---|---|
2x BIGINT | 16 |
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).