Gateway

Aus Freifunk Kiel
Wechseln zu: Navigation, Suche

Um einen Gateway Knoten zu betreiben müssen mehrere Dienste aufgesetzt werden.

Dies ist nur zu empfehlen, wenn das entsprechende Fachwissen vorhanden ist.
Oder auch, tue dies nur wenn du weißt was du tust!

Man kann die Einrichtung eines Gateway Knotens faktisch in zwei Schritte unterteilen. Im ersten Schritt wird der Gateway Server zu einem DialIn Knoten ausgebaut und im zweiten Schritt die eigentliche funktionalität des Gateway Knotens.

DialIn Knoten

Wir bezeichnen einen Knoten als DialIn wenn er VPN-Verbindungen von außen akzeptiert und Mechanismen zum Austausch/Bezug von Knoten Schlüsseln verwendet. Die Konfigurationsbeispiele in diesem Artikel beziehen sich auf Debian.

Zusätzliche Quellen und Packete installieren

Um aktuellen Packete von FASTd und B.A.T.M.A.N. zu bekommen, sollte man eine entsprechende Quelle in die APT-Sources einpflegen, z.B.:

 deb http://repo.universe-factory.net/debian/ sid main

Folgende Packete werden benötigt:

 fastd batman-adv bridge-utils git

Freifunk Netzwerkbrücke

Um den Freifunk Netzwerkverkehr konsistent zu verwalten legen wir eine Netzwerk Brücke an. Wir werden diese in dieser Anleitung ab jetzt als das Netzwerkgerät br-ffki bezeichnen. Es steht dir frei diesen Namen nach belieben zu ändern, beachte aber, dass du ihn überall änderst.

Da wir später in diesem Artikel den DialIn zu einem GateWay Knoten ausbauen wollen und dieses feste IPv(4/6) Adressen braucht solltest du dir jetzt IP-Adressen sichern. Im weiteren werden wir diese mit den Platzhaltern <ipv4> bzw. <ipv6> bezeichnen. Du musst dies aber nicht tun, wir gehen gleich ebenfalls auf eine Adresslose konfiguration ein.

Wir tragen nun in der /etc/network/interfaces folgendes ein:

 auto br-ffki
 iface br-ffki inet6 static
   bridge-ports none
   address <ipv6>
   netmask 64
 iface br-ffki inet static
   address <ipv4>
   netmask 255.255.0.0

Falls du nicht planst den DialIn Knoten zu einem Gateway Knoten auszubauen und dieser Knoten nicht explizit ansprechbar sein soll brauchst du der Netzwerkbrücke auch keine Adresse geben.

 auto br-ffki
 iface br-ffki inet manual
   bridge-ports none

Wir geben hier keine bridge-ports an, da diese zu einem späteren Zeitpunkt automatisch hinzugefügt werden. Außerdem sind Sie während des Bootvorgangs und somit der initialen Netzwerk konfiguration, evtl. noch nicht vorhanden.

B.A.T.M.A.N. Interface

 allow-hotplug bat0
 iface bat0 inet6 manual
   up ip link set $IFACE up
   post-up brctl addif br-ffki $IFACE
   post-up batctl it 11237  
   pre-down brctl delif br-ffki $IFACE || true
   down ip link set $IFACE down

VPN Service mit FASTd einrichten

Um anderen Knoten im Freifunk eine direkte Verbindung zum neuen Dial-In-Server zu ermöglichen sind folgende Schritte nötig:

Dieses Script nach /etc/init.d/fastd kopieren: http://freifunk.in-kiel.de/debian/fastd

dieses Script in /etc/fastd/fastd.conf erstellen:

log to syslog level debug;
interface "mesh-vpn";
method "xsalsa20-poly1305";
method "aes128-gcm";
bind 0.0.0.0:11237;
include "secret.conf";
mtu 1312;

include peers from "peers";

on up "
  ip link set dev $INTERFACE address de:66:c8:a0:df:04
  ip link set up dev $INTERFACE
  batctl if add $INTERFACE
  batctl vm server
";

dieses script in /etc/fastd/secret.conf erstellen:

secret "<your-secret-fastd-key>";

wobei du den fastd-key generieren musst mit:

 fastd --generate-key

dies generiert einen secret- und einen public-key, diese muss man sich beide gut für später notieren.

Dann noch das Starten des fastd-deamons beim bootvorgang einstellen mit:

 update-rc.d fastd defaults

Public Keys der anderen Knoten runterladen:

 cd /etc/fastd
 git clone git://freifunk.in-kiel.de/fastd-peer-keys.git peers

Damit die Peers immer up-to-date bleiben kann man mit Hilfe dieses Scripts:

 cd /etc/fastd
 wget http://freifunk.in-kiel.de/debian/fastd-update

Und als cronjob einrichten einmal am Tag einrichten

Gateway Knoten

Ein Gateway Knoten ist ein Knoten welcher anderen Teilnehmern des Freifunk ein Route ins Internet anbietet.

DHCP Dienst

Siehe auch DHCP.

babeld

Beispiel für eine babeld.conf:

 # allow babeld to communicate on interface br-ffki
 interface br-ffki wired false
 # refuse default gateway routes
 in ip 0.0.0.0/32 le 0 deny
 # allow private v6  and v4 networks
 in ip fc00::/7 ge 7 allow
 in ip 10.0.0.0/8 ge 16 allow
 # refuse other routes
 in deny
 # Redistribute private v4 and v6 networks
 redistribute ip fc00::/7 metric 256
 redistribute ip 10.0.0.0/16 ge 16 metric 256
 redistribute local if br-ffki
 # refuse anything else not explicitely allowed
 redistribute local deny
 redistribute deny

Achtung: Die Configuration sollte keine Leerzeichen an den Zeilenenden enthalten.