IPv6 Support

Einstellung von SixXs

Jahrelang habe ich noch bis vor kurzem einen SixXs Tunnel genutzt. Da die SixXs Macher beschlossen haben den Service einzustellen mußte ich in den Vergangenen Tagen einiges umbauen.

SixXs hatte ja viele große Vorzüge, nämlich statische Prefixe, reverse DNS Delegation und einen guten Client in einer Debian Installation. Dadurch kann man sich ganz einfach sein LAN und die zugehörige Firewall komfortabel konfigurieren und es "funktioniert einfach". So wie halt IPv6 gedacht ist.

Leben mit den dynamischen delegated Prefixes

Nun wird das IPv6 Leben unendlich viel Schmerzvoller. IPv6, sogar mit LAN Delegation gibts ja schon länger bei den verschiedenen Einwahlanbietern, allerdings ist jetzt alles dynamisch. Also die Adresse des Einwahlrouters/CPE/Fritz!Box und aller IPv6 Clients im LAN!

Was sind meine Voraussetzungen: Eine Fritz!Box als Einwahlrouter, von dort eine Punkt-zu-Punkt Verbindung zu einem Linux-Server der als Router mehrere Subnetze versorgt. Damit die Subnetze alle IPv6 bekommen können muß man sich von der Fritz!Box LAN Prefixe delegieren lassen. Dies muß man via DHCPv6 von der Fritz!Box abrufen.

Damit das tatsächlich funktioniert habe ich ein bißchen Tooling zusammengestellt.

Anpassungen an Dibbler

Für dibbler-1.0.1 habe ich folgende, kleine Anpassungen gemacht

Abruf der Anpassungen unter dibbler-1.0.1-slash64subnets-2.diff.

Meine Konfiguration in /etc/dibbler/client.conf sieht wie folgt aus. Hier ist die Voraussetzung das an eth1 der Internet-Upstream mit der Fritz!Box hängt und eth0 und eth4 mit /64 Prefixen versorgt werden sollen. Die eigentliche Arbeit der Netzwerkkonfiguration wird allerdings von dem in der Konfig genannten Skript durchgeführt.

# 8 (Debug) is most verbose. 7 (Info) is usually the best option
log-level 7

# To perform stateless (i.e. options only) configuration, uncomment
# this line below and remove any "ia" keywords from iface definitions
# stateless

experimental
strict-rfc-no-routing 0
# Routing script welches das IPv6 routing aufsetzt...

script "/root/bin/setup-networking.pl"

downlink-prefix-ifaces eth0,eth4

iface 'eth0' no-config
iface 'eth4' no-config
iface 'eth1'
{
        ia
        routing 1
        pd {
                prefix :: /60
        }
}

Das Setup-Tool

Das Setup-Networking Skript ist das eigentlich spannende. Das wird von dibbler aufgerufen und macht folgende Dinge:

Eine Ethers Datei wird in /etc/ethers-2.0 abgelegt und enthält jetzt - anders als das Original - IPv4 und - auf Wunsch - IPv6 Adressen. Man muß dann nur definieren ob als v6 Suffix ein EUI-64 Token gewünscht wird oder ggf. einfach den Suffix direkt hereinschreiben. So wie in dem Beispiel unten. Dann erzeugt das Skript passende nsupdate Kommandos um einem laufendem Bind Nameserver ein dynamisches Update zu verpassen.

# Fileformat of this new file

# MAC-address           ipv4          EUI-64(or /64 suffix)  hostname          network-interface
00:00:11:22:33:44       172.16.0.4      :0:0:0:1        meinname.dyn.example.com.      eth0
00:22:33:44:55:66       172.16.0.5      EUI-64          meinandererhost.dyn.example.com eth4
		

Das Konfigurationsskript kann man hier setup-networking.pl herunterladen und für seinen eigenen Zwecke anpassen. Allerdings macht dieses Skript eigentlich nur Sinn in Zusammenhang mit dem gepatchen dibbler.