Aufbau von Wireguard-VPN für babel-Firmware
christf opened this issue · 10 comments
Wenn wir babel firmware bauen, dann sollte die serverseitige Einrichtung mit Ansible erfolgen.
Dafür sind zwei Entscheidungen zu treffen:
- Nutzung der bestehenden Gateways?
Das babel-Netz kann auf den selben Servern betrieben werden wie das batman-Netz. Ich schlage vor, wir erweitern die Konfiguration der bestehenden Server. Zunächst auf gw02 (Der wird eh demnächst abgebaut, dann kann man das neu-einrichten gleich verproben) - Nutzung der IPv6-Adressen. Es wurde bereits festgelegt, dass ein ipv6-ula-Netz genutzt werden soll. Ich schlage vor, ein /64 Netz für die Infrastruktur zu nutzen und ein zweites Netz für die babel-Clients. So kann man klar unterscheiden wer in welchem Netz hängt. Laut https://wiki.freifunk.net/IP-Netze#Siehe_auch ist Magdeburg das Netz fda9:026e:5805::/48 zugewiesen. Im Batman-Netz wird fda9:26e:5805::/64 genutzt. Darf ich davon ausgehen, dass der Rest frei ist? In dem Fall schlage ich die Nutzung von fda9:26e:5805:bab0::/64 für Clients und fda9:26e:5805:bab1::/64 für Infrastruktur (Nodes) im babel-Testmesh vor.
Lasst uns das am Freitag besprechen.
es hat keiner nein gesagt.
nachdem wir am Freitag gleich ein wenig mit ansible gebaut haben sind folgende nächste Schritte mit @polybos besprochen;
- Erstellung eines Docker Images, welches wireguard und babeld enthält und somit als gateway fungieren kann (liegt im wg-docker repository)
- Hochladen des Images bei Dockerhub
- Nutzung des Images im HOST-Netzwerk Modus von Docker (geteilter Netzwerkstack mit dem host, wohl ohne performance Einbußen)
- wireguard ist ein kernel modul, muss also auf dem host installiert werden. Ist aber machbar das weitestgehend in docker umzusetzen, denke ich. Hab mich mal auch dran gesetzt.
cool. Man kann wg im docker ausführen, wenn man wg auf dme host installiert. das nervt zwar ein wenig, kapselt den Rest des gateways jedoch.
ICh bin noch gespannt wie die Isolation der Routingtabellen so ist.
Wir brauchen noch ein client prefix - das soll ohnehin ein ULA Prefix sein.
fda9:26e:5805:bab2::/64 wird als node-client-prefix genutzt. Die Adressen werden vom l3roamd verwendet um Kommunikation über roamende clients durchzuführen.
Das Prefix kann man ganz einfach nach RFC 4193 generieren, bzw. sollte man auch, wenn es in fd00::/8 liegen soll: https://tools.ietf.org/html/rfc4193#section-3.2.2
Was ich nicht (mehr) wusste, bei Freifunk werden die ULA zentral äh dokumentiert: https://wiki.freifunk.net/IP-Netze
Demnach haben wir für Freifunk Magdeburg fda9:026e:5805::/48 und können uns dann die 16 Bit Subnet-ID frei ausdenken. In der site-conf für das "normale" Netz wird prefix6 = 'fda9:026e:5805::/64'
gesetzt, d.h. dort verwenden wir effektiv Subnet-ID 0. Gut zu wissen, sorry for the noise.
der wireguard vpn docker container läuft.
... seit Mai. Ich schließe das mal.