Freifunk-Knoten als Gateway unter FreeNAS (bhyve)

02.10.2016
Dieser Inhalt ist bereits etwas älter.
This content is already a bit old.
Bild

In diesem Artikel beschreibe ich, wie ein Freifunk-Knoten (in meinem Beispiel hier ein Freifunk Karlsruhe-Knoten) auf einem FreeNAS-System installiert und eingerichtet wird. Normalerweise wird die Freifunk-Firmware direkt auf WLAN-Routern installiert. Es gibt aber auch Fälle, in denen bereits eine leistungsfähige WLAN-Infrastruktur existiert und es deshalb nicht unbedingt hilfreich ist, 2 AP-Infrastrukturen aufzubauen.

Also wird eine VM auf FreeNAS eingerichtet, welche 2 Netzwerkkarten zugeordnet hat: 1x WAN (hierüber verbindet sich die VM mittels VPN in das Freifunk-Netzwerk) und 1x LAN bzw. Client-Netz (darin befinden sich später die Clients). Auf dem LAN-Interface der VM ist später ein DHCP-Server verfügbar, welcher den Clients dann aus dem VPN-Netzwerk IP-Adressen vergibt. An diesem Interface (kann auch mittels VLAN getaggt werden) kann dann ein bereits vorhandenen Access Point zum Ausstrahlen des Freifunk-WLANs verwendet werden.

Folgende Schritte sind auf dem FreeNAS-System durchzuführen:

Eine neue VM erstellen. Folgende Einstellungen dazu verwenden:

Bild

Bei den Devices der VM eine neue Netzwerkkarte vom Typ virtio erstellen, MAC-Adresse würfeln und an das Interface hängen, mit welchem später die VM auf das Internet zugreifen soll (in meinem Fall igb0):

Bild

Nun laden wir das Freifunk-Image von der Webseite der jeweiligen Freifunk-Community herunter. In meinem Beispiel war das die Firmware "x86⁣ generic 32bit⁣":

https://firmware.karlsruhe.freifunk.net/?q=x86%E2%81%A3%20generic%C2%A032bit%E2%81%A3%20alle%E2%81%A3%20Erstinstallation

Dort laden wir dann die Datei für die Erstinstallation herunter, entpacken diese und laden das Image-File auf einen Order im FreeNAS-System hoch.

Wir erstellen ein neues Device in der VM, wählen dort RAW-File aus und wählen dann den Pfad zum hochgeladenen Image aus:

Bild

Nun sollten der VM das Image sowie ein Netzwerk-Interface zugeordnet sein.

 

Nun wechseln wir in die Netzwerk-Einstellungen von FreeNAS und legen für das Client-Interface die Netzwerkeinstellungen fest:

Bild

Hintergrund: Damit das Interface für die Clients und für die VM nutzbar ist, muss das Interface durch das System aktiviert und konfiguriert sein. Da wir diese Einstellung direkt in FreeNAS vornehmen bleibt diese Einstellung auch nach einem Upgrade von FreeNAS vorhanden. Achtung: wir treffen hier bereits Vorbereitungen für das Client-Netzwerk, die Verbindung zu diesem Interface (in meinem Fall igb1) stellen wir erst später her.

 

Nun starten wir die VM, warten einige Sekunden und wechseln dann in die serielle Konsole der VM.

Falls der Boot der VM erfolgreich war, sollte in etwa folgende Ausgabe angezeigt werden:

Bild

Mit dem drücken der Return-Taste sind wir nun auf der Shell des Systems.

Als erstes müssen wir dem System eine gültige IP-Adresse vergeben, mit welcher wir in der Lage sind, die Einrichtungsseite des Knotens mit dem Browser zu erreichen. Im meine Falle habe ich folgendes ausgeführt:

ifconfig br-setup 192.168.200.1
ifconfig br-setup 255.255.0.0

Nun rufen wir die IP-Adresse http://192.168.200.1 im Browser auf. Die Konfigurationsseite bzw. der Einrichtungsassistent (je nach Community) müsste nun angezeigt werden.

Die Einrichtung des Knotens zügig abschließen (während das Gerät im Einrichtungsmodus läuft fungiert es als DHCP-Server).

Nach der Eingabe aller Informationen führt die VM einen Neustart aus. Nach dem Neustart schalten wir die VM aus bzw. geben dafür einfach den Befehl

poweroff

in der seriellen Konsole der VM ein.

 

Nun fügen wir ein weiteres Netzwerk-Interface der VM-Konfiguration hinzu (igb1 ist in meinem Beispiel das Interface für das Clientnetzwerk):

Bild

Bitte auch die Device Order beachten, da sonst eth0 und eth1 auf der virtuellen Maschine vertauscht werden!

Die Fertige Konfiguration sieht dann so aus:

Bild

Nun wird die VM wieder gestartet und nach dem Boot auf die serielle Konsole gewechselt. Hier müssen noch einige Einstellungen angepasst werden.

Folgende Befehle werden nun ausgeführt:

uci set network.wan.ifname='eth0'
uci set network.client.ifname='eth1 bat0'
uci commit
reboot

Das WAN-Interface soll über den 1. Netzwerkadapter laufen (eth0). Hierüber stellt die VM über VPN eine Verbindung zum Freifunk-Gateway der jeweiligen Community her.

Das Client-Interface soll auf eth1 liegen (in FreeNAS in meinem Fall igb1 zugeordnet) und wir mit dem bat0-Interface gebrückt.

Die VM startet nun neu. Nach wenigen Minuten sollte nun auf dem Interface für das Clientnetz (in meinem Beispiel igb1) rausfallen.


 

Feedback, Verbesserungsvorschläge, weitere Ideen?

Einfach das Kontaktformular verwenden oder direkt eine E-Mail an info@kirgus.net.