Was ist ein Supernode?

Supernodes sind solche Knoten unseres Mesh-Netzwerks, die Server im Rechenzentrum sind und an die ausschließlich per Netzwerktunnel verbunden wird. Sie basieren zumeist nicht auf OpenWRT, sondern werden mit anderen Linux-Distributionen wie Debian oder Arch Linux aufgebaut. Üblich ist es, virtuelle Maschinen zu mieten und nicht echte Hardware-Server. Virtuelle Server sind kostengünstig zu mieten, so dass wir in die breite skalieren können (mehr Maschinen für mehr Verbindungen).

Supernodes haben zwei Aufgaben:

Vermitteln des lokalen Netzwerks als Tunnelendpunkt

Supernodes belegen jeweils eine öffentliche IPv6- und per IPv4-Adresse und sind daher von jedem Internet-Anschluss erreichbar. Einfache Nodes verbinden sich über den VPN-Dienst fastd zu ihnen. Damit das geht, wurden sie für die Hostnamen und Public Keys der Supernodes (der jeweiligen Community) bereits vorbereitet. fastd ist etwas ähnliches wie OpenVPN, aber wesentlich kleiner und mit einem anderen Satz an Funktionalitäten.

Auf den Supernodes läuft, genau wie auf den einfachen Nodes, eine Batman-Bridge. Batman ist eine Art verteilte Bridge, der verschiedene Computer so mit einander verschaltet, dass sie wie eine einzige Bridge funktionieren. Endgeräte, die man an sie verbindet, werden so untereinander verbunden, als hätte man sie an einen regulären Netzwerk-Switch angeschlossen. Ein Switch ist eine Multiport-Bridge, muss man wissen.

Außerdem sind die Supernodes natürlich auch untereinander verbunden. Es ergibt sich dadurch ein kleiner Backbone, der die LAN-Segmente der Community miteinander verbindet. Dadurch ergibt sich ein Netzwerk-Link auf Layer 2, über den die Internetprotokolle IPv6 und IPv4 und prinzipiell auch alle anderen Netzwerkprotokolle transportiert werden. Ein solches LAN-Segment kann auch von mehreren Communities gemeinsam betrieben werden. Wir sprechen dann von einer Domäne.

Routing in andere Freifunk-Netzwerke und zu Edge-Routern

Eine Supernode ist außerdem für Internet-Routing konfiguriert, verteilt IP-Adressen per DHCP, dient als DNS-Resolver und ist darum bei Batman als sogenannter Gateway-Server konfiguriert. Dies bewirkt, dass Nodes ihre Clients an die Supernode „vermitteln“.

Die DHCP-Anfragen der Clients werden nämlich nicht als Broadcast-Frame durch das Netzwerk verbreitet, sondern wie ein Unicast-Frame an den jeweils zuständigen Gateway-Server zugestellt. Welcher das ist, entscheidet jede Node (die in der Regel ls Gateway-Cient konfiguriert ist), für sich und im vorhinein. Das gilt übrigens für jede Verbindung durch das Mesh-Netz. Daher spricht man hier auch von einem proaktiven (im vorhinein), quellbasierten (der Absender entscheidet) Mesh-Protokoll.

Die Supernodes im Rheinland hängen alle zusammen im Rheinland Backbone. Dieser befindet sich derzeit noch im Umbau, übernimmt aber bereits jetzt die Funktion, alle Supernodes und die Edge-Router unseres Netzwerks mit einander zu verbinden. Die Routen werden hier derzeit per OSPF, zukünftig per BGP verteilt. Jede Domäne erhält ein IPv6-Subnetz und IP-Adressen für IPv4/NAT. Die Supernodes verteilen Adressen und routen den Traffic.

25 „Gefällt mir“

Das sollte ins Wiki, denke ich.

Sehr interessant, danke für den Artikel.