Routing des Datenverkehrs von WLAN1 über VPN und des Datenverkehrs von WLAN0 zu eth0

Routing des Datenverkehrs von WLAN1 über VPN und des Datenverkehrs von WLAN0 zu eth0

Ich versuche, einen WLAN-Router einzurichten und ein VPN zu verwenden. Da ich in diesem speziellen Thema ziemlich neu bin, hoffe ich, dass mir hier jemand einen Tipp oder, wenn möglich, eine praktische Lösung geben kann. Ich habe das ganze Internet durchsucht, aber keine überzeugende Lösung für das folgende Problem gefunden:

Ich habe ein Ubuntu-basiertes Gerät mit zwei drahtlosen Schnittstellen (WLAN0 und WLAN1) sowie einer physischen Netzwerkschnittstelle (Eth0), die mit dem Internet verbunden ist. Ich plane auch, eine Verbindung zu einem VPN herzustellen (OpenVPN zu einem VPN-Anbieter, den ich zuerst kaufen muss), was wahrscheinlich Tun0 oder so etwas sein wird. Ich möchte, dass der gesamte Datenverkehr von Geräten, die eine Verbindung zu WLAN1 herstellen, über das VPN geleitet wird und der gesamte Datenverkehr auf WLAN0 direkt ins Internet geleitet wird.

Hier sind meine Fragen: a) ist das überhaupt möglich? b) wenn (a == ja), wie würde ich es machen?

Ich brauche eine zuverlässige Lösung, also bitte wenn möglich keine schmutzigen Hacks.

Vielen Dank im Voraus, Peer

Antwort1

Dies geschieht mithilfe von Policy Based Routing.

Normalerweise werden Routing-Entscheidungen basierend auf dem Zielnetzwerk getroffen. Mit richtlinienbasiertem Routing können Sie jedoch basierend auf allen möglichen Aspekten einer Verbindung routen. Ihr Szenario ist unkompliziert: Wenn die eingehende Schnittstelle ist, wlan1sollte die Standardroute außerhalb vontun0

Zuerst richten wir eine neue Routing-Tabelle mit dem Namen „vpn“ (oder wie auch immer Sie es nennen möchten) ein:

echo "200 vpn" >> /etc/iproute2/rt_tables

Oder Sie können diese Datei bearbeiten und 200 vpnam Ende ergänzen.

Als nächstes müssen wir eine Regel hinzufügen:

sudo ip rule add iif wlan1 lookup vpn

Dies bedeutet: „Wenn die eingehende Schnittstelle ist, wlan1verwenden Sie die Routing-Tabelle mit dem Namen „VPN“ und nicht die normale.“

Dann fügen wir der VPN-Routingtabelle eine Standardroute hinzu:

sudo ip route add default dev tun0 table vpn
sudo ip route flush cache

Dies bedeutet, dass alles, was die Routing-Tabelle „VPN“ verwendet, die Schnittstelle tun0 als Standard-Gateway verwendet. Dann leeren wir sicherheitshalber den Routen-Cache.

Mit diesem Befehl können Sie die VPN-Routingtabelle anzeigen:

sudo ip route list table vpn

Jetzt müssen Sie diese Befehle nur noch ausführen, möglicherweise als Skript, nachdem das VPN aktiviert wurde. Ich bin ziemlich sicher, dass OpenVPN ein Post-Up-Skript hat, dem Sie sie hinzufügen können.

verwandte Informationen