Freifunk-Gateway aufsetzen/babeld: Unterschied zwischen den Versionen
RedDog (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
RedDog (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 54: | Zeile 54: | ||
npm install -g babelweb | npm install -g babelweb | ||
</pre> | </pre> | ||
/etc/systemd/system/babelweb.service: | |||
<pre> | |||
[Unit] | |||
Description=babelweb | |||
[Service] | |||
ExecStart=/usr/local/bin/babelweb | |||
Type=simple | |||
[Install] | |||
WantedBy=multi-user.target | |||
</pre> | |||
<pre> | |||
systemctl enable babelweb | |||
systemctl start babelweb | |||
</pre> | |||
== Beispiel config == | == Beispiel config == |
Version vom 16. Dezember 2016, 23:45 Uhr
Diese Seite befindet sich noch im Entwurfsstadium.
Hilf mit sie zu verbessern!
(Erhoffte) Vorteile
- Metriken Anhand von Pings berechnen
- stabiler als Olsr
- kann ipv4 und ipv6 gleichzeitig
Was es leider nicht kann
- Anhand von Bandbreite/vorhandener Bandbreite die Metrik berechnen
Hier mal eben ein paar grundlegene Sachen für Babel.
Achtung
Das ganze ist komplett ungetestet und nur mal eben zusammen geschrieben, teils aus den Kopf, teils aus bestehenden Configs. Kann div. Fehler enthalten!
IP Adressen für Peering
Es sollte für jeden Server nur eine Adresse verwendet werden auf jedem Interface. Sinnvollerweise aus dem 10.83.252.X Netz: https://wiki.freifunk-franken.de/w/Portal:Netz#10.83.252.0.2F22_.28Master_IPs.29
GRE
Interface anlegen
muss etwa so aussehen (ungetestet! Werte anpassen! Routingtables fehlt evtl.):
auto DEVICENAME iface DEVICENAME inet static address 10.83.252.X pre-up ip -4 tunnel add $IFACE mode gre local EIGENEPUBLICIP remote REMOTEPUBLICIP ttl 255 up ifconfig $IFACE multicast pointopoint 10.83.252.X post-up ip rule add iif $IFACE table fff post-up ip -6 addr flush dev $IFACE post-up ip -6 addr add fe80::IRGENDWAS dev $IFACE post-down ip rule del iif $IFACE table fff post-down iptunnel del $IFACE
Multicast Probleme bei GRE
http://wiki.hwmn.org/w/GRE_Tunnel#Babel_support ist im oberen Teil schon mit eingebaut
WebUI
Für Babel gibt es ein WebUI: https://github.com/kerneis/babelweb
aptitude install nodejs-legacy npm npm install -g babelweb
/etc/systemd/system/babelweb.service:
[Unit] Description=babelweb [Service] ExecStart=/usr/local/bin/babelweb Type=simple [Install] WantedBy=multi-user.target
systemctl enable babelweb systemctl start babelweb
Beispiel config
/etc/babeld.conf
# For more information about this configuration file, refer to # babeld(8) interface IF1 wired true max-rtt-penalty 128 interface IF2 wired true max-rtt-penalty 128 #... einfach weiterführen für mehr Interfaces. export-table 10 import-table 10 #redistribute ip 0.0.0.0/0 le 0 #diese Zeile mit reinnehmen wenn man Internet Uplink hat # Route muss glaub ich manuell gesetzt werden! redistribute metric 128 #grad nicht ganz sicher ob so richtig local-port 33123 #local-port-readwrite 34567 #funktioniert anscheinend nicht!
Routen werden automatisch announced, es gibt hier kein HNA wie bei Olsr! Am WebUI ist alles gut zu sehen.
Die Interfaces, die babel verwenden soll (bei uns die GRE-Tunnel) müssen auch in der /etc/default/babeld eingetragen werden - durch Leerschläge getrennt.
Batman Interface muss auch leicht angepasst werden:
... post-up ip route add 10.X.X.X/XX dev $IFACE proto static table fff ...
wichtig ist proto static sonst announced Babel die Route nicht