Router: Manuelle Konfiguration

Aus Wiki Freifunk-3Ländereck
Wechseln zu: Navigation, Suche

Übertragen aus dem zentralen Freifunk Wiki am 2015-04-02.

Router-Netzwerktopologie

bat0

Virtuelle Netzwerkschnittstelle für das Mesh-Netzwerk (WLAN).

br-client

Brücke welche alle Netzwerkschnittstellen mit dem internen Freifunk-Netzwerk verbindet.

Mitglieder:

  • Switch-Ports des Routers
  • Freifunk-WLAN
  • Mesh-WLAN

Konfiguration:

  • IP-Adresse: dhcp-client
  • Konfiguration: /etc/config/network

br-wan

Brücke welche alle Netzwerkschnittstellen mit dem externen Netz verbindet (WAN - Internetzugang).

Mitglieder:

  • WAN-Port des Routers

Konfiguration:

  • IP-Adresse: dhcp-client
  • Konfiguration: /etc/config/network

eth0

Physikalische Schnittstelle der Switch-Ports des Routers.

Teil des Client-Netzwerkes, erhält daher keine eigene Schnittstellenkonfiguration.

  • VLAN: 1
  • Ports können im switch_vlan hinzugefügt / entfernt werden.
  • Konfiguration: /etc/config/network

eth1

Physikalische Schnittstelle des WAN-Ports des Routers.

Teil des WAN-Netzwerkes, erhält daher keine eigene Schnittstellenkonfiguration.

local-node

Virtuelle Netzwerkschnittstelle für den lokalen Zugriff auf den Router mit fester Standard-Konfiguration.

  • IP-Adresse: 10.119.0.1/32 fdc7:3c9d:b889:a272::1/128
  • Konfiguration: /etc/config/network

mesh-vpn

Virtuelle WLAN-Schnittstelle für die Freifunk-VPN-Verbindung.

wlan0

Virtuelle WLAN-Schnittstelle für das interne Freifunk-Netzwerk.

Teil des Client-Netzwerkes, erhält daher keine eigene Schnittstellenkonfiguration.

  • ESSID: "freifunk.net"
  • Konfiguration: /etc/config/wireless

wlan0-1

Virtuelle WLAN-Schnittstelle für das Mesh-Netzwerk.

  • ESSID: "mesh.freifunk.net"
  • BSSID: 12:CA:FF:EE:BA:BE
  • Konfiguration: /etc/config/wireless

Allgemeine Dienste-Konfiguration für Gluon

Gluon basiert auf OpenWRT, daher können erweiterte Informationen vom OpenWRT-Wiki nachgelesen werden.

Konfigurationsmodus

Wenn der Router zum ersten Mal mit der Gluon-Firmware gestartet wird (zB. nach dem Flashen), dann startet er in den Konfigurationsmodus. In diesem Modus hat er eine andere IP-Adresse (192.168.1.1) und auf der Weboberfläche läuft eine Konfigurationsoberfläche mit der man grundlegende Einstellungen machen kann.

Weitere Anpassungen kann man per SSH vornehmen (s.u.), dafür muss nicht in den Konfigurationsmodus gewechselt werden, es muss aber im Konfigurationsmodus vorab entweder ein SSH-Schlüssel oder ein Passwort eingerichtet worden sein.

Erstkonfiguration

Um den Router überhaupt in Betrieb nehmen zu können wird ein Name und ein VPN-Schlüssel benötigt.

Den VPN-Schlüssel muss man zusammen mit dem Knotennamen an <dreilaendereck@freifunk.net> senden, damit er in den Gateways eingetragen wird und sich der Router somit künftig verbinden kann.

Nachträgliche Konfiguration

Später kann jederzeit in den Konfigurationsmodus gewechselt werden indem man die Reset-Taste des Routers so lange drückt, bis alle LEDs kurz aufleuchten. Anschliessend muss man wieder die IP-Adresse 192.168.1.1 zum Zugriff verwenden.

Die bestehende Konfiguration bleibt beim Wechsel in den Konfigurationsmodus erhalten.

Erweiterte Konfiguration / SSH-Zugang

Auf der Weboberfläche können oben rechts auch erweiterte Konfigurationsoptionen aufgerufen werden, dort kann dann zB. ein SSH-Schlüssel oder -Passwort hinterlegt werden für die Konfiguration per SSH.

SSH-Verbindung aufbauen

Jeder Router hat lokal die IP-Adresse 10.119.0.1.

Passwort oder SSH-Schlüssel müssen vorab im Konfigurationsmodus in der erweiterten Konfiguration hinterlegt werden.

uci

Zur Konfiguration verwendet Gluon uci, eine kommandozeilenbasierte Konfigurationssprache. Damit werden Meta-Konfigurationsdateien zu einzelnen Diensten bearbeitet, welche dann beim Start der Dienste in die jeweiligen native Konfigurationsdateien umgeschrieben werden.

Konfiguration ausgeben
uci show
Änderungen festschreiben

Nicht vergessen!

uci commit
Konfigurationsdateien manuell bearbeiten
cd /etc/config
ls -la
vim ...

DHCP- / DNS-Server

Diese Dienste werden von dnsmasq bereitgestellt.

VPN Knoten - Gateway

Um die Freifunk-Knoten in das Freifunk-Netz einzubinden, müssen sie zuerst miteinander verbunden werden. Dies wird über VPN-Tunnel gelöst. Dh. alle Knoten verbinden sich per VPN mit einem oder mehreren Gateways, wodurch sie Verbindung zu allen anderen Freifunk-Knoten sowie dem Freifunk-Uplink (Zugang zum Internet) erhalten. Diese VPN-Verbindung wird über die reguläre Internetverbindung des Knotens hergestellt - alles, was aber innerhalb des Freifunk-Netzwerks passiert, läuft über das VPN, Zugang zum Internet erhalten Freifunk-Clients nur über den Uplink der Freifunk-Gateways. Der lokale Internetzugang dient aus Freifunk-Sicht also nur noch der VPN-Verbindung.

  • Dienst: fastd
  • Konfiguration: /etc/config/fastd
  • Init-Skript: /etc/init.d/fastd

Die Fastd-Konfiguration ist hierarchisch aufgebaut:

  1. config fastd 'Name'
    definiert eine VPN-Verbindung
    • Verschlüsselungsalgorithmus
    • maximale Paketgrösse (muss auf physische Anforderungen, zB. ADSL, angepasst werden)
    • Netzwerkschnittstelle
    • lokaler VPN-Schlüssel (muss dem Gateway bekannt sein)
  2. config peer-group 'Name'
    definiert eine Gruppe von Gegenstellen einer VPN-Verbindung
    • ermöglicht es für ein VPN mehrere Gegenstellen ("Peers") einzurichten
    • die Peer-Group wird einer VPN-Verbindung zugeordnet
  3. config peer 'Name'
    definiert eine einzelne Gegenstelle
    • Schlüssel der Gegenstelle
    • Netzwerkadresse der Gegenstelle
    • der Peer wird einer Peer-Group und / oder einer VPN-Verbindung zugeordnet

Ad-Hoc Routing

Aufbauend auf der logischen Verknüpfung via VPN wird das Freifunk-Netz nicht geroutet, sondern gebridged. Dh. alle Geräte teilen sich einen IP-Adressraum, die Router wissen nicht, welche Netzwerkadresse an welchem Router an welchem Standort angeschlossen ist. Für das virtuelle Routing der Netzwerkpakete wird BATMAN, eine Eigenentwicklung von Freifunk, verwendet. Der Informationsaustausch über die Netzwerktopologie findet dagegen über Alfred statt.

BATMAN ist ein Kernel-Modul und wird von Alfred eingerichtet.

  • Netzwerkschnittstelle: bat0
  • Konfiguration: /etc/config/batman-adv
  • Init-Skript: /etc/init.d/alfred

Üblicherweise wird bat0 mit dem Netzwerk gebridged, welches in das Mesh eingebunden werden soll (Freifunk Client-Netzwerk), andernfalls ist nur der Knoten selbst Teil des Freifunk-Meshs.

Debugging
batctl

Siehe auch

Topologie

Damit BATMAN weiss, welche Netzwerkpakete wohin weitergeleitet werden sollen, sammelt Alfred Daten über das Netzwerk. Er analysiert die Schnittstellen und die dahinter erreichbaren Netzwerke und Knoten.

Alfred hat zwei Betriebsmodi, Master und Slave. Ein Master-Server sammelt Daten von anderen Alfred-Instanzen und verteilt diese wieder, ein Slave-Client verwaltet nur die eigenen Daten und tauscht sich mit dem Master aus. Normalerweise sind WLAN-Accesspoints als Slave eingerichtet, während die Gateways die Rolle der Master übernehmen.

  • Konfiguration: /etc/config/alfred
  • Init-Skript: /etc/init.d/alfred

Logging

Es werden standardmässig keine Log-Dateien geschrieben. Ein begrenztes Syslog kann aus dem Speicher gelesen werden:

logread

Individuelle Konfigurationen

Hier ein paar Konfigurationsbeispiele für bestimmte Szenarien, die nicht dem Standard-Anwendungsfall entsprechen.

Statische WAN-Adresse

Anwendungsfall

Oft möchte man im Netzwerk bestimmten Geräten statische Adressen zuordnen, so dass man sie immer unter der selben IP-Adresse erreichen kann.

Hintergrund

Diese Konfiguration kann mittlerweile auch über den Konfigurationsmodus in der Weboberfläche vorgenommen werden, wenn man in den "Expert Mode" wechselt (Link oben rechts). In dieser Anleitung zeigen wir, wie es von Hand gemacht wird, dabei ist noch eine Besonderheit zu beachten.

  • der WAN-Port heisst eth1
  • Gluon verwendet für das WAN eine Bridge "wan"

In der Netzwerk-Konfigurationsdatei kann das WAN-Interface (die wan-Bridge) einfach von der Standardeinstellung proto 'auto' auf proto 'static' umgestellt und mit IP-Adress-Einstellungen versehen werden. Allerdings müssen Nameserver an anderer Stelle eingetragen werden, da sie sonst ein Konflikt mit dem lokalen Nameserver (DNSMasq) verursachen. Vergisst man die Eintragung ganz, kommt keine Verbindung zum VPN zustande, da fastd die Peers nicht finden kann.

Konfiguration
  1. per SSH auf den Router verbinden
  2. Datei /etc/config/network anpassen (vi /etc/config/network)
    1. im Abschnitt config interface 'wan' die Einstellung auf statisch ändern:
    2. option proto 'static'
    3. gewünschte IP-Adresse eintragen:
    4. option ipaddr '192.168.x.x'
    5. Netzwerkmaske / Subnetz nicht vergessen:
    6. option netmask '255.255.255.0'
    7. ...und das Standard-Gateway - die IP-Adresse des nächsten Routers
    8. option gateway '192.168.x.x'
  3. Datei /etc/config/gluon-wan-dnsmasq anpassen (vi /etc/config/gluon-wan-dnsmasq)
    1. Nameserver eintragen (meist IP-Adresse des Routers) - Kommentarzeichen # entfernen!
    2. list 'server' '192.168.x.x'
  4. Konfiguration übertragen mit uci commit
  5. Gerät neu starten mit reboot

Router als Switch - WAN- und Switch-Ports als Bridge

Anwendungsfall

Die Switch-Ports des Routers sollen mit dem lokalen LAN verbunden sein, welches über den WAN-Port angesteckt ist. Dh. der Router verhält sich wie ein normaler Switch.

Das Freifunk-Netzwerk ist nur per WLAN erreichbar.

Hintergrund
  • der WAN-Port heisst eth1
  • die LAN-Ports heissen eth0
  • Gluon verwendet für das WAN eine Bridge "wan"
  • Gluon verwendet für das LAN eine Bridge "cient"

Wir entfernen daher eth0 aus der client-Bridge und fügen es der wan-Bridge hinzu:

Konfiguration
  1. per SSH auf den Router verbinden
  2. Datei /etc/config/network anpassen (vi /etc/config/network)
    1. im Abschnitt config interface 'wan' die Switch-Ports der WAN-Bridge hinzufügen:
    2. option ifname 'eth0 eth1'
    3. im Abschnitt config interface 'client' die Switch-Ports aus der Client-Bridge entfernen:
    4. option ifname 'bat0'
  3. Konfiguration übertragen mit uci commit
  4. Gerät neu starten mit reboot