Babel-Backbone
Der Babel-Backbone wird aktuell verwendet, um zwischen unseren Proxmox-Hosts in den beiden Clustern pvehetzner und pvez10a ein L3-Netzwerk aufzubauen.
Dieses L3 wird bspw. als underlay fuer das clusteruebergreifende VXLAN auf unseren Proxmox-Hosts verwendet.
Adressen
jeder host seine IPv4 und IPv6 Adresse auf dem Loopbackinterface bb-loop
auf den Interfaces auf denen babel gesprochen wird (beispielsweise connections
) gibt es nur link-local IPv6. IPv4 wird per v6-nexthop geroutet.
100.101.191.0/24
fd21:b4dc:4bff:ffff::/64
Deployment
per ansible role backbone_babel
im infrastruktur-Ansible.
Verbindungen
Verbindungen zwischen zwei Hosts ueber die Routingprotokoll gesprochen wird koennen wie folgt aufgebaut werden
- wireguard
- direktes lokales Linux-Interface via
bb_babel_peer_interfaces
in host_vars
Wireguard hat ein internes Routing.
wir moechten ein eigenes routingprotokoll verwenden, daher hat ein Wireguard-tunnel immer genau zwei Endpunkte.
Babel
als Routingprotokoll wird Babel verwendet
als Daemon kommt babeld zum einsatz https://www.irif.fr/~jch/software/babel/babeld.html
bird hat auch eine sehr gute babel-Implementierung, aber die in Debian bookworm enthaltene Version unterstuetzt bspw die RTT-basierten Metriken nicht, daher babeld
Konzepte
line
: eine IPv4/v6-Adresse sowie eine zusammenhaengende Range Ports auf denen Wireguard-Punkt-zu-Punkt Tunnel aufgebaut werden koennen- jede line gehoert zu genau einem Host
- beschreibt eine Verbindungsmoeglichkeit, beispielsweise via IPv6 und via IPv4
connections
verbinden zweilines
miteinander- connection sorgt dafuer dass ein Wireguard-Tunnel zwischen zwei
'lines
' aufgebaut wird - wird eine connection zwischen zwei lines angelegt, werden fuer beide Lines Port-Nummern aus der Range der jeweiligen Line ausgewaehlt
- jeder Connection entspricht genau ein Wireguard-Tunnel und damit ein Linux-Interface. Das interface wird nach der gegenueberliegenden line benannt
Variablen
group_vars enthalten Definitionen, die fuer alle hosts interessant sind, beispielsweise die IPs und Ports der Wireguard-endpunkte
aktuelle Struktur
zeigt die Wireguard Links
https://pad.n7r.de/diagram/#/2/diagram/view/WecoqhYVOlgphdqXdbKb5-xSaKQYcw--iK8cO74xkF0/