[vpn] Probleme mit dem Routing

Ruben Kelevra cyrond at gmail.com
Mi Aug 20 13:51:33 CEST 2014


ip rule add iif freifunk-wk lookup 42 prio 4200
    ip -6 rule add iif freifunk-wk lookup 42 prio 4200
Hallo Bernd,

wir betreiben es mit einer Tabelle fürs IC-VPN die mit Prio 1 hinter der
local Liste geroutet wird:

ip -6 rule add from all lookup 43 prio 1
ip rule add from all lookup 43 prio 1

Diese füllen via Bird/Bird6.

Daneben haben wir eine 42iger die wir für den VPN nutzen und via
iif-Rule für den Rest nutzen:

ip rule add iif freifunk-x lookup 42 prio 4200
ip -6 rule add iif freifunk-x lookup 42 prio 4200

In 42 stehen ein paar IPs die uns gehören und wir ohne VPN raus jagen,
alles andere wird vom OpenVPN via Up-Script eingefügt.

Die Route über 42 Testen wir dann via Ping über das Tunnel-Interface,
ansonsten schalten wir DHCP und Batman-adv-Server-Modus ab:

ping -q -I $INTERFACE 8.8.8.8 -c 4 -i 1 -W 5 >/dev/null 2>&1

if test $? -eq 0; then
    NEW_STATE=server
else
    NEW_STATE=off
fi

Danach schaun wir uns noch den Traffic auf eth0 des Gateways an und
geben die geschätze freie Bandbreite an Batman-adv weiter:

MESH=mesh-x

if [ -f /sys/class/net/$MESH/mesh/gw_mode ]; then

  OLD_STATE="$(cat /sys/class/net/$MESH/mesh/gw_mode)"
  if [ ! "$OLD_STATE" == "$NEW_STATE" ]; then
    echo $NEW_STATE > /sys/class/net/$MESH/mesh/gw_mode
    logger "$MESH: batman gateway mode changed to $NEW_STATE"
  fi
  echo ${bw}MBit/${bw}MBit > /sys/class/net/$MESH/mesh/gw_bandwidth

fi



LG Ruben


On 20.08.2014 08:09, Bernd Kalbfuss-Zimmermann wrote:
> Hallo Netzwerker,
> 
> ich bin gerade dabei, den Freifunk Dreiländereck (CH-DE-FR) ins ICVPN zu
> bringen. Der öffentliche Schlüssel ist bereits im Repo auf github.com
> (dreilaendereck1). Die tinc-Verbindung steht. Die Peers sind mittels
> ping erreichbar. Quagga scheint ebenfalls zu laufen. Die Routen werden
> übertragen und die einzelnen Freifunk-Netze sind aus unserem
> Freifunk-Netz über das Mesh VPN zu erreichen.
> 
> Jetzt habe ich allerdings noch folgendes Problem: Da wir ausgehenden
> WAN-Verkehr über eine VPN-Verbindung anonymisieren, arbeiten wir mit
> zwei Routing-Tabellen. Bei der Konfiguration des Gateways haben wir uns
> an den Kollegen aus Hamburg
> <http://wiki.freifunk.net/Freifunk_Hamburg/Gateway> orientiert. Das
> Routing der Pakete aus dem Mesh VPN läuft über die Tabelle 42, welche
> als Default Gateway die VPN-Schnittstelle tun0 definiert. In diese
> Tabelle lasse ich Quagga auch die angekündigten Routen eintragen
> (Zusätzlicher Eintrag "table 42" in der zebra.conf").
> 
> Der Nachteil dieser Lösung ist, dass die Freifunk-Netze damit vom
> Gateway aus nicht erreichbar sind (da sie in der Routing-Tabelle main
> fehlen). D.h., ich kann auch zugehörigen DNS-Server nicht erreichen.
> Leider scheint es keine Möglichkeit zu geben, die Routen von Quagga in
> beide Tabellen eintragen zu lassen (zumindest habe ich in der
> Dokumentation für Quagga nichts gefunden). Eine weiterer "table"-Eintrag
> in der zebra.conf überschreibt lediglich den letzten Wert.
> 
> Wie kann ich dieses Problem möglichst elegant lösen? Hat jemand einen
> Vorschlag? Mir scheint, es gibt wenigstens zwei Ansätze:
> 
> a) Vom Gateway ausgehende Pakete an Freifunk-Netze / Nicht-WAN-Netze
> (z.B. 10.x.y.z) prinzipiell auf die Tabelle 42 umleiten
> b) Die beiden Tabellen (z.B. mittels eines Skripts) regelmäßig
> synchroniseren
> 
> Meinungen? Alternativen?
> 
> LG,
> 
> Bernd
> 
> 
> 

-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 819 bytes
Beschreibung: OpenPGP digital signature
URL         : <http://lists.freifunk.net/pipermail/vpn-freifunk.net/attachments/20140820/c095d040/attachment.pgp>


Mehr Informationen über die Mailingliste vpn