Freifunk-Gateway aufsetzen/http: Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „== http == Es wird ein http Server benötigt, der auf Port 2342 das Hoodfile ausliefert. Dies muss für jede Hood an dem Interface auf dem gleichen Port und un…“) |
Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
== | = http = | ||
== Funktion == | |||
Es wird ein http Server benötigt, der auf Port 2342 das Hoodfile ausliefert. Dies muss für jede Hood an dem Interface auf dem gleichen Port und unter fe80::1 erreichbar gemacht werden | Es wird ein http Server benötigt, der auf Port 2342 das Hoodfile ausliefert. Dies muss für jede Hood an dem Interface auf dem gleichen Port und unter fe80::1 erreichbar gemacht werden | ||
'''<span style="color:red">Dieser Schritt sollte erst ausgeführt werden, wenn der Server im KeyXchange eingetragen ist. Sonst erhält man das Hoodfile einer falschen Hood (die richtige ist ja nicht eingetragen) und verteilt dieses u.U. weiter (= Bumm, nicht gut)! Auch ein manuelles Herunterladen ohne Cronjob hat diesen Effekt.</span>''' | '''<span style="color:red">Dieser Schritt sollte erst ausgeführt werden, wenn der Server im KeyXchange eingetragen ist. Sonst erhält man das Hoodfile einer falschen Hood (die richtige ist ja nicht eingetragen) und verteilt dieses u.U. weiter (= Bumm, nicht gut)! Auch ein manuelles Herunterladen ohne Cronjob hat diesen Effekt.</span>''' | ||
== Konfiguration == | |||
Das aktuellste Hoodfile kann vom keyxchangev2 bezogen werden und '''muss''' regelmäßig (Cronjob, alle 5 Minuten) auf dem Gateway aktualisiert werden. | Das aktuellste Hoodfile kann vom keyxchangev2 bezogen werden und '''muss''' regelmäßig (Cronjob, alle 5 Minuten) auf dem Gateway aktualisiert werden. | ||
Zeile 21: | Zeile 24: | ||
Mehr Details zum Hood file: [[Hood file]] | Mehr Details zum Hood file: [[Hood file]] | ||
===Für mehrere Hoods=== | === Für mehrere Hoods === | ||
Man benötigt einen Webserver, der (für die gleiche Adresse) für verschiedene Interfaces verschiedene Dateien ausliefern kann. | Man benötigt einen Webserver, der (für die gleiche Adresse) für verschiedene Interfaces verschiedene Dateien ausliefern kann. | ||
Am einfachsten ist das zu realisieren, indem man den Webserver auf mehreren Ports lauschen lässt und aus und Pakete vom jeweiligen batX Port 2342 auf den jeweiligen Port redirected. | Am einfachsten ist das zu realisieren, indem man den Webserver auf mehreren Ports lauschen lässt und aus und Pakete vom jeweiligen batX Port 2342 auf den jeweiligen Port redirected. | ||
Beispiel | ==== Beispiel nginx ==== | ||
<pre> | <pre> | ||
~# cat /etc/nginx/sites-enabled/nuernberg | ~# cat /etc/nginx/sites-enabled/nuernberg | ||
Zeile 37: | Zeile 40: | ||
Für weitere Hoods analog. | Für weitere Hoods analog. | ||
Beispiel | ==== Beispiel Apache ==== | ||
<pre> | <pre> | ||
~# cat /etc/apache2/ports.conf | ~# cat /etc/apache2/ports.conf |
Version vom 28. August 2018, 08:38 Uhr
http
Funktion
Es wird ein http Server benötigt, der auf Port 2342 das Hoodfile ausliefert. Dies muss für jede Hood an dem Interface auf dem gleichen Port und unter fe80::1 erreichbar gemacht werden
Dieser Schritt sollte erst ausgeführt werden, wenn der Server im KeyXchange eingetragen ist. Sonst erhält man das Hoodfile einer falschen Hood (die richtige ist ja nicht eingetragen) und verteilt dieses u.U. weiter (= Bumm, nicht gut)! Auch ein manuelles Herunterladen ohne Cronjob hat diesen Effekt.
Konfiguration
Das aktuellste Hoodfile kann vom keyxchangev2 bezogen werden und muss regelmäßig (Cronjob, alle 5 Minuten) auf dem Gateway aktualisiert werden.
Cronjob:
*/5 * * * * wget "http://keyserver.freifunk-franken.de/v2/index.php?lat=49.4814&long=10.966" -O /var/www/fuerth/keyxchangev2data
Achtung, da die Hoodfile auf allen Gateways exakt identisch sein muss, darf sie keinesfalls verändert werden (z.b. formatieren oder Zeichen hinzufügen o.ä.).
Die Router beziehen die Datei wechselseitig von verschiedenen Quellen (KeyXchange, Gateways, etc.). Unterscheidet sich die Checksumme, wird hier jeweils neu umkonfiguriert, was bei verschiedenen Files auf zwei GWs dann gerne mal alle 5 Minuten passiert und das Netz lokal kaputt macht.
Koordinaten und Pfad müssen für jede Hood angepasst werden: http://keyserver.freifunk-franken.de/v2/hoods.php
Mehr Details zum Hood file: Hood file
Für mehrere Hoods
Man benötigt einen Webserver, der (für die gleiche Adresse) für verschiedene Interfaces verschiedene Dateien ausliefern kann.
Am einfachsten ist das zu realisieren, indem man den Webserver auf mehreren Ports lauschen lässt und aus und Pakete vom jeweiligen batX Port 2342 auf den jeweiligen Port redirected.
Beispiel nginx
~# cat /etc/nginx/sites-enabled/nuernberg server { listen [::]:2001; root /var/www/fuerth; }
Für weitere Hoods analog.
Beispiel Apache
~# cat /etc/apache2/ports.conf Listen 2001 Listen 2002 . . ~# cat /etc/apache2/sites-available/bat.conf: <VirtualHost *:2001> ServerAdmin webmaster@localhost DocumentRoot /var/www/fuerth ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> <VirtualHost *:2002> ServerAdmin webmaster@localhost DocumentRoot /var/www/nuernberg ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> . . ~# a2ensite bat
Und dann braucht man noch die entsprechenden Redirects.
Diese müssen entweder mit iptables-persistent reboot-safe gemacht werden oder irgendwie anders zuverlässig beim Serverstart eingetragen werden (z.B. an die batX interface-config anhängen)
ip6tables -t nat -A PREROUTING -i bat0 -p tcp -d fe80::1 --dport 2342 -j REDIRECT --to-port 2001 ip6tables -t nat -A PREROUTING -i bat1 -p tcp -d fe80::1 --dport 2342 -j REDIRECT --to-port 2002 ip6tables -t nat -A PREROUTING -i bat2 -p tcp -d fe80::1 --dport 2342 -j REDIRECT --to-port 2003
Bonus
Es kann noch in jedem Hood-Verzeichnis ein File "gateway" mit dem Servernamen (z.B. "fff-hof-gw3") liegen. So kann man beim Debuggen gleich sehen, welcher Server hier lauscht.