Zurück zum Inhaltsverzeichnis des Manuskripts verteilte Systeme

5.4.3 IPv6-Adressen

Adressraum

Das erste, das bei der Beschäftigung mit IPv6 ins Auge fällt, ist der riesige Adressraum, denn IPv6-Adressen haben eine Länge von 16 Bytes, also von 128 Bits. Das führt zu etwa 3,4*1038 Bitmuster, die für Adressen zur Verfügung stehen. Die Größe dieser Zahl wird etwas deutlicher, wenn man sie mit dem Alter unseres Universums vergleicht. Dieses beträgt nach dem gegenwärtigen Stand der Wissenschaft etwa 14*109 Jahre. Das sind etwa 4*1017 Sekunden.

Angegeben werden die Adressen als acht Doppelbyte-Muster, die jeweils hexadezimal notiert und durch einen Doppelpunkt voneinander getrennt werden. Auf diese Schreibweise (und auf Verkürzungsmöglichkeiten) wird in wenigen Absätzen noch genauer eingegangen. An dieser Stelle soll ein Beispiel genügen. So ist

0010000000000001 0000000000000000 0011001000111000 1101111111100001 0000000001100011 0000000000000000 0000000000000000 1111111011111011

eine IPv6-Adresse. Die im Beispiel sichtbare Zeilentrennung und die Trennung zwischen den Bytegrenzen sind in Wirklichkeit nicht vorhanden, sondern nur der Lesbarkeit geschuldet. Die Adresse ist eine Folge von 128 Bits. Wird dieses Bitmuster in Gruppen zu je 4 Bits eingeteilt, diese jeweils hexadezimal notiert und nach jedem Doppelbyte ein Doppelpunkt gesetzt, dann entsteht die folgende Zeichenkette:

2001:0000:3238:dfe1:0063:0000:0000:fefb

Es ist offensichtlich, dass das Domain Name System (DNS) durch diese Adressen an Bedeutung gewinnt. Die aus IPv4 bekannte CIDR-Notation wird auch bei IPv6 verwendet. Wie dort wird die Länge der Netzadresse durch einen Schrägstrich getrennt an die Adresse angefügt. Und auch die öffentliche Vergabe der Adressen erfolgt wie bei IPv4 durch die Internet Assigned Numbers Authority (IANA). Man vergleiche dazu den Abschnitt 5.3.3 (IPv4-Adressen). Durch die Vergabepraxis der IANA wird der Adressraum hierarchisch gegliedert. Sie vergibt Adressbereiche mit festliegenden ersten 16 Bits an Regional Internet Registries (RIRs). Diese wiederum geben Bereiche mit festliegenden ersten 32 Bits an große Internet Service Providers (ISPs) weiter und diese verteilen den Adressraum weiter an ihre Kunden.

Wie bei IPv4 werden bestimmte Adressbereiche, erkennbar an bestimmten einleitenden Bitmustern, von der IANA nicht öffentlich vergeben. Mit ihnen können private Netzwerke aufgebaut werden. Das heißt, dass auch bei IPv6 zwischen öffentlichen und privaten Netzwerken (Adressen) unterschieden wird.

Adresstypen

IPv4 unterscheidet zwischen Unicast-, Broadcast- und Multicast-Adressen. IPv6 hat eine ganz ähnliche Einteilung. Hier gibt es die folgende Unterscheidung, wobei von Adresstypen gesprochen wird:

Broadcast-Adressen gibt es bei IPv6 nicht mehr. Sie müssen durch Multicast-Adressen nachgebildet werden. Anycast-Adressen wiederum sind bei IPv4 gänzlich unbekannt. Darüber hinaus haben IPv6-Adressen bestimmte Gültigkeitsbereiche. Man spricht auch von Reichweiten oder Geltungsbereichen oder Scopes. Sie werden in wenigen Absätzen beschrieben.

Unicast-Adressen identifizieren wie bei IPv4 einzelne Netzwerkschnittstellen. Meistens gehören sie zu den einzelnen Rechnern eines Netzwerks, wenn diese jeweils genau eine Netzwerkschnittstelle haben.

Bei IPv6 sind beliebige Gruppenbildungen (Multicasts) von Rechnern möglich. Jede Multicast-Adresse beginnt mit dem Byte FF. Dann folgen 8 Kontrollbits und eine Gruppenkennung (Group-ID) mit 112 Bits. Ein IP-Paket an eine Broadcast-Adresse wird jedem Gruppenmitglied zugestellt. Einige Gruppen sind vorgegeben. Dazu gehören zum Beispiel die Gruppen

Eine Unicast-Adresse, die gleichzeitig mehreren Hosts zugeordnet worden ist, heißt Anycast-Adresse. Das bedeutet, dass in einem solchen Fall mehrere Hosts die gleiche IP-Adresse haben. Genau dadurch bilden sie eine Gruppe. Vom Aussehen her (syntaktisch gesehen) sind Anycast-Adressen von Unicast-Adressen nicht zu unterscheiden. Das Besondere an ihnen ist, dass bei einer Paketzustellung nur einer der Hosts der Gruppe das Paket erhält. Es sind die Router, die auf Grund ihrer Routingtabellen das Paket weiterleiten und so das Anycast-Verfahren realisieren. Es ist eingeführt worden, um das Routing zu vereinfachen und um Lastenausgleichsverfahren zu realisieren. Man vergleiche dazu den Aufwand bei der Zustellung eines Multicast-Pakets an alle Gruppenmitglieder mit dem eines Anycast-Pakets an nur eines der Gruppenmitglieder. Ein praktischen Beispiel für einen Lastenausgleich ist eine an eine Vielzahl von Web-Servern gerichtete HTTP-GET-Aufforderung, bei der es genügt, wenn sie einer der Server beantwortet.

Aufbau von Unicast-Adressen

Unicast-Adressen sind genau in der Mitte des 128 Bits großen Musters getrennt. Die linke Hälfte der Adresse heißt Präfix, ist hierarchisch gegliedert und identifiziert ein Netzwerk. Die rechte Hälfte heißt Interface Identifier (kurz: Interface-Id) und adressiert eine Geräteschnittstelle zum Internet in dem durch die linke Adresshälfte adressierten Netzwerk. Ist die im ersten Absatz dieses Abschnitts angegebene IPv6-Adresse eine Unicast-Adresse, dann handelt es sich in CIDR-Schreibweise um die Adresse

2001:0000:3238:dfe1:0063:0000:0000:fefb/64

Das Präfix ist hierachisch gegliedert. Es könnte sein, dass die IANA den Adressbereich 2001/16 an eine Regional Internet Registry vergeben hat. Diese wiederum könnte den Bereich 2001:0000/32 weitergeben haben usw. Zur Interface-Id ist anzumerken, dass in dieses 64 Bits großes Muster MAC-Adressen problemlos eingebettet werden können, denn MAC-Adressen der üblichen physikalischen Netzwerke sind nur 48 Bits groß. Das wird ausgenutzt, um Rechner in die Lage zu versetzen, sich selbst eine IP-Adresse zuzuweisen. Auf dieses Vorgehen, das Autokonfiguration genannt wird, ist im Abschnitt 5.4.1 (IPv6-Eigenschaften) bereits hingewiesen worden. Besteht in einer Unicast-Adresse der Interface Identifier aus lauter Nullen, dann stellt das 128 Bits große Muster die Netzwerkadresse dar. Durch unterschiedliche Präfixe kann ein Interface Identifier in mehreren IPv6-Adressen vorkommen.

Bei IPv4 wird für die Implementierung der CIDR-Notation eine Netzwerkmaske benutzt, die anzeigt, wie viele Bits (von links gesehen) groß die Netzwerkkomponente der IP-Adresse ist. Bei IPv6 gibt es keine Netzwerkmaske mehr, denn der hier ist der Netzwerkteil einer IP-Adresse immer 64 Bits groß.

Gültigkeitsbereiche

Auch bei IPv4 sind bestimmte Adressen nicht im gesamten Internet gültig. Allerdings sind diese Gültigkeitsbereiche sehr rudimentät. Da gibt es zum Einen die Loopback-Adressen, die nur auf dem lokalen Rechner gültig sind und von keinem Router vermittelt werden und zum Andern die privaten Adressbereiche. Man vergleiche dazu den Abschnitt 5.3.3 (IPv4-Adressen).

Bei IPv6 sind die Gültigkeitsbereiche der Adressen bei allen drei Adresstypen viel feiner gegliedert als bei IPv4. Router beachten die jeweilige Reichweite und leiten Pakete, deren Zieladresse außerhalb des zugehörigen Bereichs liegt, nicht weiter. Das heißt, dass mit den Gültigkeitsbereichen auf die Paketvermittlung Einfluss genommen wird. Üblicherweise hat ein IPv6-Rechner mehrere IP-Adressen mit unterschiedlichen Reichweiten. Im Folgenden sollen die gängigen (es sind nicht alle) Gültigkeitsbereiche kurz vorgestellt werden. Bei IPv6 können Adressen

Rechnerlokale Adressen

Alle Adressen, die lediglich auf dem lokalen Rechner gültig sind, heißen rechnerlokal (node local). Bei IPv4 sind das die Loopback-Adressen, bei IPv6 ist es die Loopback-Adresse. Man beachte den Singular: Bei IPv6 gibt es nur eine einzige rechnerlokale Adresse. Das ist das 128 Bits große Muster, das (von links gesehen) aus 127 Nullen und einer abschließenden Eins besteht, also die Adresse:

0000:0000:0000 0000:0000:0000:0000:0001/128

Pakete mit dieser Zieladresse dürfen den lokalen Rechner nicht verlassen, kein Router vermittelt sie.

Verbindungslokale Adressen

Damit beim Start eines Rechners in einem Netzwerk dieser sofort an der Netzwerkkommunikation teilnehmen kann, braucht er eine IP-Adresse. Eine feste Adresszuordnung ist in vielen Fällen sehr unflexibel. Bei IPv4 spricht in einem solchen Fall der Rechner per Broadcast einen DHCP-Server (vgl. dazu den Abschnitt 5.3.3 (IPv4-Adressen)) an und erhält von ihm unter anderem eine temporäre IP-Adresse.

Bei IPv6 wird diese Startadresse aus der lokalen MAC-Adresse gebildet und ihr Gültigkeitsbereich wird auf das lokale Netzwerk beschränkt. Adressen, die auf diesem Weg gebildet werden, werden verbindungslokal (link local) genannt. Erkennbar sind sie an einem bestimmten einleitenden Bitmuster. Durch diesen Adresstyp wird allerdings DHCP bei IPv6 nicht überflüssig. Zwar wird es nicht mehr zwingend für die Zuweisung einer Startadresse gebraucht, aber ein Rechner benötigt beim Start unter anderem auch noch Angaben zu den Domänen, zu denen er gehört, zu dem für ihn zuständigen Router (das Standard-Gateway) und zu dem Nameserver, den er für DNS-Zugriffe nutzen kann. Diese und weitere Startangaben erhält er nach wie vor durch einen DHCP-Server.

Kein Router darf Pakete mit einer verbindungslokalen Zieladresse vermitteln. Solche Pakete sind auf das lokale LAN-Segment beschränkt. Dabei wird unter einem LAN-Segment ein Netzwerk verstanden, in dem Pakete ohne Vermittlung durch einen Router zugestellt werden können.

Eindeutig lokale Adressen

Wie bei IPv4 gibt es auch bei IPv6 bestimmte Adressbereiche, die nicht öffentlich vergeben werden, so dass mit ihnen private Netzwerke aufgebaut werden können. Die zugehörigen, wieder an bestimmten einleitenden Bitmustern erkennbaren, Adressen, werden eindeutig lokal gültig (unique local) genannt. Pakete mit solchen Zieladressen werden nicht ins öffentliche Internet vermittelt.

Globale Adressen

IP-Pakete, die ins gesamte Internet vermittelt werden sollen, haben Zieladressen mit einer globalen Gültigkeit (global scope). Auch diese Adressen beginnen mit einem den Typ identifizierenden Bitmuster.

Adressnotation

Einleitend zu diesem Abschnitt ist bereits darauf hingewiesen worden, dass die 16 Bytes einer IPv6-Adresse zu 8 Blöcken mit je zwei Bytes zusammengefasst werden, und dass als Trenner zwischen je zwei solche Doppelbytes ein Doppelpunkt gesetzt wird. Dabei wird jedes einzelne Byte zweistellig hexadezimal notiert. Beispielsweise ist

2001:0000:3238:DFE1:0063:0000:0000:FEFB

eine solche Adresse.

Verkürzte Notation (Schreibregeln)

Diese hexadezimal geschriebenen Bitmuster sind unhandlich, weshalb eine verkürzte Notation eingeführt worden ist, die den folgenden drei Regeln gehorchen muss:

URL-Notation

In URLs wird der Doppelpunkt verwendet, um eine Portnummer zusammen mit der Rechneradresse anzugeben. Wird die URL durch Domänennamen gebildet, dann ist das, wie das folgende Beispiel zeigt, unproblematisch:

http://www.bht-berlin.de:80

Ebenfalls unproblematisch ist es, wenn an Stelle von Domänennamen IPv4-Adressen verwendet werden. Auch dies soll durch ein Beispiel untermauert werden:

http://141.64.137.17:80

Bei einer URL mit einer IPv6-Adresse führt der Doppelpunkt jedoch zu einer Mehrdeutigkeit, die durch die Festlegung aufgelöst wird, dass in einer URL eine IPv6-Adresse in eckige Klammern zu setzen ist. Dadurch entstehen URLs wie beispielsweise der folgende:

http://[2001:db8::1]:80


Zurück zum Inhaltsverzeichnis des Manuskripts verteilte Systeme