Seite anzeigenDiskussionÄltere VersionenLinks hierherNach oben Diese Seite ist nicht editierbar. Sie können den Quelltext sehen, jedoch nicht verändern. Kontaktieren Sie den Administrator, wenn Sie glauben, dass hier ein Fehler vorliegt. ======= Freifunk mit babel ======= <WRAP center round important 60%> Diese Seite ist veraltet da FFFFM aktuell keine Babel Infrastruktur betreibt. </WRAP> 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.]] <WRAP center round todo 60%> Die Informationen in dem obigen Teilabschnitt sind wahrscheinlich nicht mehr aktuell.\\ Hilf mit und bringe diese Seite auf einen aktuellen Stand.</WRAP> ====== 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: <code> #!/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 </code> 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. firmware/babel.txt Zuletzt geändert: 10.06.2021 12:27von igor