Freifunk Server Handbuch: Unterschied zwischen den Versionen
(Vserver hinweise) |
|||
Zeile 8: | Zeile 8: | ||
Bitte beachtet die Hinweise für andere Communities, welche auf der Dresdner Installation basieren sollen (Repos: firmware/vserver-base clonen, aktueller Stand von vserver-base bezüglich der Verwendbarkeit). | Bitte beachtet die Hinweise für andere Communities, welche auf der Dresdner Installation basieren sollen (Repos: firmware/vserver-base clonen, aktueller Stand von vserver-base bezüglich der Verwendbarkeit). | ||
+ | |||
+ | == Basic Vserver == | ||
+ | Dieses Repository bildet die minimale Funktionalität eines Servers für Freifunk Dresden. Der Vserver arbeitet wie ein Freifunk Knoten und ist soweit konfiguriert, dass dieser eine Knotenwebseite anbietet, Backboneverbindungen (vtund) akzeptiert und via Openvpn Internettunnel für den Internetverkehr aus dem Freifunknetz aufbauen kann. | ||
+ | |||
+ | <font color="red">HINWEIS</font>: Der Vserver ist auf Freifunk Dresden zugeschnitten. Soll dieses als Basis für andere Freifunk Communities | ||
+ | verwendet werden, müssen Anpassungen gemacht werden. | ||
+ | |||
+ | === Vorausetzungen === | ||
+ | Folgend sind die Vorausetzungen aufgeführt für das das Git Repository gedacht ist: | ||
+ | * Linux: Ubuntu Minimal Server (64bit) Ubuntu 14.04.3 LTS | ||
+ | * Netzwerk: min. 100Mbit/s <br/>Wenn weniger so sollte man nicht soviele Tunnel aufbauen und die bekanntgegebene Gateway-Geschwindigkeit in ''/etc/nvram.conf'' reduzieren. Das sollte man einfach über einen längeren Zeitraum beobachten und den niedrigstens Wert verwenden. Dazu aber den Traffic von verschiedenen Knoten aus testen! | ||
+ | batman_gateway_class="4mbit/4mbit" | ||
+ | * Kernel Module: tun.ko muss vorhanden sein. Evt sollte man sich vorher beim VServer Anbieter informieren. Nicht alle Anbieter haben einen Support im Kernel. Genutzt wird es vom Routing Protokoll, Backbone, Openvpn | ||
+ | * Speicher: mind. 512Mbyte RAM, 1GByte Swap<br/>Auf solchen systemen ist die Auslastung aber schon recht hoch, so dass oft Swap benutzt wird, was sehr nachteilig ist. Auf einen 512Mbyte System sollten maximal 50 Backbone tunnel (siehe nvram.conf) verwendet werden.<br/>Wenn möglich, sollten mind. '''1 Gbyte RAM, 2Gbyte Swap''' zurverfügung stehen. | ||
+ | * Virtualisierung: Wir der Freifunk Server auf einem virtuellen Server aufgesetzt, so funktionieren als Virtualisierungen '''KVM''' und '''XEN''' sehr gut. | ||
+ | |||
+ | === Hinweise === | ||
+ | * '''Git''': Es empfielt sich dringend für andere Communities, dieses Repository zu clonen, da hier generelle Umstellungen zusammen mit der passenden Firmware für Dresnder Anforderungen erfolgen.<br/> Communities sollten dann auf das geclonte Repository (gilt auch für das "firmware" Repository) aufbauen.<br/>Jede Community trägt die alleinige Verantwortung und Kontrolle über ihr Netz und sollte eigene Erfahrene Leute/Admins bereitstellen. Hilfe von Dresden ist aber jederzeit möglich, aber Administrative Aufgaben oder Garantien werden nicht übernommen, da das einfach den organisatorischen Aufwand sprengt.<br/> Wir wissen selber nicht, wie sich das Netz in Zukunft noch verhält, wenn dieses weiter wächst. | ||
+ | |||
+ | * '''Routingprotokoll BMXD''': Diese Protokoll wurde anstelle von bmx6 oder bmx-advanced aus verschiedenen Gründen gewählt (siehe http://wiki.freifunk-dresden.de/). Es wird vom eigentlich Author nicht mehr weiterentwickelt oder gepflegt. Für Dresden habe ich einige Fehler behoben. | ||
+ | |||
+ | * '''Anpassungen''': Speziell gilt das für den IP Bereich und der Knotenberechnung. Aus Knotennummern werden mit ddmesh-ipcalc.sh alle notwendigen IP Adressen berechnet (http://wiki.freifunk-dresden.de/index.php/Technische_Information#Berechnung_IP_Adressen).<br/> Freifunk Dresden verwendet zwei IP Bereiche, eines für die Knoten selber (10.200.0.0/16) und eines für das Backbone (10.201.0.0/16). Dieses ist technisch bedingt.<br/>Wird bei freifunk.net nur ein solcher Bereich reserviert (z.b. 10.13.0.0/16), so muss das Script ddmesh-ipcalc.sh in der Berechnung angepasst werden, so dass zwei separate Bereich entstehen. Die Bereiche für 10.13.0.0/16 würden dann 10.13.0.0/17 und 10.128.0.0/17 sein. | ||
+ | * Das '''Script ddmesh-ipcalc.sh''' wird ebenfalls in der Firmware verwendet, welches dort auch angepasst werden muss.<br/> In der Firmware gibt es zwei weitere Stellen, die dafür angepasst werden müssen. Das sind /www/nodes.cgi und /www/admin/nodes.cgi. Hier wurde auf den Aufruf von ddmesh-ipcalc.sh verzichtet und die Berechnung direkt gemacht, da die Ausgabe der Router-Webpage extrem lange dauern würde. | ||
+ | |||
+ | * In '''/etc/nvram.conf''' werden die meisten Einstellungen für den Vserver hinterlegt.<br/> Evt. kann noch /etc/issuer.net und /etch/hostname angepasst werden, was beim Betreiben von mehreren Vservern hilfreich ist. | ||
+ | |||
+ | * '''Backbone''': Weiterhin verwendet das Freifunk Dresden Netz als Backbone-VPN Tool noch vtund. Dieses wird sich aber in Zukunft ändern, wobei dann vermutlich fastd eingesetzt wird (für welches noch notwenige Funktionalitäten fehlen). | ||
+ | |||
+ | * '''Internet Tunnel''': /etc/openvpn enthält ein Script, mit dem verschiede Openvpn Konfiguration von Tunnelanbietern so aufbereitet werden, das diese für Freifunk Dresden richtig arbeiten.<br/> Wie in der Firmware läuft per cron.d ein Internet-check, der in der ersten Stufe das lokale Internet testet und wenn dieses funktioniert, wird das Openvpn Internet geprüft. Ist das Openvpn Internet verfügbar, wird dieser Vserver als Internet-Gateway im Freifunknetz bekannt gegeben. | ||
+ | |||
+ | * '''DNS''': Der Vserver arbeitet als DNS Server für die Knoten, die ihn als Gateway ausgewählt haben. Der Vserver leitet allerdings die DNS Anfragen nicht über den Openvpn Tunnel, sondern geht direkt über den VServer Anbieter raus. | ||
+ | |||
+ | * '''ICVPN''': Für ICVPN wird eigentlich alles installiert, aber ich habe dieses noch nicht mit dieser Installation getestet, da es ein Extra-Service ist und nicht auf jedem VServer in einem Netz aktiv sein braucht. Es gibt ein script, welches ebenfall dafür angepasst werden muss /etc/quagga/gen-bgpd.conf. Dieses Script greift auf github (wo alle Communities ihre Daten hinterlegen) und erzeugt entsprechende eine Konfiguration. Einfach mal damit experiementieren. Hilfreich sind hier die Befehle "ip rule" und "ip route list table zebra". Alternativ gibt es noch andere bgp Daemons, die von anderen Freifunk Communities verwendet werden (bird). Damit habe ich aber noch keine Experimente gemacht. Scripte für die Generierung von Konfigurationsfiles für bird gibt es auch irgendwo im Github. | ||
+ | |||
+ | * '''Server Anbieter''': Da Server Anbieter verschieden sind, kann die Installation abbrechen. Hier sollten erfahrene Leute die Installation anpassen und mir einen Hinweis geben. Als VServer kann <b>NICHT</b> jeder Anbieter genutzt werden.<br/> Wichtig ist, dass '''tun/tap devices''' und alle möglichen iptables module möglich sind. IPv6 ist nicht notwendig, da das Freifunk Netz in Dresden nur IPv4 unterstütz (Platzmangel auf Routern, bmxd unterstützt dieses nicht) | ||
+ | |||
+ | |||
== Server-Anbieter == | == Server-Anbieter == |
Version vom 20. November 2015, 09:43 Uhr
Inhaltsverzeichnis
Git-Repositories
Für den Betreiber eines Freifunk Servers (Vserver) gibt es ein GIT Repository. Dieses erlaubt das fast automatische Aufsetzen eines Freifunk Servers (für Internet-Gateway).
Informationen dazu sind derzeit in der readme.md auf github gegeben, werden aber in Zukunft hier gepflegt.
Bitte beachtet die Hinweise für andere Communities, welche auf der Dresdner Installation basieren sollen (Repos: firmware/vserver-base clonen, aktueller Stand von vserver-base bezüglich der Verwendbarkeit).
Basic Vserver
Dieses Repository bildet die minimale Funktionalität eines Servers für Freifunk Dresden. Der Vserver arbeitet wie ein Freifunk Knoten und ist soweit konfiguriert, dass dieser eine Knotenwebseite anbietet, Backboneverbindungen (vtund) akzeptiert und via Openvpn Internettunnel für den Internetverkehr aus dem Freifunknetz aufbauen kann.
HINWEIS: Der Vserver ist auf Freifunk Dresden zugeschnitten. Soll dieses als Basis für andere Freifunk Communities verwendet werden, müssen Anpassungen gemacht werden.
Vorausetzungen
Folgend sind die Vorausetzungen aufgeführt für das das Git Repository gedacht ist:
- Linux: Ubuntu Minimal Server (64bit) Ubuntu 14.04.3 LTS
- Netzwerk: min. 100Mbit/s
Wenn weniger so sollte man nicht soviele Tunnel aufbauen und die bekanntgegebene Gateway-Geschwindigkeit in /etc/nvram.conf reduzieren. Das sollte man einfach über einen längeren Zeitraum beobachten und den niedrigstens Wert verwenden. Dazu aber den Traffic von verschiedenen Knoten aus testen!
batman_gateway_class="4mbit/4mbit"
- Kernel Module: tun.ko muss vorhanden sein. Evt sollte man sich vorher beim VServer Anbieter informieren. Nicht alle Anbieter haben einen Support im Kernel. Genutzt wird es vom Routing Protokoll, Backbone, Openvpn
- Speicher: mind. 512Mbyte RAM, 1GByte Swap
Auf solchen systemen ist die Auslastung aber schon recht hoch, so dass oft Swap benutzt wird, was sehr nachteilig ist. Auf einen 512Mbyte System sollten maximal 50 Backbone tunnel (siehe nvram.conf) verwendet werden.
Wenn möglich, sollten mind. 1 Gbyte RAM, 2Gbyte Swap zurverfügung stehen. - Virtualisierung: Wir der Freifunk Server auf einem virtuellen Server aufgesetzt, so funktionieren als Virtualisierungen KVM und XEN sehr gut.
Hinweise
- Git: Es empfielt sich dringend für andere Communities, dieses Repository zu clonen, da hier generelle Umstellungen zusammen mit der passenden Firmware für Dresnder Anforderungen erfolgen.
Communities sollten dann auf das geclonte Repository (gilt auch für das "firmware" Repository) aufbauen.
Jede Community trägt die alleinige Verantwortung und Kontrolle über ihr Netz und sollte eigene Erfahrene Leute/Admins bereitstellen. Hilfe von Dresden ist aber jederzeit möglich, aber Administrative Aufgaben oder Garantien werden nicht übernommen, da das einfach den organisatorischen Aufwand sprengt.
Wir wissen selber nicht, wie sich das Netz in Zukunft noch verhält, wenn dieses weiter wächst.
- Routingprotokoll BMXD: Diese Protokoll wurde anstelle von bmx6 oder bmx-advanced aus verschiedenen Gründen gewählt (siehe http://wiki.freifunk-dresden.de/). Es wird vom eigentlich Author nicht mehr weiterentwickelt oder gepflegt. Für Dresden habe ich einige Fehler behoben.
- Anpassungen: Speziell gilt das für den IP Bereich und der Knotenberechnung. Aus Knotennummern werden mit ddmesh-ipcalc.sh alle notwendigen IP Adressen berechnet (http://wiki.freifunk-dresden.de/index.php/Technische_Information#Berechnung_IP_Adressen).
Freifunk Dresden verwendet zwei IP Bereiche, eines für die Knoten selber (10.200.0.0/16) und eines für das Backbone (10.201.0.0/16). Dieses ist technisch bedingt.
Wird bei freifunk.net nur ein solcher Bereich reserviert (z.b. 10.13.0.0/16), so muss das Script ddmesh-ipcalc.sh in der Berechnung angepasst werden, so dass zwei separate Bereich entstehen. Die Bereiche für 10.13.0.0/16 würden dann 10.13.0.0/17 und 10.128.0.0/17 sein. - Das Script ddmesh-ipcalc.sh wird ebenfalls in der Firmware verwendet, welches dort auch angepasst werden muss.
In der Firmware gibt es zwei weitere Stellen, die dafür angepasst werden müssen. Das sind /www/nodes.cgi und /www/admin/nodes.cgi. Hier wurde auf den Aufruf von ddmesh-ipcalc.sh verzichtet und die Berechnung direkt gemacht, da die Ausgabe der Router-Webpage extrem lange dauern würde.
- In /etc/nvram.conf werden die meisten Einstellungen für den Vserver hinterlegt.
Evt. kann noch /etc/issuer.net und /etch/hostname angepasst werden, was beim Betreiben von mehreren Vservern hilfreich ist.
- Backbone: Weiterhin verwendet das Freifunk Dresden Netz als Backbone-VPN Tool noch vtund. Dieses wird sich aber in Zukunft ändern, wobei dann vermutlich fastd eingesetzt wird (für welches noch notwenige Funktionalitäten fehlen).
- Internet Tunnel: /etc/openvpn enthält ein Script, mit dem verschiede Openvpn Konfiguration von Tunnelanbietern so aufbereitet werden, das diese für Freifunk Dresden richtig arbeiten.
Wie in der Firmware läuft per cron.d ein Internet-check, der in der ersten Stufe das lokale Internet testet und wenn dieses funktioniert, wird das Openvpn Internet geprüft. Ist das Openvpn Internet verfügbar, wird dieser Vserver als Internet-Gateway im Freifunknetz bekannt gegeben.
- DNS: Der Vserver arbeitet als DNS Server für die Knoten, die ihn als Gateway ausgewählt haben. Der Vserver leitet allerdings die DNS Anfragen nicht über den Openvpn Tunnel, sondern geht direkt über den VServer Anbieter raus.
- ICVPN: Für ICVPN wird eigentlich alles installiert, aber ich habe dieses noch nicht mit dieser Installation getestet, da es ein Extra-Service ist und nicht auf jedem VServer in einem Netz aktiv sein braucht. Es gibt ein script, welches ebenfall dafür angepasst werden muss /etc/quagga/gen-bgpd.conf. Dieses Script greift auf github (wo alle Communities ihre Daten hinterlegen) und erzeugt entsprechende eine Konfiguration. Einfach mal damit experiementieren. Hilfreich sind hier die Befehle "ip rule" und "ip route list table zebra". Alternativ gibt es noch andere bgp Daemons, die von anderen Freifunk Communities verwendet werden (bird). Damit habe ich aber noch keine Experimente gemacht. Scripte für die Generierung von Konfigurationsfiles für bird gibt es auch irgendwo im Github.
- Server Anbieter: Da Server Anbieter verschieden sind, kann die Installation abbrechen. Hier sollten erfahrene Leute die Installation anpassen und mir einen Hinweis geben. Als VServer kann NICHT jeder Anbieter genutzt werden.
Wichtig ist, dass tun/tap devices und alle möglichen iptables module möglich sind. IPv6 ist nicht notwendig, da das Freifunk Netz in Dresden nur IPv4 unterstütz (Platzmangel auf Routern, bmxd unterstützt dieses nicht)
Server-Anbieter
Im Laufe der Zeit haben wir bei vielen Anbietern Server für den Freifunk Dresden gebucht. Einige unserer Erfahrungen mit den verschiedenen Produkten sammeln wir hier.
1&1
„Virtual Server Linux Student“ (nicht empfohlen)
- Anbindung: 100 Mbit/s
- Preis: 1,00€ (monatlich kündbar)
- Besonderheitem: Prozessanzahl auf 128 limitiert
Im Rahmen des Studentenangebotes „Campus-Code“ bot 1&1 einen Vserver für nur 1€ monatlich an. Dieser eignet sich allerdings nur für Testzwecke oder als Backbone-Server für eine sehr kleine Anzahl an Knoten, da die Anzahl der laufenden Prozesse auf nur 128 (numproc) limitiert ist. Durch das Erreichen des Prozesslimits läuft der Server regelmäßig fehlerhaft oder ist nicht mehr erreichbar und muss über das Vserver-Control-Panel neu gestartet werden. Ein halbwegs stabiler dauerhafter Betrieb ist nur bei 15-20 Backbone-Verbindungen möglich. (Stand 10/2015)
Netcup
„Root-Server S“
- Virtualisierung: KVM
- Anbindung: 100 Mbit/s
- Preis: 4,99€ (monatlich kündbar)
- Besonderheiten: Drosselung bei Überschreitung von 80 Mbit/s Bandbreite
Netcup drosselt Vserver, wenn diese über einen Zeitraum von 15 Minuten eine durchschnittliche Bandbreite von über 80 Mbit/s belegen. Die Drosselung erfolgt ohne Vorwarnung auf ca. 50KB/s, wodurch der Server praktisch unbenutzbar wird. Erst auf Nachfrage erfährt man vom Support von der Drosselung, die zumindest bei uns auf Bitte wieder rückgängig gemacht wurde. Falls man diesen Server für Freifunk sinnvoll nutzen möchte, sollte man selbst sicherstellen, dass die beanspruchte Bandbreite stets unter 80 Mbit/s bleibt. (Stand 10/2015)
„Root-Server L“
- Virtualisierung: KVM
- Anbindung: 1 Gbit/s
- Preis: 18,99€ (monatlich kündbar)
- Besonderheiten: Drosselung bei Überschreitung von 80 Mbit/s Bandbreite
Laut Netcup liegt bei den Gigabit-Servern eine durchschnittliche Bandbreite von nur 200 Mbit/s an. Wie beim „Root-Server S“ gilt außerdem die selbe Regelung für die Überschreitung der 80-Mbit/s-Grenze. (Stand 10/2015)
ispOne business (nicht empfohlen)
Trotz Internetflat werden Server abgeschaltet, gedrosselt oder sind drei Tage überhaupt nicht erreichbar (Traffic < 5TB/Monat). Der Support war anfänglich okay, aber seitdem vermutlich die Serverlast und der Datenverkehr zugenommen hat, wird nicht mehr auf Supportanfragen reagiert und behauptet, dass der Server gehackt wurde. Fragen nach Begrenzungen (um diese eventuell selber zuzusichern) bleiben unbeantwortet. Monatsverträge werden vonseiten ispOne ohne Begründung gekündigt. Man erfährt dies nur durch eine "Kündigungsbestätigung".