infrastruktur:gateway:babel-gateway

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)
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

/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 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.

  • infrastruktur/gateway/babel-gateway.1511307400.txt.gz
  • Zuletzt geändert: 21.11.2017 23:36
  • von christf