next up previous contents
Nächste Seite: 4 Linux basierte Routingfunktionalität Aufwärts: Inhalt Vorherige Seite: 2 IPv6 im Überblick   Inhalt

Unterabschnitte

3 Vorbereitungen

1 Hardware und Software

Die genauen Spezifikationen der verwendeten Hardware finden sich in Anhang B. Es stehen zwei Intel Pentium III PCs mit Linux (Debian 3.0) zur Verfügung, die mit jeweils zwei Fast-Ethernet-Karten ausgestattet sind. Ebenfalls auf einem Intel Pentium III PC sind in einem Dual-Boot-Setup die Microsoft-Betriebssysteme Windows 2000 Professional und Windows 2003 Advanced Server installiert. Als weiterer Client kommt ein Apple iBook (Betriebssystem Mac OS 10.2) aus privatem Besitz zum Einsatz.

Des weiteren stehen fünf Cisco-Router zur Verfügung, vier sind Teil des Übungsnetzwerkes im KOM-Labor (Zimmer E423) und sind nicht IPv6-tauglich, der mit der IPv6-fähigen IOS-Version 12.3(1a) ausgerüstete Cisco 2611XM besitzt vier serielle und zwei Fast-Ethernet-Schnittstellen.

Zur Aufzeichnung des Netzwerkverkehrs dient ein Domino LAN Analyzer DA-360, welcher zwei Fast-Ethernet-Anschlüsse besitzt, die so konfiguriert werden können, dass eine 100Mbit-Fullduplex-Verbindung durchgeschlauft werden kann und so der Verkehr ohne Beeinträchtigung mitgeschnitten kann.

Die Auswertung der gesammelten Netzwerkdaten wird mit Ethereal[*] vorgenommen, da dieses bessere Unterstützung für die neuesten IPv6-Protokolle bietet als die Acterna-Domino-Software.

Um für die Routing-Protokoll-Versuche zwei IPv6-fähige Router zur Verfügung zu haben, wird in diesen Versuchen auf dem einen Linux-PC die Routing-Software Zebra[*] eingesetzt, von der es mittlerweilen eine aktuellere Variante namens Quagga[*] gibt, die ein etwas offeneres Entwicklungsmodell anstrebt. Die Installation und Konfiguration von Zebra wird in den jeweiligen Kapiteln beschrieben.

2 Konfiguration der Betriebssysteme

Für die meisten aktuellen Betriebssysteme ist IPv6-Support erhältlich, oft muss dieser jedoch noch aktiviert werden, teilweise müssen auch Zusatzpakete installiert werden. In diesem Kapitel wird beschrieben, wie verschiedene Betriebssysteme IPv6-tauglich gemacht werden können und wie manuell IPv6-Adressen vergeben werden können.

1 IPv6-Unterstützung im Linux-Kernel

Der Standard-Linuxkernel bietet zwar grundsätzlich Unterstützung für IPv6, diese ist jedoch nicht auf dem aktuellsten Stand. Das USAGI-Projekt[*]hat sich zum Ziel gesetzt, die Unterstützung von IPv6 und IPsec im Linuxkernel zu verbessern. Die Entwicklung ist ziemlich aktiv, es gibt alle zwei Wochen einen Snapshot des USAGI-Kits zum Download, welcher neben einem angepassten Kernel-Source-Tree eine Reihe von Bibliotheken und Hilfsprogrammen enthält.

Für diese Versuchsreihe wurde der USAGI-Kernel aus dem Snapshot vom 1. September 2003 benutzt. Alle Bibliotheken und verwendeten Programme entstammen der aktuellen Debian GNU/Linux Distribution (Version 3.0 Woody).

Die Installation des USAGI-Kernels wurde gemäss dem Artikel Obtaining the best IPv6 support with Linux von Mauro Tortonesis (22) vorgenommen. Zunächst wird der Tarball mit dem USAGI-Kit entpackt und die Kernel-Quellen vorbereitet:

# tar xjvf usagi-linux24-s20030901.tar.bz2
# cd usagi
# make prepare TARGET=linux24

Für die Konfiguration wurden die Vorgaben des Debian Standard-Kernels verwendet (/boot/config-2.2.20-idepci) und für die IPv6-relevanten Optionen die Empfehlungen aus Mauro Tortonesis Artikel (vgl. Anhang C.1).

Die Kernelquellen liegen im USAGI-Verzeichnis unter kernel/linux24/, die Konfiguration geschieht über den Befehl make menuconfig. Der Kernel und die Module können dann mit den Befehlen make dep, make bzImage, make modules, make modules_install kompiliert werden, die Module werden so automatisch ins richtige Verzeichnis kopiert.

Da es sich bei den USAGI-Snapshots um Entwicklerversionen handelt, die als unstable bezeichnet werden, kann es gut sein, dass beim Kompiliervorgang Fehler auftreten. Im Fall des Snapshots vom 1. September musste in der Zeile 3999 in der Datei net/ipv6/addrconf.c eine Zeile #undef CONFIG_IPV6_PRIVACY eingetragen werden, da der entsprechende Block eine Fehlermeldung verursachte.

Ist der Kernel erfolgreich kompiliert, kann er ins /boot-Verzeichnis kopiert werden (cp arch/i386/boot/bzImage /boot/vmlinuz-2.4.22) und der Bootloader Lilo konfiguriert werden:

# mv /vmlinuz /vmlinuz.old
# ln -s /boot/vmlinuz-2.4.22 /vmlinuz
# lilo

Damit nach dem Reboot das IPv6-Modul bei Bedarf automatisch geladen wird, muss noch ein Eintrag alias net-pf-10 ipv6 in /etc/modules.conf vorgenommen werden. Bei Debian wird diese Zeile in /etc/modutils/aliases eingetragen und anschliessend der Befehl update-modules ausgeführt.

Nach einem Reboot mit dem neuen Kernel ist nun die Unterstützung für IPv6 vorhanden, die meiste bei Debian mitgelieferte Netzwerksoftware ist bereits mit IPv6-Support versehen, so dass hier keine weitere Konfiguration notwendig ist. Es empfiehlt sich aber, für weitere Tests sowie für die Verwaltung der Netzwerkinterfaces die Pakete iproute, iputils-ping sowie iputils-tracepath zu installieren.

2 IPv6-Unterstützung für Windows 2000

Die neuste Generation der Microsoft Windows Betriebssysteme besitzt bereits Unterstützung für IPv6. Für Windows 2000 muss jedoch eine IPv6 Technology Preview installiert werden, welche bei Microsoft heruntergeladen werden kann[*]. Nach der Installation wird jedem Netzwerkanschluss automatisch der IPv6-Protokollstack hinzugefügt.

3 IPv6-Unterstützung für Windows 2003 Advanced Server

Mit Windows 2003 Advanced Server wird ein IPv6-Stack bereits mitgeliefert. Er muss jedoch manuell aktiviert werden. Dies geschieht mit dem Tool netsh.exe. Mit dem Befehl netsh wird eine Konsole geöffnet, in der mit interface ipv6 der Konfigurationsmodus für IPv6 aktiviert wird. Auf dieser Konsole kann nun mit dem Befehl install die IPv6-Unterstützung aktiviert werden. Für jede Netzwerkkarte wird so je ein IPv6-Interface sowie ein 6-over-4-Tunnelinterface aktiviert.

4 IPv6-Unterstützung für Mac OS X

Mac OS X bringt seit Version 10.2.0 IPv6-Unterstützung mit. Sie ist standardmässig aktiviert, jedoch ausschliesslich über die Kommandozeile konfigurierbar.


next up previous contents
Nächste Seite: 4 Linux basierte Routingfunktionalität Aufwärts: Inhalt Vorherige Seite: 2 IPv6 im Überblick   Inhalt
Beat Graf / Daniel Werner