У сучасних версіях Windows є цікава можливість автоматичного додавання статичних маршрутів при активації певного VPN підключення. Коли VPN підключення розривається, даний маршрут автоматично видаляється з таблиці маршрутизації Windows. Для додавання IPv4 або IPv6 маршруту для VPN підключення використовується PowerShell командлет Add-VpnConnectionRoute.

Ви звичайно, можете вручну в командному рядку додавати потрібні маршрути для VPN підключення, але головна проблема в тому, що такі маршрути очищаються після відключення від VPN. Тому під час наступного підключення, вам доведеться знову руками прописувати маршрути.

Припустимо, ви хочете, щоб через ваше VPN підключення Маршрутізірованний тільки пакети для двох підмереж (192.168.111.24/ і 10.1.0.0/16), а весь основний трафік повинен йти через вашого провайдера.

Відкрийте консоль PowerShell і виведіть список всіх налаштованих VPN підключень в Windows:

Get-VpnConnection

Get-VpnConnection вивести список vpn підключень

В першу чергу потрібно відключити опцію “Використовуйте шлюз за замовчуванням у віддаленій мережі“(Використовувати основний шлюз в віддаленої мережі). Це можна зробити у властивостях VPN підключення в панелі управління або командою:

Set-VpnConnection –Name workVPN -SplitTunneling $True

Детальніше про SplitTunneling тут.

відключити опцію "Звичайний режим шлюз у віддаленій мережі" для VPN підключень

Додамо два статичних маршруту для нашого VPN-з’єднання:

Add-VpnConnectionRoute -ConnectionName "workVPN" -DestinationPrefix 192.168.111.0/24 –PassThru
Add-VpnConnectionRoute -ConnectionName "workVPN" -DestinationPrefix 10.1.0.0/16 –PassThru

У параметрі Префікс призначення потрібно вказати підмережа, або конкретний IP адресу хоста, трафік до якого потрібно маршрутизировать через VPN. Для додавання одного IP адреси використовуйте формат 10.1.1.26/32.

Add-VpnConnectionRoute додати статичний маршрут для vpn підключення

DestinationPrefix : 192.168.111.0/24
InterfaceIndex :
InterfaceAlias : workVPN
AddressFamily : IPv4
NextHop : 0.0.0.0
Publish : 0
RouteMetric : 1

Якщо у вас активно VPN підключення, вам потрібно перепідключитися, щоб нові маршрути додалися в таблицю маршрутизації.

таблиця маршрутизації при активному vpn в windows 10

Нові маршрути прив’язані до VPN підключення і додаються при його запуску. Коли ви відключаєтеся від VPN сервера, маршрути автоматично видаляються.

Відключіться від VPN і перевірте таблицю маршрутизації. Маршрут до вашої віддаленої мережі пішов автоматично, а Get-NetRoute поверне, що маршрут не найден:

Get-NetRoute : No MSFT_NetRoute objects found with property 'DestinationPrefix' equal to '192.168.111.0/24'. Verify the value of the property and retry. CmdletizationQuery_NotFound_DestinationPrefix,Get-NetRoute

Маршут автоматично видаляється після відключення від vpn сервера в windows 10

Щоб повністю видалити статичних маршрут для VPN підключення, використовуйте команду:
Remove-VpnConnectionRoute -ConnectionName workVPN -DestinationPrefix 192.168.111.0/24 -PassThru

Якщо вам потрібно змінити порядок дозволу DNS імен при активному VPN, познайомтеся зі статтею.

У попередніх версіях Windows (Windows 7 / Server 2008R2) для динамічного додавання маршрутів після встановлення VPN підключень доводилося використовувати CMAK і різні скрипти з командами add route.

Наприклад, можна створити командний файл vpn_route.netsh для додавання маршрутів.

interface ipv4
add route prefix=192.168.111.24 interface="workVPN" store=active
add route prefix=10.1.0.0/16 interface="workVPN" store=active
exit

Даний файл потрібно запускати через завдання планувальника, яке спрацьовує на подію установки VPN підключення в Event Viewer (RasMan 20225)

schtasks /create /F /TN "Add VPN routes" /TR "netsh -f C:PSvpn_route.netsh" /SC ONEVENT /EC Application /RL HIGHEST /MO "*[System[(Level=4 or Level=0) and (EventID=20225)]] and *[EventData[Data="My VPN"]]"

Leave a Reply

Your email address will not be published. Required fields are marked *