• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

VPN Netz und lokales Netz im gleichen Bereich - was tun?

nbkr

Guru
Hallo,

ich experimentiere gerade ein wenig mit OpenVPN rum und es klappt auch soweit. Nur stellt sich mir eine Frage: Was macht man wenn das VPN Netz und das lokale Netz identisch sind?

Beispiel:
Ich habe in meinem Rechner eine Netzwerkkarte (eth0) welche vom DHCP Server im lokalen Netz die Adresse: 192.168.2.50/24 bekommen hat.

Jetzt baue ich mit OpenVPN eine Verbindung zu meiner Firma auf. Mein tun0 Device bekommt jetzt von VPN Server die IP 192.168.2.10/24 weil das VPN Netz nunmal 192.168.2.0/24 verwendet.

Jetzt habe ich Routingtechnisch ein Problem.
Wenn ich 192.168.2.1 im VPN Netz anpingen will (das ist die IP des VPN Servers) dann schickt mein Notebook die Pakete nicht über tun0 sondern über eth0 raus, oder?

Wie schaffe ich es, dass wirklich jeder Trafic über tun0 geroutet wird? redirect-gateway habe ich schon versucht. Damit bleibt die Routinginformation über das angschlossene Netz trotzdem erhalten.

Ich brauche also irgendeine Umleitung die Sinngemäß aussagt:

Alles außer UDP 1194 (VPN Port) das über eth0 raus möchte umleiten nach
tun0.

Ich habe schon versucht das ganze mit iptables zu lösen, aber ich komme nicht auf den passende Befehl.

Das
Code:
iptables -t nat -A PREROUTING -j REDIRECT -o eth0 -o tun0
tuts nicht.
 
OP
nbkr

nbkr

Guru
Ich habe jetzt in einem Blog was gefunden wodurch ich mir den Rest zusammenreimen konnte. Ich konnte es bisher noch nicht testen, aber so könnte es theoretisch gehen.

Code:
#Neue Tabelle mit ip route
ip route add table 10 default via $VPN_GATEWAY dev $VPN_INTERFACE

#Neue Markierungs Chain
iptables -N MARKIERUNG

#Alles was über eth0 raus will an MARKIERUNG
iptables -A OUTPUT -o eth0 -j MARKIERUNG

#Markierungschain - alles was zu nbkr.dyndns.org:443 über eth0 
#will darf raus, hier wäre auch der Platz für andere Dinge 
#(wie z.B. DHCP) für das lokale (eth0) Netz.
iptables -A MARKIERUNG -p tcp --destination $VPN_INETADRESSE --dport $VPN_PORT \
-j ACCEPT

#Alles was jetzt noch übrig ist (der Rest) wird markiert.
iptables -t mangle -A MARKIERUNG -j MARK --set-mark 0x1

#Alles was markiert ist weiterrouten
ip rule add fwmark 1 table 10

Der Trick dabei ist folgender. Man markiert mit iptables nur die Pakete die man umleiten möchte. Das eigentlich Umleiten überlässt man iproute2 (gesteuert über das Programm "ip").
 
Oben