====== Server als Knoten ======
Ausgangspunkt ist eine Debian Minimalinstallation Jessy 8.2. Dedizierter Server oder KVM-VM wird vorausgesetzt.
Hostnamen setzen
vi /etc/hostname → nur Namen, nicht FQDN
hostname 
/etc/init.d/hostname.sh
Pakete installieren
apt-get install bridge-utils iptables-persistent haveged ntpdate sudo 
===== Mesh-VPN mit fastd =====
Am besten [[fastd]] selber kompilieren. Das ist ziemlich einfach.
adduser --system --group --uid 300 --shell /bin/sh --disabled-password \
   --gecos 'Fast and Secure Tunneling Daemon'\
   --no-create-home --home /etc/fastd fastd
Alternativ kann auch ein zusätzliches Repository für fastd benutzt werden.
/etc/apt/sources.list
    [...]
    deb http://repo.universe-factory.net/debian/ sid main
Anschließend Signierungschlüssel importieren und die Paketliste aktualisieren
    gpg --keyserver pgpkeys.mit.edu --recv-key 16EF3F64CB201D9C 
    gpg -a --export 16EF3F64CB201D9C | apt-key add -
    aptitude update
Verzeichnisstruktur
    mkdir -p /etc/fastd/ffpi/backbone
Gateway aus https://github.com/freifunk-pinneberg/site-ffpi einfügen    
Eigner einstellen
   chown -R fastd /etc/fastd
   aptitude install fastd
   fastd --generate-key > /etc/fastd/keys
   chmod 600 /etc/fastd/keys
**Die auskommentierte Zeile im up-Script kann erst nach dem 2. Start benutzt werden. Beim Starten wird eine MAC-Adresse automatisch erzeugt, die dann in das Script übernommen werden muss.**
    log level warn;
    log to syslog level debug2;
    interface "mesh-vpn";
    method "salsa2012+umac";
    method "salsa2012+gmac";
    bind 0.0.0.0:10000;
    include "secret.conf";
    secure handshakes yes;
    mtu 1426;
    user "fastd";
    group "fastd";
     
    include peers from "backbone";
     
    on up "  
      ifup bat0 
    # ip link set dev $INTERFACE address 
      ip link set up dev $INTERFACE
      batctl if add $INTERFACE
    ";
/etc/fastd/ffpi/secret.conf
    secret "";
Der Public Key muss nun wie ein normaler Knoten als Peer auf den Gateways eingetragen werden.
Batman
für Gluon 2015.1 und batman_adv 2015.0
Die folgenden Software-Pakete sind nicht im Debian-Standard enthalten, wir kompilieren sie von Hand:
    batman_adv
    batctl
    batman-vis
    alfred
   aptitude install build-essential pkg-config linux-headers-$(uname -r)
batman-adv erstellen
   cd /usr/src
   wget http://downloads.open-mesh.org/batman/stable/sources/batman-adv/batman-adv-2015.0.tar.gz
   tar xzf batman-adv-2015.0.tar.gz
   cd batman-adv-2015.0/
   make
   make install
batctl erstellen
   cd /usr/src
   aptitude install libnl-3-dev
   wget http://downloads.open-mesh.org/batman/stable/sources/batctl/batctl-2015.0.tar.gz
   tar xzf batctl-2015.0.tar.gz
   cd batctl-2015.0
   make
   make install 
Das kernel-Modul muß anschließend geladen werden
   modprobe batman-adv
Zum automatischen Starten dann in /etc/modules eintragen
Überprüfen ob alles soweit geklappt hat:
   $ batctl -v
   batctl 2015.0 [batman-adv: 2015.0]
Netzwerkkonfiguration
Die folgende Datei muß mit den jew. eigenen Adressen konfiguriert werden. Dieses Beispiel ist von ffpi-services abgeleitet.
Die IP-Adresse für die Bridge ist im vornherein mit den Gateway Administratoren zu klären.
/etc/network/interfaces
    auto lo eth0
    iface lo inet loopback
    iface eth0 inet static
            address 10.0.89.120
            netmask 255.255.255.0
            network 10.0.89.0
            broadcast 10.0.89.255
            gateway1 0.0.89.1
            dns-nameservers 108.61.210.58
     
    #Freifunk Pinneberg Bridge-Interface (IPv4 und IPv6)
    #- bridge_ports none sorgt dafür, daß die Brücke auch ohneInterface erstellt wird
    auto br-ffpi
    iface br-ffpi inet6 static
            bridge-ports none
            #iPv6 fde8:21c6:9d82::0000/64
            address unbelegte iPv6 Adresse
            netmask 64
    iface br-ffpi inet static
            #iPv4 10.137.12.1/16
            address unbelegte iPv4 Adresse
            netmask 255.255.0.0
     
    allow-hotplug bat0
    iface bat0 inet6 manual
       pre-up modprobe batman-adv
       pre-up batctl if add mesh-vpn
       up ip link set $IFACE up
       post-up brctl addif br-ffpi $IFACE
       post-up batctl it 10000
       post-up batctl gw client
       pre-down brctl delif br-ffpi $IFACE || true
       down ip link set $IFACE down
Abschluss
Wenn alles richtig gemacht wurde, kann der Server innerhalb des FFPI Netzwerks gepingt werden.