Gluon Babel Firmware Test: Unterschied zwischen den Versionen
Aus Opennet
Leo (Diskussion | Beiträge) (→Test1: Firmware mit (Gluon + Babel + Fastd)) |
Leo (Diskussion | Beiträge) |
||
Zeile 69: | Zeile 69: | ||
** https://github.com/freifunk-gluon/gluon/pull/1534 | ** https://github.com/freifunk-gluon/gluon/pull/1534 | ||
** https://github.com/freifunk-gluon/gluon/issues/1058 | ** https://github.com/freifunk-gluon/gluon/issues/1058 | ||
+ | |||
+ | |||
=== Hauptunterschiede zwischen Opennet Firmware (2020) und Gluon+Babel=== | === Hauptunterschiede zwischen Opennet Firmware (2020) und Gluon+Babel=== | ||
Zeile 87: | Zeile 89: | ||
** Opennet: OpenVPN mit tap und tun interfaces | ** Opennet: OpenVPN mit tap und tun interfaces | ||
** Gluon: fastd, tunneldigger, wireguard (in Arbeit), ... | ** 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? |
Version vom 16. Januar 2021, 14:35 Uhr
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
Inhaltsverzeichnis |
ONI Babel Gluon Test-Firmware
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
Dies ist ein IPv6-only Netz.
IP Adressen
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 IPv5 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.
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?