IPv6 Support

Einstellung von SixXs

Jahrelang habe ich früher einen SixXs Tunnel genutzt. Da die SixXs Macher beschlossen haben den Service einzustellen mußte ich 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 konnte 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! Dazu kommen private Adressen und "noch privatere" Adressen für z.B. Smartphones und MAC-Adress Verwürfelung.

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 das Tooling an die aktuelle Lage angepasst.

Bisher war hier beschrieben wie man das mit "Dibbler" aufsetzt. Das habe runtergeworfen, da Dibbler seit längerem quasi komplett unsupported ist. Mein Weg ist jetzt "the Debian way" ohne patches, nur mit einem neuen Shellskript.

Anpassungen am System

Anpassungen in /etc/network/interfaces

iface eno1 inet6 auto
    pre-up sleep 1
    dhcp 1
    request_prefix 1

Ablegen des Skriptes "Sample Script" von der obigen Debian-Seite in /etc/dhcp/dhclient-exit-hooks.d

Das Setup-Tool (auf Wunsch, siehe unten) welches DNS Einträge angelegt.

Das Setup-Tool

Das Setup-Networking Skript ist das eigentlich spannende. Das wird von dhclient über das exit-hook Skript 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..