Das FreeBSD-Handbuch
Zurück | Kapitel 32. Weiterführende Netzwerkthemen | Weiter

# 32.11. IPv6 – Internet Protocol Version 6

Beigetragen von Aaron Kaplan. Überarbeitet und erweitert von Tom Rhodes. Erweitert von Brad Davis.

Bei IPv6 (auch als IPng oder IP next generation bekannt) handelt es sich um die neueste Version des bekannten IP-Protokolls (das auch als IPv4 bezeichnet wird). FreeBSD enthält, genauso wie die anderen frei erhältlichen BSD-Systeme, die IPv6-Referenzimplementation von KAME. FreeBSD erfüllt damit bereits alle für die Nutzung von IPv6 nötigen Voraussetzungen. Dieser Abschnitt konzentriert sich daher auf die Konfiguration und den Betrieb von IPv6.

Anfang der 90er Jahre wurde man auf den stark steigenden Verbrauch von IPv4-Adressen aufmerksam. Im Hinblick auf das Wachstums des Internets gab es zwei Hauptsorgen:

- Die drohende Knappheit von IPv4-Adressen. Dieses Problem konnte durch die Einführung von privaten Adressräumen gemäß RFC1918 (mit Adressen wie `10.0.0.0/8`, `172.16.0.0/12`, oder `192.168.0.0/16`) sowie der Entwicklung von Network Address Translation (NAT) weitestgehend entschärft werden.

- Die immer größer werdenden Einträge in Router-Tabellen. Dieses Problem ist auch heute noch aktuell.

IPv6 ist in der Lage, diese, aber auch viele andere Probleme zu lösen:

- IPv6 hat einen 128 Bit großen Adressraum. Es sind also theoretisch 340.282.366.920.938.463.463.374.607.431.768.211.456 Adressen verfügbar. In anderen Worten: Für jeden Quadratmeter der Erdoberfläche sind etwa 6,67 * 10^27 IPv6-Adressen verfügbar.

- Router speichern nur noch Netzwerk-Aggregationsadressen in Ihren Routingtabellen. Dadurch reduziert sich die durchschnittliche Größe einer Routingtabelle auf 8192 Einträge.

Weitere nützliche Eigenschaften von IPv6 sind:

- Die automatische Konfiguration von Adressen, die im RFC2462 beschrieben wird.

- Anycast-Adressen (“eine-von-vielen”)

- Verpflichtende Multicast-Adressen

- Die Unterstützung von IPsec (IP-Security)

- Eine vereinfachte Headerstruktur

- Mobile IP-Adressen

- Die Umwandlung von IPv4- in IPv6-Adressen

Weitere Informationsquellen:

- Beschreibung von IPv6 auf playground.sun.com

- KAME.net

## 32.11.1. Hintergrundinformationen zu IPv6-Adressen

Es gibt verschiedene Arten von IPv6-Adressen: Unicast-, Anycast- und Multicast-Adressen.

Unicast-Adressen sind die herkömlichen Adressen. Ein Paket, das an eine Unicast-Adresse gesendet wird, kommt nur an der Schnittstelle an, die dieser Adresse zugeordnet ist.

Anycast-Adressen unterscheiden sich in ihrer Syntax nicht von Unicast-Adressen, sie wählen allerdings aus mehreren Schnittstellen eine Schnittstelle aus. Ein für eine Anycast-Adresse bestimmtes Paket kommt an der nächstgelegenen (entsprechend der Router-Metrik) Schnittstelle an. Anycast-Adressen werden nur von Routern verwendet.

Multicast-Adressen bestimmen Gruppen, denen mehrere Schnittstellen angehören. Ein Paket, das an eine Multicast-Adresse geschickt wird, kommt an allen Schnittstellen an, die zur Multicast-Gruppe gehören.

> Anmerkung: Die von IPv4 bekannte Broadcast-Adresse (normalerweise `xxx.xxx.xxx.255`) wird bei IPv6 durch Multicast-Adressen verwirklicht.

Tabelle 32-2. Reservierte IPv6-Adressen

IPv6-Adresse | Präfixlänge | Beschreibung | Anmerkungen
--- | --- | --- | ---
`::` | 128 Bit | nicht festgelegt | entspricht `0.0.0.0` bei IPv4
`::1` | 128 Bit | Loopback-Adresse | entspricht `127.0.0.1` bei IPv4
`::00:xx:xx:xx:xx` | 96 Bit | Eingebettete IPv4-Adresse | Die niedrigen 32 Bit entsprechen der IPv4-Adresse. Wird auch als “IPv4-kompatible IPv6-Adresse bezeichnet”.
`::ff:xx:xx:xx:xx` | 96 Bit | Eine auf IPv6 abgebildete IPv4-Adresse | Die niedrigen 32 Bit entsprechen der IPv4-Adresse. Notwendig für Rechner, die IPv6 nicht unterstützen.
`fe80::` - `feb::` | 10 Bit | link-local | Entspricht der Loopback-Adresse bei IPv4
`fec0::` - `fef::` | 10 Bit | site-local |
`ff::` | 8 Bit | Multicast |
`001` (im Dualsystem) | 3 Bit | Globaler Unicast | Alle globalen Unicastadressen stammen aus diesem Pool. Die ersten 3 Bit lauten “001”.

## 32.11.2. IPv6-Adressen verstehen

Die kanonische Form von IPv6-Adressen lautet `x:x:x:x:x:x:x:x`, jedes “x” steht dabei für einen 16-Bit-Hexadezimalwert. Ein Beispiel für eine IPv6-Adresse wäre etwa `FEBC:A574:382B:23C1:AA49:4592:4EFE:9982`.

Eine IPv6-Adresse enthält oft Teilzeichenfolgen aus lauter Nullen. Eine solche Zeichenfolge kann zu “::” verkürzt werden. Bis zu drei führende Nullen eines Hexquads können ebenfalls weggelassen werden. `fe80::1` entspricht also der Adresse `fe80:0000:0000:0000:0000:0000:0000:0001`.

Eine weitere Möglichkeit ist die Darstellung der letzten 32 Bit in der bekannten (dezimalen) IPv4-Darstellung, bei der Punkte (“.”) zur Trennung verwendet werden. `2002::10.0.0.1` ist also nur eine andere Schreibweise für die (hexadezimale) kanonische Form `2002:0000:0000:0000:0000:0000:0a00:0001`, die wiederum der Adresse `2002::a00:1` entspricht.

Sie sollten nun in der Lage sein, die folgende Ausgabe zu verstehen:

    # ifconfig
    rl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
             inet 10.0.0.10 netmask 0xffffff00 broadcast 10.0.0.255
             inet6 fe80::200:21ff:fe03:8e1%rl0 prefixlen 64 scopeid 0x1
             ether 00:00:21:03:08:e1
             media: Ethernet autoselect (100baseTX )
             status: active

Bei `fe80::200:21ff:fe03:8e1%rl0` handelt es sich um eine automatisch konfigurierte link-local-Adresse. Sie wird im Rahmen der automatischen Konfiguration aus der MAC-Adresse erzeugt.

Weitere Informationen zum Aufbau von IPv6-Adressen finden Sie im RFC3513.

## 32.11.3. Eine IPv6-Verbindung herstellen

Es gibt derzeit vier Möglichkeiten, sich mit anderen IPv6-Rechnern oder Netzwerken zu verbinden:

- Fragen Sie Ihren Internetprovider, ob er IPv6 bereits unterstützt.

- SixXS bietet weltweit IPv6-Tunnelverbindungen an.

- Die Verwendung eines 6-nach-4-Tunnels (RFC3068).

- Die Verwendung des Ports `/usr/ports/net/freenet6` bei der Einwahl ins Internet.

## 32.11.4. DNS in der IPv6-Welt

Ursprünglich gab es zwei verschiedene DNS-Einträge für IPv6. Da A6-Einträge von der IETF für obsolet erklärt wurden, sind AAAA-Einträge nun Standard.

Weisen Sie die erhaltene IPv6-Adresse Ihrem Rechnernamen zu, indem Sie den Eintrag

    MYHOSTNAME           AAAA    MYIPv6ADDR

in Ihre primäre DNS-Zonendatei einfügen. Falls Sie nicht für Ihre DNS-Zone verantwortlich sind, bitten Sie den dafür Zuständigen, diese Änderung durchzuführen. Die aktuellen Versionen von bind (Version 8.3 oder 9) sowie `dns/djbdns` (bei Verwendung des IPv6-Patches) unterstützen AAAA-Einträge.

## 32.11.5. `/etc/rc.conf` für die Nutzung von IPv6 anpassen

### 32.11.5.1. Einen Client unter IPv6 einrichten

Dieser Abschnitt beschreibt die Konfiguration eines Rechners, der in Ihrem LAN als Client, aber nicht als Router verwendet wird. Um die Schnittstelle während des Systemstarts mit rtsol(8) automatisch einzurichten, fügen Sie folgende Zeile in `/etc/rc.conf` ein:

    ipv6_enable="YES"

Durch die folgende Zeile weisen Sie Ihrer Schnittstelle `fxp0` die statische IP-Adresse `2001:471:1f11:251:290:27ff:fee0:2093` zu:

    ipv6_ifconfig_fxp0="2001:471:1f11:251:290:27ff:fee0:2093"

Um `2001:471:1f11:251::1` als Standardrouter festzulegen, fügen Sie folgende Zeile in `/etc/rc.conf` ein:

    ipv6_defaultrouter="2001:471:1f11:251::1"

### 32.11.5.2. Gateways und Router unter IPv6 einrichten

Dieser Abschnitt beschreibt, wie Sie Ihren Rechner mit Hilfe der von Ihrem Tunnel-Anbieter erhaltenen Anweisungen dauerhaft für die Nutzung von IPv6 einrichten. Um den Tunnel beim Systemstart wiederherzustellen, passen Sie `/etc/rc.conf` wie folgt an:

Listen Sie die einzurichtenden Tunnelschnittstellen (hier `gif0`) auf:

    gif_interfaces="gif0"

Um den lokalen Endpunkt `MY_IPv4_ADDR` über diese Schnittstelle mit dem entfernten Endpunkt `REMOTE_IPv4_ADDR` zu verbinden, verwenden Sie folgende Zeile:

    gifconfig_gif0="MY_IPv4_ADDR REMOTE_IPv4_ADDR"

Um die Ihnen zugewiesene IPv6-Adresse als Endpunkt Ihres IPv6-Tunnels zu verwenden, fügen Sie folgende Zeile ein:

    ipv6_ifconfig_gif0="MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDR"

Nun müssen Sie nur noch die IPv6-Standardroute angeben. Diese legt das andere Ende des IPv6-Tunnels fest.

    ipv6_defaultrouter="MY_IPv6_REMOTE_TUNNEL_ENDPOINT_ADDR"

### 32.11.5.3. Einen IPv6-Tunnel einrichten

Wenn Ihr Server IPv6-Verkehr zwischen Ihrem Netzwerk und der Außenwelt routen muss, benötigen Sie zusätzlich die folgenden Zeilen in Ihrer `/etc/rc.conf`:

    ipv6_gateway_enable="YES"

## 32.11.6. Bekanntmachung von Routen und automatische Rechnerkonfiguration

Dieser Abschnitt beschreibt die Einrichtung von rtadvd(8), das Sie bei der Bekanntmachung der IPv6-Standardroute unterstützt.

Um rtadvd(8) zu aktivieren, fügen Sie folgende Zeile in `/etc/rc.conf` ein:

    rtadvd_enable="YES"

Es ist wichtig, die Schnittstelle anzugeben, über die IPv6-Routen bekanntgemacht werden sollen. Soll rtadvd(8) `fxp0` verwenden, ist folgender Eintrag nötig:

    rtadvd_interfaces="fxp0"

Danach erzeugen Sie die Konfigurationsdatei `/etc/rtadvd.conf`. Dazu ein Beispiel:

    fxp0:\
        :addrs#1:addr="2001:471:1f11:246::":prefixlen#64:tc=ether:

Ersetzen Sie dabei `fxp0` durch die zu verwendende Schnittstelle.

Anschließend ersetzen Sie `2001:471:1f11:246::` durch das Präfix der Ihnen zugewiesenen Verbindung.

Wenn Sie eine `/64`-Netzmaske verwenden, müssen Sie keine weiteren Anpassungen vornehmen. Anderenfalls müssen Sie `prefixlen#` auf den korrekten Wert setzen.

Zurück | Zum Anfang | Weiter
PLIP – Parallel Line IP | Nach oben | ATM - Asynchronous Transfer Mode

Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an <de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <de-bsd-translators@de.FreeBSD.org>.