FF-Router über bestehendes WLAN kabellos anbinden

Kategorie:Technik
Ein derartiger Aufbau ist aufgrund der doppelt verbrauchten Airtime und somit effektiv mindestens einer Halbierung der Geschwindigkeit nicht sinnvoll!
Mit KeyXchangeV2 Firmware (ab 20180802) ist die manuelle Konfiguration von WLAN-Kanal und WLAN-Interfaces nicht möglich, da beides automatisch auf Basis der Hood-Informationen im Hoodfile konfiguriert wird!
= Intro =
Dieser Artikel beschreibt wie man einen Freifunk-Router drahtlos an einen bestehenden Router (z.B. Fritzbox, Speedport, etc..) anschliesst, um diesen so über das Internet mit dem Freifunk-Netz zu verbinden. Zwar ist ein Anschluss per Netzwerkkabel als Verbindung immer besser und auch einfacher zu realisieren, bietet aber manchmal nicht die erforderliche oder gewünschte Flexibilität beim Aufstellen des Freifunk-Routers. Weitere Gründe können sein, dass das Netzwerkkabel optisch nicht ansprechend verlegt werden kann oder dass die Netzwerkanschlüsse des Freifunk-Routers begrenzt sind und bereits für andere Zwecke gebraucht werden (Manche Modelle haben nur einen).
Für den drahtlosen Anschluss eines Freifunk-Routers werden 2 Optionen präsentiert: 
In Option 1 wird ein zusätzlicher OpenWRT Router dazu verwendet, eine Funkverbindung mit dem Funknetz der Internetanbindung herzustellen. Dieser OpenWRT Router reicht das Internet dann an den Freifunk-Router per Netzwerkkabel weiter.
In Option 2 wird der Freifunk-Router direkt mit dem Funknetz der Internetanbindung verbunden. Hierfür müssen alle beteiligten Geräte auf Kanal 1 des 2.4 GHz Bandes funken. Ferner muss der FF-Router auf Betriebssystemebene konfiguriert werden.
= Option 1: Zwischengeschalteter OpenWrt Router als Brücke in das Funknetz der Internetanbindung =
Ich komme immer wieder in die Situation, dass am Aufstellungsort eines FF-Routers zwar ein Internetanschluss vorhanden ist, sich aber der Internet-Router oft an den unmöglichsten Stellen befindet, ohne jede Möglichkeit den Freifunk-Router an seinem Aufstellungsort mit einem Netzwerkkabel anzuschließen. Oft ist jedoch der Internet-Router auch mit WLAN ausgestattet und bietet somit einen drahtlosen Internetzugang an. 
Da das Router Modell TP-Link WR841N nicht sehr teuer ist und auch noch sehr wenig Strom braucht, habe ich mir überlegt einfach einen solche Router mit OpenWrt als Accesspoint dazwischen zu schalten.
Ziel ist es, dass sich der OpenWrt-Router (WR841N) das Internet-WLAN schnappt und dieses an die gelben LAN-Buchsen mit einem anderem IPv4 Netz routet.
Zunächst habe ich den Router mit der aktuellen OpenWrt Firmware geflasht, ein Passwort und einen Hostnamen und die richtige Timezone vergeben. Als nächste habe das default-WLAN gelöschen. Dies wird in der Form nicht benötigt.
Danach wird ein Client-WLAN auf das zu konnektierende WLAN angelegt.
In diesem Beispiel habe ich das Gast-WLAN einer Fritzbox verwendet und in RelayAccess umbenannt.
Das neue Client-WLAN muss dann noch dem WAN-Port zugewiesen werden.
Damit das Routing richtig funktioniert muss am WAN-Port eine feste IPv4 Adresse vergeben werden. In diesem Beispiel ist durch das Gast-WLAN der Fritzbox das IP-Netz 192.168.179.0/24 fest vorgegeben. Der DHCP-Bereich der Fritzbox geht erst bei .20 los. Ich kann in diesem Fall die Adressen von .2-.19 für statische Hosts vergeben. Da in diesem Netz sonst nichts weiter ist kann ich dem OpenWrt-Router die Adresse 192.168.179.2 fest vergeben. Als default Gateway wird die Adresse des Gast-WLANs der Fritzbox eingetragen. Der DHCP-Server darf an diesem Interface nicht aktiviert werden.
Jetzt muss die LAN-Seite (gelbe Router-Buchsen) mit einem neuen Netzwerk eingerichtet werden. Ich habe mich der Einfachheit halber für ein Class C Netz entschieden. In diesem Fall für 192.168.180.0/24
Hier braucht kein Gateway eingetragen zu werden. Der DHCP-Server muss aber eingeschaltet werden.
Jetzt muss noch diese Route eingetragen werden.
Vollständigkeitshalber habe ich jetzt noch der EX-WAN-Buchse (blauer Port) das ursprüngliche OpenWrt-Netz zugewiesen und auch hier den DHCP-Server aktiviert.
 
An den Firewall-Zonen muss noch der markierte Parameter eingestellt werden.
 
Die Interface Übersicht sieht dann so aus. Das Interface WAN6 kann man noch löschen wenn man möchte.
Wenn sich die WLAN-Verbindung zum Internet aufgebaut hat braucht nur noch der blaue Port des FF-Routers mit einem der gelben Ports des OpenWrt-Routers mit einem Netzwerkkabel verbunden werden und wir haben einen, im Bereich des Internet-WLANs, standortunabhängigen Freifunk-Router ohne ein lästiges Netzwerkkabel verlegen zu müssen. 
Weitere Tipps:
* Wie man einen FF-Router an einem Fritzbox Gastzugang betreibt steht hier:
* Man sollte darauf achten, dass das Internet-WLAN auf Kanal 6 oder 11 eingestellt ist. Da die beiden TP-Link Router wahrscheinlich sehr dicht nebeneinander stehen ist eine gegenseitige Störung bei gleicher Kanaleinstellung von FF-WLAN ind Internet-WLAN nicht ausgeschlossen. Freifunk ist immer auf Kanal 1.
= Option 2: Direktes Einbinden des Freifunk-Routers in das Funknetz der Internetanbindung =
In Option 2 bindet man den Freifunk-Router direkt und drahtlos in das Funknetz einer bestehenden Internetverbindung ein.
Dieses Vorgehen wurde bislang mit folgender Hardware/ Software Kombination erfolgreich durchgeführt:
* Ubiquiti Nanostation M2 Loco (Firmware 0.5.1) an AVM Fritz!Box 7360 (Fritz!OS 6.30)
* TP-Link WR-841n(d) V9 (Firmware 0.5.1) an AVM Fritz!Box 7360 (Fritz!OS 6.30)
== Voraussetzungen ==
* Sicheres Passwort auf dem Freifunk Router ("Wie ändere ich das Passwort für den Router?")
* SSH Zugriff auf den Router ("Wie kann ich mich auf den Router einloggen?")
* Zugriff auf den Router des Funknetzes der Internetanbindung 
* Kenntnis von SSID (Funknetzname), Key (Password) und Encryption (Verschlüsselungsverfahren) des Funknetzes der Internetanbindung 
* Router des Funknetzes der Internetanbindung arbeitet auf dem gleichen Kanal wie der Freifunk-Router, d.h. der Router des Funknetzes der Internetanbindung ist auf Kanal 1 des 2.4 GHz Bandes konfiguriert.
== Einloggen ==
Zunächst muss man sich mit dem FF-Router verbinden. Da im Regelfall automatisiert eine IP von einem Gateway bezogen wird, ist dies am einfachsten, wenn der Freifunk-Router
* temporär per Netzwerkkabel an einen Router mit Internetzugang angeschlossen wird
* bereits drahtlos in das Freifunk-Netz eingebunden ist (indem er z.B. in der Nähe eines anderen Freifunk-Routers steht)
Alternativ kann man auch ohne Internetverbindung Zugriff auf den Freifunk-Router erlangen, indem man für die SSID franken.freifunk.net manuell eine beliebige IP (z.B. 1.2.3.4) und eine Netzmaske (z.B. 255.255.255.0) vorgibt und sich in unmittelbarer Nähe des Routers verbindet. Eine IP muss dann nicht mehr aus dem Internet bezogen werden. 
Dann loggt man sich auf dem Router per ssh ein.
== Konfiguration ==
=== Sicherheitskopien ===
Zunächst sind Sicherheitskopien der später veränderten Dateien empfehlenswert:
cp /etc/config/network /etc/config/network.orig
cp /etc/config/wireless /etc/config/wireless.orig
cp /etc/config/firewall /etc/config/firewall.orig 
cp /etc/config/nodewatcher /etc/config/nodewatcher.orig
Falls später gewünscht, ist ein Zurückspielen der gesicherten Konfiguration umgekehrt über
cp /etc/config/network.orig /etc/config/network 
cp /etc/config/wireless.orig /etc/config/wireless 
cp /etc/config/firewall.orig /etc/config/firewall
cp /etc/config/nodewatcher.orig /etc/config/nodewatcher
möglich.
=== Editieren von /etc/config/network ===
Mittels eines Texteditors muss an die vorhandene Konfigurationsdatei /etc/config/network ein Konfigurationsblock angefügt werden. Die bestehenden Konfigurationsblöcke müssen erhalten bleiben.
 
Aufruf des Texteditors:
vi /etc/config/network
Mittels "i" kann der Editor in den Einfügemodus versetzt werden. Folgender Konfigurationsblock sollte am Ende der Datei angefügt werden.
config interface 'wwan'
 option proto 'dhcp'
Es wird ein neues Interface definiert, dass für die Funkverbindung zum Router mit Internetanbindung verwendet wird.
Mit "Esc" beendet man den Einfügemodus. Mit ":x" speichert man die Datei. Mit ":q!" verwirft man die Änderungen, falls etwas schief gegangen sein sollte. Der Editor wird in beiden Fällen beendet.
Info: Weitere Konfigurationsmöglichkeiten sind hier dokumentiert.
=== Editieren von /etc/config/wireless ===
Auch hier muss die Konfiguration mittels Texteditor angepasst werden:
vi /etc/config/wireless
Wieder muss der Texteditor mit "i" in den Einfügemodus versetzt werden und folgender Konfigurationsblock angefügt werden. Die bestehenden Einträge müssen erhalten bleiben.
config wifi-iface
 option ssid 'SSID_des_Wlan_Routers'
 option encryption 'psk2' # Set wep, psk or psk2 for WEP, WPA or WPA2 
 option device 'radio0'
 option mode 'sta'
 option network 'wwan'
 option ifname 'wwan'
 option key 'Key_des_Wlan_Routers'
Hier werden die Konfigurationsparameter des Funknetzes eingefügt, mit denen sich der Freifunk-Router verbinden soll, um die Internetanbindung zu realisieren. Neben dem Namen des Funknetzes (ssid) und dem Password / Verschlüsselungscode (key) sollte hier das Verschlüsselungsverfahren (encryption) angepasst werden. Die Zugangsdaten werden benötigt, damit der Freifunk-Router Zugriff auf das Funknetz der Internetanbindung nehmen kann.
Darüber hinaus muss das Funknetz der Internetanbindung wie der Freifunk-Router auf Kanal 1 des 2.4 GHz Bandes funken. Dies muss ggf. in der Konfiguration des Routers der Internetanbindung geändert werden.
Der Name des Funk-Devices "radio0" sollte bereits in den bestehenden Konfigurationsblöcken von /etc/config/wireless erwähnt sein.
Mit "Esc" beendet man den Einfügemodus. Mit ":x" speichert man die Datei. Mit ":q!" verwirft man die Änderungen, falls etwas schief gegangen sein sollte. Der Editor wird in beiden Fällen beendet.
Info: Weitere Konfigurationsmöglichkeiten sind hier dokumentiert.
=== Editieren von /etc/config/firewall ===
Auch hier muss die Konfiguration mittels Texteditor angepasst werden:
vi /etc/config/firewall
Wieder muss der Texteditor mit "i" in den Einfügemodus versetzt werden und folgende Konfigurationsblöcke angefügt werden. Das neu erstellte Netzwerk muss in die wan Zone der firewall eingebracht werden. Hierfür muss folgender Konfigurationsblock angepasst werden: 
config zone
 option name wan
 option input REJECT
 option output ACCEPT
 option forward REJECT
 option masq 1
 option mtu_fix 1
 option network 'wan wwan'
Mit "Esc" beendet man den Einfügemodus. Mit ":x" speichert man die Datei. Mit ":q!" verwirft man die Änderungen, falls etwas schief gegangen sein sollte. Der Editor wird in beiden Fällen beendet.
=== Ausblenden des neuen Interfaces im Netmon (optional) ===
Wir editieren die Datei nodewatcher:
vi /etc/config/nodewatcher
Und tragen das oben neu definierten Interface wwan in die Blacklist der Interfaces ein, die nicht an den Netmon durchgereicht werden.
Mittels "i" kann der Editor in den Einfügemodus versetzt werden. Folgender Konfigurationsblock kann angepasst werden:
config network
	option mesh_interface 'br-mesh'
	option iface_blacklist 'lo ifb0 wwan'
	option ip_whitelist 'br-mesh'
	option client_interfaces 'w2ap'
Mit "Esc" beendet man den Einfügemodus. Mit ":x" speichert man die Datei. Mit ":q!" verwirft man die Änderungen, falls etwas schief gegangen sein sollte. Der Editor wird in beiden Fällen beendet.
=== Reboot und Aufstellen des Freifunk Routers ===
Die Änderungen werden nach Neustart des Routers aktiv:
reboot & exit
Der Router kann nach dem Neustart an seinen Aufstellungsort gebracht werden (falls er temporär woanders angeschlosssen war) und dort eingeschaltet werden.
== Abschlusscheck der Konfiguration ==
Am neuen Aufstellungsort sollte der Freifunk-Router sich selbstständig und drahtlos zu dem vorkonfigurierten Funknetz verbinden.
Wir verbinden uns mit dem Router und loggen uns ein.
Nach Aufruf von ...
route
...sollte eine default-Route über das neu erstellte Interface wwan zum verbundenen Netzwerk sichtbar werden. Exemplarisch:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default fritz.box 0.0.0.0 UG 0 0 0 wwan
192.168.178.0 * 255.255.255.0 U 0 0 0 wwan
Über...
iwconfig wwan
...kann man das Funknetz anzeigen, mit dem sich der FF-Router verbunden hat. Exemplarisch:
 wwan IEEE 802.11bgn ESSID:"SSID_des_Wlan_Routers" 
 Mode:Managed Frequency:2.412 GHz Access Point: 34:81:C4:7A:3C:18 
 Bit Rate=24 Mb/s Tx-Power=22 dBm 
 RTS thr:off Fragment thr:off
 Encryption key:off
 Power Management:off
 Link Quality=31/70 Signal level=-75 dBm 
 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
 Tx excessive retries:9 Invalid misc:8293 Missed beacon:0
Hier sollte als Access Point die MAC-Adresse des Routers eingetragen sein, von dem man das Internet bezieht. Wenn man nennenswerte Datenraten erzielen möchte, sollte die Signalstärke nicht unter -75 dBm liegen.
Der fastd Prozess zum Aufbau eines VPN-Tunnels ins Freifunknetz sollte gestartet sein. Der Aufruf...
pgrep fastd
...sollte mit der ID des fastd-Prozesses beantwortet werden.
Die Rückmeldungen über die Einbindung in das Funknetz der Internetanbindung kann man sich über...
dmesg | grep wwan
...anzeigen lassen. Exemplarisch:
[ 26.440000] IPv6: ADDRCONF(NETDEV_UP): wwan: link is not ready
[ 28.060000] wwan: authenticate with 34:81:c4:7a:3c:18
[ 28.070000] wwan: send auth to 34:81:c4:7a:3c:18 (try 1/3)
[ 28.080000] wwan: authenticated
[ 28.090000] wwan: associate with 34:81:c4:7a:3c:18 (try 1/3)
[ 28.100000] wwan: RX AssocResp from 34:81:c4:7a:3c:18 (capab=0x31 status=0 aid=2)
[ 28.100000] wwan: associated
[ 28.110000] IPv6: ADDRCONF(NETDEV_CHANGE): wwan: link becomes ready
Ist keine Verbindung zum Freifunk-Router möglich, bezieht man evtl. keine IP, da die Internetanbindung nicht funktioniert. Die wahrscheinlichsten Ursachen hierfür sind:
* Der Freifunk Router befindet sich an seinem neuen Standort nicht in Reichweite des Funknetzes, an das er angeschlossen werden soll
* Der Freifunk Router kann keine Verbindung zum Funknetz der Internetanbindung aufbauen. Hier sollte man nochmal die Parameter ssid, key und encryption in /etc/config/wireless prüfen als auch sicherstellen, dass beide Funknetze (Internetanbindung & Freifunk) auf Kanal 1 arbeiten.
* Der fastd VPN-Tunnel wird erstmalig gestartet und benötigt noch etwas Zeit. Als absolute Obergrenze kann man bis zu 10 Minuten warten. Evtl. hilft auch ein Neustart des Routers.
Hinweis: Man kann zu Diagnosezwecken auch ohne Internetverbindung Zugriff auf den Freifunk-Router erlangen, indem man für die SSID franken.freifunk.net manuell eine beliebige IP (z.B. 1.2.3.4) und eine Netzmaske (z.B. 255.255.255.0) vorgibt und sich in unmittelbarer Nähe des Routers verbindet. Eine IP muss dann nicht mehr aus dem Internet bezogen werden.