This is an archive of past FreeBSD releases; it's part of the FreeBSD Documentation Archive.
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:
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. Dennoch gibt es nur noch
wenige verbleibende IPv4-Adressen. Die
Internet Assigned Numbers Authority
(IANA) hat bereits die letzten
verfügbaren Blöcke an die regionalen Registrare ausgestellt.
Sobald diese durch die regionalen Registrare verteilt
wurden, stehen keine weiteren Adressen zur Verfügung. Die
Umstellung auf IPv6 wird dann von
entscheidender Bedeutung sein.
Jeder zugeordnete Block von IPv4-Adressen erfordert, dass Routing-Informationen zwischen vielen Routern im Internet ausgetauscht werden müssen. Die Routing-Tabellen wurden mit der Zeit so groß, dass ein effizientes Routing jetzt kaum noch möglich ist.
IPv6 hat viele weitere nützliche Funktionen:
IPv6 hat einen 128 Bit großen Adressraum, der 340.282.366.920.938.463.463.374.607.431.768.211.456 Adressen erlaubt. 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:
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.
Die von IPv4 bekannte
Broadcast-Adresse (normalerweise
xxx.xxx.xxx.255
)
wird bei IPv6
durch Multicast-Adressen verwirklicht.
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 sind die kompatiblen IPv4-Adressen. |
::ff:xx:xx:xx:xx | 96 Bit | Eine auf IPv6 abgebildete IPv4-Adresse. | Die niedrigen 32 Bit sind IPv4-Adressen für Hosts, die kein IPv6 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“. |
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.
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.
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"
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"
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"
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
gif
:0
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
"
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.
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.
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>.