This is an old revision of the document!
Table of Contents
Funkinsel Setup auf OpenWRT Kamikaze
Dieses Howto beschreibt das Funkinselsetup für die OpenWRT Kamikaze. Howtos für andere Firmware Images können auf FunkInsel gefunden werden.
Installation
OpenVPN
Zunächst muss OpenVPN installiert werden:
# ipkg install openvpn
Das Verzeichnis /etc/openvpn und darin eine Konfigurationsdatei anlegen.
# mkdir /etc/openvpn # cd /etc/openvpn # vi server.conf
Hier eine Beispielkonfiguration:
client dev tap0 proto udp remote tunnel.ffgraz.net 1194 resolv-retry infinite nobind persist-key persist-tun cd /etc/openvpn # chroot /etc/openvpn # user nobody # group nogroup ca "ca.crt" cert "<name>.crt" key "<name>.key" cipher none verb 3
Diese Konfiguration geht davon aus das die Zertifikate mit denen sich der Router authentifiziert im gleichen Verzeichnis wie die Konfiguration liegt. Sollten diese woanders liegen kann dass ebenfalls mit relativen oder absoluten Pfaden angegeben werden. Die 3 auskommentierten Zeilen bringen wenn sie einkommentiert werden OpenVPN dazu in ein chroot-jail unter dem User nodody zu laufen. Dies ist wohl auf einem kleinen Router etwas übertrieben aber sollte auf einem normalen System verwendet werden.
OpenVPN sollte sich nun mit folgenden Kommando starten lassen:
# /etc/init.d/openvpn start
Sollte alles funktionieren wird der Tunnel aufgebaut und es gibt ein zusätzliches Netzwerk-Intefaces names tap0. Um OpenVPN nach einen einen Reboot neu zu starten muss der Initscript noch aktiviert weden:
# /etc/init.d/openvpn enable
OLSR
Die folgende Konfiguration für OLSR muss in die Datei /etc/config/olsr kopiert werden. Wichtig dabei sind die beiden letzten Zeilen des ersten Absatzes. Diese werden benötigt um OLSR mit Policy Routing zu verwenden.
config "olsr" "general"
option DebugLevel '0'
option IpVersion '4'
option AllowNoInt 'yes'
option Pollrate '0.025'
option TcRedundancy '2'
option MprCoverage '7'
option LinkQualityFishEye '1'
option LinkQualityWinSize '100'
option LinkQualityDijkstraLimit '0 10.0'
option LinkQualityLevel '2'
option UseHysteresis 'no'
option FIBMetric '"flat"'
option ClearScreen 'yes'
option Willingness '3'
option LinkQualityAging '0.1'
option LinkQualityAlgorithm '"etx_fpm"'
option RtTable '111'
option RtTableDefault '112'
config "Interface"
option Interface 'wlan'
option HelloInterval '6.0'
option HelloValidityTime '108.0'
option TcInterval '4.0'
option TcValidityTime '324.0'
option MidInterval '18.0'
option MidValidityTime '324.0'
option HnaInterval '18.0'
option HnaValidityTime '108.0'
config "Interface"
option Interface 'tunnel'
option HelloInterval '6.0'
option HelloValidityTime '108.0'
option TcInterval '4.0'
option TcValidityTime '324.0'
option MidInterval '18.0'
option MidValidityTime '324.0'
option HnaInterval '18.0'
option HnaValidityTime '108.0'
Danach muss in der Datei /etc/config/network der folgende Pseudo Eintrag hinzugefügt werden damit der OLSR Initscript den richtigen Interfacenamen findet. Die obige Konfiguration geht weiters davon aus das das WLan Interface den Namen wlan trägt.
config interface tunnel
option ifname 'tap0'
Policy Routing
Um das Policy Routing fertig zu konfigurieren brauchen wir noch einen zusätzlichen Initscript der die erestlichen Routingeinträge richtig setzt. Ausserdem muss noch ein Paket installiert werden das ein fehlendes Modul für Iptables enthält. Weiters ist es wichtig das in der Datei /etc/config/network kein gateway konfiguriert ist. Es darf also bei keiner Interaface Konfiguration eine option gateway existieren.
# ipkg install iptables-mod-ipopt # vi /etc/init.d/network_additional
folgendes reinkopieren:
#!/bin/sh /etc/rc.common
START=41
STOP=39
start() {
ip route add default via <gateway ip> table default
ip rule add lookup main
ip rule add lookup 111
ip rule del pref 32766
ip rule add pref 32766 fwmark 1 lookup 112
iptables -t mangle -A PREROUTING -i ath0 -j MARK --set-mark 1
iptables -t mangle -A PREROUTING -i tap0 -j MARK --set-mark 1
}
stop() {
ip rule del pref 32766
ip rule add pref 32766 lookup main
ip rule del lookup main
ip rule del lookup 111
ip route del default via <gateway ip> table default
iptables -t mangle -D PREROUTING -i ath0 -j MARK --set-mark 1
iptables -t mangle -D PREROUTING -i tap0 -j MARK --set-mark 1
}
Danch muss das Script noch ausführbar markiert werden und enabled werden.
# chmod +x /etc/init.d/network_additional # /etc/init.d/network_additional enable
Nach einem Reboot sollte der Tunnel aufgebaut werde und die Funkinsel somit aktiv sein.
