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-1374 -m babel-vpn-1374  -i dummyl3roamd -t 11 -a 2a06:8187:fbab:1::9000:2 -4 0:0:0:0:0:ffff::/96 -b br-client
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 br-client muss per /etc/network/interfaces eingerichtet sein. Was da drin hängt ist egal, sie muss nur automatisch da sein beim Start. Ich mach das aktuell mit /etc/network/interfaces.d/br-client mit dem Inhalt

iface br-client inet static
	address 192.0.2.1
	netmask 255.255.255.0
	bridge_ports none

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.

Aus dem l3roamd wird ausgebaut werden, dass diese bridge zwingend erforderlich ist, denn auf Gateways ist sie nicht vorhanden.

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