[RFC PATCH 0/1] Konzept zum Erreichen des Webinterfaces

Tim Niemeyer tim.niemeyer at mastersword.de
Mo Jan 4 17:04:32 CET 2016


Hallo

Der Patch ist wirklich nur RFC (bitte nicht applien). Ich weiß nichtmal,
ob der letzte Stand jetzt so compiled. Der Patch dient nur grob der
Orientierung. Mich interessiert vor allem, ob ihr allgemein Einwände
habt, ob ich irgendwelche wichtigen Punkte übersehen oder vergessen
habe, oder ob es eine bessere Lösung gibt.

Eigentlich wollte ich aktuell nur daran arbeiten, dass man das
Webinterface besser erreichen kann. Dabei war die Idee recht einfach:
Die Knoten verteilen mit niedriger Priorität ein IPv6 Prefix an die
lokalen Clients, ohne dabei ein Gateway zu setzen (wir wissen ja nicht,
ob der Knoten online ist oder nicht). Der Client kann sich dann sein
eigenes Prefix angucken und braucht nur noch die MAC des Knotens dran zu
schreiben, um die IPv6 Adresse vom Knoten zu bekommen. Das Prefix ist
allerdings in jeder Hood anders, weshalb der Knoten wissen muss in
welcher Hood er gerade ist.

Das schöne dabei ist, dass wir diese Prefixe auf den L3 Gateways auch
irgendwann mal announcen könnten. Dabei würden wir dann allerdings ein
Gateway mitsenden. Wenn sich dann der Knoten und der Client dieses
Gateway setzen, könnte man auch Hood-Übergreifend auf den Knoten
zugreifen.

Da in jeder Hood ein anderes Subnetz gilt, ist der Patch schon etwas
länger geworden. Denn der Knoten muss wissen, welche Subnetze es gibt
und in welches er rein gehört. Das soll ja nach wie vor anhand der
Geo-Location passieren. Diese Zuordnung geschieht zur Zeit noch immer im
zentralen keyXchange. Mit diesem Patch wird das anders. Der Knoten
bekommt die Information über alle Hoods und sucht sich dann selber die
richtige Hood aus.

Aktuell ungelöste Probleme:
* Die announcten Prefixe haben eine unlimited valid time. Leider kann
  odhcpd das aktuell nicht anders. Ich tendiere dazu einen simplen radvd
  selber zu implementieren, bzw den uradvd von fluon zu forken und an
  unseren Zweck anzupassen.
* Das VPN wird noch nicht konfiguriert. Hier stelle ich mir eine
  Erweitung des hoodconfigure Scripts vor, welches in /etc/hoods/ die
  *.gw Dateien ausließt und dann das normale openwrt fastd config File
  einstellt. Parallel dazu müssten wir auf den Gateways einstellen, dass
  sich auch unbekannte Clients verbinden können.
* Noch keine Auswahl der Hood über das Webinterface. Hier geht es
  lediglich nach Entfernung anhand der Geo-Position. Wenn keine Position
  angegeben ist, wird die Trainstation gewählt.
* Die *.hood Dateien sind aktuell hart-kodiert. Hier stelle ich mir eine
  Synchronisation vor. Allerdings sollten wir vorher die
  Authentifizierung sicherstellen, sonst kann jeder unser komplettes
  Netz zerstören. Hier wäre ein Web-of-Trust angebracht, was wir
  dynamisch erweitern können. Ich könnte mir *.sign Dateien vorstellen,
  welche neue Public Keys zum signieren einführen können. Diese müssen
  natürlich selbst erst einmal signiert werden.
* Das ganze Script wird aktuell noch gar nicht gestartet. Ziel wäre es,
  ab Boot die Trainstation konfiguriert zu haben. Erst nach Auswahl der
  Geo-Position wird dann umkonfiguriert.
* Ein Knoten, der weder Uplink, noch aktuelle Hood-Daten hat, kann nicht
  zum vorhanden Freifunk verbinden. Hier braucht es noch ein
  "Such-Script".
* Nicht alle Hoods sind im Patch enthalten.
* configurehoods sollte modularisiert werden.

Weitere Lektüre:
* https://wiki.freifunk-franken.de/w/Portal:Netz/Konzept:HoodAnnouncement
* https://wiki.nordwest.freifunk.net/Entwicklung/hoodsystem/ideen

Tim


Tim Niemeyer (1):
  fff-hoods: add initial hood configuration package

 bsp/default/root_file_system/etc/firewall.user     |   9 ++
 src/packages/fff/fff-hoods/Makefile                |  39 ++++++
 .../fff/fff-hoods/files/etc/hoods/fuerth.hood      |  18 +++
 .../fff/fff-hoods/files/etc/hoods/nuernberg.hood   |  18 +++
 .../fff/fff-hoods/files/etc/hoods/test.hood        |  18 +++
 .../fff-hoods/files/etc/hoods/trainstation.hood    |  17 +++
 .../fff/fff-hoods/files/etc/uci-defaults/hood-dhcp |  18 +++
 .../fff/fff-hoods/files/usr/sbin/configurehood     | 144 +++++++++++++++++++++
 src/packages/fff/fff/Makefile                      |   4 +-
 9 files changed, 283 insertions(+), 2 deletions(-)
 create mode 100644 src/packages/fff/fff-hoods/Makefile
 create mode 100644 src/packages/fff/fff-hoods/files/etc/hoods/fuerth.hood
 create mode 100644 src/packages/fff/fff-hoods/files/etc/hoods/nuernberg.hood
 create mode 100644 src/packages/fff/fff-hoods/files/etc/hoods/test.hood
 create mode 100644 src/packages/fff/fff-hoods/files/etc/hoods/trainstation.hood
 create mode 100644 src/packages/fff/fff-hoods/files/etc/uci-defaults/hood-dhcp
 create mode 100755 src/packages/fff/fff-hoods/files/usr/sbin/configurehood

-- 
2.1.4




Mehr Informationen über die Mailingliste franken-dev