Table of Contents
IPv6 wurde im RFC 2460 im Jahre 1998 definiert bzw. im Jahr 2017 durch den RFC 8200 ersetzt. Es ist der Nachfolger von IPv4 um diverse Probleme des nun „veralteten“ IP-Protokolls zu beheben.
Schreibweise
Da IPv6 aus 128-Bit besteht wäre eine dezimale Schreibweise gleich wie bei IPv4 nicht wirklich effizient. Daher wurde die hexadezimale Schreibweise gewählt.
2001:0db8:85a3:08d3:1319:8a2e:0370:7344
Führende Nullen in einem IPv6 Block dürfen weggelassen werden. Beispiel:
2001:0db8:0000:08d3:0000:8a2e:0070:7344
wird zu
2001:db8:0:8d3:0:8a2e:70:7344
Wenn 2 oder mehrere Blöcke hintereinander nur aus 0 bestehen können diese mit zwei : abgekürzt werden. Beispiel:
2001:db8:0000:0000:0000:0000:1428:57ab
wird zu
2001:db8::1428:57ab
Merke hier die zwei : zwischen db8 und 1428.
Jedoch darf diese Reduktion nur 1 mal ausgeführt werden! Beispiel:
2001:0db8:0:0:8d3:0:0:0
darf nur
2001:db8:0:0:8d3::
oder
2001:db8::8d3:0:0:0
werden.
Daher ist die folgende IPv6 Adresse keine ungültige Adresse:
2001:db8::8d3::
URL-Notation: http://[2001:0db8:85a3:08d3::0370:7344]:8080/
Die üblichen Subnetz-Größen bewegen sich zwischen /32 und /64.
Natürlich könnte man nach /64 noch weitere Subnetze erstellen, jedoch verliert man dann ein Feature von IPv6 – die „Stateless Address Autoconfiguration“ (SLAAC) – siehe weiter unten für Beschreibung.
Link Local und Global Adresse
Bei IPv6 ist es nun standard, dass beim Verbinden eines Interfaces zu einem Netzwerk automatisch eine „link local“ und (wenn ein IPv6-Präfix vorhanden ist) eine „global“ Adresse generiert wird.
Die „Link Local“ Adresse dient – wie zu erwarten – nur für das lokal verbundene Netzwerk. Diese ist immer Teil folgendes Netzwerks: fe80::/64
Die „Global“ Adresse dient – ebenso wie zu erwarten – für das globale Netzwerk aka das „Internet“. Diese erscheint aber nur, wenn dem verbundenen Router auch ein IPv6-Präfix zugewiesen ist.
Weiters gibt es aus Security-Gründen „temporäre“ und „secured“ IPv6-Adressen. Was diese sind bzw. warum es diese gibt wird HIER genauer beschrieben.
Neue Features von IPv6
Größere Anzahl an verfügbaren Adressen
IPv6 Adressen bestehen aus 128-Bit – IPv4 besteht aus 32-Bit.
D.h. 340.282.366.920.938.463.463.374.607.431.768.211.456 (2128) im Gegensatz zu 4.294.967.296 (232) .
Zustandslose automatische Konfiguration von Clients ermöglichen (SLAAC)
Um eine IPv4-Adresse automatisch von z.B. einem WLAN-Router zu erhalten muss dieser die Funktionalität „DHCP“ aktiviert und konfiguriert haben.
Wenn jedoch ein IPv6 Netzwerk mit einer mindest Subnetz-Größe von /64 vorhanden ist, kann die MAC-Adresse des jeweiligen Clients als Teil der IPv6-Adresse hergenommen werden. Dies gilt sowohl für den „link-local“ als auch den „global“ Bereich von IPv6-Adressen.
Hier ist nun visuell dargestellt, wie aus einer 48-Bit MAC-Adresse und dem 64-Bit „link-local“ Präfixes eine automatische IPv6-Adresse generiert wird.
Es gibt auch diverse Webseiten, die aus MAC-Adressen die IP-Adresse berechnen bzw. umgekehrt (wie z.B. http://silmor.de/ipaddrcalc.html#ip6)
Implementation von Sicherheitsmaßnahmen (IPsec)
Die „Internet Protocoll Security“ (IPsec) ist ein auf der 3-Schicht des OSI-Layer Models aufgebautes Protokoll, welches die Verschlüsselung und Authentifizierung von IP-Paketen ermöglicht.
Prinzipiell ist jedem HTTPS bzw. SSL und TLS bekannt, jedoch arbeiten diese Protokolle in höheren OSI-Layer-Schichten (HTTPS in der 7-Schicht und TLS in der 4-Schicht). Daher könnte trotzdem „jemand“ über die 3-Schicht gewisse Daten abfangen und/oder manipulieren.
Daher wurde zusammen mit der Entwicklung von IPv6 auch das IPsec Protokoll entwickelt.
Bewahrung des „Point-to-Point-Prinzips„
Das „Point-to-Point-Prinzip“ besagt, dass nur die Endpunkte einer Verbindung die aktiven Protokolloperationen durchführen sollen, nicht die Stationen dazwischen. Grundvoraussetzung dafür ist eine global eindeutige IP-Adresse pro Endpunkt.
Dies ist aber beim aktuell aktiven IPv4 Netzwerk nicht möglich, da nicht jedes Netzwerkgerät eine eindeutige globale IPv4 Adresse hat (siehe ebenso NAT)
Vorgemerkte IPv6 Bereiche
Wie auch bei IPv4 gibt es bei IPv6 vorgemerkte Bereiche, die einer gewissen „Funktionalität“ zugewiesen sind.
Adressblock (Präfix) | Verwendung | Referenz |
---|---|---|
::1/128 | Loopback (Lokaler Computer) | RFC 4291 |
2000::/3 | Global Unicast | RFC 4291 |
FC00::/7 | Unique Local Unicast | RFC 4193 |
FE80::/10 | Link Local Unicast | RFC 4291 |
FF00:/8 | Multicast | RFC 4291 |
Es gibt auch diverse andere Bereiche, die für die „Konvertierung“ von IPv4 auf IPv6 Adressen verwendet werden wie z.B. 2002::/16 für das 6-to-4-Tunneling laut RFC 3056.
Was Unicast und Multicast ist wird HIER weiter behandelt.
Hier sind 2 gute Podcasts in Bezug zu IPv6:
https://cre.fm/cre197-ipv6 oder https://requestforcomments.de/archives/412
Sources:
https://de.wikipedia.org/wiki/IPv6
https://www.heise.de/IPv6-Adressen-3484199.html