
Ich versuche herauszufinden, über welche Schnittstelle mein Datenverkehr geleitet wird, und die lokale IP-Adresse abzurufen, die dieser Schnittstelle zugeordnet ist. Dadurch kann ich zwischen Fällen unterscheiden, in denen der VPN-Zugriff deaktiviert ist (alles läuft über wlan0 -> IP von dieser Schnittstelle lesen) oder wenn VPN aktiviert ist (alles läuft über tun0, IP dieser Schnittstelle abrufen).
Ich kenne den Routenbefehl, weiß aber nicht recht, wie ich ihn analysieren soll, um die benötigten Informationen zu extrahieren.
Dies ist meine IP-Routenliste ohne VPN:
default via 192.168.26.1 dev wlp0s20f3 proto dhcp metric 600
169.254.0.0/16 dev wlp0s20f3 scope link metric 1000
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
192.168.26.0/23 dev wlp0s20f3 proto kernel scope link src 192.168.26.254 metric 600
und nach der Verbindung mit dem VPN
default via 192.168.31.1 dev tun0 proto static metric 50
default via 192.168.26.1 dev wlp0s20f3 proto dhcp metric 600
10.0.0.0/8 via 192.168.31.1 dev tun0 proto static metric 50
13.224.73.0/24 via 192.168.31.1 dev tun0 proto static metric 50
18.135.151.3 via 192.168.31.1 dev tun0 proto static metric 50
40.114.41.40 via 192.168.31.1 dev tun0 proto static metric 50
52.95.0.0/16 via 192.168.31.1 dev tun0 proto static metric 50
104.18.4.20 via 192.168.31.1 dev tun0 proto static metric 50
104.18.5.20 via 192.168.31.1 dev tun0 proto static metric 50
104.18.25.245 via 192.168.31.1 dev tun0 proto static metric 50
104.27.148.109 via 192.168.31.1 dev tun0 proto static metric 50
104.27.149.109 via 192.168.31.1 dev tun0 proto static metric 50
143.204.190.0/24 via 192.168.31.1 dev tun0 proto static metric 50
149.11.92.90 via 192.168.26.1 dev wlp0s20f3 proto static metric 600
150.2.20.0/24 via 192.168.31.1 dev tun0 proto static metric 50
150.2.22.0/24 via 192.168.31.1 dev tun0 proto static metric 50
150.2.34.0/24 via 192.168.31.1 dev tun0 proto static metric 50
169.254.0.0/16 dev wlp0s20f3 scope link metric 1000
172.16.0.0/12 via 192.168.31.1 dev tun0 proto static metric 50
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
192.168.0.0/16 via 192.168.31.1 dev tun0 proto static metric 50
192.168.26.0/23 dev wlp0s20f3 proto kernel scope link src 192.168.26.254 metric 600
192.168.26.1 dev wlp0s20f3 proto static scope link metric 600
192.168.31.0/24 dev tun0 proto kernel scope link src 192.168.31.56 metric 50
Kann man davon ausgehen, dass die oberste Standardroute diejenige ist, die verwendet wird?
Antwort1
Das Ermitteln dieser Daten besteht aus zwei Teilen: Erstens muss ermittelt werden, welche Subnetze direkt über eine bestimmte Schnittstelle hinausgehen. Und zweitens muss ermittelt werden, was die „Standardroute“ Ihres Datenverkehrs ins Internet ist.
(Springen Sie zum Abschnitt „Ihre Routen“, um meine Analyse der Ausgabe Ihrer Routen anzuzeigen.)
In beiden Fällen benötigen wir die ip route list
Ausgabe, aber in meinem Fall schauen wir uns meinen Laptop an (derzeit NICHT per VPN verbunden, da ich in meinem Heimnetzwerk bin):
default via 172.18.0.1 dev wlp59s0 proto dhcp metric 600
10.10.0.0/16 dev static-local proto kernel scope link src 10.10.0.1
10.73.252.0/24 dev InternalDHCP proto kernel scope link src 10.73.252.1
10.74.0.0/24 dev docker0 proto kernel scope link src 10.74.0.1 linkdown
169.254.0.0/16 dev docker0 scope link metric 1000 linkdown
172.18.0.0/16 dev wlp59s0 proto kernel scope link src 172.18.2.0 metric 600
Wie Sie sehen, habe ich hier in meinem Netzwerk mehrere verschiedene Dinge. Ich habe zwei Docker-Subnetze, zwei andere Netzwerke ( static-local
und InternalDHCP
für meine LXD-Container), meine drahtlose Schnittstelle wlp59s0
und die „Standardroute“ oben.
Lassen Sie uns dies in seine Bestandteile zerlegen. Beginnen wir mit einem Blick auf die nicht standardmäßigen Routen. Das würde sich wie folgt lesen:
- Der gesamte Datenverkehr zu 10.10.0.0/16 (10.10.0.0-10.10.255.255) läuft direkt über die
static-local
Netzwerkverbindung mit der Quell-IP 10.10.0.1. - Der gesamte Datenverkehr zu 10.73.252.0/24 (10.73.252.0-10.73.252.255) läuft direkt über die
InternalDHCP
Netzwerkverbindung mit der Quelle 10.73.252.1 - Der gesamte Datenverkehr zu 10.74.0.0/24 (10.74.0.0-10.74.0.255) läuft direkt über die
docker0
Netzwerkverbindung mit der Quelle 10.74.0.1. Dieselbe Netzwerkverbindung akzeptiert auch Datenverkehr für169.254.0.0/16
, diese Verbindung ist jedoch offline und funktioniert nicht. - Der gesamte Datenverkehr zu 172.18.0.0/16 (172.18.0.0-172.18.255.255) läuft direkt über die
wlp59s0
Netzwerkverbindung mit der Quell-IP 172.18.2.0.
Nun die Standardroute:
- Der gesamte übrige Datenverkehr, der nicht mit einer der anderen oben genannten Routen übereinstimmt, soll über das Gerät
wlp59s0
(das ist meine WLAN-Karte) über die Gateway-/Router-Adresse 172.18.0.1 geleitet werden.
So würden Sie ip route list
Ausgaben wie die oben stehende analysieren. Wir können Ihnen bei der Analyse Ihrer ip route list
Ausgabe behilflich sein, aber so würden Sie die Ausgabe lesen.
Ihre Routen
Dies ist meine Analyse Ihrer Routen, sowohl wenn Ihr VPN verbunden ist als auch nicht.
Erstens, wenn Sie nicht im VPN sind:
- Der Datenverkehr zu 192.168.26.0/23 (192.168.26.0-192.168.27.255) wird direkt über Ihre wlp0s20f3-Schnittstelle (WLAN) geleitet. Dies schließt den direkten Weg zu 192.168.26.1 (die Standardroute) ein.
- Der Datenverkehr zu 149.11.92.90 erfolgt über 182.168.26.1 direkt über Ihre WLAN-Schnittstellenverbindung.
- Der Datenverkehr zu 172.17.0.0/16 (172.17.0.0-172.17.255.255) läuft direkt über die Docker0-Netzwerkverbindung mit der Quell-IP-Adresse 172.17.0.1.
- Mit Ihrer Netzwerkverbindung stimmte etwas nicht, daher wird 169.254.0.0/16 (169.254.0.0-169.254.255.255) über die WLAN-Verbindung des Geräts ausgegeben.
- Bei allen anderen Subnetzbezeichnungen, wenn Sie nicht im VPN sind, fließt Ihr Datenverkehr über Ihre WLAN-Schnittstelle über die Gateway-IP 192.168.26.1 (Ihr Router).
Wenn Sie jetzt das VPN verwenden, werden Ihrer Tabelle VIELE Routen hinzugefügt, die keinen Sinn ergeben, aber wir können sie auf eine einfache Art und Weise zusammenfassen, um die Regeln zu bewerten. Beachten Sie, dass die vorherigen Regeln für nicht über VPN verbundene Verbindungen weiterhin gelten:
Wenn Sie mit dem VPN verbunden sind, wird der gesamte Datenverkehr, der nicht von den vorherigen On-Link-Regeln (einschließlich der Regeln für Zeiten, in denen Sie nicht mit dem VPN verbunden sind) abgedeckt ist, über das tun0-Gerät und die VPN-Verbindung geleitet, und zwar über 192.168.31.1 über den Tunnel. Daher wird der gesamte Datenverkehr ins Internet (mit Ausnahme der oben angegebenen On-Link-Adressen) zuerst über den VPN-Tunnel geleitet. Wenn die VPN-Tunnelverbindung ausfällt und der Datenverkehr diesen Tunnel nicht passieren kann, wird auf Ihre Standard-WLAN-Verbindung zurückgegriffen (dies geschieht jedoch nur, wenn der VPN-Tunnel ausfällt und NICHT erneut verbunden wird, sodass die
tun0
Schnittstelle nicht mehr verfügbar ist).Der Datenverkehr zwischen Ihrem System und dem VPN-Endpunkt wird über die Standard-WLAN-Verbindung geleitet, um den Remote-VPN-Server zu erreichen. (Dies ist das „Standardverhalten“, da für die Verbindung mit dem VPN-Server Ihre Standard-WLAN-Verbindung verwendet wird.)