**Hinweis:** Ein Teil der folgenden Konfigurationen ist vielleicht nicht mit der aktuellen Firmware kompatibel!
====== Tools ======
Für VLAN und VPNs kann mit diesem Tool die MTU kalkuliert werden für die Einkapsellung verschiedener Netzwerkprotokolle:
[[https://baturin.org/tools/encapcalc/]]
====== http auf WAN Port verfügbar machen ======
in /etc/config/firewall fogende Regel nach **config rule 'wan_ssh'** hinzufügen
config rule 'wan_http'
option dest_port '80'
option src 'wan'
option name 'wan_http'
option target 'ACCEPT'
option proto 'tcp'
Alternative:
uci set firewall.wan_http=rule
uci set firewall.wan_http.dest_port=80
uci set firewall.wan_http.src=wan
uci set firewall.wan_http.name=wan_http
uci set firewall.wan_http.target=ACCEPT
uci set firewall.wan_http.proto=tcp
uci commit
/etc/init.d/firewall reload
====== Anzahl der Clients auch auf der Statusseite anzeigen ======
in der Datei **/lib/gluon/status-page/www/cgi-bin/status** folgende Zeilen einfügen:
io.write("Clients: ")
io.write(escape_html(sys.exec("tail -n +3 /sys/kernel/debug/batman_adv/bat0/transtable_local | grep -v P | wc -l")))
io.write("
")
Position, vor dieser Zeile:
io.write("Neighbours
")
====== LAN und WAN Port tauschen ======
in /etc/config/network die Worte **eth0** und **eth1** tauschen
* beim 3600/4300er TP-Link eth0 durch eth0.1 und eth1 durch eth0.2 ersetzen
in /lib/gluon/core/sysconfig die Dateien lan_ifname und wan_ifname anpassen (Inhalt tauschen)
* cat /lib/gluon/core/sysconfig/wan_ifname
* cat /lib/gluon/core/sysconfig/lan_ifname
* echo **eth0** > /lib/gluon/core/sysconfig/wan_ifname
* echo **eth1** > /lib/gluon/core/sysconfig/lan_ifname
====== Pakete nachinstallieren per opkg ======
* /etc/opkg.conf anpassen: Nur einen Teil einfügen, je nach Gluon Version!
* Oft funktioniert keine DNS Auflösung, dann
echo "nameserver 8.8.8.8">>/etc/resolv.conf
==== Gluon 2014.* ====
# Gluon 2014.*
src/gz barrier_breaker_base http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/base
src/gz barrier_breaker_luci http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/luci
src/gz barrier_breaker_packages http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/packages
src/gz barrier_breaker_routing http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/routing
src/gz barrier_breaker_telephony http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/telephony
src/gz barrier_breaker_management http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/management
src/gz barrier_breaker_oldpackages http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/oldpackages
==== Gluon 2015.* ====
# Gluon 2015.*
src/gz chaos_calmer_base http://downloads.openwrt.org/chaos_calmer/15.05-rc1/ar71xx/generic/packages/base
src/gz chaos_calmer_luci http://downloads.openwrt.org/chaos_calmer/15.05-rc1/ar71xx/generic/packages/luci
src/gz chaos_calmer_packages http://downloads.openwrt.org/chaos_calmer/15.05-rc1/ar71xx/generic/packages/packages
src/gz chaos_calmer_routing http://downloads.openwrt.org/chaos_calmer/15.05-rc1/ar71xx/generic/packages/routing
src/gz chaos_calmer_telephony http://downloads.openwrt.org/chaos_calmer/15.05-rc1/ar71xx/generic/packages/telephony
src/gz chaos_calmer_management http://downloads.openwrt.org/chaos_calmer/15.05-rc1/ar71xx/generic/packages/management
#src/gz chaos_calmer_oldpackages http://downloads.openwrt.org/chaos_calmer/15.05-rc1/ar71xx/generic/packages/oldpackages
====== Traffic Statistik von Node anzeigen =======
opkg update
opkg install vnstat
vi /etc/vnstat.conf (auf folgendes anpassen)
DatabaseDir "/tmp/vnstat"
/etc/init.d/vnstat enable
/etc/init.d/vnstat start
echo "*/5 * * * * vnstat -u" >> /etc/crontabs/root
vi /lib/gluon/status-page/www/cgi-bin/status
nach Zeile: io.write(escape_html(sys.exec("df /rom /overlay")))
einfügen: io.write(escape_html(sys.exec("vnstat")) .. "\n")
vi /etc/rc.local (einfügen)
( sleep 30 && vnstat -u -i br-wan && vnstat -u -i br-client && vnstat -u -i bat0 && vnstat -u -i mesh-vpn ) &
Unnötige Interfaces kann man mit vnstat --delete entfernen
====== Meshkit Firmware auf Batman erweitern ======
* Kanal 1 einstellen
* BSSID anpassen auf 02:04:08:16:32:64
* DHCP Server auf wlan0-1 (AP-Interface) abschalten
* Installieren:
* kmod-batman-adv
* batctl
* Script anlegen
#!/bin/sh /etc/rc.common
# /etc/init.d/bat-adv
# No fraggin' copyright
# wlan0 = Ad-Hoc interface to transport payload
# wlan0-1 = AP interface for associating clients
# bat-br = Bridge with AP-interface and bat0 enslaved
START=99
start() {
batctl if add wlan0
ifconfig wlan0 mtu 1528
brctl addbr bat-br
brctl addif bat-br wlan0-1
brctl addif bat-br bat0
batctl it 3000
batctl gw client
ip link set bat0 up
ip link set bat-br up
}
stop () {
batctl if del wlan0
}
Infos abgeleitet von http://wiki.freifunk.net/BATMAN-Konfiguration
====== Mesh on VLAN ======
Ich will meinen WAN Port normal für Mesh on VPN nutzen und gleichzeitig mit einem zweiten Router meshen, den ich aber nur über den WAN Port erreichen kann. Dazu verwende ich VLAN 9 für das Meshing zwischen den Geräten. Solltet ihr einen Managbaren Switch dazwischen haben, müsst ihr an den Ports VLAN 9 konfigurieren, sonst wird es gefiltert.
Das ganze ist leider unterschiedlich je nach Router bzw Routerkonfig.
==== Achtung: unsupported von Gluon, geht bei Updates kaputt, veraltete Info, Einträge in /etc/config/nertwork werden beim Update überschrieben ====
=== TP Link 841N ===
* prüfe mit '''brctl show''' wie dein WAN Interface heisst, eth0 oder eth1
* Füge ans Ende von /etc/config/network folgendes hinzu (eth0 evtl. durch eth1 ersetzen):
config interface 'mesh_vlan'
option ifname 'eth0.9'
option auto '1'
option mesh_no_rebroadcast '1'
option mesh 'bat0'
option proto 'batadv'
=== TP Link 3600/4300 ===
* Füge ans Ende von /etc/config/network folgendes hinzu:
config switch_vlan
option device 'switch0'
option vlan '9'
option ports '0t 5t'
config interface 'mesh_vlan'
option ifname 'eth0.9'
option auto '1'
option mesh_no_rebroadcast '1'
option mesh 'bat0'
option proto 'batadv'
====== VPN zu den Gateways konfigurieren =======
Bis zur Firmware 0.9 (gluon v2016.2.2) gab es in der Datei "**/etc/config/fastd**"
eine komplette Liste aller Gateway-Gruppen mit den zugehörigen Segmenten.
Zum Verbindungsaufbau wurden alle Einträge solange durchprobiert, bis der Node auf eine passende Kombination traf.
Hier konnten bei Bedarf bekannt ungültige oder ungewollte Kombinationen für einen bestimmten Node deaktiviert werden.
Mit der neuen Firmware 1.0 gibt es nur noch 10 Einträge, je einen pro Gateway-Gruppe. Diese Einträge entsprechen denen,
die es vor der Segmentierung im Frühjahr 2016 gegeben hatte und danach zum "Legacy-Segment" gehörten.
Heute nennen wir das "Welcome-Segment", weil diese Einträge lediglich dazu dienen, dass neue oder geänderte Nodes
automatisch registriert werden können (Onboarding-System). Die Einträge für die "richtigen" Gateways bzw. Gateway-Gruppen
gibt es nicht mehr.
Wenn ein Node jetzt eingeschaltet oder neu gestartet wird, dann frägt
der Node seine eigene erweiterte Node-ID im DNS ab. Diese erweiterte
Node-ID lautet "**ffs-MMMMMMMMMMMM-KKKKKKKKKKKK**" mit MMMMMMMMMMMM =
primäre MAC-Adresse (ohne die Doppelpunkte) und KKKKKKKKKKKK = erste 12
Stellen des public Key. Ein Beispiel für eine DNS-Abfrage wäre "**nslookup
ffs-60e327e79498-49a652c95984.segassign.freifunk-stuttgart.de**".
Bei einem neuem oder geänderten Node gibt es keine Antwort, und für den
Verbindungsaufbau wird die Liste in der Firmware ("**/etc/config/fastd**")
benutzt. Dort sind statt der Gateways jetzt die Onboarder hinterlegt
(derzeit ist nur gw07 ein aktiver Onboarder). Ein Onboarder kommuniziert
mit dem Node unabhängig von einer Registrierung und registriert ihn bei
Bedarf automatisch (trägt alle notwendigen Daten im Git ein und legt den
DNS-Eintrag an), falls er nicht schon bekannt ist.
Korrekt registrierte Nodes erhalten auf ihre DNS-Anfragen auch eine
Antwort. Diese Antwort ist eine IPv6-Adresse "**2001:2:0:711::7**", wobei
der Teil vor den **::** immer gleich ist und die Zahl hinter den **::** dem
Segment entspricht, für das der Node registriert ist. Mit dieser
Information modifiziert der Node seine eigene fastd-Konfiguration und
startet damit erneut den VPN-Verbindungsaufbau, der jetzt zu den
richtigen Gateways führt. Diese Modifikation erfolgt nur im
Hauptspeicher und wird *nicht* in den Flash-Speicher geschrieben, d.h.
die Datei "**/etc/config/fastd**" ändert sich nicht. Deshalb hat man bei
jedem Neustart eines Nodes auch wieder die Ausgangssituation, man
riskiert keine falsche Konfiguration im Flash.
Wenn man jetzt von Hand die fastd-Konfiguartion ändert, hat das für den
normalen Betrieb keine Bedeutung, weil die tatsächlich benutzte
Konfiguration ja aufgrund des DNS-Ergebnis im RAM neu erzeugt wird. Man
verbaut sich ggf. nur den Weg zum Onboarder, falls sich die
Konfiguration ändert und der Node neu registriert werden müsste.
Der komplette Ablauf im Node von der DNS-Abfrage bis zur Modifikation
der fastd-Konfiguration erfolgt im script "**/usr/sbin/ffs-set-segment**",
das bei jedem Verbindungsversuch und regelmäßig einmal pro Minute
ausgeführt wird. Ändert sich das Segment in der DNS-Antwort, wird die
Konfiguration im RAM angepasst, die bestehende VPN-Verbindung getrennt
und wieder neu aufgebaut.
Sollte es tatsächlich notwendig sein, eine eigene fixe Konfiguration
nutzen zu wollen/müssen, dann muss die automatische Konfiguration
deaktiviert werden, so dass die eigenen Einträge in der Datei
"**/etc/config/fastd**" dauerhaft benutzt werden. Dazu gibt man per SSH
folgende Befehle ein:
uci set fastd.mesh_vpn_backbone.auto_segment="0"
uci commit
Wird allerdings die Automatik deaktiviert, ohne dass eine gültige echte
Gateway-Konfiguration in der Datei "**/etc/config/fastd**" vorhanden ist,
kann sich der Node nicht mit dem Freifunknetz verbinden. Man sollte sich
also sehr genau überlegen, ob man wirklich auf den automatischen Betrieb
verzichten will.
{{tag>config ssh}}