Im folgenden Artikel gehen wir der Frage nach warum das Netzwerk aktuell unter starken Verbindungsproblemen leidet und welche Maßnahmen das Administrations- und das Development-Team ergreifen um die Probleme in den kommenden Monaten zu beheben.
Durch das starke Wachstum des vergangenen Jahres stößt unser Netzwerksetup an seine Kapazitätsgrenzen. Bildlich kann man sich das Netzwerk derzeit wie einen großen virtuellen Switch vorstellen, nur das unser Switch nicht 16 oder 32 Ports hat, wie dies bei echten Hardware-Switches der Fall ist, sondern unser Switch hat so viele Ports, wie unser Netzwerk Router hat: nahezu 1000.
Für dieses Verhalten sorgt das von uns eingesetzte Mesh-Protokoll B.A.T.M.A.N advanced, das jeden mit dem Mesh-Netzwerk verbundenen Router mit jedem anderen Router auf Layer 2 (Mac-Adressen Ebene) verbindet. Die im Internet eingesetztene IP-Protokolle (IPv4 und IPv6) arbeiten jedoch auf Layer 3. Für jede Anfrage auf IP-Ebene, muss nun ein sog. ARP-Request durchgeführt werden, der zu einer angefragten IP-Adresse (Layer 3), die passende Mac-Adresse (Layer 2) findet und die Daten dann an diese Adresse sendet. Diese ARP-Requests verursachen im Netzwerk einen hohen Paket-Overhead. Hinzu kommt der Overhead den das Mesh-Protokoll an sich mitbringt. Beide genannten Größen steigen mit der Anzahl der verbundenen Router und zwar so lange, bis die eingesetzte Hardware die Anzahl der Pakete nicht mehr verarbeiten kann.
Diesen Punkt haben wir nun erreicht, weshalb die Netzqualität aktuell nicht unseren Vorstellungen entspricht und sich natürlich die Frage nach einer langfristigen Lösung stellt. Eine Möglichkeit ist, das Mesh-Protokoll zu wechseln, doch die Wahrscheinlichkeit ist hoch, dass andere Protokolle ähnliche Protobleme mitbringen. Die zweite Möglichkeit ist, das Mesh-Protokoll beizubehalten und nur das vom virtuellen Switch verwaltete Netzwerk zu verkleinern. Also einen sogenannten Net-Split durchzuführen um die Anzahl der Overhead-Pakete zu redizieren. Dies ist die Lösung auf die wir uns geeinigt haben und dem ein oder anderen ITler wird hierzu das bekannt Devide & Conquer-Prinzip einfallen. Jedoch wollen wir nicht in regelmäßigen Abständen manuelle Net-Splits durchführen, sondern einen Verwaltungsautomatismus entwickeln, der uns die Unterteilung des Nordwest-Gebiets in Netzregionen, sog. Hoods, ermöglicht. Jede Hood steht dabei für eine geographisch zusammenhängende Region (z.B. ein Dorf oder ein Stadtteil), die ein Netzsegment in Form eines virtuellen Switches darstellt und innerhalb derer Roaming, also das nahtlose wechseln der Clients zwischen einzelnen Accesspoints, möglich sein wird. Zwischen einzelnen Hoods wird kein Roaming mehr möglich sein, jedoch erlaubt und das Hood-Konzept für jede Hood eine Performanceobergrenze festzulegen. Also eine maximale Anzahl an Routern, die in einer Hood aufgenommen werden können. Ist diese Anzahl erreicht greift der Verwaltungsautomatismus und teilt die Hood in zwei oder mehr neue Hoods auf um stets eine gleichbleibend gute Performance zu gewährleisten.
Dieses Konzept wird es uns ermöglichen in Zukunft zum einen den Overhead massiv zu reduzieren und dadurch zu einer angenehmen Netzqualität zurückzukehren und zum anderen auch Verantwortlichkeiten für einzelne Hoods in die Hände lokaler Freifunker zu geben. Die dafür notwendigen Tools sind mittlerweile in weiten Teilen fertig entwickelt und wir arbeiten nun daran unser bestehendes Routing zu dokumentieren in in unsere neue Software zum Server-Deployment (Puppet) einzuarbeiten. Aufgund privater Umstände kann dies jedoch noch einige Zeit in Anspruch nehmen. Derzeit rechnen wir mit ca. 3 Monaten. Sind diese Arbeiten abgeschlossen, werden wir beginnen auf das neue Netzsetup umzustellen.
Anhang
- Fragen beantworten wir gerne auf unserer Mailingliste.
- Interesse in einem der genannten Teams mitzuarbeiten? Dann schau auf unserer Team-Seite vorbei.