Aufbau einer IPv6 Adresse
In diesem Beitrag möchte ich kurz den Aufbau einer IP-Adresse in der Version 6, oder kurz IPv6 vorstellen. Eine IPv6-Adresse ist 128-bit lang. Ein Grund für die Umstellung zu IPv6 ist, dass es immer mehr Geräte gibt aber die IPv4-Adressen werden immer knapper. Irgendwann können keine IPv4-Adressen mehr eindeutig zugeordnet werden. Es gibt noch mehrere Gründe für IPv6 aber hier beschränke ich mich auf den Aufbau einer IPv6.
Eine IPv6-Adresse
Eine IPv6 besteht immer aus 8 Blöcken, die jeweils 16 bit lang sind. Diese Blöcke werden als hexadezimalschreibweise und in kleinbuchstaben dargestellt. Schauen wir uns mal so eine IPv6 an:
Sie ist deutlich komplizierter aufgebaut als eine IPv4, aber das schaffen wir schon. Die obere Schreibweise wird auch als Langschreibweise bezeichnet, weil diese IPv6 komplett ausgeschrieben ist. Nun gibt es ein paar Regeln, um die Langschreibweise in eine eindeutige Kurzschreibweise zu überführen. Man wird öfters mit der Kurzschreibweise konfrontiert, daher gehen wir mal diese Regeln durch.
Eine Regel besagt: Entferne alle führenden Nullen in einem Block. Wir wenden diese Regel auf die obige Adresse an und erhalten:
Langschreibweise: 2001:0cd8:0000:9eea:0000:0000:0000:0005
Nachher: 2001:cd8:0:9eea:0:0:0:5
Die Nullen wurden in dem Block 2001
nicht entfernt, da diese Nullen nicht führend sind. Wir haben nun die erste Kurzschreibweise. Jetzt folgt eine zweite Regel die besagt: Nur einmal darf eine Folge von Nullblöcken 0000
durch ::
ersetzt werden. Nach anwendung dieser Regel sieht die IPv6 nun so aus:
erste Kurzschreibweise: 2001:cd8:0:9eea:0:0:0:5
Nachher: 2001:cd8:0:9eea::5
Hier wurde "zufällig" die Nullfolge 0:0:0
durch ::
ersetzt. Würde man mehrere Nullfolgen ersetzen, dann könnte man die ursprüngliche IPv6-Adresse nicht mehr rekonstruieren. Man weiss ja nicht, wie viele Nullblöcke am Anfang oder am ende vorhanden waren.
Beispiel: Aus der falschen IPv6-Adresse hier 2001:cd8::9eea::5
ist es nicht eindeutig, wie sie vorher aussah. Sie könnte lauten: 2001:cd8:0:0:9eea:0:0:5
oder vielleicht 2001:cd8:0:0:0:9eea:0:5
. Daher darf nur eine Folge von Nullblöcken ersetzt werden, um die Eindeutigkeit zu garantieren.
Schreibweise für Netzmasken
Genauso wie bei einer IPv4-Adresse wird bei einer IPv6-Adresse eine Netzmaske mit einem Schrägstrich "/" gekennzeichnet.
Ein Beispiel für eine Netzmaske in IPv6: 2001:cd8:0:9eea::/64
Diese Schreibweise bedeutet, dass der Netzanteil 64-bit groß ist (Die ersten vier Blöcke). Der Hostanteil wird dann mit Nullen aufgefüllt. In der Langschreibweise würde dies dann so aussehen: 2001:cd8:0000:9eea:0000:0000:0000:0000/64
. Die ersten vier Blöcke sind der Netzanteil und die letzten vier Nullblöcke dann der Hostanteil.
Angabe eines Port/Socket in IPv6
Bei einer IPv4 wird der Port an das Ende der IPv4-Adresse angegeben, also bspw. 133.6.12.65:5000
. Hinter dem Doppelpunkt steht die Portnummer. Bei einer IPv6-Adresse kann man diese Schreibweise nicht anwenden, da nicht ersichtlich ist, ob die Portnummer am Ende tatsächlich eine Portnummer oder ein Block ist. Dieses Problem lässt sich umgehen, indem man die IPv6 mit eckigen Klammern umschließt und erst hinter den Klammern den Port angibt.
Aus dieser IPv6 2001:cd8:0:9eea::5
mit der Portnummer 5000 wird [2001:cd8:0:9eea::5]:5000
.
Gleiches gilt bei der Angabe einer IPv6 in einem Webbrowser. Zuerst folgt das Protokoll, dann die IPv6 und dann die Verzeichnisstruktur:
https://[2001:cd8:0:9eea::5]:443/path/to/the/file.txt
Quellen
https://web.archive.org/web/20121207001716/http://www.ipv6council.de/documents/leitlinien_ipv6_und_datenschutz.html
S. Kawamura, A Recommendation for IPv6 Address Text Representation. August 2010.
Top erklärt!
Vielen Dank fürs lesen!
Danke dir, für das Schreiben. ;-) Hab wieder was gelernt dadurch. (Natürlich nicht, aber verrate niemanden das ich einfach Dumm bin^^)
Thanks for your contribution to the STEMsocial community. Feel free to join us on discord to get to know the rest of us!
Please consider supporting our funding proposal, approving our witness (@stem.witness) or delegating to the @stemsocial account (for some ROI).
Please consider using the STEMsocial app app and including @stemsocial as a beneficiary to get a stronger support.