4.1. IPv6 kompatibler Kernel

Neuere Linux Distributionen beinhalten bereits einen IPv6-fähigen Kernel. Die IPv6-Funktionalität wird im Allgemeinen als Modul kompiliert. Es ist aber durchaus möglich, dass das Modul nicht automatisch beim Start des Betriebssystems geladen wird.

Hinweis: Sie sollten die Kernel Serie 2.2.x nicht mehr verwenden, da die IPv6-Implementierung nicht mehr aktuell ist. Auch die in der Serie 2.4.x wird nicht mehr weiterentwickelt bzgl. der Definitionen in den neueren RFCs. Es wird empfohlen, einen aus der Serie 2.6.x zu verwenden.

4.1.1. Überprüfung der IPv6 Unterstützung im aktuellen Kernel

Um zu überprüfen, ob ihr aktueller Kernel IPv6 unterstützt, sollten sie einen Blick in ihr /proc-Dateisystem werfen. Folgende Einträge müssen existieren:

/proc/net/if_inet6

Einen kleinen automatischen Test können Sie wie folgt durchführen:

# test -f /proc/net/if_inet6 && echo "Running kernel is IPv6 ready"

Wenn dieser Test negativ verläuft, ist das IPv6 Modul aller Wahrscheinlichkeit noch nicht geladen.

4.1.2. IPv6 Module laden

Mit folgenden Befehl können Sie versuchen, das Modul zu laden:

# modprobe ipv6

Wenn dieser Befehl positiv verläuft, dann sollten Sie das Modul mit folgendem Befehl auflisten können:

# lsmod |grep -w 'ipv6' && echo "IPv6 module successfully loaded"

Der obige Test sollte nun erfolgreich verlaufen.

Hinweis: Ein Entfernen des Moduls im laufenden System wird derzeit nicht unterstützt und kann unter gewissen Bedingungen zu einem Absturz des Kernels führen.

4.1.2.1. Automatisches Laden des Moduls

Es ist möglich das IPv6 Modul bei Bedarf automatisch zu laden. Sie müssen nur folgende Zeile in die Konfigurationsdatei des kernel modul loaders eintragen (normalerweise: /etc/modules.conf oder /etc/conf.modules):

alias net-pf-10 ipv6  # automatically load IPv6 module on demand

Mit der folgenden Zeile ist es auch möglich, das automatische Laden des IPv6 Moduls auszuschalten.

alias net-pf-10 off   # disable automatically load of IPv6 module on demand

Anmerkung: In Kernel Series 2.6.x wurde der Modul-Lade-Mechanismus geändert. Die neue Konfigurationsdatei wird anstelle /etc/modules.conf nun /etc/modprobe.conf genannt.

4.1.3. Kernel-Kompilierung mit IPv6 Funktionalität

Wenn beide oben gezeigten Methoden ohne Erfolg blieben und ihr Kernel somit keine IPv6 Unterstützung bietet, dann haben Sie folgende Optionen:

Falls Sie sich dazu entscheiden, einen neuen IPv6 kompatiblen Kernel zu kompilieren, sollten Sie auf jeden Fall bereits Erfahrung mit der Kernel-Kompilierung haben sowie das Linux Kernel HOWTO lesen.

Ein Vergleich zwischen dem Standard-Kernel und dem Kernel mit USAGI-Erweiterungen ist verfügbar unter IPv6+Linux-Status-Kernel.

4.1.3.1. Kompilieren eines Standard-Kernels

Detailliertere Ausführungen zur Kompilierung eines IPv6 fähigen Kernels finden Sie unter IPv6-HOWTO-2#kernel.

Hinweis: Sie sollten wann immer möglich die Kernel Serie 2.6.x oder höher einsetzen, da die IPv6 Unterstützung der Serie 2.4.x nur einige Backports erhält und die IPv6-Unterstützung von Serie 2.2.x hoffnungslos veraltet ist und nicht mehr weiterentwickelt wird.

4.1.3.2. Kompilieren eines Kernels mit USAGI-Erweiterungen

Wie für den Standard-Kernel gilt auch hier, dass das Kompilieren des Kernels nur fortgeschrittenen Benutzern empfohlen wird, die mit IPv6 und dem Kompilieren des Kernels bereits vertraut sind.

Siehe auch USAGI project / FAQ und Obtaining the best IPv6 support with Linux (Article) (Spiegel).

4.1.4. IPv6 kompatible Netzwerkgeräte

Nicht alle Netzwerkgeräte sind bereits (bzw. überhaupt) dazu in der Lage, IPv6 Pakete übertragen zu können. Den aktuellen Status können Sie unter IPv6+Linux-status-kernel.html#transport.

Ein entscheidender Punkt ist die Tatsache, dass ein IPv6 Paket wegen der Struktur der Netzwerkschicht in der Kernel-Implementierung nicht wirklich aufgrund der IP-Header-Nummer (6 anstelle 4) wiedererkannt wird. Es wird aufgrund der Protokollnummer der Schicht 2 Transport-Protokolls wiedererkannt. Folglich können IPv6 Pakete von keinem Transport-Protokoll verwendet werden, welche diese Protokoll-Nummer nicht nutzen. Hinweis: Das Paket wird nach wie vor über den Link transportiert, aber auf der Empfänger-Seite kann das Paket nicht verarbeitet werden (Sie können dies z.B. mit tcpdump sehen).

4.1.4.1. Gegenwärtig bekannte Verbindungsarten, die niemals IPv6 fähig sein werden

  • Serial Line IP (RFC 1055 / SLIP), auch SLIPv4 genannt; das Gerät heißt: s1X

  • Parallel Line IP (PLIP), gleich dem SLIP, Gerätename: plipX

  • ISDN mit rawip Encapsulation; Gerätename: isdnX

4.1.4.2. Bekannte Verbindungsarten, die gegenwärtig IPv6 nicht unterstützen

  • ISDN mit syncppp Encapsulation; Gerätename: ipppX (Designfrage des ipppd; in der Kernel Serie 2.5.x wird ipppX in einer allgemeinen PPP Schicht inkludiert)