Pimp my Node

Aus Freifunk Köln, Bonn und Umgebung
Version vom 17. November 2014, 04:52 Uhr von D0b (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „== Config Mode == Grundsätzlich ist unsere Freifunk Firmware so konzipiert, dass der Betreiber eines Nodes (Freifunkknoten) keinerlei Konfigurationsarbeiten d…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Config Mode

Grundsätzlich ist unsere Freifunk Firmware so konzipiert, dass der Betreiber eines Nodes (Freifunkknoten) keinerlei Konfigurationsarbeiten durchführen muss. Das bedeutet, nach dem Aufspielen unserer Firmware und der Registrierung, kann der Betreiber direkt loslegen und ist Teil unseres Freifunk-Netzwerkes. Wenn der Betreiber es wünscht, besteht natürlich für Ihn die Möglichkeit, seinen Knoten an seine speziellen Bedürfnisse anzupassen. Die Möglichkeiten und Abweichungen von der Default-Konfiguration sind vielfältig. Diese sollten aber nur dann durchgeführt werden, wenn der Durchführende genau weiß was er da macht. Eine fehlerhaft Konfiguration kann zum Beispiel zu Störungen im Netzwerk führen, ferner könnten illegitime Maßnahmen implementiert werden. Beide zuvor genannten Beispiele würden zu einem Ausschluss aus unserem Netzwerk führen. Dennoch kann man gute Gründe haben die ein Abweichen von den Defaultwerten sinnvoll machen.

  • Es ist zum Beispiel möglich, ein Passwort zu setzen um den Node per Fernzugriff/Login zu warten oder einige erweiterte Einstellungen vorzunehmen.

Es kann durchaus sinnvoll sein, die LAN-Ports speziell zu konfigurieren oder zusätzliche Software für eine Bandbreitenbegrenzung zu installieren.

An dieser Stellen möchten wir nur beschreiben, wie man in diesen Konfigurationsmodus gelangt. Eine ausführliche Beschreibung einiger Erweiterungen ist in Arbeit. Siehe auch Pimp_My_Node

Vorgehensweise

  1. PC mit Router über Netzwerkkabel verbinden (gelbe LAN Ports am Router)
  2. Wenn der Router gestartet ist (Power, Sys, WLAN leuchten dauerhaft), QSS Taste (schwarzer Knopf) 6 Sekunden drücken (Abb.10) (bis der Router neu startet, das sieht man daran, dass alle Lampen einmal ausgehen). Danach wird die Sys-Lampe, unregelmäßig blinken (Siehe: http://www.nilsschneider.net/2013/02/10/freifunk-blinken.html).
  3. bei manchen Routern (z.B. beim WR841N) muss man jetzt das Netzwerkkabel am Router umstecken (blauer WAN Port)
  4. Abwarten, bis der PC eine neue LAN-Verbindung aufgebaut hat (DHCP ist aktiv)
  5. Adresse http://192.168.1.1 aufrufen. - Punkt "Knoten neu einrichten" anklicken (Abb. 11)
  6. Vergabe von Passwort für den Fernzugriff/Login. Dann auf "weiter" klicken (Abb. 12)
  7. bei Bedarf die Bandbreitenbegrenzung aktivieren und auf "weiter" klicken (Abb. 13)
  8. auf "Jetzt neustarten!" klicken (Abb. 14) - Der Router startet neu, die kommende Fehlermeldung kann ignoriert werden (Abb. 15)
  9. Netzwerkkabel trennen und im WLAN warten, bis das netz "kbu.freifunk.net" auftaucht

Verbinde keinesfalls Dein lokales Netz mit den gelben LAN-Ports des Nodes. Sonst steht es allen offen!

Netztheorie/Technik und Entwicklung

Vertiefung


Arbeiten auf der Shell

Vorraussetzung für folgende Befehle sind eine Verbindung mit dem KBU Freifunk Netz sowie ein Terminal / Shell. Vergesst nicht eth0 gegen die Bezeichnung eures Netzwerkinterfaces, welches am Freifunk hängt zu tauschen. Bei Macbooks via Wlan z.B. "en1" statt "eth0"! Die link local Adresse der jeweiligen node findet ihr auf der KBU Register Seite.

IPv6 ping

ping6 <link local adress des node>%eth0

IPv6 ssh

Hinter der link local Adresse "%" + "Netzwerk Interface an eurer Kiste" (Hier im Beispiel eth0)

ssh root@<link local adress des node>%eth0

Firmware

Node mit uplink

ssh root@<link local adress des node>%eth0              // SSH Verbindung zum Node aufbauen
cd ../tmp/                                              // in das Verzeichnis "tmp" wechseln
free                                                    // Freien Speicher prüfen
wget http://pfad/zur/firmware.bin                       // Firmware herunterladen oder
sysupgrade -v firmware.bin                              // Firmwareupgrade durchführen

Achtung: Beim Download der Firmware via wget kann auf dem Router die Integrität der Firmware nicht geprüft werden, da gpg i.d.R. auf den Routern nicht verfügbar ist. Deshalb ist es sicherer, den oben beschriebenen Weg zu wählen, oder die geprüfte Firmware per scp (s.u.) auf den Router zu kopieren.

Node ohne uplink (mesh node)

scp -6 -v -r firmware.bin root@\[<linkloc>%eth0\]:../tmp/          // Firmware auf den node schieben (md5 checken!)
ssh root@<link local adress des node>%eth0 
cd ../tmp/  
sysupgrade -v firmware.bin  

LAN Kopplung

Eine LAN Kopplung kann in manchen Fällen sinnvoll sein, besonders wenn man einen VLAN fähigen Switch und eine bestehende Ntzwerkverkabelung hat. Hier werden die Switchports angwiesen auch über LAN zu meshen.

TL-WR841ND

03/2014: Hier wird über die alle 4 LAN Ports gemeshed, Mesh über WLAN kann man optional noch ausschalten! Folgende Config stammt von rampone/FF-KBU und wurde an 2 TL-WR841N v.8 getestet mit KBU-FF-Firmware 1.1.

vim /etc/config/network - Folgende Änderungen wurden an der FF-Firmware 1.0 vorgenommen:

  1. config interface 'freifunk' -> Hier haben wir eth0 aus "ifname" rausgenommen, damit kein ff aus dem eth0 (switch) rauskommt.
  2. config interface 'mesh_lan' -> kompl. codeblock hinzugefügt, dieser bewirkt das über eth0 (switch) gemeshed wird.


config interface 'loopback'
	option ifname 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'

config interface 'wan'
	option ifname 'eth0'
	option proto 'dhcp'
	option type 'bridge'
	option accept_ra '0'
	option auto '1'

config switch
	option name 'switch0'
	option reset '1'
	option enable_vlan '1'

config switch_vlan
	option device 'switch0'
	option vlan '1'
	option ports '0 1 2 3 4'

config interface 'freifunk'
	option ifname 'bat0'		#LAN-Kopplung: ifname eth1 entfernt
	option type 'bridge'
	option proto 'none'
	option auto '1'
	option accept_ra '1'
	option macaddr '10:fe:ed:f1:53:84'

config interface 'mesh'
	option proto 'batadv'
	option mtu '1528'
	option mesh 'bat0'

config interface 'mesh_vpn'
	option ifname 'mesh-vpn'
	option proto 'batadv'
	option mesh 'bat0'
	option macaddr '12:fe:ed:f2:53:84'

config interface 'mesh_lan'		#LAN-Kopplung: Codeblock mesh-lan hinzugefuegt
	option ifname 'eth1'
	option proto 'batadv'
	option mesh 'bat0'


vim /etc/config/wireless - Hier wird der Codeblock, der für das Mesh über WLAN verantwortlich ist auskommentiert (optional)

#config wifi-iface 'wifi_mesh'
#       option device 'radio0'
#       option network 'mesh'
#       option mode 'adhoc'
#       option ssid '02:d1:11:37:fc:39'
#       option bssid '02:d1:11:37:fc:39

TL-WDR4300

Das gleiche nochmal für den 4300er

vim /etc/config/network

config interface 'loopback'
	option ifname 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'

config interface 'wan'
	option ifname 'eth0.2'
	option proto 'dhcp'
	option type 'bridge'
	option accept_ra '0'
	option auto '1'
	option macaddr 'a2:f3:c1:65:81:cd'

config switch
	option name 'eth0'
	option reset '1'
	option enable_vlan '1'

config switch_vlan
	option device 'eth0'
	option vlan '1'
	option ports '0t 2 3 4 5'

config switch_vlan
	option device 'eth0'
	option vlan '2'
	option ports '0t 1'

config interface 'freifunk'
	option ifname 'bat0'		#LAN-Kopplung: ifname eth0.1 entfernt
	option type 'bridge'
	option proto 'none'
	option auto '1'
	option accept_ra '1'
	option macaddr 'a0:f3:c1:64:81:cc'

config interface 'mesh'
	option proto 'batadv'
	option mtu '1528'
	option mesh 'bat0'

config interface 'mesh_vpn'
	option ifname 'mesh-vpn'
	option proto 'batadv'
	option mesh 'bat0'
	option macaddr 'a2:f3:c1:65:81:cc'

config interface 'mesh_lan'		#LAN-Kopplung: Codeblock mesh-lan hinzugefuegt
        option ifname 'eth0.1'
        option proto 'batadv'
        option mesh 'bat0'

Einsperren des Freifunk-Routers in eine DMZ

Wer seinen Freifunk-Router einsperren und/oder die Bandbreite begrenzen möchte, kann dies am einfachsten tun, indem er ihn an seiner Firewall an einen eigenen Netzwerkport klemmt und diesen dann als DMZ konfiguriert. Ein KBU-Freifunk-Router muß zur Zeit im LAN DHCP, DNS, im Internet NTP sowie mit den fastd-Knoten reden können. Folgendes Bespiel für eine iptables-Firewall nimmt an, dass der Freifunk-Router über eth2 angeschlossen ist:

# eth2 darf nur dns, ntp, dhcp und ansonsten mit den fastdX reden
iptables -i eth2 -A INPUT   -p udp --dport 67:68 --sport 67:68 -j ACCEPT
iptables -i eth2 -A FORWARD -p udp --dport 67:68 --sport 67:68 -j ACCEPT
iptables -i eth2 -A INPUT   -p udp --dport 53                  -j ACCEPT
iptables -i eth2 -A INPUT   -p tcp --dport 53                  -j ACCEPT
iptables -i eth2 -A INPUT   -p tcp --dport 123                 -j ACCEPT
iptables -i eth2 -A FORWARD -p udp --dport 53                  -j ACCEPT
iptables -i eth2 -A FORWARD -p tcp --dport 53                  -j ACCEPT
iptables -i eth2 -A FORWARD -p tcp --dport 123                 -j ACCEPT
iptables -i eth2 -A FORWARD --dst 176.9.41.253                 -j ACCEPT
iptables -i eth2 -A FORWARD --src 176.9.41.253                 -j ACCEPT
iptables -i eth2 -A FORWARD --dst 178.63.59.41                 -j ACCEPT
iptables -i eth2 -A FORWARD --src 178.63.59.41                 -j ACCEPT
iptables -i eth2 -A FORWARD --dst 37.120.169.214               -j ACCEPT
iptables -i eth2 -A FORWARD --src 37.120.169.214               -j ACCEPT 
iptables -i eth2 -A FORWARD --dst 37.221.195.47                -j ACCEPT
iptables -i eth2 -A FORWARD --src 37.221.195.47                -j ACCEPT
iptables -i eth2 -A FORWARD --dst 78.46.68.75                  -j ACCEPT
iptables -i eth2 -A FORWARD --src 78.46.68.75                  -j ACCEPT
iptables -i eth2 -A FORWARD --dst 84.201.35.206                -j ACCEPT
iptables -i eth2 -A FORWARD --src 84.201.35.206                -j ACCEPT
iptables -i eth2 -A INPUT                                      -j DROP
iptables -i eth2 -A FORWARD                                    -j DROP
# eth2 darf maximal 2000 kbit/s ein- und ausgehenden traffic machen
wondershaper eth2 2000 2000

Prinzipiell könnte man den Traffic noch weiter einschränken. DHCP und DNS müssen nur zum DHCP- bzw. DNS-Server funktionieren und der Traffic zu den fastd-Servern ließe sich auf TCP Port 80 und UDP Port 10000 begrenzen.