[hannover] [TECHNIK] Stand der Dinge - Netzsegmentierung

lemoer freifunk at irrelefant.net
So Jul 2 00:20:09 CEST 2017


Heyho liebe Freifunker,

ich schreibe euch mal ein wenig, was der momentane Stand der Dinge zum
Thema "Netzsegmentierung" ist.

Kurzzusammenfassung des Problems:

Jeder Freifunkrouter informiert alle anderen Router über die verbundenen
Endgeräte und auch über seine Nachbargeräte, damit daraus eine Netzkarte
(Routingtabelle) für das Netz erstellt werden kann. So weiß jeder
Router, wie er ein Endgerät im Netz zu finden hat.

Je größer ein Mesh-Netz ist, desto mehr von diesen Metainformationen
müssen übertragen werden. Momentan sind es schon so viel, dass sich
Freifunk an einem DSL-2000-Anschluss nicht mehr betreiben lässt (allein
nur durch die Metadaten). Wir nennen dieses Phänomen "Grundrauschen".

Problemlösung:

Da Router in der Nordstadt wohl eher nicht mit Routern in Linden über
eine WLAN-Strecke meshen werden, ist es nun unser Ziel, die Stadt in
einzelne Bereiche zu segmentieren und diese nur noch über unsere
Internet-Gateways zu verbinden. Von Bereich zu Bereich muss dann keine
Routing-/Metainformation mehr ausgetauscht werden. Das sorgt für
erheblich geringeres Grundrauschen.

Was muss dafür getan werden:

- Auf den Freifunkroutern muss ein Paket geschrieben werden, das im
  Config-Mode ein Dropdown mit den verfügbaren Stadtteilen anzeigt.
  Daraus kann der Nutzer seinen Stadtteil ("district") wählen. Mehrere
  districts werden später zu einem "Bereich" zusammengefasst. Außerdem
  ermöglicht dieses Paktet, dass der gewählte district über den
  Informationsdienst (respondd) an den Server, der auch die Karte
  bereitstellt, übermittelt wird. - fertig*

- Ein weiteres Paket sorgt bei der Migration dafür, dass nicht jeder
  Routerbetreiber den district nachträglich einstellen muss. Hierfür
  wird stündlich unser Webserver angefragt, ob für den Router ein neues
  district bekannt ist. Wir können also aus der Ferne (beispielsweise
  mit den Geokoordinaten und Mesh-Partnern) bestimmen einen
  Migrationsplan schmieden, den die Router dann ausführen. Dieses Paket
  wird aber nur wärend einer gewissen Migrationsphase in den Routern
  eingebaut und später entfernt. Es soll wirklich nur dazu dienen,
  Router zu migrieren, die schon länger im Netz sind. - fertig*

- Ein letztes selbstgeschriebenes Paket sorgt dann dafür dass die
  sogenannte Grundkonfiguration unserer Firmware (site.conf) je nach dem
  Bereich angepasst wird, in dem man sich befindet. Diese wird erst in
  einem späteren Firmware-Release eingebaut, in dem schon jeder Router
  ein district zugewiesen hat. Dieses Paket sorgt unter anderem dafür,
  dass Router, die nicht im gleichen "Bereich" sind, nicht mehr
  miteinander meshen können. Durch dieses Upgrade können also eventuell
  Mesh-Ketten zerstört werden, wenn der Uplink vor den Mesh-Only-Knoten
  updatet. - fertig*

- Um das Problem der Mesh-Ketten zu beheben, wollen wir ein fremdes
  Paket nutzen, das dafür sorgt, dass ein Router sich als Fallback zu
  dem "hannover.frefunk.net"-Client-Netzwerk verbindet, und dort sein
  Update zieht. Hier sind noch einige Tests nötig. Eine kritische
  Situation wäre beispielsweise, wenn zwei Mesh-Only-Knoten gegenseitig
  meinen, dass sie sich zueinander verbinden sollten, weil der Uplink
  eine geringere Signalstärke als der jeweils andere Mesh-Only-Knoten
  hat. - begonnen

Soweit zu der Software auf den Routern selbst. Nun der Rest..

- Ein Migrationsskript, das mit Hilfe der Geodaten und der Mesh-Struktur
  einen Migrationsplan. welcher Router in welchen Stadtteil/district
  gehört, muss geschaffen werden. Das gestaltet sich nicht so einfach,
  weil nicht jeder Router Geokoordinaten besitzt. Router zu denen
  letztendlich kein sinnvoller Stadtteil zugewiesen werden kann, werden
  im "Umland" enden. - teilweise fertig

- Der Meshviewer/die Karte sollte noch angepasst werden, sodass er die
  Information des Bereichs oder des Stadtteils in irgendeiner Weise mit
  anzeigt. Die Information des Stadtteils ist in der nodes.json bereits
  vorhanden und muss noch in das Frontend eingebaut werden. - 0%

- Zu guter Letzt muss unsere Serverinfrastruktur noch darauf umgebaut
  werden, mehrere "Bereiche" zu bedienen und auch eine Verbindung
  zwischen diesen herzustellen. - 0%

Ich hoffe, ich konnte einen kleinen Einblick darein geben, was im Moment
an der Front der Netzsegmentierung so los ist. Wenn etwas unklar
und/oder unverständlich ist, dann sagt Bescheid! :)

Falls ihr an der einen oder anderen Stelle helfen könnt, dann seid ihr
herzlich dazu eingeladen.

Gruß,
Leo

PS: fertig* = theoretisch fertig, Tests fehlen



Mehr Informationen über die Mailingliste hannover