FF-Router über bestehendes WLAN kabellos anbinden

Aus Freifunk Franken
Wechseln zu:Navigation, Suche

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-Router begrenzt sind (teilweise nur einer) und bereits für andere Zwecke gebraucht werden.

Für den drahtlose 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. Nur kann ich den Freifunk-Router mit der aktuellen Firmware nicht direkt über WLAN anbinden. 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.

WiFi-Einstellungen

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.

WAN-Einstellungen

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.

Lan-Einstellungen

Jetzt muss noch diese Route eingetragen werden.

Route-Einstellungen

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.

Blauer Port

An den Firewall-Zonen muss noch der markierte Parameter eingestellt werden.

Firewall-Einstellungen

Die Interface Übersicht sieht dann so aus. Das Interface WAN6 kann man noch löschen wenn man möchte.

Interface-Einstellungen

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

Dieses Vorgehen wurde bislang bei folgenden Endgeräten erfolgreich durchgeführt:

  • Ubiquiti Nanostation M2 Loco
  • TP-Link WR-841n(d) V9

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.

        option ssid 'SSID_des_Wlan_Routers'
        option encryption 'psk2'   
        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) <line> angepasst werden </line>. 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.

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 der neuen Interfaces im Netmon

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 seinem Aufstellungsort gebracht werden (falls er temporär woanders angeschlosssen war) und dort eingeschaltet werden.

Abschlusscheck der Konfiguration

An neuem 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 der FF-Router sich 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 Accesspoint 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 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, das 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.

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.