25.10. 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:

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

Weitere nützliche Eigenschaften von IPv6 sind:

Weitere Informationsquellen:

25.10.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 25-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”.

25.10.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.

25.10.3. Eine IPv6-Verbindung herstellen

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

In diesem Abschnitt wird die Einrichtung einer Verbindung zum 6bone beschrieben, da dies derzeit der beliebteste Weg ist.

Suchen Sie sich zuerst auf der Internetseite des 6bone-Projekts einen 6bone-Knoten in Ihrer Nähe. Schreiben Sie an die verantwortliche Person und mit etwas Glück erhalten Sie entsprechende Anweisungen, um Ihre Verbindung einzurichten. Dazu gehört üblicherweise die Einrichtung eines GRE-(gif)-Tunnels.

Typischerweise wird ein gif(4)-Tunnels wie folgt eingerichtet:

# ifconfig gif0 create
# ifconfig gif0
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
# ifconfig gif0 tunnel MY_IPv4_ADDR  HIS_IPv4_ADDR
# ifconfig gif0 inet6 alias MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDR

Ersetzen Sie die in Großbuchstaben geschriebenen Werte durch die Informationen, die Sie für Ihren 6bone-Knoten erhalten haben.

Die gezeigten Befehle bauen den Tunnel auf. Überprüfen Sie die korrekte Funktion, indem Sie ff02::1%gif0 anping6(8)en. Sie sollten zwei Antworten erhalten.

Anmerkung: Bei ff02:1%gif0 handelt es sich um eine Multicast-Adresse. %gif0 legt fest, dass die Multicast-Adresse der Schnittstelle gif0 verwendet werden soll. Da wir eine Multicast-Adresse angeping6(8)t haben, sollte der andere Endpunkt des Tunnels ebenfalls antworten.

Eine Route zu Ihrem 6bone-Knoten können Sie einfach wie folgt einrichten:

# route add -inet6 default -interface gif0
# ping6 -n MY_UPLINK
# traceroute6 www.jp.FreeBSD.org
(3ffe:505:2008:1:2a0:24ff:fe57:e561) from 3ffe:8060:100::40:2, 30 hops max, 12 byte packets
     1  atnet-meta6  14.147 ms  15.499 ms  24.319 ms
     2  6bone-gw2-ATNET-NT.ipv6.tilab.com  103.408 ms  95.072 ms *
     3  3ffe:1831:0:ffff::4  138.645 ms  134.437 ms  144.257 ms
     4  3ffe:1810:0:6:290:27ff:fe79:7677  282.975 ms  278.666 ms  292.811 ms
     5  3ffe:1800:0:ff00::4  400.131 ms  396.324 ms  394.769 ms
     6  3ffe:1800:0:3:290:27ff:fe14:cdee  394.712 ms  397.19 ms  394.102 ms

Diese Ausgabe kann auf Ihrem Rechner unterschiedlich sein. Sie sollten aber jetzt die IPv6-Seite www.kame.net erreichen und die tanzende Schildkröte sehen können - vorausgesetzt, Sie haben einen IPv6-fähigen Browser wie www/mozilla, Konqueror (als Teil des Pakets x11/kdebase3) oder www/epiphany installiert.

25.10.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.

25.10.5. /etc/rc.conf für die Nutzung von IPv6 anpassen

25.10.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"

25.10.5.2. Gateways und Router unter IPv6 einrichten

Dieser Abschnitt beschreibt, wie Sie Ihren Rechner mit Hilfe der von Ihrem Tunnel-Anbieter, beispielsweise 6bone, 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"

25.10.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.

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>.

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 17:56:55