IPv6: Das Mega-Netz

Seite 2: Adressnotation

Inhaltsverzeichnis

Um IPv6-Adressen kompakt darstellen zu können, greift man zur hexadezimalen Notation. Dabei sind die 128 Bit in acht Blöcke von je 16 Bit unterteilt; als Trennzeichen dienen jeweils Doppelpunkte. Die ersten vier Blöcke, also 64 Bit, werden für das Routing genutzt und bezeichnen das Netz-Präfix. Die darauf folgenden 64 Bit führen zum Host.

Folgen von Nullen lassen sich abgekürzt darstellen, sodass manche Adressen noch etwas kompakter dargestellt werden können. Mit "::1" kann man die Host-Local-Adresse angeben, welche aus 15 Nullen und einer 1 besteht und dem Local Host 127.0.0.1 bei IPv4 entspricht. Diese und ähnliche Details sind bereits ausführlich erläutert, unter anderem in einem c't-Beitrag.

In URLs kollidiert der Doppelpunkt mit der Portangabe, daher werden IPv6-Nummern in URLs wie in diesem Beispiel in eckige Klammern gesetzt:

http://[2001:0db8:85a3:08d3:1319:8a2e:0370:7344]:80/

Wie schon bei IPv4 kann jedes Netzwerk-Interface mehr als eine IP-Adresse haben – sie werden jedoch automatisch generiert. Startet man einen mit IPv6 bestückten PC, weist er sich selbst zunächst die Link-lokale Adresse für die Kommunikation im LAN zu. Die ersten 64 Bit haben immer den Präfix fe80 und die restlichen 48 sind Nullen:

fe80:0000:0000:0000

Für die zweiten 64 Bit wird die MAC-Adresse des Netzwerk-Interfaces in das Nummerierungssystem EUI-64 des IEEE umgewandelt (Extended Unique Identifier). Zusammen mit der ersten Hälfte sind das 128 Bit. Ein Beispiel sieht so aus:

fe80:0000:0000:0000:4231:65ff:fedc:1faa

oder

fe80::4231:65ff:fedc:1faa

Bevor ein Host eine solche Adresse nutzen kann, muss er per Neighbor Solicitation im LAN fragen, ob sie bereits belegt ist. Falls die fragliche Adresse ein anderer Host für sich annonciert (Neighbor Advertisement), kann der anfragende Host erst nach manueller IP-Adresseinstellung im LAN kommunizieren. Normalerweise sollte eine Kollision aber nicht vorkommen, denn schon MAC-Adressen sind für jedes Netzwerk-Interface weltweit individuell – aber sie lassen sich per Hand manipulieren. Wenn ein solcher Fall auftritt, ist es also ratsam, das LAN einer Prüfung zu unterziehen, weil möglicherweise Unbefugte eine gültige MAC-Adresse gekapert und per MAC-Spoofing ins LAN eingedrungen sind.

Mit der Link-lokalen Adresse kann ein Host nur im LAN kommunizieren; für öffentliche Verbindungen braucht er eine zusätzliche, die er anhand von Router-Antworten selbst generiert. Ein IPv6-Router sendet dafür auf Host-Anfragen das Präfix des öffentlichen Adressblocks, Lease Timeout, MTU und Hop Count (bei IPv4 TTL genannt). Ein Host kann nun prinzipiell eine öffentliche IP-Adresse aus Präfix und Suffix bilden; das Suffix ist seine EUI-64-Adresse. Praktisch an dem Verfahren ist, dass sich der Router nicht merken muss, welche IPs er bereits vergeben hat. Das Präfix kann kleiner als 64 Bit sein und wird dann mit Nullen auf 64 Bit aufgefüllt. Wechselt man den Provider, genügt es, dem Router das neue Präfix einzuimpfen, und die Hosts hüpfen automatisch mit (Router Renumbering, RFC 2894), manuelle Eingriffe bleiben dem Administrator erspart.

Dieses Verfahren erleichtert es jedoch Dritten, Nutzerprofile aufzuzeichnen, denn die EUI-64 ist statisch. Deshalb hat man nachträglich ein Verfahren spezifiziert, das für die öffentliche IP-Adresse das Suffix ausgehend von der MAC-Adresse und einer pseudozufälligen Zahl erzeugt (RFC 3041). Dieser "zufällige" 64-Bit-Block ist nur temporär und kann zum Beispiel täglich gewechselt werden.

Freilich hat das Verfahren auch Schwächen und Nachteile. Sobald der Host einen DNS-Namen hat, den man per reverse DNS lookup auffinden kann, ist es untergraben, weil Lauscher den DNS-Namen wechselnden IP-Adressen zuordnen können. Netzwerkadministratoren dürfte es Analysen und Problemlösungen erschweren, weil es verschleiert, wie viele Hosts ein Netzwerkproblem verursachen.

Über die automatische Adresszuteilung hinaus braucht es noch das automatische Finden des Nameservers. Da die Autokonfiguration keine Informationen über Host-, Domainnamen, DNS- oder auch NTP-Server erzeugt, muss man diese Informationen auf anderen Wegen beziehen. Für den öffentlichen DNS könnte man einen DHCPv6-Server verwenden. Dieser ist dadurch entlastet, dass er über die Adressvergabe im LAN nicht Buch führen muss (stateless DHCPv6, RFC 3736).

Microsoft geht einen radikaleren Weg und schlägt ein serverloses Protokoll vor, das Peer Name Resolution Protocol, das Windows XP und Vista schon mitbringen.