IPv6-Zugang fürs LAN nachrüsten

Seite 2: Linux als IPv6-Router

Inhaltsverzeichnis

Für den Betrieb des Routers reicht ein einfaches, schlankes Linux mit einem aktuellen 2.6er Kernel, der möglichst keine Dienste wie Webserver oder Datenbanken betreiben muss. Für die Experimente setzen wir auf ein minimales, nur mit unbedingt nötigen Paketen bestücktes Debian-Linux.

Vor dem Einrichten des IPv6-Routers muss man sich bei einem Tunnelbroker einen Zugang sowie einen Netzwerk-Präfix besorgen. Sowohl Gogo6/Freenet6 als auch Sixxs bieten kostenlos solche Tunnel an und vergeben auch Präfixe, mit denen sich Rechner im eigenen LAN mit global gültigen IPv6-Adressen versorgen lassen. Beide Betreiber verlangen allerdings eine Anmeldung.

Der IPv6-Router nutzt den vorhandenen IPv4-Internetzugang für seinen Tunnel, in dem IPv6-Pakete zum Einwahlknoten des Tunnelbrokers gelangen. Der reicht sie an die Ziele im IPv6-Internet weiter.

Beim Sixxs beantragt man den Zugang über ein Webformular, das auch einige Gründe für die Nutzung abfragt. Das Netzwerkpräfix teilt das Sixxs aber erst zu, wenn der IPv6-Tunnel bereits einige Zeit läuft. Dabei honoriert das Projekt laufende IPv6-Tunnel mit Bonuspunkten (IP SixXS Kredit (ISK)), über die man etwa Support erhält oder das Präfix beantragen kann. Diese Zuteilung kann einige Tage dauern. Unter einem Debian-Linux installiert man den Sixxs-Client aiccu sowie den fürs IPv6-Routing zuständigen radvd via aptitude install aiccu radvd.

Da der Tunnel-Client aiccu die Systemzeit überprüft und bei Abweichungen seinen Dienst quittiert, sollte ein NTP-Client wie ntpdate oder chronyd in regelmäßigen Abständen die Uhr des IPv6-Routers über das Internet justieren. Beide Programme stehen ebenfalls im Debian-Software-Repository zur Installation mit aptitude bereit.

Setzt man beim IPv6-Tunnel auf Sixxs (aiccu), ergänzt man nach der Installation die Aiccu-Konfiguration unter /etc/aiccu.conf um den User-Namen, das Passwort, eine Tunnelkennung sowie einige weitere Optionen:

username SIXXS-USERNAME
password SIXXS-PASSWORD
tunnel_id TXXXX
server tic.sixxs.net
automatic true
verbose true
daemonize false
behindnat true
defaultroute true

Dass der IPv6-Router in einem per Network Address Translation (NAT) abgetrennten lokalen Netz arbeitet, zeigt man mit der Option behindnat true an. Mit automatic true aktiviert aiccu den Tunnel automatisch. Per Vorgabe tunnelt der Client die IPv6-Pakete über ein virtuelles Netzwerk-Interface (TUN-Device) names aiccu. Taucht das nicht in der Liste der Netzwerk-Interfaces auf (ifconfig), erzwingt die Option ipv6_interface aiccu die Namensgebung. Mit dem Konfigurationseintrag defaultroute true setzt aiccu die Standardroute für IPv6.

Anschließend startet der Tunnel-Client mit dem Kommando aiccu start. Mögliche Fehlermeldungen lassen sich mit dem Befehl aiccu test untersuchen. Steht die Option daemonize wie oben geschrieben auf false, bricht man aiccu mit der Tastenkombination Strg+C ab.

Treten beim Verbindungsaufbau keine Fehler auf, setzt man in der Konfigurationsdatei verbose auf false und daemonize auf true. Das Programm startet nun als schweigsamer Hintergrundprozess und lässt sich mit dem Befehl aiccu stop beenden.

Hat das Sixxs einen /48-Präfix zugewiesen, erweitert man die IPv6-Konfiguration des neuen Routers: Wie im Online-Artikel IPv6-Internetzugang auf heise Netze detailliert beschrieben, erstellt man in der Datei /etc/network/interfaces eine neue Schnittstellenbeschreibung für das Tunnel-Interface des Sixxs-Clients. Sie kümmert sich um die Einrichtung der IPv6-Adresse für das LAN-Interface (meist eth0), startet und stoppt aiccu und setzt gegebenenfalls zusätzliche Routen.

Läuft das Interface und der Tunnel, lässt sich die Verbindung mittels ping6 www.heise.de überprüfen. Antwortet der Server, funktionieren Tunnel und Namensauflösung vom IPv6-Router aus. Nun muss der Router das Präfix und die Routing-Informationen an die anderen Rechner im lokalen Netz bekannt geben (Router Advertisement, RA), was bei einem Sixxs-Tunnel einige Einträge in der Datei /etc/radvd.conf erledigen:

interface eth0 {
AdvSendAdvert on;
prefix 2001:db8::/64
{
};
};

Ändern Sie in diesem Beispiel den Wert hinter prefix auf das vom Sixxs zugewiesene Netzwerk-Präfix. Das Programm radvd verteilt allerdings nur /64-Präfixe, sodass man das vom Sixxs zugewiesene /48er Präfix etwa mit Nullen auffüllt. Die Zeile interface eth0 weist radvd an, die Informationen über die Netzwerkkarte eth0 raus zugeben. Mit der Option AdvSendAdvert on sendet der Router in Intervallen RA-Nachrichten ins Netz und antwortet auf Router-Solicitation-Anfragen von IPv6-tauglichen Clients. Außerdem muss der IPv6-Router Netzwerkpakete für IPv6 weiterreichen (Paket-Forwarding), da ansonsten radvd nicht startet. Das Kommando

echo 1 > /proc/sys/net/ipv6/conf/all/forwarding 

schaltet dieses Verhalten für alle Netzwerkkarten ein. Nach dem Start von radvd auf dem IPv6-Router sollten nun andere IPv6-taugliche LAN-Rechner wenigstens eine global gültige IPv6-Adresse mit dem eigenen Präfix erhalten, was sich unter Windows mit dem Befehl ipconfig oder auf Linux und Mac OS mit ifconfig erfahren lässt.