Hilfe bei Table Routing auf dynamischem VPN Tunnel

Hallo liebe Community,

wäre es möglich, dass mal jemand über unsere Gateway-Config schaut, denn wir haben noch ein paar Probleme mit dem Routing!!

Die Nodes verbinden sich über Fastd mit dem Supernode, bekommen auch alle schön eine IP vom DHCP.
Über den normalen EXIT vom Supernode geht auch der Internetzugang, aber sobald wir uns mit HIDE.ME über OpenVPN verbinden, ist Schluss mit Internet.

Was wir nicht so richtig verstehen ist die Sache mit dem Routing über die „Table 42“ die hier in viele Anleitungen beschrieben wird.

Wären für Eure Hilfe sehr Dankbar!!

/etc/network/interfaces

The loopback network interface

auto lo
iface lo inet loopback

The primary network interface

auto eth0
iface eth0 inet static
address 185.11.136.252
netmask 255.255.255.128
network 185.11.136.128
broadcast 185.11.136.255
gateway 185.11.136.129
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 208.67.222.222

Freifunk Konfiguration

Freifunk Bridge-Interface (IPv4 und IPv6)

auto br-ffnn
iface br-ffnn inet6 static
bridge-ports none
address fd49:0225:20ff:d00f::1
netmask 64
iface br-ffnn inet static
address 10.44.0.1
netmask 255.255.0.0

BATMAN Interface

allow-hotplug bat0
iface bat0 inet6 manual
pre-up modprobe batman-adv
pre-up batctl if add ffnn-mesh-vpn
up ip link set $IFACE up
post-up brctl addif br-ffnn $IFACE
post-up batctl it 10000
post-up batctl gw_mode server
post-up /sbin/ip rule add from all fwmark 0x1 table 42
post-up start-stop-daemon -b --start --exec /usr/local/sbin/alfred – -i br-ffnn -b bat0 -m
post-up start-stop-daemon -b --start --exec /usr/local/sbin/batadv-vis – -i bat0 -s
pre-down brctl delif br-ffnn $IFACE || true
down ip link set $IFACE down

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface
default 185.11.136.129 0.0.0.0 UG 0 0 0 eth0
10.3.161.0 * 255.255.255.0 U 0 0 0 tun0
10.44.0.0 * 255.255.0.0 U 0 0 0 br-ffnn
localnet * 255.255.255.128 U 0 0 0 eth0

root@gw01:/# iptables -vL -t nat

Chain PREROUTING (policy ACCEPT 1918 packets, 162K bytes)
pkts bytes target prot opt in out source destination

Chain INPUT (policy ACCEPT 367 packets, 27952 bytes)
pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 1554 packets, 104K bytes)
pkts bytes target prot opt in out source destination

Chain POSTROUTING (policy ACCEPT 1553 packets, 104K bytes)
pkts bytes target prot opt in out source destination
357 23631 MASQUERADE all – any tun0 anywhere anywhere

LG
FFNN

Zeig mal:

ip rule show

und noch nen

ip r s t 42

Fragst nach dem Table Routing und schreibst genau die relevanten Dinge nicht rein :smiley:

Oder habt ihr noch kein Table Routing?

Ihr braucht halt unterschiedliche Routing Tables, da die Routen über den Tunnel nicht in die Main Kernel Table können / dürfen / sollen…

Also in dem Bereich haben wir leider nicht so die Erfahrung -.-

root@gw01:/# cat /etc/ip rule show

root@gw01:/# ip rule show
0: from all lookup local
32765: from all fwmark 0x1 lookup 42
32766: from all lookup main
32767: from all lookup default

ip rule show table 42 gibt nix her… denke mal das die Table nicht da is… aber wie gesagt da fehlt uns die Ahnung ein bisschen…

LG
FFNN

Okay, kein Problem.

Ihr müsst halt ne zusätzliche Table füttern, die dann für das Routing durch den Tunnel genutzt wird und entsprechende Regeln einfügen.

Im einfachsten Fall wäre das für euch:

  ip rule add from 10.0.0.0/8 pref 10 table 42
  ip rule add to 10.0.0.0/8 pref 10 table 42

Und dann halt einfach routen in die Table 42 kloppen:

  ip route add default via <IP der Tunnelgegenstelle> table 42

Das leitet dann alles was vom 10.Netz kommt oder zum 10.Netz soll über die Routing Table 42 in der es die Default Route über den VPN Tunnel gibt…

Und natten dann am einfachsten auf die lokale IP des Tunnels:

  iptables -t nat -A POSTROUTING -o <INTERFACENAME> -j SNAT --to <LOKALETUNNELIP>

wo sehe ich denn die IP der Tunnelgegenstelle???

LG
FFNN

Wenn die nicht statisch ist, dann erst nach dem Verbindungsaufbau des Tunnels.

Sprich, das Festlegen der Route und Natten erst nach dem Verbindungsaufbau getriggert auslösen…

tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.3.161.186 P-t-P:10.3.161.186 Mask:255.255.255.0
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:3130 errors:0 dropped:0 overruns:0 frame:0
TX packets:3005 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:372538 (372.5 KB) TX bytes:199451 (199.4 KB)

Entschuldige bitte, dass ich nicht sämgliche Netze im Kopf habe,
aber wo in Deutschland ist 10.44.0.0/16 denn?

Zülpich Nemmenich in NRW :wink:

Ach so, sehe gerade dass es dafür noch kein Abteilung gibt, daher die Anfrage „für ganz Deutschland“ :wink:

tun0 ist Dein Tunnel Interface, 10.3.161.186 offensichtlich Deine lokale IP, ich sehe da kein Peer, zeig mal ein „ip r“

ip r

default via 185.11.136.129 dev eth0
10.3.161.0/24 dev tun0 proto kernel scope link src 10.3.161.186
10.44.0.0/16 dev br-ffnn proto kernel scope link src 10.44.0.1
185.11.136.128/25 dev eth0 proto kernel scope link src 185.11.136.252

meh, keine Ahnung, du hast selbst lokal aktuell nix.

Du könntest natürlich probieren alles stumpf auf die 10.3.161.186 zu schubbsen, wenn linux das macht, aber ob das so dann läuft, fraglich…

Probierste mal so aus:

  ip rule add from 10.44.0.0/16 pref 10 table 42
  ip rule add to 10.44.0.0/16 pref 10 table 42
  ip route add default via 10.3.161.186 table 42
  iptables -t nat -A POSTROUTING -o tun0 -j SNAT --to 10.3.161.186

root@gw01:/# ip route add default via 10.3.161.186 table 42
RTNETLINK answers: File exists

Puh, dann musst Du auf jemanden warten der sich mit dynamischen Tunneln schon beschäftigt hat.

Da wir allen Communities statische Tunnel geben läuft da das Routing anders - statisch eben :smile:

Ok, aber schon mal ein dickes Danke an Dich für deine Mühen! Hast mir schon weiter geholfen!

Hab zumindest mal wieder etwas gelernt!!!

1 Like

Zumindest hast Du Dein Table Routing dann im Griff, Dir fehlt nun nur noch die richtige Route in der Table 42

Der Tunnel ist doch denk ich mal Openvpn oder?

Wir haben da ein script für welches beim Aufbauen des Tunnels die Route setzt:

/etc/openvpn/up.sh:

#!/bin/sh
   
# ip rules for maintenance
ip rule add from $ifconfig_local table 42 priority 9937
# default route into appropriate rt_table
ip route replace 0.0.0.0/1 via $route_vpn_gateway dev $dev table 42
ip route replace 128.0.0.0/1 via $route_vpn_gateway dev $dev table 42
exit 0

/etc/openvpn/down.sh

#!/bin/sh


# ip rules for maintenance
ip rule del from $ifconfig_local table 42 priority 9937
batctl -m bat0 gw client
service isc-dhcp-server stop
exit 0

In der Openvpn Config noch folgendes:

# Allow calling of built-in executables and user-defined scripts.
script-security 2

# Up and Down Scripts for Freifunk
up /etc/openvpn/up.sh
down /etc/openvpn/down.sh

von was kommen die Variablen???

Genau das ist nämlich die offene Frage…

Ja der Tunnel wird über openvpn zu hide.me aufgebaut