„Krótki” przewodnik dla noobów takich jak ja, którzy niewiele wiedzą o sieciach. Nie wiele tu nowych, ale podsumowanie wszystkich dobrych opcji opisanych w poprzednich odpowiedziach i innych powiązanych wątkach. Cała procedura składa się z 3 podstawowych kroków:
1) Upewnij się, że cały ruch NIE przechodzi przez VPN. W tym celu należy odznaczyć Use default gateway on remote network
pole wyboru w ustawieniach VPN. Usuń zaznaczenie tego pola wyboru zarówno dla IPv4, jak i IPv6. Zwykle po prostu całkowicie wyłączam protokół IPv6 dla połączenia VPN.
(!) Jest (czasami) możliwe, że odznaczenie tego pola wyboru wystarczy do normalnej pracy - z mojego doświadczenia wynika, że niezbędne trasy (które będą kierowały konieczny ruch przez VPN) można dodawać automatycznie po ustanowieniu połączenia VPN. Nie wiem dokładnie, gdzie i jak te reguły są skonfigurowane, ale taki scenariusz istnieje - prawdopodobnie jest to magia zrobiona przez administratorów sieci VPN.
2) Wykonuj tylko niezbędny ruch, przechodząc przez VPN. W tym celu musisz zdefiniować trasy. Tutaj masz 3 opcje:
2.1) Dodaj stałą trasę przez bramę VPN:
route -p add a.b.c.d/<CIDR> w.x.y.z
lub route -p add a.b.c.d mask e.f.g.h w.x.y.z
gdzie „brama VPN” = „twój adres IP w sieci VPN” = w.x.y.z
i adres docelowy / sieć = a.b.c.d
. Możesz znaleźć w.x.y.z
, wykonując ipconfig
i szukając nazwy połączenia VPN lub, jeśli używasz PowerShell, możesz uzyskać kompaktowe wyjście, wykonując ipconfig | grep -A5 PPP
(co wyprowadzi 5 linii po znalezieniu każdego połączenia PPP).
Minusy: będziesz musiał ponownie utworzyć trasy, jeśli zmieni się twój adres IP VPN.
2.2) Dodaj stałą trasę przez interfejs sieci VPN:
route -p add a.b.c.d/<CIDR> 0.0.0.0 IF <interface number>
gdzie a.b.c.d
jest docelowy adres / sieć i interface number
jest identyfikatorem twojego połączenia VPN. Identyfikator ten można znaleźć poprzez wykonanie netstat -rn
, lub dla bardziej zwartej wyjściu netstat -rn | grep -A10 'Interface List'
.
Plusy: nie musisz nic zmieniać, jeśli zmieni się Twój adres VPN ( w.x.y.z
).
Minusy: musisz ponownie utworzyć trasy z nowym identyfikatorem, jeśli usuniesz połączenie VPN.
2.3) Użyj polecenia cmdlet programu PowerShell:
Add-VpnConnectionRoute -ConnectionName '<VPN connection name>' -DestinationPrefix a.b.c.d/<CIDR>
Plusy: niezbędne trasy są dodawane za każdym razem, gdy połączenie VPN jest ustanawiane i usuwane za każdym razem, gdy jest rozłączane.
Minusy: nie ma polecenia Get-VpnConnectionRoutes
cmdlet, więc zarządzanie tymi regułami może być trudne.
3) Sprawdź i upewnij się, że routing działa zgodnie z oczekiwaniami!
Jeśli dodałeś trwałe trasy, możesz je sprawdzić, wykonując netstat -rn | grep -A10 'Persistent Routes'
.
Na koniec uruchom kilka tracert
poleceń przeciwko obu adresom IP, które mają być dostępne przez VPN, i przeciwko tym, które powinny działać bez VPN.