Dies ist eine alte Version des Dokuments!
Gateways für das Freifunk-Babel-Netz orientieren sich am Setup für Batman-Gateways. Der Server nimmt fastd-Verbindungen von Freifunk-Routern mit der Babel-Firmware an und verteilt Informationen zur Infrastruktur des Netzes (früher: IP-Adressen & Routen, mittlerweile lediglich Routen, wobei das streng genommen optional ist), damit das Gesamtnetz funktionieren kann.
Es gibt ein paar Unterschiede zu Batman-Gateways:
- es ist kein dhcp-Server erforderlich
- es ist kein radvd erforderlich
- Batman wird nicht installiert
- Es müssen zusätzliche Komponenten (mmfd, l3roamd) ausgeführt werden
- Über fastd wird das babel mesh-Protokoll gesprochen. Dadurch ist eine theoretische minimale MTU von 1288 möglich (1280 minimale IPv6-Größe + ein UDP-Header für mmfd-Pakete, die weiterhin Encapsulation-Technologie nutzen)
Einrichtung der Frankfurter Gatways
apt-key adv --keyserver hkp://keys.gnupg.net --recv-keys 390BF305 apt-get install apt-transport-https echo "deb https://dl.ffm.freifunk.net/debian-packages/ sid main" >/etc/apt/sources.list.d/ff-ffm.list apt-get update apt-get install babeld l3roamd mmfd fastd
fastd
/etc/fastd/mesh-vpn-1374/fastd.conf:
log level error; log to syslog level error; interface "mesh-vpn-1374"; method "salsa2012+umac"; method "salsa2012+gmac"; method "null"; secure handshakes no; bind any:10001; secret "30ca8b19e7f215dc7a3f45cb95b0ae2b1cbf8d706f9991a2ff121ae7c7184e6b"; mtu 1374; peer limit 220; include peers from "peers"; on verify "./verify $PEER_KEY"; on up "/sbin/ip link set dev mesh-vpn-1374 up"; status socket "/var/run/fastd-mesh-vpn-1374.sock";
l3roamd
l3roamd bringt bereits ein script zur INitialisierung via systemd mit. Das ist seiner Zeit etwas voraus - der l3roamd erfordert leider noch obligatorisch ein client-bridge. Aus diesem Grund ist das Script anzupassen: in /etc/systemd/system/l3roamd.service in Zeile 8 sollte so etwas stehen:
[Unit] Description=l3roamd Wants=basic.target After=basic.target network.target fastd.service babeld.service [Service] Type=simple ExecStart=/usr/local/bin/l3roamd -p 2a06:8187:fbab:2::/64 -m gre_gw01 -m mesh-vpn-1312 -m babel-vpn-1374 -i dummyl3roamd -t 11 -a 2a06:8187:fbab:1::9000:2 -4 0:0:0:0:0:ffff::/96 -b test KillMode=process ExecStartPost=/sbin/ip link set dev l3roam0 up ExecStartPost=/sbin/ip -6 r add 2a06:8187:fbab:2::/64 dev l3roam0 table 10 Restart=always RestartSec=3 [Install] WantedBy=multi-user.target
Die Bridge clientbridge muss per /etc/network/interfaces eingerichtet sein. Was da drin hängt ist egal, sie muss nur automatisch da sein beim Start. Die hinzugefügte route macht, dass Pakete mit einem Ziel im Freifunk-Client-Netz aber mit unbekannter echter Route an den l3roamd übergeben werden. Dieser kann dann die Route ermitteln.