Gluon Babel Firmware Test: Unterschied zwischen den Versionen
Aus Opennet
Leo (Diskussion | Beiträge) (→Test1: Firmware mit (Gluon + Babel + Fastd)) |
Leo (Diskussion | Beiträge) (Laborbuch angefangen) |
||
Zeile 125: | Zeile 125: | ||
** hier muss von OLSR2 nach Babel gewechselt werden. Das beiden IPv6 only sind, könnte man diese 1:1 austauschen. Es wäre denkbar eine "alte" Opennet Firmware zu bauen, welche anstatt OLSR2 dann Babel unterstützt. Diese Firmware könnte man dann auf den Backbone APs einspielen. Somit wäre im Backbone Babel unterstützt. | ** hier muss von OLSR2 nach Babel gewechselt werden. Das beiden IPv6 only sind, könnte man diese 1:1 austauschen. Es wäre denkbar eine "alte" Opennet Firmware zu bauen, welche anstatt OLSR2 dann Babel unterstützt. Diese Firmware könnte man dann auf den Backbone APs einspielen. Somit wäre im Backbone Babel unterstützt. | ||
* VPN? | * VPN? | ||
+ | |||
+ | ===Laborbuch - Fortschritte und Erkenntnisse === | ||
+ | |||
+ | ====24.02.2021==== | ||
+ | Server: | ||
+ | |||
+ | * auf Server itsuki wurde diese Woche fastd,babeld,l3roamd,mmfd installiert und konfiguriert (siehe Doku in /root/*). Bisher wurde die Babel-Tests auf dem Server gai durchgeführt. Hier soll aber saubergetrennt werden. Der Server itsuki ist ausschließlich für diese Tests nur verfügbar. | ||
+ | |||
+ | Firmware: | ||
+ | |||
+ | * site: https://dev.opennet-initiative.de/changeset/907770ee132f5f28fed6731c021c9245033bfc4f/on_site_babel_test | ||
+ | * gluon L3: https://git.hack-hro.de/opennet-initiative/gluon (Tag: v2020.2.2) | ||
+ | |||
+ | Tests: | ||
+ | |||
+ | * Firmware auf WDR4300 Router installiert. | ||
+ | * Client am Router bekommt fd02::2 IP. Warum diese IP? Es gibt aber keinerlei IP aus dem Adressbereich der site.conf. Warum nicht? | ||
+ | * VPN Verbindung mit fastd: ... | ||
+ | * Babel: ... |
Version vom 25. Februar 2021, 11:04 Uhr
Inhaltsverzeichnis |
ONI Babel Gluon Test-Firmware
Motivation
Wir sind interessiert an der Gluon Firmware. Würde wir diese Firmware bei uns einsetzen, könnten wir an deren Weiterentwicklung partizipieren.
Aktuell (2020) gibt es eine Entwicklung, um das Babel Routing in Gluon anstatt batman zu nutzen.
Doku:
- https://l3-freifunk.readthedocs.io/de/latest/components.html
- https://wiki.freifunk-franken.de/w/Layer3Firmware#.2Fetc.2Fconfig.2Fgateway
- https://wiki.ffm.freifunk.net/infrastruktur:gateway:babel-gateway
Babel Firmware von Klaus_Dieter:
Site Config - Magdeburg:
- beispielsweise https://github.com/FreifunkMD/site-ffmd/tree/babel
Gluon Originial:
- Original: https://github.com/freifunk-gluon/gluon
Test1: Firmware mit (Gluon + Babel + Fastd)
Um die Gluon Config zu verstehen haben wir das Original Gluon (inkl. Babel) installiert und getestet.
- Gluon https://git.hack-hro.de/opennet-initiative/gluon
- Site Config https://dev.opennet-initiative.de/browser/on_site_babel_test
Ziel ist hier ein IPv6-only Backbone Netz zu haben.
Firmware Entwicklung
- Bauen der Firmware:
sudo apt install build-essential gawk unzip libncurses-dev libz-dev libssl-dev time git clone git@git.hack-hro.de:opennet-initiative/gluon.git -b v2020.2.2 cd gluon/ git clone git@dev.on-i.de:on_site_babel_test site make update make GLUON_TARGET=ar71xx-generic
- Unser Gluon Repo updaten (Sync mit original Gluon Repo):
git clone git@git.hack-hro.de:opennet-initiative/gluon.git cd gluon #sync Opennet Gluon repo with remote (Gluon) respository git remote add upstream https://github.com/freifunk-gluon/gluon.git git remote -v git fetch upstream git checkout master git merge upstream/master git push
IP Adressen (evtl. veraltet)
2001:67c:1400:2430::1/60 (von IN-BERLIN) - für Server gai fd32:d8d3:87da::/48 - ONI ULA
/home/christoph/babeld.conf redistribute local ip fd32:d8d3:87da::245/128 allow redistribute ip 2001:67c:1400:243f::1/128 deny redistribute ip 2001:67c:1400:243f::/64 eq 128 allow redistribute ip fd32:d8d3:87da:bab1::/64 eq 128 allow
Client: 2001:67c:1400:243f:3e97:eff:fe6c:42b3/64
Martin: 2001:67c:1400:243f:3e97:eff:fe6c:42b3/64
DNS64/NAT64
- DNS64 Docker Container auf gai
- NAT64 (tayga) Container auf gai (siehe für Config User:leo/tayga)
- MTU Probleme beim NAT64. Aus dem Internet werden große IPv4 Pakete (>1380) geschickt. Nach der IPv4-zu-IPv6 Übersetzung müssen sie durch den fastd VPN Tunnel geschickt werden. Der VPN Tunnel hat aber nur eine MTU von 1380. Ein größeres Paket wird mit ICMP frag-needed abgewiesen. Diese ICMP Meldung wird zum NAT64 GW geschickt. Leider kommt diese ICMP Meldung nicht bis in Internet. Man sieht das ICMP Paket noch auf dem tayga nat64 Interface aber danach "verschwindet" es.
TODO:
- Teste NAT64 mit docker und jool (https://www.jool.mx/). Wenn das geht, kann die Doku unter https://l3-freifunk.readthedocs.io/de/latest/server.html erweitert werden. jool scheint auch wesentlich performanter zu sein als tayga (siehe vorletzte Seite von https://ripe81.ripe.net/wp-content/uploads/presentations/31-HIGH-SPEED-NAT64-WITH-P4-RIPE81.pdf)
- Problem: nicht in Debian10 enthalten. Kernel Modul muss auf Host-System selbst gebaut werden. Das ist für Kernel Updates ein großes Problem. Hier sollte eine extra VM genommen werden, bspw. mit Ubuntu20.04 oder Debian testing (https://www.jool.mx/en/documentation.html). In Debian11 (Mitte 2021) wird es enthalten sein.
Nächsten Schritte
Folgende Features sollten wir auch Testen um uns im klaren über die weitere Entwicklung zu sein.
- Prefixd
- Ohne Prefixd bekommen alle Endgeräte eine IP aus einem globalen (netzweitem /64) Subnet zugeordnet.
- Sollten wir testen, damit wir Prefixe verteilen können und diese nicht hart in der Firmware konfiguriert sind.
- https://github.com/christf/gluon/tree/christf_next/package/prefixd
- 464XLAT
- wenn wir IPv6-only Backend machen, dann benötigen wir 464XLAT. Die Alternative NAT64 hat in einigen Situation (IPv4-only Geräte/Software, DNSSEC) Probleme.
- https://github.com/freifunk-gluon/gluon/issues/1408
- https://github.com/christf/gluon/tree/christf_next/package/gluon-464xlat-clat
- Wireguard
- Brauchen wir Wireguard zwingend? Hier scheint es mehrere Ansätze zu geben. Alles Work-in-Progress (Stand Okt 2020)
- https://github.com/freifunk-gluon/gluon/pull/1534
- https://github.com/freifunk-gluon/gluon/issues/1058
Hauptunterschiede zwischen Opennet Firmware (2020) und Gluon+Babel
Konzeptionell:
- User-VPN Tunnel
- Opennet: Mesh Knoten von Entnutzern bauen einen VPN Tunnel (mit Zertifikat) zum Internet Gateway auf. Abhängig davon, erhält der Knoten (und Endgeräte) Internetzugriff. Opennet bietet hier mehr Sicherheit/Privatheit auf dem Transportweg durch das Mesh.
- Gluon: In Gluon ist dieses Konzept nicht vorgesehen. Alle Clients haben vollen Zugriff auf das Internet.
- Roaming
- Opennet: Feature ist nicht vorgesehen by Design
- Gluon: mittels l3roamd realisiert. Als Nebeneffekt sind die IPs aller Endgeräte jedem Knoten bekannt. Es gibt nur einen Address-Pool.
- Weboberfläche
- Opennet: Umfangreiche Konfigurationsmöglichkeiten für Opennet spezifische Funktionen. Die OpenWRT Oberfläche ist auch weiterhin verfügbar.
- Gluon: Sehr stark reduziert auf sehr wenige Funktionen.
- Wifi Konfiguration
- Opennet: ...
- Babel: ...
Technisch:
- L3 Routing Protokoll
- Opennet: OLSR1 (IPv4), OLSR2 (IPv6)
- Gluon: Babel
- VPN Software
- Opennet: OpenVPN mit tap und tun interfaces
- Gluon: fastd, tunneldigger, wireguard (in Arbeit), ...
Mögliche Migrationsszenarien
- L3 Routingprotokoll
- hier muss von OLSR2 nach Babel gewechselt werden. Das beiden IPv6 only sind, könnte man diese 1:1 austauschen. Es wäre denkbar eine "alte" Opennet Firmware zu bauen, welche anstatt OLSR2 dann Babel unterstützt. Diese Firmware könnte man dann auf den Backbone APs einspielen. Somit wäre im Backbone Babel unterstützt.
- VPN?
Laborbuch - Fortschritte und Erkenntnisse
24.02.2021
Server:
- auf Server itsuki wurde diese Woche fastd,babeld,l3roamd,mmfd installiert und konfiguriert (siehe Doku in /root/*). Bisher wurde die Babel-Tests auf dem Server gai durchgeführt. Hier soll aber saubergetrennt werden. Der Server itsuki ist ausschließlich für diese Tests nur verfügbar.
Firmware:
- site: https://dev.opennet-initiative.de/changeset/907770ee132f5f28fed6731c021c9245033bfc4f/on_site_babel_test
- gluon L3: https://git.hack-hro.de/opennet-initiative/gluon (Tag: v2020.2.2)
Tests:
- Firmware auf WDR4300 Router installiert.
- Client am Router bekommt fd02::2 IP. Warum diese IP? Es gibt aber keinerlei IP aus dem Adressbereich der site.conf. Warum nicht?
- VPN Verbindung mit fastd: ...
- Babel: ...