Krótki" przewodnik dla takich noobów jak ja, którzy nie wiedzą zbyt wiele o sieciach. Niewiele tu nowego, ale podsumowanie wszystkich dobrych opcji opisanych w poprzednich odpowiedziach i w innych powiązanych wątkach. Cała procedura składa się z 3 podstawowych kroków:
1) Zrób all traffic NOT going via VPN. W tym celu musisz odznaczyć pole wyboru Use default gateway on remote network
w ustawieniach VPN. Upewnij się, że odznaczyłeś to pole 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 po nawiązaniu połączenia VPN można automatycznie dodać niezbędne trasy (które będą kierować niezbędny ruch przez VPN). Nie wiem dokładnie gdzie i jak te reguły są skonfigurowane, ale taki scenariusz istnieje - prawdopodobnie jest to jakaś magia zrobiona przez administratorów sieci VPN.
2) Zrób tylko niezbędny ruch przechodzący 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 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 swojej nazwy połączenia VPN lub, jeśli używasz PowerShell, możesz uzyskać kompaktowe wyjście wykonując ipconfig | grep -A5 PPP
(który wyświetli 5 linii po znalezieniu każdego połączenia PPP).
Zużycie: trzeba będzie odtworzyć trasy, jeśli IP VPN się zmieni.
2.2) Dodaj stałą trasę przez interfejs sieciowy VPN:
route -p add a.b.c.d/<CIDR> 0.0.0.0 IF <interface number>
gdzie a.b.c.d
jest adresem docelowym/siecią, a interface number
jest identyfikatorem połączenia VPN. Identyfikator ten można znaleźć, wykonując netstat -rn
lub, w przypadku bardziej kompaktowego wyjścia, netstat -rn | grep -A10 'Interface List'
.
Pros: nie trzeba niczego zmieniać, jeśli adres VPN (w.x.y.z
) ulegnie zmianie.
Wady: trzeba ponownie utworzyć trasy z nowym identyfikatorem, jeśli usuniesz połączenie VPN.
- 3) Użyj PowerShell cmdlet:
Add-VpnConnectionRoute -ConnectionName '<VPN connection name>' -DestinationPrefix a.b.c.d/<CIDR>
Pros: konieczne trasy są dodawane za każdym razem, gdy nawiązywane jest połączenie VPN i usuwane za każdym razem, gdy jest ono rozłączane.
Wady: nie ma Get-VpnConnectionRoutes
cmdlet, więc zarządzanie tymi zasadami może być trudne.
3) Sprawdź i upewnij się, że routing działa zgodnie z oczekiwaniami!
Jeśli dodałeś stałe trasy, możesz je sprawdzić wykonując netstat -rn | grep -A10 'Persistent Routes'
.
I wreszcie, wykonaj kilka komend tracert
zarówno dla adresów IP, które mają być dostępne przez VPN jak i dla tych, które powinny działać bez VPN.