Hood file
Überblick
Das Hood File enthält die Konfiguration der Router in einer V2-Hood bzw. für dezentrale Hoods basierend auf der L3-Firmware.
Dieses Hood File wird dann per Mesh weitergegeben.
Zentrale Hoods
Für die zentral verwalteten Hoods erhält man je nach Koordinaten ein Hoodfile vom KeyXchangeV2 (alle Router mit Internet-Uplink rufen einfach diese Adresse auf):
ACHTUNG: HIER HANDELT ES SICH NUR UM EIN BEISPIEL UND DARF NIRGENDWO ANDERS EINFACH UNGEÄNDERT ÜBERNOMMEN WERDEN
http://keyserver.freifunk-franken.de/v2/?lat=50.0&long=20.1
Inhalt:
{"version":1,"network":{"ula_prefix":"fd43:5602:29bd:abcd:\/64"},"vpn":
[{"name":"fff-test1","protocol":"fastd","address":"127.0.0.1","port":"10003",
"key":"1234123412341234123412341234123412341234123412341234123412341234"},{"name":"fff-test2","protocol":"fastd","address":"127.0.0.1","port":"10008",
"key":"4321432143214321432143214321432143214321432143214321432143214321"}],
"hood":{"name":"IchBinDumm","essid":"ichbindumm.freifunk",
"mesh_bssid":"","mesh_essid":"ibd.batman.fff",
"mesh_id":"ibd.mesh.fff","protocol":"batman-adv-v15",
"channel2":"13","mode2":"ht20","mesh_type2":"802.11s","channel5":"40",
"mode5":"ht20","mesh_type5":"802.11s","upgrade_path":"",
"ntp_ip":"fd43:5602:29bd:ffff::1","timestamp":"1515353626",
"location":{"lat":"50.0000","lon":"20.1000"}}}
lesbar:
{ "version":1, "network":{ "ula_prefix":"fd43:5602:29bd:abcd:\/64" }, "vpn":[ { "name":"fff-test1", "protocol":"fastd", "address":"127.0.0.1", "port":"10003", "key":"1234123412341234123412341234123412341234123412341234123412341234" }, { "name":"fff-test2", "protocol":"fastd", "address":"127.0.0.1", "port":"10008", "key":"4321432143214321432143214321432143214321432143214321432143214321" } ], "hood":{ "name":"IchBinDumm", "essid":"ichbindumm.freifunk", "mesh_bssid":"", "mesh_essid":"ibd.batman.fff", "mesh_id":"ibd.mesh.fff", "protocol":"batman-adv-v15", "channel2":"13", "mode2":"ht20", "mesh_type2":"802.11s", "channel5":"40", "mode5":"ht20", "mesh_type5":"802.11s", "upgrade_path":"", "ntp_ip":"fd43:5602:29bd:ffff::1", "timestamp":"1515353626", "location":{ "lat":"50.0000", "lon":"20.1000" } } }
Da die Hoodfile bei zentralen Hoods auf allen Gateways exakt gleich sein muss (muss das nach Alpha immer noch? Bitte prüfen!) darf die Datei am Gateway nicht verändert werden und muss 1:1 wie vom keyxchange geliefert verwendet werden!
Dezentrale Hoods
Werden die dezentralen Hoods per Hood-File konfiguriert, entfällt die VPN-Konfiguration aus obigem Beispiel. Stattdessen baut man einfach
"vpn":[],
ein.
Die Angabe der Location kann entweder im Hoodfile (wie oben) oder in der /etc/config/fff (manuell oder per WebUI) erfolgen.
Router mit eigenem Hoodfile können nur mit Routern meshen, auf denen ebenfalls das eigene Hoodfile installiert wurde. Solche Router bekommen auch kein zentrales Hoodfile mehr, wenn später eine gleichnamige Hood existieren sollte, außer das eigene Hoodfile wird wieder manuell vom Router gelöscht.
Parameter
Name | Optionen | Beschreibung |
---|---|---|
version | "1" | ... |
network:ula_prefix | IPv6 prefix (<=64) | Prefix für Router und Clients in der Hood (aus dem ganzen FF-Netz erreichbar) |
vpn | Liste | Gateway-VPN-Daten |
vpn:name | string | Bezeichner des FastD Interfaces |
vpn:protocol | "fastd" | - |
vpn:address | IP | Öffentliche IP Adresse des Gateways |
vpn:port | int | FastD Port |
vpn:key | Keystring | Öffentlicher FastD Schlüssel, kann auf dem Gateway abgefragt werden mit "fastd --show-key -c /etc/fastd/<Interface>/fastd.conf" |
hood:name | string | Anzeige-Name der Hood (möglichst ohne Leerzeichen) |
hood:essid | SSID | SSID für den Wifi AP |
hood:mesh_bssid | BSSID | BSSID für Mesh via IBSS |
hood:mesh_essid | ESSID | ESSID für Mesh via IBSS |
hood:mesh_id | SSID | SSID für Mesh via 802.11s |
hood:protocol | "batman-adv-v15" | andere Angaben setzen eigene FW-Implementierung voraus |
hood:channel2 | int | WLAN-Kanal 2.4 GHz |
hood:mode2 | "ht20" | WLAN-Frequenzbreite 2.4 GHz |
hood:mesh_type2 | "802.11s"/"ibss"/"none" | Mesh-Protokoll ("none" deaktiviert Meshing in der Hood) |
hood:channel5 | int | WLAN-Kanal 5 GHz |
hood:mode5 | "ht20" | WLAN-Frequenzbreite 5 GHz |
hood:mesh_type5 | "802.11s"/"ibss"/"none" | Mesh-Protokoll ("none" deaktiviert Meshing in der Hood) |
hood:upgrade_path | URL | URL of upgrade server |
hood:ntp_ip | IP | IP address of NTP Server |
hood:timestamp | Timestamp | Last change of Hood file |
hood:location:lat | double | Hood center location latitude (or dez. GW Position) |
hood:location:lon | double | Hood center location longitude (or dez. GW Position) |
Wie finde ich eine sinnvolle SSID
Mit dem KeyXchangeV2 erhält jede Hood ihre eigenen SSIDs, wie es eigentlich schon von Anfang an sinnvoll gewesen wäre. Dies ist notwendig, damit ein Client erkennen kann, mit welchem Gateway er kommunizieren muss.
In meiner Region gibt es keine V2-Hood. Ich will aber nicht die SSID einer anderen Stadt ausstrahlen!
Siehe: KeyXchangeV2#FAQ
Kann ich trotzdem die alte SSID franken.freifunk.net ausstrahlen?
Wir können es nicht verhindern. Allerdings wirst du dir damit keine Freu(n)de machen:
In ländlichen Gebieten ist das Problem der Hood-Überlappung selten ein Problem. Theoretisch wäre es hier technisch kein Problem, wenn eine Hood franken.freifunk.net ausstrahlt, wenn alle anderen etwas anderes ausstrahlen. Selbst bei zwei benachbarten Hoods ist der Weg für einen sich bewegenden Client u.U. lange genug, dass es nicht/selten zu Problemen kommt.
ABER: So lange V1-Router herumstehen, existiert immer eine Verschränkung zweier Hoods, nämlich der lokalen V1- und V2-Hood. Dies führt dazu, dass ein Endgerät (z.B. Handy) anhand der SSID nicht zwischen V1- und V2-Routern unterscheiden kann. Hat es die IP von einem V2-Gateway, kriegt es dann von einem V1-Router keine Daten und umgekehrt.
Da wir noch für einige Zeit von einer Parallelexistenz von V1 und V2 ausgehen müssen und aus den o.g. technischen Gründen ist daher eine Verwendung von franken.freifunk.net mit V2 keine Option.
Aber dann muss ich alle Flyer, Infomaterial, Speisekarten, etc. ändern!
Kurze Antwort: ja!
Einige Nutzer sind daher dazu übergegangen, keine SSID mehr irgendwo abzudrucken, sondern nur lapidar auf "Freifunk" zu verweisen. Es ist zu erwarten, wenn jemand kostenloses WLAN will, dass er es schafft in der Liste auf etwas mit Freifunk zu klicken.
Wer keine Lust hat, mit drölfzig Leuten darüber zu diskutieren, kann natürlich auch einfach etwas an die bestehende SSID anhängen oder davor schreiben:
Beispiel Bayreuth (Kennzeichen BT):
bt.franken.freifunk.net
franken.freifunk.bt
Mit solchen Varianten ist man nahe genug an der ursprünglichen SSID, dass sich in meinen Augen niemand beschweren kann. Ob man das so löst oder es vielleicht im Hinblick auf die Zukunft gleich ordentlich macht, ist jedem GW-Betreiber selbst überlassen.
Wie wähle ich eine gute SSID für den Access Point
Neben der Notwendigkeit etwas zu ändern (siehe voriger Punkt) bietet das freie Gestalten einer SSID gewisse Vorteile zwecks Benutzerfreundlichkeit. Da viele Nutzer Mobiltelefone einsetzen, wird häufig eine lange SSID nicht vollständig angezeigt. Daher sollte die relevante Information am Anfang stehen.
Dies ist je nach Präferenz etwas anderes:
- Einige drehen die bisherige Schreibweise um, sodass "freifunk" am Anfang steht und so unmittelbar vom Nutzer erkennbar ist, z.B. freifunk.bayreuth
- Einige wollen die Region bewusst als Identifikationsmerkmal einsetzen und stellen diese voran, z.B. fichtelgebirge.nord.freifunk
Hier ist das neue System also flexibler und wenn man so will auch dezentraler.
Wie wähle ich eine gute SSID für das Mesh-Netz
In V1 strahlt jeder Router zwei SSIDs aus:
- franken.freifunk.net
- batman.franken.freifunk.net
Dies führt gelegentlich bei Nutzern zu Verwirrung, die sich versehentlich ins BATMAN-Netz einwählen. Auch hier bietet die manuelle Konfiguration gewisse Vorteile:
So wie ich bei der SSID für AP auf eine gute Nutzerfreundlichkeit/Erkennbarkeit setze, so kann ich bei der Mesh-SSID dafür sorgen, dass sie dem Nutzer nicht gleich ins Auge springt. Trotzdem kann man aber alle relevanten Informationen einbauen. Statt "freifunk" kann man dann z.B. "fff" verwenden - schon wird kaum ein Nutzer noch drauf klicken, aber für Debugging etc. ist klar noch erkennbar, worum es sich handelt. Ähnlich kann man mit den anderen Elementen verfahren:
bt.mesh.fff (Für Bayreuth)
nmesh.fichtel.fff (Für FichtelgebirgeNord)
Wenn jemand lieber mesh.bayreuth.freifunk.net austrahlt, steht dem technisch natürlich nichts im Wege. Lediglich muss die Eindeutigkeit natürlich auch hier auch gewahrt bleiben.
Warum gibt es mehrere Mesh-SSIDs
V2 ist so konzipiert, dass sowohl IBSS als auch 802.11s verwendet werden kann. Da pro Hood nur eine Variante aktiviert ist, kann prinzipiell auch für beides die selbe ESSID verwendet werden. Für IBSS ist zusätzlich eine BSSID notwendig.
Für Debugging etc. empfiehlt sich allerdings, beide Varianten unterschiedlich zu benennen und dies auch von Anfang an einzutragen, wenn man die Hood aufsetzt. Zum Beispiel:
802.11s: bt.mesh.fff IBSS: bt.ibss.fff
Kostet nichts und macht viel Freude ...
Ich betreibe ein dezentrales Gateway
Wenn das dezentrale Gateway V2-Router unterstützen soll, sind alle Hood File-Parameter sowie die o.g. Überlegungen identisch. Insbesondere muss hier die zusätzliche Überlappung von dez. Hood und zentraler V2-Hood bedacht werden (zwecks SSID-Auswahl). Gleiches gilt für die Gatewayfirmware.
Im Gegensatz zu einer regulären V2-Hood wird das Hood-File jedoch nicht am KeyXchange abgelegt, sondern existiert NUR auf den Gateways. Für den seltenen Fall einer dezentralen Hood mit mehr als einem GW ist hier auf die Synchronisierung der Hood-Files zu achten, sonst geht einiges kaputt!
Hood-Location
Wie platziere ich meine Hood?
Zur Zeit (Juni 2018) haben einige V1-Hoods das Problem (z.B. Erlangen, Nürnberg), dass sie sehr viele Router (> 100) und Clients (> 300) in ein L2-/Batman-Netz stopfen. In einer Stadt konnte man bisher jedoch auch nicht vernünftig teilen, da ja sonst immer irgendwo ein Mesh die beiden Hoods verbinden würde. In den ländlichen Gebieten sind solche Teilungen größtenteils schon lange erfolgt.
Mit V2 ist genau das jedoch kein Problem mehr. Man kann jetzt Trennlinien quer durch die Stadt ziehen, ohne dass irgendwas kaputt geht. Findet ein Mesh über die Grenze statt, ist das auch kein Problem, solange nicht mehrere Uplinks beteiligt sind. In letzterem Fall teilen sich dann die Mesh-Router automatisch entsprechend auf.
Man könnte also ohne weiteres z.B. Erlangen in 3-4 Hoods oder Forchheim in 2 Hoods aufteilen und hätte damit plötzlich viel kleinere und performantere Netze. (Das Ganze wird natürlich immer noch viel langsamer sein als ein ordentlich Layer3-Setup.) Wenn sich jemand ohnehin Gedanken macht, ein V2-Gateway zu bauen, sollte dann auch der Aufwand eine weitere Hood einzurichten wesentlich kleiner sein als der Aufwand, das Gateway an sich aufzusetzen. Ich würde also für einen solchen Fall anregen, sich möglichst früh Gedanken über eine sinnvolle Hoodaufteilung zu machen!
Wie kann ich die Position einer Hood testen
V2-Hoods können hier testweise platziert werden:
https://freifunk.jubt.org/voronoi1.php
Eine Übersicht der V1-Hoods ist verfügbar unter:
https://freifunk.jubt.org/voronoi-v1.php
Durch Entfernen der Haken kann die Abschaltung von Hoods simuliert werden.