So als Vorstufe zum eigenen Tunnelbroker und auf den besonderen Wunsch eines Einzelnen ;)
Am Mittwoch kam im IRC das Thema auf, wie man wohl eine FritzBox dazu brächte, einen 6in4-Tunnel zum eigenen Server aufzubauen, um darüber per IPv6 erreichbar zu sein.
Da ich selbst, um mein im RZ aufschlagendes Sixxs-Netz zu Hause nutzen zu können, schon »sit«-Tunnel gegraben hatte, dachte ich mir, wie schwer kann es sein? Und, hey, demnächst und dann zum Jahresende bin ich ja eh’ unterwegs, und auch unterwegs (das eigene) IPv6 nutzen zu können, wäre ja auch cool. Gesagt, getan.
Ein schneller Test mit einem entsprechenden Interface auf einer VM im Netz — zeigte die Tücken des Objekts. Auch wenn es dokumentiert ist, ohne die Angabe der entfernten IPv4-Adresse des anderen Tunnelendes funktioniert der Tunnel nicht. Letztlich muß man also dafür sorgen, daß ein DynDNS-kompatibles Skriptwerk – oder ein profaner dauerhafter Poll des DynDNS-Namens – jeweils die Tunnelendpunktadresse anpaßt. Hat man das geschafft, dann klappt’s auch mit der Verbindung:
root@ysabell:~# traceroute -6 2a07:a907:50c:e000::2 traceroute to 2a07:a907:50c:e000::2 (2a07:a907:50c:e000::2), 30 hops max, 80 byte packets 1 gw-gt.uu.org (2a07:a907:50c:1000:219:99ff:fe5b:cc93) 6.077 ms 6.074 ms 9.108 ms 2 de3-gut1.as206946.net (2a07:a907:50c:f700::1) 36.509 ms 36.541 ms 36.538 ms 3 bgp2-de3.as206946.net (2a07:a907:50c:f320::2) 49.756 ms 49.784 ms 49.781 ms 4 2a07:a907:50c:efff::2 (2a07:a907:50c:efff::2) 52.585 ms 52.602 ms 52.598 ms 5 mobile-fb.uu.org (2a07:a907:50c:e000::2) 67.044 ms !X 67.073 ms !X 67.070 ms !X
Konfiguration auf Serverseite ist relativ simpel (es geht auch die einfache Variante mit »inet6 v4tunnel«; jene frißt aber ein fehlendes »remote« nicht, wobei »zu Fuß« der Tunnel konfiguriert werden kann, ohne die Adresse des anderen Tunnelendes anzugeben — der Tunnel tut dann nur nicht …):
root@vpn01:~# cat /etc/network/interfaces.d/mobile-fb auto mobile-fb iface mobile-fb inet6 manual pre-up (/sbin/ip tunnel add mobile-fb mode sit ttl 64 remote 1.2.3.4 local 192.xxx.xxx.xxx && /sbin/ip link set dev mobile-fb up && exit 0) up /sbin/ip -6 addr add 2a07:a907:50c:e000::1/64 dev mobile-fb up /sbin/ip -6 route add 2a07:a907:50c:4242::/64 via 2a07:a907:50c:e000::2 dev mobile-fb metric 128 up /sbin/ip -6 route add 2a07:a907:50c:e000::/64 dev mobile-fb table UU up /sbin/ip -6 route add 2a07:a907:50c:4242::/64 via 2a07:a907:50c:e000::2 dev mobile-fb metric 128 table UU pre-down /sbin/ip -6 route del 2a07:a907:50c:4242::/64 via 2a07:a907:50c:e000::2 dev mobile-fb table UU pre-down /sbin/ip -6 route del 2a07:a907:50c:4242::/64 via 2a07:a907:50c:e000::2 dev mobile-fb down /sbin/ip -6 route flush dev mobile-fb

Und gerade habe ich verraten, warum es über’s Mobilfunknetz leider nicht tut: Die Fritzbox möchte eine öffentliche Adresse haben, sonst ist sie bockig:
13.10.16 01:07:34 Internetverbindung IPv6 (Tunnel) kann nicht aufgebaut werden: Internetverbindung mit privater IP-Adresse hergestellt 13.10.16 01:07:34 Internetverbindung wurde erfolgreich hergestellt. IP-Adresse: 10.16.1.72, DNS-Server: 212.9.60.126 und 217.116.116.254, Gateway: - 13.10.16 01:07:26 Internet über Mobilfunk aktiv, Mobilfunknetz: UMTS
Leider erkennt sie das bei 100.64er-Adressen nicht, weshalb ich erst einmal alle SIMs durchprobiert habe — Vodafone vergibt schon lange intern 100er IPs (die aus dem CGN-Bereich), und Fritz!OS 6.06 sagte tapfer, der Tunnel stünde. (Unterwegsgerät ist eine 7270v3; mal gucken, vielleicht nehme ich auch eine 7360, 7362 oder 7490 mit, denn die neuen Tether-Möglichkeiten (mobilen Router per USB laden und gleichzeitig als Uplink nutzen ;)), die sind schon nett.
Damit ist der Traum von IPv6 unterwegs ersteinmal zu Staub zerfallen; muß ich es mir halt doch per nachgeschaltetem OpenVPN holen, und von jenem Host dann per radvd einspielen. Irgendwas ist ja immer.

Danke für die Dokumentation. Schade, dass das nur mit DynDNS geht, solche Setups hätte ich gerne vermieden. Ich überleg mal, ob man sich die Adresse der Gegenstelle nicht aus dem Log kratzen kann.