IPv6
IPv6 (Internet Protocol Version 6) ist der Nachfolger von IPv4. Die 32-Bit-Adressen von IPv4 reichen nur für rund 4,3 Milliarden Geräte und sind weltweit vergeben. IPv6 nutzt 128 Bit, das sind oder rund 340 Sextillionen Adressen, eine 34 mit 37 Nullen. Ausgeschrieben:
340.282.366.920.938.463.463.374.607.431.768.211.456
Damit könnte jeder der rund 8 Milliarden Menschen auf der Erde etwa 41 Quadrilliarden Adressen bekommen, knapp zehn Trillionen Mal so viele, wie IPv4 insgesamt hat.
Aufbau einer IPv6-Adresse
Eine IPv6-Adresse besteht aus acht Blöcken zu je 16 Bit. Jeder Block wird als vier Hexadezimalziffern geschrieben, die Blöcke trennt ein Doppelpunkt.
- Netzpräfix: Die vorderen 64 Bit bezeichnen das Netz. Der Provider vergibt einen Teil davon, den Rest nutzt der Kunde für eigene Subnetze.
- Interface-ID: Die hinteren 64 Bit bezeichnen das Gerät im Netz.
Das Präfix steht wie bei IPv4 in CIDR-Schreibweise hinter der Adresse, z. B. 2001:db8:85a3:1::/64.
| Präfix | Typische Verwendung |
|---|---|
| /32 | Provider |
| /48 | Unternehmen, bietet = 65.536 Subnetze mit /64 |
| /56 | Privatkunden, bietet 256 Subnetze mit /64 |
| /64 | ein einzelnes Netz (Standard, SLAAC braucht genau /64) |
IPv6-Adressen kürzen
Zwei Regeln machen Adressen lesbarer:
- Führende Nullen in einem Block dürfen wegfallen:
0db8wirddb8,0000wird0. Nullen in der Mitte oder am Ende eines Blocks bleiben:d0b8bleibtd0b8. - Eine zusammenhängende Folge von Nullblöcken darf durch
::ersetzt werden. Das geht nur einmal pro Adresse, sonst wäre unklar, wie viele Blöcke fehlen.
Beispiel Schritt für Schritt:
| Schritt | Adresse |
|---|---|
| Voll | 2001:0db8:0000:0000:0000:ff00:0042:8329 |
| Führende Nullen weg | 2001:db8:0:0:0:ff00:42:8329 |
Nullblöcke durch :: | 2001:db8::ff00:42:8329 |
Gibt es mehrere Nullfolgen, wird die längste gekürzt, bei gleicher Länge die erste: 2001:db8:0:0:1:0:0:1 wird 2001:db8::1:0:0:1. Falsch wäre 2001:db8::1::1.
Adresstypen
IPv6 kennt keinen Broadcast mehr. An seine Stelle tritt Multicast.
| Typ | Präfix | Bedeutung |
|---|---|---|
| Global Unicast | 2000::/3 | weltweit eindeutig und im Internet routbar, entspricht öffentlichen IPv4-Adressen |
| Link-Local | fe80::/10 | nur im eigenen Netzsegment gültig, jedes IPv6-Gerät hat automatisch eine |
| Unique Local (ULA) | fc00::/7, in der Praxis fd00::/8 | für interne Netze, nicht im Internet routbar, ähnlich privaten IPv4-Adressen |
| Multicast | ff00::/8 | an eine Gruppe von Geräten, z. B. ff02::1 an alle Geräte im Segment |
| Loopback | ::1 | das eigene Gerät, entspricht 127.0.0.1 |
| Unspezifiziert | :: | noch keine Adresse, z. B. beim Start |
Dazu kommt Anycast: Mehrere Geräte teilen sich eine Adresse, das nächstgelegene antwortet. Ein Gerät hat bei IPv6 fast immer mehrere Adressen gleichzeitig, mindestens eine Link-Local- und meist eine Global-Unicast-Adresse.
Adressvergabe
- SLAAC (Stateless Address Autoconfiguration): Der Router verkündet das Präfix per Router Advertisement, das Gerät bildet die Interface-ID selbst. Ein Server ist nicht nötig.
- DHCPv6: Ein Server vergibt Adressen und Zusatzinformationen wie DNS-Server, ähnlich DHCP bei IPv4.
- Statisch: Manuelle Vergabe, üblich für Server und Router.
Die Interface-ID bildet SLAAC entweder zufällig (Privacy Extensions, heute Standard bei Clients, damit ein Gerät nicht über Netze hinweg wiedererkennbar ist) oder nach EUI-64 aus der MAC-Adresse: Die 48-Bit-MAC wird in der Mitte geteilt, ff:fe eingefügt und das siebte Bit umgedreht. Aus 00:1a:2b:3c:4d:5e wird so 021a:2bff:fe3c:4d5e.
IPv4 und IPv6 im Vergleich
| IPv4 | IPv6 | |
|---|---|---|
| Adresslänge | 32 Bit | 128 Bit |
| Schreibweise | dezimal, 192.168.1.10 | hexadezimal, 2001:db8::10 |
| Broadcast | ja | nein, stattdessen Multicast |
| Automatische Konfiguration | DHCP | SLAAC oder DHCPv6 |
| Auflösung von MAC-Adressen | ARP | NDP (Neighbor Discovery Protocol) |
| NAT | üblich wegen Adressmangel | nicht nötig, jedes Gerät kann eine globale Adresse haben |
| Header | variable Länge, mit Prüfsumme | feste Länge von 40 Byte, ohne Prüfsumme |
Übergang von IPv4 zu IPv6
- Dual Stack: Geräte und Netze sprechen beide Protokolle parallel. Das ist heute der Normalfall.
- Tunneling: IPv6-Pakete werden in IPv4-Pakete verpackt, um IPv4-Strecken zu überbrücken (z. B. 6in4).
- Übersetzung: NAT64 übersetzt zwischen beiden Protokollen, damit reine IPv6-Geräte IPv4-Dienste erreichen.