======= Freifunk mit babel =======
Diese Seite ist veraltet da FFFFM aktuell keine Babel Infrastruktur betreibt.
Wir haben mit den Integrationsarbeiten für den [[https://nilsschneider.net/2016/04/10/babel-in-gluon.html|Gluon Babel Masterplan]] begonnen.
Die aktuelle frankfurter babel-Firmware gibt es [[https://dl.ffm.freifunk.net/firmware/babel-dev/|hier (development)]], [[https://dl.ffm.freifunk.net/firmware/babel-test/|hier (test)]] und [[https://dl.ffm.freifunk.net/firmware/babel-stable/|hier (stable)]].
Die dazugehörige Map ist hier zu finden: [[http://gw01.babel.ffm.freifunk.net:8080/#/en/graph|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:
* Ein Client kann sich mit einem Node verbinden und es ist Kommunikation zwischen diesen beiden Geräten möglich.
* Ein Client kann sich mit einem Node verbinden und erreicht über das Mesh einen anderen Node.
* Zwei Clients an unterschiedlichen Mesh-Nodes können miteinander kommunizieren.
* Zwei Clients verbinden sich mit einem Node und können kommunizieren. (Jeweils switch-port, beide per wifi und wechselseitig kabel/wifi)
* Routing ins Internet für einen Client funktioniert für **IPv6** und **IPv4**.
* Internetzugang an mesh-only-node funktioniert.
* Babel-Nodes erscheinen neben Batman-Nodes auf der Babel-Map.
* DNS funktioniert mit dem durch das Babel-Projekt in gluon eingeführten DNS-Cache.
* Roaming eines Clients geht.
* Es gibt eine funktionierende Firewall.
* Auf einem Socket sind verschieden l3roamd-Operationen möglich.
* Folgenden Pakete wurden angepasst, sodass die benötigten Komponenten in der Firmware eingebaut ist und per ifup auch gestartet werden können.
* gluon-mesh-babel
* gluon-l3roamd
* mmfd
* gluon-mesh-vpn-fastd
* babeld >1.8 (master von März 2018)
Bitte erfasst Probleme in unserer [[https://github.com/freifunk-ffm/ToDo-Liste/issues?q=is:issue+is:open+label:Babel|Todo-Liste]].
====== Entwicklung ======
[[wiki:designthemen_gluon]]
[[wiki:babel_android]]
====== Changelog ======
[[wiki: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:
* logread
* nodeinfo
* echo get_clients | socat - /var/run/l3roamd.sock
* ip -6 r s
===== Core-Files auswerten =====
* Die Erzeugung von core-Files auf dem openwrt-Gerät aktivieren:
```
touch /.init_enable_core
sysctl -w "kernel.core_pattern=/tmp/%e.%p.%s.%t.core"
ulimit -c unlimited
```
* Den zu beobachtenden Prozess direkt von busybox aus starten, den Absturz provozieren. Das das core-file liegt dann in /tmp.
* Die unstripped binaries liegen auf dem Build-System in staging_dir/target-*/root-*
* mit dem gdb für den build das binary aus dem build-tree und dem core-file vom router laden:
```
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 =====
* 2a06:8187:fbab:2::1 next-node Adresse (löst auch im Netz als nextnode auf)
* 2a06:8187:fb00:53::53 DNS
* 2a06:8187:fb00:123::123 ntp
* 2a06:8187:fbab::/48
* 2a06:8187:fbab:1::/64 Node Netz
* 2a06:8187:fbab:1::9000:xxxx Infrastrukturbereich im Node Netz
* 2a06:8187:fbab:2::/64 Client Netz
* 2a06:8187:fb00:1::/96 Netz für nat64
===== Aufbau von Gateways =====
Die Komponenten des Netzes sind [[http://l3-freifunk.readthedocs.io/de/latest/components.html#besondere-adressen-netze|hier]] beschrieben.
Das Setup der Gateways ist [[infrastruktur:gateway:babel-gateway|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<
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.