Ich habe eine WiFi (en0) und Ethernet (en8) Verbindung auf meinem Rechner. Jede Schnittstelle befindet sich in einem separaten Netzwerk und en0 hat Vorrang vor en8.
Das Gateway für en0 ist 192.168.100.1
und für en8 ist es172.20.10.1
Es gibt Dienste, auf die ich zugreifen muss, die nur im en0-Netzwerk verfügbar sind, und das VPN ist nur über das en2-Netzwerk verfügbar.
Ich möchte in der Lage sein, den macOS Sierra L2TP-Client zu zwingen, en8 zu verwenden. Ich habe erfolgreich eine statische Route hinzugefügt, um die IP-Adresse, mit der ich mich verbinden möchte, an das Gateway von en2 weiterzuleiten und durch Ausführen verifiziert zu habentrace get <vpn address>
Die Verbindung schlägt jedoch immer noch fehl, und wenn ich mir die Protokolle ansehe, /var/ppp/ppp.log
sieht es so aus, als würde der L2TP-Client immer noch versuchen, das en0-Gateway zu passieren:
Wed Mar 22 13:53:10 2017 : l2tp_get_router_address 192.168.100.1 from dict 1
Das Vorhandensein von zwei Standardgateways in macOS führt dazu, dass das Gateway der Schnittstelle mit der höheren Priorität das Standardgateway ist und das andere ignoriert wird.
Um die Bestellung zu erhalten, geben Sie im Terminal ein: networksetup -listnetworkserviceorder
.
Entfernen Sie also das Standard-Gateway der Schnittstelle en8 und fügen Sie dem VPN-Server entweder eine benutzerdefinierte Route hinzu:
sudo route add -host <VPN-server-ip-address> -interface en8
oder
sudo route add -host <VPN-server-ip-address> -link <MAC-of-en8>
oder zum Netzwerk (hier das Beispielnetzwerk: 10.0.0.0/16)
sudo route -n add -net 10.0.0.0/16 172.20.10.1
Je nach Netzwerkumgebung des VPN-Servers muss dort eine zweite invertierte Route hinzugefügt werden, die auf Ihr lokales 172.20.10.0/28-Netzwerk zeigt.
nichts zu sehen
klanomath
netstat -f inet -r
nichts zu sehen