Wenn ihr euren Router über SSH erreichbar gemacht habt, in dem ihr SSH-Key oder Passwort definiert habt, könnt ihr darüber einige Einstellungen ändern und anpassen.
Um euch über SSH mit dem Router verbinden zu können, braucht ihr unter Windows einen SSH-Client. PuTTY ist wohl der Client mit der höchsten Verbreitung. Mit einer direkten Verbindung ist der Router über die Next-Node Adresse erreichbar: ip6 = fd21:711::1 Ansonsten kann die Adresse über die Karte gefunden werden.
Benutzername: root
Weitere SSH-Befehle finden sich hier:
ifconfig
Zeigt euch alle Interfaces und die dazugehörigen IPv4 und IPv6 an, den Gesamttraffic etc.
iw mesh0 info
Zeigt den Kanal und die Funkstärke der Mesh-Verbindung an.
iw client0 info
Zeigt den Kanal und die Funkstärke der Client-Verbindung an.
ifstatus bat0
Leicht zu verarbeitende json file mit Infos wie in ifconfig und uptime etc.pp.
uptime
Zeigt euch die Zeit seit dem letzten Neustart
cat /lib/gluon/gluon-version
Gluon Version anzeigen lassen
cat /lib/gluon/release
Firmware Release anzeigen lassen
batctl o
Erste Zeile zeigt euch die benutzte Batman-Adv Version an, weiteres unter Punkt batctl unten
crontab -e
Damit könnt ihr neue Cronjobs anlegen, und so automatisiert Dinge tun, z.b. das Rebootskript im Falle des Internetverlustes automatisch ausführen, oder generell einen Reboot zu bestimmten Zeiten.
batctl tg |grep W |wc -l
Anzahl aller WIFI Nutzer im Segment anzeigen
batctl tl |grep W |wc -l
Anzahl localer Clients anzeigen
batctl gwl
Zeigt alle Gateways mit aktueller Bandbreite an und mit dem man aktuell verbunden ist.
Weitere Optionen finden sich in der manpage von batctl: https://downloads.open-mesh.org/batman/manpages/batctl.8.html. Unter der Option debug-tables finden sich eine Reihe von Befehlen, um batman-adv zum ausspucken spezifischer Daten zu bewegen.
pretty-hostname ffs-MeinRouterName
uci add gluon-node-info location
Erst danach funktionieren die Befehle für Koordinaten und PLZ.
uci set gluon-node-info.@location[0]='location' uci set gluon-node-info.@location[0].share_location='1' uci set gluon-node-info.@location[0].latitude='48.783550947532284' uci set gluon-node-info.@location[0].longitude='9.181421220346238' uci commit gluon-node-info
Die Werte für 'latitude' (Breitengrad) und 'longitude' (Längengrad) passt ihr natürlich euren Gegebenheiten an. Die obigen Daten zeigen auf den Hauptbahnhof Stuttgart.
Um die entsprechenden Koordinaten herauszubekommen, kannst du den gewünschten Standort in der Karte von Freifunk Stuttgart raussuchen und hinzoomen. Dann oben rechts die Stecknadel anklicken und linksklick auf den entsprechenden Ort in der Karte. Jetzt werden die Koordinaten angezeigt und können kopiert werden.
Durch setzen von 'share_location' auf '0' könnt ihr das Anzeigen eures Routes auf der Karte » deaktivieren.
uci show gluon-node-info
Zeigt die aktuellen Koordinaten an.
uci set gluon-node-info.@location[0].zip='70193' uci commit gluon-node-info
Die Postleitzahl (PLZ) hilft den Knoten dem passenden Segment zuzuordnen und sollte bei fixem Standort immer eingegeben werden. Vor allem, wenn keine Geodaten hinterlegt wurden. Dabei kann bei der PLZ auch nicht der konkrete Standort ermittelt werden.
uci set gluon-node-info.@owner[0]='owner' uci set gluon-node-info.@owner[0].contact='Hans Mustermann email@hab-ich.net' uci commit
uci set simple-tc.mesh_vpn='interface' uci set simple-tc.mesh_vpn.ifname='mesh-vpn' uci set simple-tc.mesh_vpn.enabled='1' uci set simple-tc.mesh_vpn.limit_ingress='50000' uci set simple-tc.mesh_vpn.limit_egress='1000' uci commit
“ingress” ist der Download, “egress” der Upload. Durch setzen von ‘enabled’ auf ‘0’ wird die Bandbreitenbegrenzung deaktiviert.
uci set autoupdater.settings.enabled=1 uci set autoupdater.settings.branch=stable uci commit
autoupdater -f
führt den autoupdate manuell aus
Aktivieren
uci del_list gluon.iface_wan.role='uplink' uci add_list gluon.iface_wan.role='mesh' uci commit gluon gluon-reconfigure reboot # oder die betroffenen Dienste neu starten
Deaktivieren
uci del_list gluon.iface_wan.role='mesh' uci add_list gluon.iface_wan.role='uplink' uci commit gluon gluon-reconfigure reboot # oder die betroffenen Dienste neu starten
(über den blauen Port)
Aktivieren
uci set network.mesh_wan.auto=1 uci commit network /etc/init.d/network restart
Deaktivieren
uci set network.mesh_wan.auto=0 uci commit network /etc/init.d/network restart
uci del_list gluon.iface_lan.role='client' uci add_list gluon.iface_lan.role='mesh' uci commit gluon gluon-reconfigure reboot # oder betroffene Dienste neu starten
uci del_list gluon.iface_lan.role='mesh' uci add_list gluon.iface_lan.role='client' uci commit gluon gluon-reconfigure reboot # oder betroffene Dienste neu starten
(über die gelben Ports)
uci set network.mesh_lan.auto=1 for ifname in $(cat /lib/gluon/core/sysconfig/lan_ifname); do uci del_list network.client.ifname=$ifname done uci commit /etc/init.d/network restart
uci set network.mesh_lan.auto=0 for ifname in $(cat /lib/gluon/core/sysconfig/lan_ifname); do uci add_list network.client.ifname=$ifname done uci commit /etc/init.d/network restart
uci del_list gluon.iface_wan.role='uplink' uci add_list gluon.iface_wan.role='client' uci commit gluon gluon-reconfigure reboot # oder die betroffenen Dienste neu starten
Will man auf einem Router ohne LAN-Interface wie dem UniFi AP Clientnetzwerk aus dem WAN-Port bekommen, geht das nicht über die uci Schnittstelle, sondern muss in der Datei /etc/config/network konfiguriert werden. Es empfiehlt sich, ein Backup der Datei zu machen bevor man loslegt.
Dabei müssen die Passagen
config interface 'wan' option ifname 'eth0' option auto '1' option peerdns '0' option type 'bridge' option proto 'dhcp' option multicast_querier '0' option macaddr '06:9d:76:1a:ed:c8' ... config interface 'client' option type 'bridge' option macaddr '44:d9:e7:cd:64:1d' option proto 'dhcpv6' option reqprefix 'no' option peerdns '1' option sourcefilter '0' option robustness '3' option query_interval '2000' option query_response_interval '500' list ifname 'bat0' config interface 'mesh_wan' option ifname 'br-wan' option auto '1' option proto 'gluon_mesh' option fixed_mtu '1' option transitive '1'
in
config interface 'wan' option auto '0' option ifname 'eth1' option peerdns '0' option type 'bridge' option proto 'dhcp' option multicast_querier '0' option macaddr '06:9d:76:1a:ed:c8' ... config interface 'client' option type 'bridge' option macaddr '44:d9:e7:cd:64:1d' option proto 'dhcpv6' option reqprefix 'no' option peerdns '1' option sourcefilter '0' option robustness '3' option query_interval '2000' option query_response_interval '500' list ifname 'bat0' list ifname 'eth0' config interface 'mesh_wan' option ifname 'br-wan' option auto '0' option proto 'gluon_mesh' option fixed_mtu '1' option transitive '1'
geändert werden. Für Menschen die es gewohnt sind, diffs zu lesen sei die Änderung hier nochmal zusammengefasst.
diff --git a/network.bk b/network index e4025ff..8e87afe 100644 --- a/network.bk +++ b/network @@ -16,8 +16,8 @@ config interface 'wan6' option peerdns '0' config interface 'wan' - option ifname 'eth0' - option auto '1' + option auto '0' + option ifname 'eth1' option peerdns '0' option type 'bridge' option proto 'dhcp' @@ -47,10 +47,11 @@ config interface 'client' option query_interval '2000' option query_response_interval '500' list ifname 'bat0' + list ifname 'eth0' config interface 'mesh_wan' option ifname 'br-wan' - option auto '1' + option auto '0' option proto 'gluon_mesh' option fixed_mtu '1' option transitive '1'
Details wie die MAC-Adresse weichen natürlich ab.
Als erstes kann man die aktuell verwendete fastd Verbindunseinstellung auslesen:
uci show fastd.mesh_vpn.method
Bei aktivierter Verschlüsselung sollte salsa2012 aktiviert sein:
fastd.mesh_vpn.method='salsa2012+umac'
Dann werden alle aktuellen VPN-Cipher-Einstellungen gelöscht:
uci del fastd.mesh_vpn.method
und null@l2tp hinzugefügt. Die alte, z.B. fastd.mesh_vpn.method='salsa2012+umac', muss am Ende eingefuegt werden, sodass es einen Fallback gibt:
uci add_list fastd.mesh_vpn.method=null@l2tp uci add_list fastd.mesh_vpn.method=null uci add_list fastd.mesh_vpn.method='salsa2012+umac'
Abschließend müssen die Änderungen noch bootfest gemacht werden und fastd neu gestartet werden 1):
uci commit fastd.mesh_vpn.method /etc/init.d/fastd restart
uci set wireless.radio0.disabled=1 uci commit wireless wifi
Diese Konfiguration kann für einen reinen Uplink Node sinnvoll sein, wenn weitere FF-Router per Mesh on Lan angebunden sind.
uci -P /var/state show wireless
uci set wireless.client_radio0.disabled=1 uci commit wireless wifi
Wäre denkbar für einen Node, der nur meshen soll, ohne dass Endgeräte unnötig zusätzliche airtime verbrauchen.
Eventuell Sinnvoll, um zwar den AP-Modus für Clients aktiv zu haben, das mesh aber per LAN zu machen und somit Airtime zu sparen.
uci set wireless.mesh_radio0.disabled='1' uci commit wireless wifi
Wenn der Router Dualband, (2,4 und 5 Ghz) hat, dann folgende Befehle eingeben:
uci set wireless.mesh_radio0.disabled='1' uci set wireless.mesh_radio1.disabled='1' uci commit wireless wifi
Diese Einstellung ist sinnvoll in Setups, bei denen viele Endgeräte und APs mit unterschiedlichen Kanälen auf engem Raum vorhanden sind und die Airtime entsprechend knapp ist. So wird die Verbindung zu einem Client mit weniger als 6 MBit/s getrennt und der Client hat dann im Optimalfall die Chance sich mit einem AP mit besserer Verbindungsqualität neu zu verbinden ((Thread im freifunk.net Forum
uci set wireless.radio0.supported_rates='6000 9000 12000 18000 24000 36000 48000 54000' uci set wireless.radio0.basic_rate='6000 12000 18000 24000 36000 48000 54000' uci set wireless.radio0.require_mode=g uci commit wireless wifi
Im Folgenden `$SSID` durch die gewünschte SSID und `$KEY` durch das Passwort ersetzen.
uci set wireless.wan_radio0=wifi-iface uci set wireless.wan_radio0.device=radio0 uci set wireless.wan_radio0.network=wan uci set wireless.wan_radio0.mode=ap uci set wireless.wan_radio0.encryption=psk2 uci set wireless.wan_radio0.ssid="$SSID" uci set wireless.wan_radio0.key="$KEY" uci set wireless.wan_radio0.disabled=0 uci commit wifi
uci set wireless.wan_radio0.disabled=1 uci commit wifi
Über die SSH-Konsole könnt ihr auch die Firmware eures Routers aktualisieren. Der sicherste Weg ist über den Autoupdater (siehe: Autoupdater).
Ist der Weg über den Autoupdater nicht möglich, kann das Update auch manuell geladen und installiert werden. Wichtig ist, dass ihr die passende Firmware für euren Router nehmt, sonst habt ihr nach dem Update unter Umständen einen schicken neuen Briefbeschwerer im Layout eines Router. Hier im Beispiel wird ein TP-LINK TL-WR841ND Revision 9 auf die derzeit aktuellste Firmware vom 20.10.2014 geflashed. Eine Liste aller Firmware-Dateien findet ihr unter http://firmware.freifunk-stuttgart.de/gluon/stable/sysupgrade/.
Es empfiehlt sich nach dem Herunterladen die md5sum zu vergleichen!
cd /tmp/ wget http://firmware.freifunk-stuttgart.de/gluon/stable/sysupgrade/gluon-ffs-0.1+0-2014.10.20-22.48-g.0d3a429-s.c6537e0-tp-link-tl-wr841n-nd-v9-sysupgrade.bin md5sum gluon-ffs-0.1+0-2014.10.20-22.48-g.0d3a429-s.c6537e0-tp-link-tl-wr841n-nd-v9-sysupgrade.bin echo 3 > /proc/sys/vm/drop_caches sysupgrade gluon-ffs-0.1+0-2014.10.20-22.48-g.0d3a429-s.c6537e0-tp-link-tl-wr841n-nd-v9-sysupgrade.bin
Nach dem Update führt euer Router einen Reboot durch. Alle Einstellungen bleiben beim Update erhalten, so dass er sofort wieder einsatzbereit ist.
Die aktuelle Sendeleistung kann so eingesehen werden
iwinfo wlan0 txpower
Die Sendeleistung kann folgendermaßen angepasst werden:
uci set wireless.radio0.txpower=8 uci commit wifi
uci set "gluon-setup-mode.@setup_mode[0].enabled=1" uci commit reboot
uci set wireless.radio0.channel=1
statt 1 eben das wählen was man haben will.
Soll der Kanal Updatefest sein, muss zusätzlich noch
uci set gluon.@wireless[0].preserve_channels=1
ausgeführt werden.
Um die Änderungen zu speichern und zu aktivieren muss noch folgendes ausgeführt werden:
uci commit wifi
passwd -l root
passwd
SSH_KEY="dein öffentlicher SSH-Key" touch /etc/dropbear/authorized_keys sed -i "1i$SSH_KEY" /etc/dropbear/authorized_keys
Werden mehrere Router (bis auf den Namen!) gleich konfiguriert, kann dies auch per Skript erfolgen. Dieses wird erst lokal auf dem Rechner erstellt, dann per scp auf den Router geladen und dort ausgeführt.
meinRechner$ echo "echo bla bla blubb" > fooScript meinRechner$ scp -6 ./fooScript root@[ipv6AdresseDesRouters]:/tmp/ Router# chmod +x /tmp/fooScript Router# /tmp/fooScript
— Diese Doku wurde teilweise von http://freifunk-moenchengladbach.de(2014/11/25 21:16) & von http://paderborn.freifunk.net (2015/03/21 00:36) übernommen, Herzlichen Dank!
config ssh