IP-Routenführung über VPN nicht möglich

IP-Routenführung über VPN nicht möglich

Ich versuche, ein VPN zum Laufen zu bringen. Ich möchte, dass Programme die Schnittstelle explizit anfordern, anstatt den GESAMTEN Verkehr umzuleiten, wie bei curl --interface.

curl --interface ppp0 ip.bsd-unix.netsollte über das VPN senden, aber irgendwie, mit tcpdumpoder iftop,Ich sehe, dass der Datenverkehr stattdessen über eth0 läuft, selbst wenn die Quell-IP 10.10.1.2 ist.. Hier ist meins ip route show:

default via 149.x.y.z dev eth0
10.10.1.1 dev ppp0  proto kernel  scope link  src 10.10.1.2
149.x.y.128/25 dev eth0  proto kernel  scope link  src 149.x.y.172

Einige IPs sind verdeckt. Die zweite wird von xl2tp beim Start hinzugefügt und die ppp0-Schnittstelle erstellt. 149.etc ist mein LAN und 10.etc ist mein VPN.


Außerdem ping -I ppp0 8.8.8.8kann ich beim Senden PPP0-Aktivität sehen und erhalte Antworten mit höherer ms-Zahl, was darauf schließen lässt, dass sie über das VPN laufen.

Antwort1

Ich bin irgendwie davon ausgegangen, dass, wenn die Quell-IP eines Pakets mit der einer Schnittstelle übereinstimmt, diese Schnittstelle verwendet wird. Und wenn das kein inhärentes IP-Verhalten wäre, dann hätte meine zweite Route das bewirkt: Dieser srcTeil der Route war für mich eine Ablenkung.

Meine Programme werden also an die ppp0-Adresse gebunden, die ihre Quell-IP festlegt, richtig? Ich habe getan, was @davidgo gesagt hat, und eine separate Routing-Tabelle erstellt ...

echo 200 custom | sudo tee -a /etc/iproute2/rt_tables

…dann wurde eine Regel hinzugefügt, um die benutzerdefinierte Tabelle für Pakete mit dieser Quell-IP zu verwenden …

sudo ip rule add from 10.10.1.2 lookup custom

... und der benutzerdefinierten Tabelle eine Regel hinzugefügt, um ppp0 für sämtlichen Datenverkehr zu verwenden, der durch das Gateway von ppp0 geht.

sudo ip route add default via 10.10.1.1 dev ppp0 table custom

curl ip.bsd-unix.netgibt mir meine Heim-IP und curl --interface ppp0 ip.bsd-unix.netdie Remote-IP meines VPN. Es funktioniert!

Dennoch interessiert mich, warum der Ping die ganze Zeit über korrekt über ppp0 lief.

verwandte Informationen