Benutzer-Werkzeuge

Webseiten-Werkzeuge


anleitungen:spezielle_anpassungen

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("<h2>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("</h2>")

Position, vor dieser Zeile:

 io.write("<h2>Neighbours</h2>")

LAN und WAN Port tauschen (842er gestetet)

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.

  • 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'
  • 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.

anleitungen/spezielle_anpassungen.txt · Zuletzt geändert: 2017/05/24 00:09 von roland