Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| infrastruktur:freifunkmuenster [2014/07/25 01:58] – fusselkater | infrastruktur:freifunkmuenster [2017/06/01 10:26] (aktuell) – deleted entire legacy page commander1024 | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== FreiFunk Münster ====== | ||
| - | Hier soll alles rund um das Thema Freifunk gesammelt werden bis es eine geeignetere Stelle gibt. | ||
| - | ===== Organisation ===== | ||
| - | Wir nutzen den IP Block des (ehemaligen) [[http:// | ||
| - | |||
| - | ==== IP-Bereich ==== | ||
| - | IPv4: 10.43.0.0/ | ||
| - | IPv6: fd68: | ||
| - | |||
| - | ==== Reservierter IP-Bereich ==== | ||
| - | |||
| - | Dieser Bereich ist für feste IPs, Infrastruktur, | ||
| - | |||
| - | IPv4: 10.43.0.0/ | ||
| - | IPv6: fd68: | ||
| - | |||
| - | ==== IP-Bereich Gateway 1 (VOID-DEV) ==== | ||
| - | |||
| - | IPv4-Adresse: | ||
| - | IPv6-Adresse: | ||
| - | |||
| - | IPv4: 10.43.8.0/ | ||
| - | IPv6: fd68: | ||
| - | |||
| - | ==== IP Bereich Gateway 2 (Warpzone) ==== | ||
| - | |||
| - | IPv4-Adresse: | ||
| - | IPv6-Adresse: | ||
| - | |||
| - | IPv4: 10.43.16.0/ | ||
| - | IPv6: fd68: | ||
| - | |||
| - | ==== IP Bereich Gateway 3 (Fusselkater) ==== | ||
| - | |||
| - | IPv4-Adresse: | ||
| - | IPv6-Adresse: | ||
| - | |||
| - | IPv4: 10.43.24.0/ | ||
| - | IPv6: fd68: | ||
| - | |||
| - | |||
| - | ===== Freifunk am Hawerkamp ===== | ||
| - | Der Hawerkamp soll mit freien WLAN, am besten auf Basis von Freifunk ausgestattet werden. | ||
| - | Es gibt eine Spende von 25 Cisco Access Points vom Typ AIR-AP-1131AG-E-K9 | ||
| - | |||
| - | ===== Hardware ===== | ||
| - | | Hersteller | Modell | WLAN | ext.Antenne? | ||
| - | | Cisco | AIR-AP-1131AG-E-K9 | a/b/g | nein | ja | nein | | ||
| - | | TP-Link | WR841ND | b/g/n 2.4Ghz | ja | nein | [[http:// | ||
| - | | Ubiquity | Nanostation M5 Loco | 5 GHz | nein | ja | nein | | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | ===== Firmware ===== | ||
| - | Die Firmware wird vermutlich auf [[https:// | ||
| - | |||
| - | |||
| - | ===== To-Do ===== | ||
| - | * Community bei Freifunk.net als Subdomain/ | ||
| - | * [[http:// | ||
| - | * Gateway VM auf Warpzone Server einrichten (server.warpzone.ms -p 2223) | ||
| - | * Fastd | ||
| - | * VPN (openvpn) | ||
| - | * DNS/DHCP (dnsmasq) | ||
| - | * DHCP (isc-dhcpd) | ||
| - | * ravd (dhcp ipv6) | ||
| - | * alfred (teil von batman / Userspace / [[https:// | ||
| - | * alfred-json ( https:// | ||
| - | * batman-adv (meshing) [Vorsicht: zu neue Kernel nutzen die neue batman version mit neuerem kompability level --> nicht kompatibel] | ||
| - | * FFMap-Backend (Übersichtskarte [[https:// | ||
| - | * FFMAP (Übersichtskarte [[https:// | ||
| - | * Webserver nötig falls nicht auf bestehendem System | ||
| - | * DOKU(!) | ||
| - | * VPN: Bei Lübecker / Berlinern nach Modalitäten für VPN anfragen: Alternativ eigenen Zugang, mit kosten verbunden (testweise genutzt: [[http:// | ||
| - | * Firmware - eigene VM als Zentrales Buildsystem(server.warpzone.ms: | ||
| - | * Key zum signieren der Firmware: Zentral über Buildserver (alternativ: | ||
| - | * Schlüsselverwaltung der Router - Anmeldung per Email (Später: Kontaktformular? | ||
| - | * Verwaltung von DNSeinträgen für .ffms | ||
| - | |||
| - | ==== Gateway ==== | ||
| - | Anleitung zum Gateway einrichten, Vorlage ist die Dokumentation des FreiFunk [[http:// | ||
| - | |||
| - | * Debian Jessie (Kernel: 3.10.x neuere Kernel Version hat neueres Batman Support level - nicht kompatibel) | ||
| - | * ** Zusätzliche Paketquellen ** | ||
| - | * deb http:// | ||
| - | < | ||
| - | gpg --keyserver pgpkeys.mit.edu --recv-key 16EF3F64CB201D9C | ||
| - | gpg -a --export 16EF3F64CB201D9C | apt-key add - | ||
| - | </ | ||
| - | * Dann brauchen wir noch die Paketquellen aus unserem OBS | ||
| - | < | ||
| - | echo 'deb http:// | ||
| - | </ | ||
| - | < | ||
| - | wget http:// | ||
| - | apt-key add - < Release.key | ||
| - | </ | ||
| - | * Dann einmal apt-get update | ||
| - | * **Notwendige Pakete:** | ||
| - | * bridge-utils (Verwaltung der Netzwerkbrücken) | ||
| - | * batctl (B.A.T.M.A.N. Verwaltungstools) | ||
| - | * openvpn (VPN zu MULLVAD) | ||
| - | * haveged (Entropie) | ||
| - | * fastd (VPN zu den Nodes) | ||
| - | * radvd (IPv6 Router Advertisements) | ||
| - | * isc-dhcp-server (DHCP) | ||
| - | * bind9 (DNS) | ||
| - | * git | ||
| - | * alfred-stable | ||
| - | * batman-adv-dkms | ||
| - | * ** batman-adv 2013.04 installieren ** | ||
| - | Nachdem batman-adv-dkms installiert ist, schmeißt dkms einen Fehler, da in den aktuellen Kernel-Versionen eine neuere batman-adv Version ist, als über dkms gebaut wurde. Es ist nötig, die Installation des 2013.04er Modules zu erzwingen. Dazu macht man folgendes: | ||
| - | < | ||
| - | dkms remove batman-adv/ | ||
| - | dkms --force install batman-adv/ | ||
| - | </ | ||
| - | Danach einmal rebooten. Nun sollte batman-adv Version 2013.4 geladen sein. Verifizieren kann man dies mit: | ||
| - | < | ||
| - | cat / | ||
| - | </ | ||
| - | |||
| - | * ** IPv6 Forwarding aktivieren ** | ||
| - | * Konfigurationsdatei ''/ | ||
| - | < | ||
| - | # IPv4 Forwarding | ||
| - | net.ipv4.ip_forward=1 | ||
| - | |||
| - | # IPv6 Forwarding | ||
| - | net.ipv6.conf.all.forwarding = 1 | ||
| - | </ | ||
| - | * Anschließend Reboot des Servers | ||
| - | * **Batman Einrichten** | ||
| - | * Bei der ''/ | ||
| - | * Neustarten oder Modul händisch per '' | ||
| - | * Überprüfen ob module geladen wurde: es existiert der pfad ''/ | ||
| - | * **Netzwerk anpassen** | ||
| - | * Eine Netzwerkbrücke als Schnittstelle zwischen dem Mesh auf der einen Seite und dem VPN nach XYZ als exist auf der anderen Seite dazu die ''/ | ||
| - | * Erstellen eines Bridge Interfaces das eine IP im FF-IP Block hat< | ||
| - | # Netwerkbrücke für Freifunk | ||
| - | # - Hier läuft der Traffic von den einzelnen Routern und dem externen VPN zusammen | ||
| - | # - Unter der hier konfigurierten IP ist der Server selber im Freifunk Netz erreichbar | ||
| - | # - bridge_ports none sorgt dafür, dass die brücke auch ohne Interface erstellt wird | ||
| - | |||
| - | auto br0 | ||
| - | |||
| - | iface br0 inet static | ||
| - | address 10.43.0.3 | ||
| - | netmask 255.255.0.0 | ||
| - | bridge_ports none | ||
| - | |||
| - | iface br0 inet6 static | ||
| - | address fd68: | ||
| - | netmask 48 | ||
| - | </ | ||
| - | * Batman Interface hinzufügen und an Bridge Interface binden < | ||
| - | # Batman Interface | ||
| - | # - Erstellt das virtuelle Inteface für das Batman-Modul und bindet dieses an die Netzwerkbrücke | ||
| - | # - Die unten angelegte Routing-Tabelle wird später für das Routing innerhalb von Freifunk (Router/ | ||
| - | |||
| - | allow-hotplug bat0 | ||
| - | |||
| - | iface bat0 inet6 manual | ||
| - | pre-up modprobe batman-adv | ||
| - | post-up ip link set dev bat0 up | ||
| - | post-up brctl addif br0 bat0 | ||
| - | post-up batctl it 10000 | ||
| - | post-up ip rule add from all fwmark 0x1 table 42 | ||
| - | post-up start-stop-daemon -b --start --exec / | ||
| - | post-up start-stop-daemon -b --start --exec / | ||
| - | </ | ||
| - | * Config anwenden indem das Netzwerk per '' | ||
| - | * Table 42 die wir im Bridge Interface definiert haben muss noch mit Regeln gefüllt werden. | ||
| - | * Sobald das Interface hoch kommt, starten wir alfred und batadv-vis | ||
| - | * TODO: Konfiguration vom 2. Gateway übernehmen, | ||
| - | * Dazu erzeugen wir die ''/ | ||
| - | < | ||
| - | :INPUT ACCEPT [0:0] | ||
| - | :FORWARD ACCEPT [0:0] | ||
| - | :OUTPUT ACCEPT [0:0] | ||
| - | COMMIT | ||
| - | # Regeln zum markieren eingehender Pakete | ||
| - | *mangle | ||
| - | :PREROUTING ACCEPT [0:0] | ||
| - | :INPUT ACCEPT [0:0] | ||
| - | :FORWARD ACCEPT [0:0] | ||
| - | :OUTPUT ACCEPT [0:0] | ||
| - | : | ||
| - | -A PREROUTING -i br0 -j MARK --set-xmark 0x1/ | ||
| - | -A OUTPUT -o eth0 -p udp --dport 53 -j MARK --set-xmark 0x1/ | ||
| - | -A OUTPUT -o eth0 -p tcp --dport 53 -j MARK --set-xmark 0x1/ | ||
| - | COMMIT | ||
| - | </ | ||
| - | * Nun wird alles von der bridge an den VPN Tunnel(der später eingerichtet wird) per nat weiter geleitetet dafür fügt man ebenfalls in der ''/ | ||
| - | < | ||
| - | *nat | ||
| - | :PREROUTING ACCEPT [0:0] | ||
| - | :INPUT ACCEPT [0:0] | ||
| - | :OUTPUT ACCEPT [0:0] | ||
| - | : | ||
| - | -A POSTROUTING -o tun0 -j MASQUERADE | ||
| - | COMMIT | ||
| - | </ | ||
| - | * Nun erzeugen wir ein Shell-Script, | ||
| - | * Datei: / | ||
| - | < | ||
| - | #!/bin/sh | ||
| - | / | ||
| - | </ | ||
| - | * Und machen sie ausführbar: | ||
| - | < | ||
| - | chmod +x / | ||
| - | </ | ||
| - | * Iptables laden mit iptables-restore < / | ||
| - | * **VPN Einrichten** | ||
| - | * Unser VPN geht aktuell nach Schweden (Anbieter: https:// | ||
| - | * Die Konfigurationsdateien (ca.crt / crl.pem / mullvad.crt / mullvad.key / mullvad_linux.conf) werden nach ''/ | ||
| - | route-noexec | ||
| - | up / | ||
| - | * tun in die / | ||
| - | * Nun wird das im vorherigen Punkt erwähnte Skript mullvad_up.sh mit folgendem Inhalt angelegt: < | ||
| - | ip route replace 0.0.0.0/1 via $5 table 42 | ||
| - | ip route replace 128.0.0.0/1 via $5 table 42 | ||
| - | exit 0</ | ||
| - | * Openvpn wird per '' | ||
| - | * **Fastd Einrichten** | ||
| - | * Konfigurationsverzeichnis erstellen < | ||
| - | * Schlüssel für den Server erzeugen. Der Schlüssel wird in diesem Schritt nur erzeugt und auf der Kommandozeile ausgegeben. Secret und Public müssen in die Fastd-Konfiguration des Servers bzw. in die Router-Firmware übernommen werden. < | ||
| - | * Konfigurationsdatei ''/ | ||
| - | bind 0.0.0.0: | ||
| - | interface " | ||
| - | user " | ||
| - | mode tap; | ||
| - | method " | ||
| - | mtu 1426; # 1426 - ipv4 header - fastd header | ||
| - | secret " | ||
| - | |||
| - | log to syslog level debug; | ||
| - | #folgende Zeile sorgt dafuer das jeder Peer akzeptiet wird | ||
| - | #on verify " | ||
| - | |||
| - | include peers from "/ | ||
| - | include peers from "/ | ||
| - | |||
| - | on up " | ||
| - | ip link set dev $INTERFACE address de: | ||
| - | ip link set dev $INTERFACE up | ||
| - | ifup bat0 | ||
| - | batctl if add $INTERFACE | ||
| - | batctl gw server | ||
| - | "; | ||
| - | |||
| - | </ | ||
| - | * Zum Testen kann fastd mit '' | ||
| - | * Anschließend fastd mit '' | ||
| - | * Die backbones werden included, um die Verbindung zwischen den Servern herzustellen | ||
| - | * ** IPv6 Router Advertisements Einrichten ** | ||
| - | * Jeder Gateway-Server erhält ein eigenes IPv6 Prefix für Router Anouncements | ||
| - | * Achtung: radvd kann maximal /64 Netze vergeben | ||
| - | * Der Eintrag RDNSS muss die IP-Adresse des Gateway enthalten | ||
| - | * Konfigurationsdatei ''/ | ||
| - | < | ||
| - | interface br0 | ||
| - | { | ||
| - | AdvSendAdvert on; | ||
| - | IgnoreIfMissing on; | ||
| - | MaxRtrAdvInterval 200; | ||
| - | |||
| - | prefix fd68: | ||
| - | { | ||
| - | }; | ||
| - | |||
| - | RDNSS fd68: | ||
| - | }; | ||
| - | |||
| - | }; | ||
| - | </ | ||
| - | * Start des Dienstes mit '' | ||
| - | * ** DHCP Server Einrichten ** | ||
| - | * Jeder Gateway-Server erhält einen Teil des IP Bereiches um Adressen zu vergeben | ||
| - | * Die Optionen Router und Domain-Name-Servers enthalten jeweils die IP des Servers | ||
| - | * Konfigurationsdatei ''/ | ||
| - | < | ||
| - | |||
| - | default-lease-time 600; | ||
| - | max-lease-time 3600; | ||
| - | |||
| - | authoritative; | ||
| - | |||
| - | log-facility local7; | ||
| - | |||
| - | subnet 10.43.0.0 netmask 255.255.0.0 { | ||
| - | range 10.43.zz.1 10.43.zz.254; | ||
| - | |||
| - | option routers 10.43.0.x; | ||
| - | option domain-name-servers 10.43.0.x; | ||
| - | } | ||
| - | |||
| - | </ | ||
| - | * Zudem wird der DHCP Server noch auf das Bridge-Interface festgelegt. Hierzu wird in der Datei ''/ | ||
| - | < | ||
| - | # On what interfaces should the DHCP server (dhcpd) serve DHCP requests? | ||
| - | # | ||
| - | INTERFACES=" | ||
| - | </ | ||
| - | * Test des DHCP Servers mit '' | ||
| - | * Anschließend DHCP Server starten mit '' | ||
| - | === dhcpdv6 === | ||
| - | * Damit auch via dhcpdv6 Adressen verteilt werden (Was vorallem für Windows-Hosts wichtig ist, da diese den RDNSS-Parameter von radvd nicht kennen, werden folgende Dateien eingerichtet: | ||
| - | / | ||
| - | < | ||
| - | #!/bin/sh | ||
| - | # | ||
| - | # | ||
| - | |||
| - | ### BEGIN INIT INFO | ||
| - | # Provides: | ||
| - | # Required-Start: | ||
| - | # Required-Stop: | ||
| - | # Should-Start: | ||
| - | # Should-Stop: | ||
| - | # Default-Start: | ||
| - | # Default-Stop: | ||
| - | # Short-Description: | ||
| - | # Description: | ||
| - | ### END INIT INFO | ||
| - | |||
| - | PATH=/ | ||
| - | |||
| - | test -f / | ||
| - | |||
| - | DHCPD_DEFAULT=" | ||
| - | |||
| - | # It is not safe to start if we don't have a default configuration... | ||
| - | if [ ! -f " | ||
| - | echo " | ||
| - | if [ " | ||
| - | echo "Run ' | ||
| - | fi | ||
| - | exit 0 | ||
| - | fi | ||
| - | |||
| - | . / | ||
| - | |||
| - | # Read init script configuration | ||
| - | [ -f " | ||
| - | |||
| - | NAME=dhcpd | ||
| - | DESC=" | ||
| - | # fallback to default config file | ||
| - | DHCPD_CONF=${DHCPD_CONF: | ||
| - | # try to read pid file name from config file, with fallback to / | ||
| - | if [ -z " | ||
| - | DHCPD_PID=$(sed -n -e 's/^[ \t]*pid-file-name[ \t]*" | ||
| - | fi | ||
| - | DHCPD_PID=" | ||
| - | |||
| - | test_config() | ||
| - | { | ||
| - | if ! / | ||
| - | echo "dhcpd self-test failed. Please fix $DHCPD_CONF." | ||
| - | echo "The error was: " | ||
| - | / | ||
| - | exit 1 | ||
| - | fi | ||
| - | } | ||
| - | |||
| - | # single arg is -v for messages, -q for none | ||
| - | check_status() | ||
| - | { | ||
| - | if [ ! -r " | ||
| - | test " | ||
| - | return 3 | ||
| - | fi | ||
| - | if read pid < " | ||
| - | test " | ||
| - | return 0 | ||
| - | else | ||
| - | test " | ||
| - | return 1 | ||
| - | fi | ||
| - | } | ||
| - | |||
| - | case " | ||
| - | start) | ||
| - | test_config | ||
| - | log_daemon_msg " | ||
| - | start-stop-daemon --start --quiet --pidfile " | ||
| - | --exec / | ||
| - | -6 -q $OPTIONS -cf " | ||
| - | sleep 2 | ||
| - | |||
| - | if check_status -q; then | ||
| - | log_end_msg 0 | ||
| - | else | ||
| - | log_failure_msg "check syslog for diagnostics." | ||
| - | log_end_msg 1 | ||
| - | exit 1 | ||
| - | fi | ||
| - | ;; | ||
| - | stop) | ||
| - | log_daemon_msg " | ||
| - | start-stop-daemon --stop --quiet --pidfile " | ||
| - | log_end_msg $? | ||
| - | rm -f " | ||
| - | ;; | ||
| - | restart | force-reload) | ||
| - | test_config | ||
| - | $0 stop | ||
| - | sleep 2 | ||
| - | $0 start | ||
| - | if [ " | ||
| - | exit 1 | ||
| - | fi | ||
| - | ;; | ||
| - | status) | ||
| - | echo -n " | ||
| - | check_status -v | ||
| - | exit " | ||
| - | ;; | ||
| - | *) | ||
| - | echo " | ||
| - | exit 1 | ||
| - | esac | ||
| - | |||
| - | exit 0 | ||
| - | </ | ||
| - | * Danach chmod +x / | ||
| - | * Und update-rc.d isc-dhcp6-server defaults | ||
| - | / | ||
| - | < | ||
| - | # Defaults for isc-dhcp-server initscript | ||
| - | # sourced by / | ||
| - | # installed at / | ||
| - | |||
| - | # | ||
| - | # This is a POSIX shell fragment | ||
| - | # | ||
| - | |||
| - | # Path to dhcpd' | ||
| - | # | ||
| - | |||
| - | # Path to dhcpd' | ||
| - | # | ||
| - | |||
| - | # Additional options to start dhcpd with. | ||
| - | # | ||
| - | # | ||
| - | |||
| - | # On what interfaces should the DHCP server (dhcpd) serve DHCP requests? | ||
| - | # | ||
| - | INTERFACES=" | ||
| - | </ | ||
| - | * Danach touch / | ||
| - | / | ||
| - | < | ||
| - | default-lease-time 600; | ||
| - | max-lease-time 3600; | ||
| - | |||
| - | authoritative; | ||
| - | |||
| - | log-facility local7; | ||
| - | |||
| - | subnet6 fd68: | ||
| - | range6 fd68: | ||
| - | option dhcp6.name-servers fd68: | ||
| - | option dhcp6.domain-search " | ||
| - | } | ||
| - | </ | ||
| - | * Nun service isc-dhcp6-server start | ||
| - | |||
| - | === bind Einrichten === | ||
| - | * Konfigurationsdatei ''/ | ||
| - | < | ||
| - | options { | ||
| - | directory "/ | ||
| - | |||
| - | // If there is a firewall between you and nameservers you want | ||
| - | // to talk to, you may need to fix the firewall to allow multiple | ||
| - | // ports to talk. See http:// | ||
| - | |||
| - | // If your ISP provided one or more IP addresses for stable | ||
| - | // nameservers, | ||
| - | // Uncomment the following block, and insert the addresses replacing | ||
| - | // the all-0' | ||
| - | |||
| - | // forwarders { | ||
| - | // 0.0.0.0; | ||
| - | // }; | ||
| - | |||
| - | // | ||
| - | // If BIND logs error messages about the root key being expired, | ||
| - | // you will need to update your keys. See https:// | ||
| - | // | ||
| - | dnssec-validation auto; | ||
| - | | ||
| - | recursion yes; | ||
| - | allow-recursion { localnets; localhost; }; | ||
| - | |||
| - | auth-nxdomain no; # conform to RFC1035 | ||
| - | listen-on-v6 { any; }; | ||
| - | }; | ||
| - | |||
| - | logging { | ||
| - | category " | ||
| - | category " | ||
| - | category " | ||
| - | category " | ||
| - | category " | ||
| - | category " | ||
| - | category " | ||
| - | category " | ||
| - | category " | ||
| - | category " | ||
| - | category " | ||
| - | category " | ||
| - | category " | ||
| - | category " | ||
| - | category " | ||
| - | category " | ||
| - | category " | ||
| - | channel " | ||
| - | file "/ | ||
| - | print-time yes; | ||
| - | print-category yes; | ||
| - | }; | ||
| - | }; | ||
| - | </ | ||
| - | |||
| - | * Konfigurationsdatei ''/ | ||
| - | < | ||
| - | // | ||
| - | // Do any local configuration here | ||
| - | // | ||
| - | |||
| - | // Consider adding the 1918 zones here, if they are not used in your | ||
| - | // organization | ||
| - | include "/ | ||
| - | |||
| - | |||
| - | zone " | ||
| - | type master; | ||
| - | file "/ | ||
| - | }; | ||
| - | </ | ||
| - | |||
| - | * Dienst starten mit '' | ||
| - | * ** Konfigurations-Git clonen ** | ||
| - | * '' | ||
| - | * '' | ||
| - | * ** Gateway-Script ** | ||
| - | * Damit der Gateway seine Funktion aufnimmt und über batman als Gateway anerkannt wird (erst dann funktioniert Routing, DHCP, usw.) muss das Kommando '' | ||
| - | * Hierfür sollte idealerweise ein Gateway-Überwachungsscript erstellt werden. | ||
| - | ==== NanoStation Loco M5 ==== | ||
| - | Die Original Firmware für die NanoStation Loco M5 findet sich bei [[http:// | ||
| - | ==== API File ==== | ||
| - | Das API File liegt im ''/ | ||
| - | '' | ||
| - | | ||
| - | === Knotenanzahl Automatisch Updaten lassen === | ||
| - | TODO: [[http:// | ||
| - | === WAN-Mesh auf Knoten aktualisieren === | ||
| - | Um Wan-Mesh auf einem Knoten zu verwenden müssen einmalig die folgenden UCI-Einträge über SSH gesetzt werden. | ||
| - | Anschließend kann das WAN-Mesh über den Expoertenmodus (Schnittstelle) ein und aus geschaltet werden. | ||
| - | < | ||
| - | uci set network.mesh_wan=interface | ||
| - | uci set network.mesh_wan.ifname=br-wan | ||
| - | uci set network.mesh_wan.proto=batadv | ||
| - | uci set network.mesh_wan.mesh=bat0 | ||
| - | uci set network.mesh_wan.auto=1 | ||
| - | uci commit | ||
| - | </ | ||