Freifunk-Router:DS-Lite
Das Problem
Viele Internetprovider umschiffen die Knappheit öffentlicher IPv4-Adressen mit einer Technik, die Dual-Stack Lite, kurz DS-Lite genannt wird. Dabei wird der Kundenanschluss lediglich mit einer öffentlichen IPv6-Adresse versorgt. IPv4-Pakete werden in IPv6-Pakete verpackt und über providerseitiges NAT ins Internet geleitet. Das Problem ist dabei, dass die maximale Größe eines Ethernet-Frames 1500 Bytes beträgt. Meist ist die MTU (Maximum Transmission Unit, die maximale Paketgröße) sogar ein wenig niedriger. Nun wird beispielsweise bei Freifunk folgendes zum Problem:
Das Modem überträgt IPv6-Pakete zum Provider, in denen IPv4-Pakete übertragen werden, die wiederum fastd-Pakete enthalten, die wiederum BATMAN-Pakete enthalten, die wiederum IPv6-Pakete enthalten. Durch die Verkapsulierung der Datenpakete summiert sich der Overhead der einzelnen Protokolle immer weiter auf. Matroschkamäßig. Ihr wisst schon, diese russischen Püppchen. Jetzt haben wir das Problem, dass ein IPv6-Paket immer mindestens 1280 Bytes groß ist. Durch den gesamten Paket-Overhead kann nun die MTU unter diesen Wert fallen, so dass keine Pakete mehr übertragen werden können. Die Verbindung ist unbenutzbar.
Die Lösung
Die fastd-Verbindung zu den Gateways einfach direkt per IPv6 aufbauen. Dadurch entfällt ein wenig des Overheads.
Dazu begibt man sich auf die Konsole des Knotens und führt folgende Befehle aus:
uci set fastd.mesh_vpn_backbone_peer_vpn3.remote='ipv6 "gw3.freifunk-3laendereck.net" port 10000' uci set fastd.mesh_vpn_backbone_peer_vpn7.remote='ipv6 "gw7.freifunk-3laendereck.net" port 10000' uci set fastd.mesh_vpn_backbone_peer_vpn9.remote='ipv6 "gw9.freifunk-3laendereck.net" port 10000' uci commit /etc/init.d/fastd restart
Danach sollte der Knoten sich neu verbinden, und zwar per IPv6. Um das ganze wieder rückgängig zu machen, führt man die Befehle genauso aus, ersetzt aber ipv6 durch ipv4. Man kann das Schlüsselwort auch ganz weglassen, dann versucht er beides.