Taschenrouter als IPv6-Verteiler

Der handtellerkleine Router TL-MR3020 von TP-Link kostet keine 30 Euro und lässt sich per USB mit Energie versorgen. Damit ist er prädestiniert, als IPv6-Gateway einem Router unter die Arme zu greifen, der selbst noch kein IPv6 versteht oder keines vom Provider bekommt. Die Aufgabe ist mit einer alternativen Firmware und etwas Handarbeit in einer Stunde erledigt.

In Pocket speichern vorlesen Druckansicht 77 Kommentare lesen
Lesezeit: 7 Min.
Inhaltsverzeichnis

TP-Links TL-MR3020 (ab 18,90 €) ist gerade mal handtellergroß, besitzt einen LAN-Port und zwei USB-Buchsen. Normalerweise soll das Gerät mit einem UMTS-Stick an seinem USB-Host-Port als mobiler WLAN-Router unterwegs für Internet-Zugang sorgen. Er eignet sich aber genauso, um von einem vorhandenen Router aus per USB mit Strom gespeist zu werden und über seinen LAN-Anschluss besondere Aufgaben im lokalen Netz zu übernehmen.

Mit der alternativen Firmware OpenWRT und etwas Mühe kann man so im Handumdrehen sein Heimnetz IPv6-fähig machen. Dafür sind die Ergänzungen aiccu und radvd erforderlich. Leider ist der Flash-Speicher des Routers zu knapp, als dass sie gleichzeitig mit der Browser-Konfigurationsoberfläche LUCI hineinpassen. Daher ist man auf Konfiguration per Kommandozeile zurück geworfen.

Das klingt komplizierter als es ist, lässt sich aber doch binnen einer Stunde umsetzen. Voraussetzung ist lediglich, dass Sie beim IPv6-Tunnelprovider Sixxs bereits einen Tunnel beantragt und zugeteilt bekommen haben. Das früher erforderliche zusätzliche /48-Subnetz brauchen Sie nicht mehr, wenn Ihnen ein /64er-Block genügt: Seit Anfang Februar 2012 bekommt jeder neue Tunnel automatisch ein geroutetes /64er-Subnetz, dessen Präfix sich nur durch ein gesetztes Bit vom Präfix des Tunnels selbst unterscheidet.

Die nötigen Schritte zum Aufsetzen des MR3020 als IPv6-Gateway beschreiben wir im Folgenden, wobei Sie die gezeigten Beispielbefehle per Copy&Paste – mit Anpassen der Parameter – direkt in die Shell kopieren können.

TP-Links TL-MR3020 bringt 4 MByte Flash und 32 MByte RAM mit, was für eine Sparversion der freien Firmware OpenWRT ausreicht.

Zunächst laden Sie sich die aktuelle Trunk-Firmware herunter. Dann ziehen Sie den PC von Ihrem Internet-Router ab und schließen ihn stattdessen an den Taschenrouter an. Nun installieren Sie die Firmware per Browser auf dem MR3020.

Nach dessen Neustart loggen Sie sich auf der neuen Default-Adresse 192.168.1.1 per Telnet ein und setzen mit passwd das root-Passwort. Daraufhin schaltet OpenWRT den unsicheren Telnet-Zugang ab und aktiviert ssh. Loggen Sie sich per ssh als root erneut ein.

Jetzt passen Sie mit einigen Kommandozeilenbefehlen die LAN-Einstellungen ans eigene Netzwerk an:

uci set network.lan.ipaddr=192.168.111.6
uci set network.lan.netmask=255.255.255.0
uci set network.lan.gateway=192.168.111.1

Geben Sie dem MR3020 dabei eine freie IPv4-Adresse, die nicht im DHCP-Pool des vorhandenen Routers liegt und setzen Sie als Gateway die IPv4-Adresse Ihres vorhandenen Routers ein, damit der MR3020 darüber ins Internet gelangt. Mit uci commit machen Sie diese Änderungen nun dauerhaft.

Schließen Sie jetzt den LAN-Port des Taschenrouters per Patchkabel an einen freien LAN-Anschluss Ihres vorhandenen Internet-Routers an. Versorgen Sie ihn entweder mit dem mitgelieferten Steckernetzteil oder – noch etwas energieeffizienter – über den USB-Port des Internet-Routers. Stecken Sie auch Ihren PC wieder an Ihren alten Router und loggen Sie sich für die weitere Konfiguration unter der eben vergebenen Adresse wieder auf dem Taschenrouter ein.

Schalten Sie nun den im Weiteren unnötigen DNS/DHCP-Server dnsmasq ab, löschen Sie den symbolischen Link /etc/resolv.conf und tragen Sie einen DNS-Server – im Allgemeinen Ihren vorhandenen Router – neu ein, beispielsweise so:

/etc/init.d/dnsmasq disable
rm /etc/resolv.conf
echo "nameserver 192.168.111.1" >/etc/resolv.conf

Da der Sixxs-Daemon aiccu zur Synchronisierung mit seinem Upstream-Server die korrekte Zeit braucht, korrigieren Sie die Zeitzone und ersetzen die beim Zugriff zufällig ausgewählten Zeitserver [0-3].openwrt.pool.ntp.org durch konstante:

uci set system.@system[0].timezone='CET-1CEST,M3.5.0,M10.5.0/3'
uci set system.ntp.server='ntp1.de atom.uhr.de ntp1.fau.de ntp.web.de'

Nach Sichern der Änderungen mit uci commit und einem Neustart mit reboot hat der MR3020 Internet-Zugang und kann die Liste der verfügbaren Pakete aktualisieren. Installieren Sie aiccu und radvd:

opkg update ; opkg install aiccu radvd

Jetzt tragen Sie Ihre Sixxs-Tunnel-Zugangsdaten ein und aktivieren den Daemon:

uci set aiccu.@aiccu[0].username=XYZ1-SIXXS
uci set aiccu.@aiccu[0].password=Tunnelpasswort
/etc/init.d/aiccu enable

Wenn Sie mehr als einen Tunnel bei Sixxs registriert haben, müssen Sie beim username die Tunnel-ID anhängen, beispielsweise XYZ1-SIXXS/T99999. Das obige Tunnelpasswort ist übrigens das beim Tunnel selbst gesetzte "TIC Password", nicht jenes, mit dem Sie sich auf Ihrer Verwaltungsseite einloggen. Jetzt hat der MR3020 schon IPv6-Zugang. So bleibt noch die Konfiguration des Router Advertisement Daemon radvd:

uci set radvd.@interface[0].ignore=0
uci set radvd.@prefix[0].ignore=0
uci set radvd.@prefix[0].prefix=2001:db8:42:8001::/64
uci set network.lan.ip6addr=2001:db8:42:8001::1/64

Beim prefix setzen Sie den Präfix des mit dem Tunnel zugeteilten, gerouteten /64-Subnetzes ein. Es entspricht bis auf das 49. Bit (von links gezählt) dem Präfix des Tunnels selbst: Wenn die beiden Tunnelendpunkte die Adressen 2001:db8:42:1::1 und ::2 haben, lautet das Präfix des gerouteten Subnetzes 2001:db8:42:8001::/64. Ihre Präfixe bekommen Sie nach dem Einloggen durch einen Klick auf die Tunnel-ID unter "Subnets" angezeigt. Sollten Sie ein separates /48-Subnetz beantragt und erhalten haben, dann tragen Sie statt des Default-Subnetzes einen /64er-Block aus dem separaten Netz ein.

Die Zuweisung der IPv6-Adresse ans LAN-Interface sorgt schließlich dafür, dass der Router hernach auch über seine LAN-Schnittstelle routet. Zum Schluss sichern Sie die Änderungen wieder mit uci commit und aktivieren noch den Daemon mit /etc/init.d/radvd enable. Die hier beispielhaft gezeigten IPv6-Adressen gehören übrigens zum für solche Zwecke reservierten Dokumentations-Präfix, ersetzen Sie sie durch die Ihnen zugeteilten.

Nach einem weiteren Reboot des MR3020 sollten sich die Hosts im LAN des Hauptrouters eine IPv6-Adresse aus dem gewählten 64er-Subnetz erwürfeln und ein ping -6 ct.de (unter Windows) beziehungsweise ping6 ct.de (Linux) mit Antworten grüßen. Nun bleibt Ihnen noch, bei den LAN-Hosts deren Firewall bezüglich IPv6 abzudichten, denn der MR3020 lässt getreu dem End-to-End-Prinzip des Internet jeglichen IPv6-Verkehr passieren. (ea)