[Freifunk Franken] Konfigurationsfrage: Gateway in VM, OLSR sieht keine Gegenstelle

Miki salzmagazin at michelaweb.eu
Fr Sep 23 21:06:40 CEST 2016


Hallo,

ich versuche gerade den Gateway-Server in einer virtuellen Maschine mit 
QEMU neu aufzusetzen. Leider bekomme ich mit OLSRD keine Gegenstelle zu 
sehen (soll heißen keinen Traffic). Im Prinzip geht OpenVPN, weil der 
Tunnel nach Schweden (Mullvad) funktioniert.

Die VM ist jetzt mit einer Minimalversion von Debian 8 aufgesetzt. 
Innerhalb der VM habe ich mich an die Anleitung aus dem FFF-Wiki 
gehalten und auch keinerlei Firewall. Natürlich wirkt die 
Portweiterleitung wie eine Firewall, dazu später.



Fehlerverdacht 1)

Beim Start von olsrd bekomme ich eine Warnmeldung "Warning, setting a 
table for tunnels without SmartGW does not make sense." Im Internet habe 
ich aber keinen Hinweis gefunden, wie man dieses Feature aktivieren 
kann, bzw. um was es sich dabei überhaupt handelt. Oder fehlt mir noch 
ein Software-Paket? Das Startlog im Detail:

Starting olsrd:
  *** olsr.org - 
0.6.8.1-git_0000000-hash_88868cc56cd56d8c72f1bf61728e50bf ***
  Build date: 2015-10-09 19:45:00 on fff-wue1
  http://www.olsr.org

Parsing file: "/etc/olsrd/olsrd.conf"
Debug level: 0
     IPv4 broadcast: 255.255.255.255
     HELLO interval: 6.00
     HELLO validity: 600.00
     TC interval: 0.50
     TC validity: 300.00
     MID interval: 10.00
     MID validity: 300.00
     HNA interval: 10.00
     HNA validity: 300.00

Interface DefaultsNAT threshold 0.70
Link quality fish eye 1
IpVersion: 4
Clear screen enabled
HNA IPv4 entry: 10.50.116.0/22
Noint set to 1
Willingness: 3
     IPC host: 127.0.0.1
Hysteresis disabled
Link quality level 2
Pollrate 0.50
TC redundancy 2
MPR coverage 1
Plugin: olsrd_httpinfo.so.0.1
Plugin param key:"Port" val: "8080"
Plugin param key:"Net" val: "0.0.0.0 0.0.0.0"
Plugin: olsrd_dyn_gw.so.0.5
Plugin param key:"Interval" val: "5"
Plugin param key:"Ping" val: "8.8.8.8"
Plugin param key:"Ping" val: "82.165.230.17"
Plugin param key:"pingcmd" val: "ping -c 1 -q -I tun0 %s"
RtProto: 8
RtTable: 10
RtTableDefault: 10
RtTableTunnel: 10
Queuing if fff-gw-cd1
Queuing if fff-gw-m1
Warning, setting a table for tunnels without SmartGW does not make sense.
     IPv4 broadcast/multicast : 255.255.255.255
     Mode           : mesh (d)
     IPv6 multicast           : ff02::6d
     HELLO emission/validity  : 6.00 (d)/600.00 (d)
     TC emission/validity     : 0.50 (d)/300.00 (d)
     MID emission/validity    : 10.00 (d)/300.00 (d)
     HNA emission/validity    : 10.00 (d)/300.00 (d)
     Autodetect changes       : yes
     IPv4 broadcast/multicast : AUTO
     Mode           : mesh
     IPv6 multicast           : ::
     HELLO emission/validity  : 0.00/0.00
     TC emission/validity     : 0.00/0.00
     MID emission/validity    : 0.00/0.00
     HNA emission/validity    : 0.00/0.00
     Autodetect changes       : no
     IPv4 broadcast/multicast : AUTO
     Mode           : mesh
     IPv6 multicast           : ::
     HELLO emission/validity  : 0.00/0.00
     TC emission/validity     : 0.00/0.00
     MID emission/validity    : 0.00/0.00
     HNA emission/validity    : 0.00/0.00
     Autodetect changes       : no
olsr.org - 0.6.8.1-git_0000000-hash_88868cc56cd56d8c72f1bf61728e50bf 
detaching from the current process...



Fehlerverdacht 2)

Ich muss ja ein paar Ports und das dämliche GRE-Protokoll tunneln. Für 
GRE habe ich folgende Regeln, wo vielleicht noch ein Fehler drin ist? 
Oder es fehlt noch ein Port? Das Tunneln mit TCP und UDP funktioniert 
(getestet), deshalb nenne ich da nur die Ports ohne Regelsätze.

TCP: 22, 1723  (Der 22 ist hostseitig auf einen anderen Port umgeleitet.)
22 => SSH
1723 => Steuerung für GRE

UDP: 1300, 10004
1300 => Mullvad
10004 => wurde in fff_beispiel_fastd.sh erwähnt

Jetzt zum GRE, was ja kein Port sondern ein Protokoll ist ohne Ports... 
Die folgenen iptables Regeln sind natürlich nicht auf der VM Guest, 
sondern auf dem Host - also auf der realen Hardwarekiste.

iptables -t nat -I PREROUTING -p gre ! --src ${Guest_ipaddr} -j DNAT 
--to-destination ${Guest_ipaddr}
iptables -t nat -I POSTROUTING -p gre --src ${Guest_ipaddr} -j SNAT 
--to-source ${Host_ipaddr}
iptables -I FORWARD -p gre -j ACCEPT
iptables -A INPUT -p gre -j ACCEPT
iptables -A OUTPUT -p gre -j ACCEPT



Wenn hier jemand mitliest, der eine Idee zur weiteren Fehlersuche hat, 
wäre ich sehr dankbar!
Liebe Grüße,
Miki




Mehr Informationen über die Mailingliste franken