Inhaltsverzeichnis

Freifunk mit babel

Diese Seite ist veraltet da FFFFM aktuell keine Babel Infrastruktur betreibt.

Wir haben mit den Integrationsarbeiten für den Gluon Babel Masterplan begonnen.

Die aktuelle frankfurter babel-Firmware gibt es hier (development), hier (test) und hier (stable). Die dazugehörige Map ist hier zu finden: Babel Map - Freifunk Frankfurt a.M.

Die Informationen in dem obigen Teilabschnitt sind wahrscheinlich nicht mehr aktuell.
Hilf mit und bringe diese Seite auf einen aktuellen Stand.

Status

Man kann sich verbinden, roamen und das Netz nutzen. Man hat 25% mehr Durchsatz als mit Batman unter gleichen Funkbedingungen.

Im Detail heißt das:

Bitte erfasst Probleme in unserer Todo-Liste.

Entwicklung

designthemen_gluon babel_android

Changelog

babel-changelog

Debugging

Auf dem Gerät

Das Babel-Netz ist ein Testnetz. Niemand weiß wie man Layer 3-Netze mit Roaming aufbaut - wir sind die ersten. Es kann also durchaus passieren, dass etwas nicht glatt läuft. In so einem Fall ist man mit generellen Debugging-Hinweisen gut beraten. Wichtig ist meist die Ausgabe von:

Core-Files auswerten

``` touch /.init_enable_core sysctl -w "kernel.core_pattern=/tmp/%e.%p.%s.%t.core" ulimit -c unlimited ```

``` cd /var/lib/jenkins/workspace/gluon_christf_next_musl/lede ./build_dir/toolchain-mips_24kc_gcc-5.4.0_musl-1.1.16/gdb-8.0.1/gdb/gdb ./staging_dir/target-mips_24kc_musl-1.1.16/root-ar71xx/usr/sbin/l3roamd /tmp/l3roamd.1516492435.7730.11.core ```

Infrastruktur

IPv6 Adressen

Aufbau von Gateways

Die Komponenten des Netzes sind hier beschrieben.

Das Setup der Gateways ist hier zu finden.

Serverseitig (anbei die hopglass-Integration ins Netz) kann man loslegen, wenn man als post-up script folgendes ausführt:

#!/bin/bash
IFACE=eth2
exec >/tmp/ff-log 2>&1
cat >/tmp/babeld.conf<<EOF
ipv6-subtrees true
reflect-kernel-metric true
export-table 10
import-table 11
import-table 12
local-port-readwrite 33123
interface ens6 type wired rxcost 10 update-interval 60
interface babel-vpn-1374 type tunnel link-quality true update-interval 300

default enable-timestamps true
default max-rtt-penalty 96
default rtt-min 25
out ip 2a06:8187:fbab:2::1/128 deny
redistribute ip 2a06:8187:fbab:2::1/128 deny
redistribute ip 2a06:8187:fbab:2::/64 eq 128  allow
redistribute ip 2a06:8187:fbab:1::/64 eq 128  allow
redistribute ip 2a06:8187:fbab:3::/64 eq 96 allow
redistribute src-prefix 2a06:8187:fb00::/40 ip 2000::/3 allow
redistribute ip ::/0 allow
redistribute ip 2000::/3 allow
redistribute local deny
redistribute src-prefix 2a06:8187:fbab:2::/64 if eth1 metric 256
EOF
localnode=$(ipv6calc --action prefixmac2ipv6 --in prefix+mac --out ipv6addr 2a06:8187:fbab:1:: $( ip a s dev eth0|grep link/ether|awk '{print $2}'))
/sbin/ip -6 a add $localnode dev lo

# infrastruktur und client-netz über babel-table routen.
/sbin/ip -6 ru add prio 10 to 2a06:8187:fbab:2::/64 lookup 10
/sbin/ip -6 ru add prio 10 to 2a06:8187:fbab:1::/64 lookup 10

/usr/local/bin/babeld -D -s -I /var/run/babeld.pid  -G 33123 -c /tmp/babeld.conf

sleep 1

/usr/local/bin/l3roamd -p 2a06:8187:fbab:2::/64 -m $IFACE -t 11 -a 2a06:8187:fbff:2::2 &
disown
/usr/local/bin/mmfd -v &
disown
sleep 2
/sbin/ip a add fe80::ff:3fff:fe10:7d02/64 dev mmfd0
#/sbin/ip a add 2a06:8187:fb00:2::4/128 dev mmfd0
/sbin/ip a add 2a06:8187:fbab:1:383b:9ff:fed5:9f53/128 dev mmfd0
/sbin/ip r add ff05::2:1001/128 dev mmfd0 table local # (reicht auf dem Server wo yanic läuft, muss nicht auf gateways sein)
/sbin/ip link set dev mmfd0 up
/sbin/ip -6 r a 2a06:8187:fbab:2::/64 dev l3roam0 t 10


#add route to icvpn - all other freifunk networks
/sbin/ip route flush cache

Auf dem Gateway läuft fastd und bringt die mmfd/l3roamd mit dem obigen script (einzige AUsnahme: ff05-route wird nicht gesetzt) hoch. bird6 schreibt auf dem gateway seine default-route in Routing Tabelle 10.

Salt-states für Gateways haben wir auch - leider aktuell noch nicht öffentlich.