# aptitude install git
$ mkdir /opt/freifunk
$ git clone https://gitlab.com/FreifunkChemnitz/server-scripts.git /opt/freifunk/server-scripts
B.A.T.M.A.N. wird als Routing-Protokoll im Mesh genutzt. Die Version aus den Debian Paketquellen ist deutlich veraltet und nicht mehr nutzbar für unser Mesh.
Zuerst müssen die Abhängigkeiten für alfred, batctl und batman_adv installiert werden. Für x86_64 z.B.:
# aptitude install build-essential linux-headers-amd64 pkg-config libnl-3-dev libnl-genl-3-dev libcap-dev
$ git clone -b maint git://git.open-mesh.org/batman-adv.git
$ cd path/to/batman
$ make
# make install
$ git clone -b maint git://git.open-mesh.org/batctl.git
$ cd batctl
$ make
# make install
$ git clone git://git.open-mesh.org/alfred.git
$ cd alfred
$ make
# make install
Ist ein Routing Deamon zur Verbindung mit anderen Netzen.
# aptitude install bird
Wenn sys-V-init verwendet wird:
# update-rc.d bird disable
# update-rc.d bird6 disable
Wenn systemd verwendet wird:
# systemctl disable bird
# systemctl disable bird6
fastd wird genutzt um ein VPN zwischen den Freifunk-Knoten und den Uplink-Servern aufzubauen
fastd ist in debian jessie noch nicht verfügbar. Daher muss erst noch jessie-backports eingerichtet werden. Dazu fügt man in /etc/apt/sources.list.d/backports.list folgendes ein:
deb http://httpredir.debian.org/debian/ jessie-backports main
Anschließend führt man noch folgendes aus:
# apt-get update
# apt-get install fastd
Wenn sys-V-init verwendet wird:
# update-rc.d fastd disable
Wenn systemd verwendet wird:
# systemctl disable fastd
Nach der Installation muss ein Schlüsselpaar erzeugt werden per:
fastd --generate-key
Der public Key kommt in die site.conf der Domäne, in welcher der Server arbeiten soll. Der private Key wird in der Datei fastd-secret.local.conf in folgender Form hinterlegt:
secret "000...fff";
Der von uns genutzte DHCP Server und DNS Cache.
# aptitude install dnsmasq-base
Der von uns genutzte Service für IPv6 router advertisments. Dieser ist nur notwendig, wenn der Server ein IPv6-Gateway sein soll.
# aptitude install radvd
Wenn sys-V-init verwendet wird:
# update-rc.d radvd disable
Wenn systemd verwendet wird:
# systemctl disable radvd
cd /opt/freifunk/server-scripts/conf
cp bird.conf bird.local.conf
cp bird-routes.conf bird-routes.local.conf
cp dnsmasq.conf dnsmasq.local.conf
cp general.conf general.local.conf
touch bird-routes.local.conf
In der bird.local.conf muss __BIRD_ROUTER_ID__ angepasst werden. Es ist mit mit 169.254.x.y zu ersetzen, wobei x das 3. Oktet und y das 4. Oktet der öffentlichen IPv4 des Servers sind. Wenn der Server die öffentliche IPv4 5.199.142.119 hat, wäre das 169.254.142.119.
__BIRD_ROUTER_ASN__ muss durch das 3. und 4. Oktet der öffentlichen IPv4 ersetzt werden, wobei der Punkt wegzulassen ist. Zum Beispiel wird aus 5.199.142.119 dann 142119.
Auf Servern, die für das Chemnitzer Umland bestimmt sind ist das route unter protocol static anzupassen. Es muss auf 10.149.16.0/20 geändert werden.
__DNSMASQ_SERVICE_IP__ muss durch eine freie IPv4 Adresse im Service Netzbereich von Freifunk Chemnitz ersetzt werden. Eine Adresse ist beim Team zu erfragen.
Auf Servern für das Chemnitzer Umland muss "dhcp-range" auf "10.149.17.0,10.149.30.255,255.255.240.0,30m"
Alle Zeilen, die nicht geändert werden, sollten aus der Datei gelöscht werden.
WANIP ist durch die öffentliche IPv4 Adresse des Server zu ersetzen. ip -4 addr show dev eth0
WANGW6 ist durch das IPv6 Gateway des Servers zu ersetzen. ip -6 route show
SERVICE_ADDRESSES ist durch die IPv4 Adresse zu ersetzen, die auch in der dnsmasq.local.conf als __DNSMASQ_SERVICE_IP__ genutzt wurde.
Wenn die entsprechende Funktion genutzt werden soll, ist die Variable auf 1 zu setzen. Nicht zu nutzende Funktionen sind auf 0 zu setzen.
USE_FASTD="1"
USE_BIRD="1"
USE_DNSMASQ="0"
USE_RADVD="0"
USE_MESHVIEWER="0"
COUNTRY ist auf den 2 stelligen ISO-Code des Landes zu ändern, in dem der Server betrieben wird.
APIKEY wird vom Freifunk Chemnitz Team vergeben und ist daher zu erfragen.
WANGW ist das IPv4 Gateway des Server. ip route show
GRE_PEERS, LOG_DEBUG, LOG_TO sollte gelöscht werden.
Im Umland ist BATMAN_IFS auf die für das Umland bestimmten Server zu ändern.
# ln -s /opt/freifunk/server-scripts/initd-ffc.sh /etc/init.d/ffc
# update-rc.d ffc defaults
# update-rc.d ffc enable
Die Zeile * * * * * /opt/freifunk/server-scripts/initd-ffc.sh watchdog zu CRON hinzufügen. Zum Beispiel per crontab -e -uroot