32.9. IPv6

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

IPv6, auch bekannt als IPng oder IP next generation, ist die neueste Version des bekannten IP-Protokolls, das auch als IPv4 bezeichnet wird. FreeBSD enthält die IPv6-Referenzimplementation von KAME. FreeBSD erfüllt damit bereits alle für die Nutzung von IPv6 nötigen Voraussetzungen. Dieser Abschnitt konzentriert sich 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 Wachstum des Internets gab es zwei Hauptsorgen:

IPv6 hat viele weitere nützliche Funktionen:

Weitere nützliche Eigenschaften von IPv6 sind:

Weitere Informationsquellen:

32.9.1. Hintergrundinformationen zu IPv6-Adressen

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

Unicast-Adressen sind die herkömmlichen 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.3. Reservierte IPv6-Adressen
IPv6-AdressePräfixlängeBeschreibungAnmerkungen
::128 Bitnicht festgelegtentspricht 0.0.0.0 bei IPv4.
::1128 BitLoopback-Adresseentspricht 127.0.0.1 bei IPv4.
::00:xx:xx:xx:xx96 BitEingebettete IPv4-AdresseDie niedrigen 32 Bit sind die kompatiblen IPv4-Adressen.
::ff:xx:xx:xx:xx96 BitEine auf IPv6 abgebildete IPv4-Adresse.Die niedrigen 32 Bit sind IPv4-Adressen für Hosts, die kein IPv6 unterstützen.
fe80:: - feb::10 Bitlink-localEntspricht der Loopback-Adresse bei IPv4.
fec0:: - fef::10 Bitsite-local 
ff::8 BitMulticast 
001 (im Dualsystem)3 BitGlobaler UnicastAlle globalen Unicastadressen stammen aus diesem Pool. Die ersten 3 Bit lauten 001.

32.9.2. IPv6-Adressen verstehen

Die kanonische Form von IPv6-Adressen lautet x:x:x:x:x:x:x:x, wobei jedes x für einen 16-Bit-Hexadezimalwert steht. 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.

Hier ist eine beispielhafte Ausgabe von ifconfig(8):

# 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.9.3. Eine IPv6-Verbindung herstellen

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

  • Fragen Sie einen Internetprovider, ob er IPv6 anbietet.

  • SixXS bietet weltweit IPv6-Tunnelverbindungen an.

  • Hurricane Electric bietet weltweit IPv6-Tunnelverbindungen an.

  • Die Verwendung eines 6to4-Tunnel, wie im RFC3068 beschrieben.

  • Die Verwendung des Ports /usr/ports/net/freenet6 Einwahlverbindungen.

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

32.9.4.1. IPv6 Client Autokonfiguration

Zwei Dinge sind erforderlich, um eine Maschine in einem LAN, die als Client und nicht als Router verwendet wird, automatisch zu konfigurieren. Zuerst müssen Sie es der Schnittstelle em0 ermöglichen, Router-Solicitation-Nachrichten zu empfangen. Fügen Sie dazu folgende Zeile in /etc/rc.conf ein:

ifconfig_em0_ipv6="inet6 accept_rtadv"

Danach sollte der Router-Solicitation Dienst, rtsol(8) durch folgende Zeile in /etc/rc.conf aktiviert werden:

rtsold_enable="YES"

Für FreeBSD 8.x (und älter) fügen Sie stattdessen folgende Zeile hinzu:

ipv6_enable="YES"

32.9.4.2. IPv6 Statische Client Konfiguration

Unter FreeBSD 9.x weisen Sie durch die folgende Zeile der Schnittstelle fxp0 die statische IPv6-Adresse 2001:db8:4672:6565:2026:5043:2d42:5344 zu:

ifconfig_fxp0_ipv6="inet6
2001:db8:4672:6565:2026:5043:2d42:5344 prefixlen 64"

Anmerkung:

Achten Sie darauf, prefixlen 64 auf den entsprechenden Wert für das Subnetz zu ändern.

Für FreeBSD 8.x fügen Sie dagegen folgende Zeile hinzu:

ipv6_ifconfig_fxp0="2001:db8:4672:6565:2026:5043:2d42:5344"

Um 2001:db8:4672:6565::1 als Standardrouter festzulegen, fügen Sie folgende Zeile in /etc/rc.conf ein:

ipv6_defaultrouter="2001:db8:4672:6565::1"

32.9.4.3. Gateways und Router unter IPv6 einrichten

Dieser Abschnitt beschreibt, wie Sie einen Rechner mit Hilfe den von einem 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 auf. Dieses Beispiel konfiguriert die Schnittstelle gif0:

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 zugewiesene IPv6-Adresse als Endpunkt für den IPv6-Tunnel zu verwenden, fügen Sie folgende Zeile für FreeBSD 9.x (und neuer) ein:

ifconfig_gif0_ipv6="inet6
MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDR"

Für FreeBSD 8.x (und älter) fügen Sie folgende Zeile ein:

ipv6_ifconfig_gif0="
MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDR"

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

ipv6_defaultrouter="MY_IPv6_REMOTE_TUNNEL_ENDPOINT_ADDR"

32.9.4.4. Einen IPv6-Tunnel einrichten

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

ipv6_gateway_enable="YES"

32.9.5. 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, und 2001:471:1f11:246:: durch das entsprechend zugewiesene Präfix.

Bei einem /64-Subnetz müssen keine weiteren Anpassungen vorgenommen werden. Anderenfalls muss prefixlen# auf den korrekten Wert gesetzt werden.

32.9.6. IPv6 und Abbildung von IPv6-Adressen

Wenn IPv6 auf einem Server aktiviert ist, kann es für die Kommunikation erforderlich sein, IPv4-Adressen auf IPv6-Adressen abzubilden. Diese Kompatibilität erlaubt es, das IPv4-Adressen als IPv6-Adressen dargestellt werden. Die Kommunikation von IPv6-Anwendungen mit IPv4 und umgekehrt kann jedoch ein Sicherheitsrisiko darstellen.

Diese Option dient nur der Kompatibilität und wird in den meisten Fällen nicht erforderlich sein. Die Option ermöglicht es IPv6-Anwendungen zusammen mit IPv4 in einer Dual-Stack-Umgebung zu funktionieren. Dies ist besonders nützlich für Anwendungen von Drittanbietern, die evtl. keine IPv6-Umgebungen unterstützen. Um diese Funktion zu aktivieren, fügen Sie folgendes in /etc/rc.conf hinzu:

ipv6_ip4mapping="YES"

Für einige Administratoren können die Informationen im RFC 3493 (Sektion 3.6 und 3.7) und RFC 4038 (Sektion 4.2) hilreich sein.

32.9.7. Verwendung von IPv6 in Anwendungen

Derzeit ist die Unterstützung für IPv6 für viele Anwendungen und Dienste sehr gut, obwohl einige Software noch etwas Arbeit benötigt. Für zuverlässige Informationen über die Unterstützung von IPv6, konsultieren Sie die offizielle Dokumentation der entsprechenden Software.

Web-, DNS- und Mailprogramme und Server bieten die beste Unterstützung für IPv6, weil sie die gebräuchlichsten Anwendungsfälle darstellen. Andere Anwendungen bieten einen unterschiedlichen Grad an IPv6-Unterstützung.

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