Direkt zum Hauptbereich

IPv6-Tunnel unter FreeBSD mit SixXS

IPv6

Um mich schon mal ein wenig vertraut zu machen mit IPv6, habe ich mir vor ein paar Monaten einen kostenlosen IPv6-Nummernblock (Subnetz) bei SixXS besorgt.

Die Rechner in meinem kleinen Hausnetz sind jetzt alle direkt per IPv6 mit dem Internet verbunden und ansprechbar, es gibt hier kein NAT oder ähnliches. Da ich ein eigenes öffentliches Subnetz habe, sind die öffentlichen IP-Adressen für die einzelnen Systeme auch fix.

Die Technik

Die technische Realisierung des IPv6-Netzes erfolgt über einen “Tunnel”. Das ist ein Konstrukt, in dem die IPv6-Pakete eines LANs in IPv4-Paketen “verpackt” werden und dann über die IPv4-Verbindung des “konventionellen” DSL-Providers zum Tunnel-Provider von SixXS geschickt werden. Dort werden sie wieder “ausgepackt” und ins IPv6-Netz weiter geleitet. In Gegenrichtung funktioniert das genauso. Um diesen Tunnel aufzubauen, muss dazu im eigenen LAN eine entsprechende Software laufen. Ich verwende dazu AICCU, das für alle wichtigen Plattformen verfügbar ist.

AICCU läuft bei mir auf dem FreeBSD-Server und ist über die Ports-Collection ganz einfach zu installieren. In der Datei /usr/local/etc/aiccu.conf müssen noch wenige Einträge gemacht werden, und es kann los gehen:

# AICCU Configurationusername MeinBenutzernamepassword MeinPasswort
ipv6_interface gif0verbose falsedaemonize true
automatic true 
requiretls falsepidfile /var/run/aiccu.pid

Wenn AICCU läuft, hat man eine zusätzliche “virtuelle Netzwerkkarte” auf seinem “Tunnelrechner”, über die dann der IPv6-Verkehr geroutet wird. AICCU wacht übrigens selbst über die Verbindung, so dass nach einer Zwangstrennung durch den DSL-Provider der IPv6-Tunnel wieder selbstständig neu aufgebaut wird.

In einem IPv6-Netz muß man die Clients nicht mehr manuell oder per DHCP konfigurieren, jeder Client sucht sich selbst eine IPv6-Adresse. Um dem Client dennoch mitzuteilen, wie er über IPv6 ins Internet gelangt, läuft auf dem Rechner mit dem IPv6-Tunnel ein “Route advertising daemon”, unter FreeBSD ist das der rtadvd, unter Linux der radvd. Auch für diesen Daemon gibt es eine kurze Konfigurationsdatei /etc/rtadvd.conf, welche dem rtadvd sagt, über welche physische Netzwerkkarte er “advertisen” soll.
Netzwerkinterface:\
:addrs#1:addr=”IPv6-Subnetz”:prefixlen#64:tc=ether:

Es ist natürlich ratsam, auf dem Rechner, auf dem der Tunnel läuft, auch einen Paketfilter für die IPv6-Pakete einzurichten, damit der Zugriff auf das eigene Netz von außen über IPv6 eingeschränkt werden kann.

Falls mal die IPv6-Adreßzuweisung auf einem FreeBSD-Client “klemmen” sollte, kann man über den Befehl rtsol -dDF Interfacename den Rechner anweisen, sich im LAN die Routing-Informationen zu holen.
Ich hatte AICCU zwischendurch auch mal auf meinem OpenWRT-Router laufen, dort war es aber recht instabil, so dass ich es wieder auf den FreeBSD-Server zurück migriert habe.

Falls man nur mit einem Rechner per IPv6 ins Internet möchte, reicht auch eine “kleine” Lösung wie Freenet6.

IPv6 kann man problemlos parallel zu IPv4 betreiben, die betreffenden Rechner haben dann jeweils mindestens eine IPv4- und eine IPv6-Adresse (“dual stack”). Es gibt auf FreeBSD und Linux einen eigenen ping-Befehl für IPv6-der treffenderweise ping6 heißt. Das ftp-Kommando und “höhere” Anwendungen wie Browser nutzen automatisch IPv6, wenn verfügbar. Wichtig ist, ggfs. beim Compilieren von Anwendungen darauf zu achten, dass eventuell vorhandene IPv6-Optionen aktiviert sind.

Praktische Anwendungen

Ich weiß nicht, wieviele nützliche IPv6-fähige Seiten es schon gibt, zumindest Googleund FreeBSD gehören dazu.

Auch IRC ist über IPv6 möglich, ich nutze hier im Freenode-Netz die Adresseirc.ipv6.freenode.net.
Auch einige FTP-Server, wie ftp.freebsd.org und ftp.kde.org sind über IPv6 angebunden. Bei der Download-Geschwindigkeit von IPv6-Servern erziele ich vergleichbare Werte wie bei IPv4-Servern.


Links

Kommentare