addthis

Donnerstag, 9. Februar 2012

IPv6

IPv6 - Internet Protocol
Pietro Scherer

IPv6 ist als Internet Protocol (Version 6) für die Vermittlung von Daten durch ein paketvermittelndes Netz, die Adressierung von Netzknoten und -stationen, sowie die Weiterleitung von Datenpaketen zwischen Teilnetzen (Routing) zuständig. Mit diesen Aufgaben ist IPv6 der Schicht 3 des OSI-Schichtenmodells zugeordnet.

IPv6 ist der direkte Nachfolger von IPv4 und Teil der Protokollfamilie TCP/IP. Der Grund für die Einführung des Internet Protokolls Version 6 (IPv6) und Ablösung von IPv4 ist die Adressknappheit von nur 4 Milliarden IP-Adressen (Version 4), die bald aufgebraucht sind. Da weltweit immer mehr Menschen, Maschinen und Geräte an das Internet mit einer eindeutigen Adresse angeschlossen werden wollen, reichen die IPv4-Adressen nicht mehr lange aus.

Internet Protocol Version 5
IPv5 hieß offiziell ST-2 (Internet Stream Protocol Version 2) und war ein experimentelles Protokoll für Echtzeit-Datenströme. ST-2 wurde von RSVP (Ressource Reservation Protocol) zur Bandbreitenanforderung bei Routern abgelöst. ST-2 sollte ursprünglich Audio und Video per Multicast übertragen. Dadurch sollten die Bandbreitenreservierungsvorteile von ATM in die IP-Netze gelangen. Zur Serienreife hat es nicht gereicht. Deshalb gab es auch kein IPv5 im praktischen Einsatz.

IP-Adressen nach IPv6
Die nächste Generation von IP, das IP Version 6, erhöht den Adressumfang auf 2128. Damit wäre es möglich, jeden Quadratmillimeter der Erde mit rund 600 Billionen Adressen zu belegen. Doch nicht nur das, obendrein soll IPv6 Erleichterung bei der Rechnerkonfiguration und Betrieb bringen.

IPv6-Adressen bestehen aus 128 Bit. Wegen dieser unhandlichen Länge hat man sich für Hexadezimal-zahlen als Schreibweise entschieden. 16 Bit sind jeweils durch einen Doppelpunkt (":") getrennt. Führende Nullen können in den Blöcken wegfallen. Eine Folge von Nullen kann man durch zwei Doppelpunkte ("::") ersetzen. Da in URLs der Doppelpunkt mit der Portangabe kollidiert, sind IPv6-Adressen in eckige Klammern gesetzt.

Die Netzwerkmasken fallen ersatzlos weg. Den Adressbereich bzw. das Subnetz hängt man an und trennt ihn vom Rest der Adresse durch ein "/". In IPv6 adressieren die ersten 64 Bit das Netz und die restlichen 64 Bit den Host.

Aufteilung des IPv6-Adressraums
Man unterscheidet grob gesehen zwischen globalen Adressen (Global Scope) und lokalen Adressen (Local Scope). Pakete mit globale Adressen werden außerhalb des lokalen Netzwerks geroutet. Link-lokale Adressen sind nur innerhalb des lokalen Netzwerks gültig. Sie werden nicht extern, sondern nur intern geroutet.
Hinter Link-Local Scope stecken Mechanismen wie Neigbar Discovery, das das Address Resolution Protocol (ARP) ablöst oder Stateless Address Autoconfiguration (SAC oder SAA) als Alternative zu DHCP. Neighbor Discovery zeichnet sich vor allem durch Unabhängigkeit von der Übertragungstechnik aus.

Für private lokale Netze gibt es in IPv6 reservierte Adressbereiche (Unique Local Adressses, ULA). Sie haben eine ähnliche Funktion, wie die lokalen IPv4-Adressen. Die privaten IPv6-Adressen sind weltweit eindeutig, werden aber nicht geroutet.

Adressvergabe und Autokonfiguration
IPv6 kennt zwei verschiedene Wege, wie Clients an ihre eigene IP-Adresse kommen. Entweder über DHCPv6 oder Autokonfiguration. Letzteres hat den Nachteil, das damit nur die Kommunikation im lokalen Netz möglich ist. Standard-Gateway und DNS-Server müssen immer noch manuell konfiguriert werden oder per DHCPv6 abgefragt werden. 
  • Stateful Address Configuration (DHCPv6) 
  • Stateless Address Configuration (Autokonfiguration)
Anders als bei IPv4 müssen die IP-Adressen im lokalen Netzwerk nicht zentral vergeben werden. Die Adressvergabe erfolgt automatisch und die Stationen prüfen selbständig, ob ihre Adresse im Netz schon vergeben ist. Unter IPv6 gibt es keine Netzwerkmaske und Broadcast-Adressen mehr. Die Einrichtung eines Netzwerks ist dadurch viel einfacher.

Stateless Address Configuration
Wird eine Station mit IPv6 gestartet, dann weist sie sich als erstes eine lokale Adresse zu. Die ersten 64 Bit sind fest vorgegeben. Davon bestehen die ersten 16 Bit aus dem Prefix "fe80". Die restlichen 48 Bit werden mit Nullen aufgefüllt. Die zweiten 64 Bit werden als Suffix bezeichnet und bestehen aus der MAC-Adresse des Netzwerkadapters, die in das Nummerierungssystem EUI-64 des IEEE umgewandelt wird. Da MAC-Adressen in der Regel weltweit einmalig sind ist die lokale IP-Adresse es ebenso.
Bevor der PC diese Adresse nutzen kann, schickt er eine Anfrage ins lokale Netz (Neighbor Solicitation). Falls eine andere Station die Adresse bereits nutzt (Neighbor Advertisement), muss die IP-Adresse manuell umgeändert werden. In der Regel ist das nicht notwendig, weil jeder Netzwerkadapter in der Regel eine einmalig MAC-Adresse hat. Sollte doch einmal eine Doppelung vorkommen, dann sollte man das Netzwerk überprüfen. Dann könnte es sein, dass jemand eine MAC-Adresse gekapert hat und per MAC-Spoofing ins Netzwerk eingedrungen ist.

Mit seiner lokalen Adresse kann die Station nur im lokalen Netzwerk kommunizieren. Für das Internet braucht sie eine zusätzliche Adresse, die sie sich ebenfalls selber generiert. Dazu muss die Station beim Standard-Gateway (Router) nachfragen, welche Netzwerk-Adresse sie verwenden soll (Präfix des öffentlichen Adressblocks). Mit der lokalen Adresse bittet (Solicitation Message) die Station auf der Multicast-Adresse "FF02::2" um den IPv6-Präfix. Der Router schickt daraufhin eine
Ankündigung (Advertisement Message) mit einem Adress-Präfix für dieses Netzwerk und die Größe der Pakete (MTU). Aus dem Präfix und Suffix erzeugt die Station ihre öffentliche IPv6-Adresse. Der Suffix ist eine EUI-64-Adresse, die aus der Hardware-Adresse (MAC-Adresse) erzeugt wird. Danach prüft die Station, ob diese Adresse im lokalen Netzwerk schon vergeben ist (Duplikate Address Detektion). Wenn sie frei ist, weist sie die Adresse ihrer Netzwerkschnittstelle zu.
Die IP-Autokonfiguration ist allerdings nicht ganz vollständig. Es werden keine Adressen für DNS- oder NTP-Server erzeugt. Auch ein Hostname wird nicht zugewiesen. An diese Informationen kommt ein PC beispielsweise über Bonjour (Apple), PNRP (Microsoft) oder DHCPv6.

Privacy Extension
Der Interface Identifier wird aus der MAC-Adresse errechnet. Weil die globale MAC-Adresse und die IPv6-Adressen durch den Interface Identifier nachverfolgbar ist wurden die Privacy Extension entwickelt. Damit wird ein Teil der Anonymität, wie es bei IPv4 möglich ist, wieder hergestellt werden, in dem die Kopplung von Interface Identifier und MAC-Adresse aufgehoben wird.
Privacy Extension erzeugt ständig wechselnde Interface Identifiers, statt diesen aus der MAC-Adresse zu errechnen. Privacy Extension erzeugt zusätzlich zu der festen IP-Adresse periodisch eine neue Adresse, bei der der hintere Teil verändert ist. Anschließend werden mit diesen wechselnden Adressen ausgehende Verbindungen hergestellt. Auf diese Weise wird auf IP-Ebene die Erstellung von Bewegungsprofilen verhindert.

IPv6-Headers


Zur weiteren Entlastung der Router wurde die Länge des IP-Headers fest definiert und die Adressfelder auf 64 Bit ausgerichtet (64 bit aligned). Dadurch findet der Router in jedem IPv6-Paket alles an derselben Stelle.
Obwohl der IPv6-Header weniger Felder als der IPv4-Header hat, ist er durch die längeren IPv6-Adressen trotzdem 40 Byte lang. Die Felder IHL, Type of Service, Kennung und Header-Checksumme wurden komplett gestrichen. Die Felder Fragment-Offset, Flags und Options sind in die optionalen Header-Erweiterungen verlagert.

Wechsel von IPv4 auf IPv6
Der Wechsel von IPv4 auf IPv6 in einem LAN gelingt in der Regel problemlos. In Windows XP/SP2, Windows Vista, Windows 7, MacOS und Linux ist IPv6 bereits enthalten. Einzig unter Windows XP muss IPv6 aktiviert werden. Eine Sache von nur wenigen Klicks.
Geräte, wie Hubs und Switche ist es egal ob IPv4 oder IPv6 zum Einsatz kommt. Sie kümmern sich um die Netzwerk-Kommunikation unterhalb des Internet Protokolls. Nur bei Routern stellt sich da noch ein Problem ein. Im Privat-Bereich gibt es so gut wie keine IPv6-Router. Eine "native" IPv6-Anbindung der DSL-Provider wäre ebenfalls nötig. Die ist jedoch bislang nicht in Sicht.

Änderungen gegenüber IPv4
IPv6 schafft die Adressknappheit und damit viele Netzwerkprobleme aus der Welt. IPv4 sieht nur 232 Adressen vor. Das sind rund 4,3 Milliarden IP-Adressen. IPv6 hat einen Adressraum von 2128. Das sind 340.282.366.900.000.000.000.000.000.000.000.000.000, also rund 340,28 Sextillionen Adressen. Das reicht aus, um umgerechnet jeden Quadratmillimeter der Erdoberfläche inklusive der Ozeane mit rund 600 Billiarden Adressen zu pflastern. Weil man mit dieser großen Menge an Adressen verschwenderisch umgehen darf, spart man sich eine aufwendige Verwaltung, wie es bei IPv4-Adressen notwendig ist. Der große Adressraum, also die hohe Anzahl an Präfixen, macht das Wegfallen von NAT möglich. Wobei das nicht bedeutet, dass es nicht doch irgendwann eine Implementierung für NAT in IPv6 geben wird.

Bei IPv6 hat man sich nicht nur um die Adresserweiterung gekümmert, sondern auch gleich eine Generalüberholung des Protokolls vorgenommen. Zählte zur Hauptaufgabe der heutigen IPv4-Routern das Prüfen von Checksummen und Fragmentieren von Daten, so ist die Arbeit für IPv6-Router sinnvoll minimiert worden. IPv6 führt keine Prüfsumme mehr im Header mit. Stattdessen wird dem übergeordneten Transport-Protokoll TCP die Aufgabe überlassen, kaputte Pakete zu erkennen und neu anzufordern. Dieser Vorgang wird komplett beim Empfänger bearbeitet. Zu große Datenpakete werden von IPv6-Routern nicht mehr selber fragmentiert. Ist ein Paket zu groß wird dem Absender eine Fehlermeldung geschickt. Dieser muss dann die maximale Paketlänge (MTU - Maximum Transmission Unit) anpassen. Dieses Verfahren nennt sich Path MTU Discovery und existiert in ähnlicher Form auch in IPv4. Dort muss im Datenpaket das Don't-Fragment-Flag (DF) gesetzt werden. War in IPv4 dieses Verfahren optional, ist es in IPv6 Pflicht. Kommt es zum Verlust eines Datenpakets oder kommt es zu Fehlern bei der Fragmentierung, schlägt das Path MTU Discovery fehl. In IPv4 wurde der MTU dann auf 68 Byte abgesenkt. Das führte zu einer höheren Paketanzahl und einem unwirtschaftlichen Protokoll-Overhead. IPv6 hat als kleinste einstellbare MTU 1280 Byte. Dadurch werden die Router nicht mehr unnötig belastet. Selbstverständlich können auch kleinere Pakete als 1280 Byte übertragen werden.
IPv4-Router müssen Checksummen prüfen und Pakete fragmentieren. Das erfordert Rechenleistung und reduziert den Datendurchsatz. Um das Routing zu beschleunigen wird auf Fragmentierung und Checksummen verzichtet. Die Prüfsumme bleibt höheren Protokolle überlassen. Zum Beispiel TCP. Und für das Prüfen der Pakete auf IP-Ebene ist nur noch der Empfänger zuständig. Ist ein Paket zu groß, wird es nicht mehr fragmentiert. Dafür wird es generell verworfen und der Sender per ICMP-Nachricht informiert. Der Sender setzt dann die maximale Paketgröße für diese Route herab (MTU, Maximal Transmission Unit).

Übersicht: Vorteile von IPv6
  •    IP-Autokonfiguration anhand der MAC-Adresse der Netzwerkkarte
  •    schnelleres Routing
  •     Punkt-zu-Punkt-Verschlüsselung mit IPsec
  •     gleiche Adresse in wechselnden Netzen
  •     Multicast
  •     Quality of Service
  •     Datenpakete bis 4 GByte Größe
Vieles davon war auch mit IPv4 möglich. Doch dort wurde vieles erst nachträglich implementiert. IPv6 bringt das alles integriert mit.

Keine Kommentare:

Kommentar posten