
В последних сборках Windows 10 можно автоматически добавлять статические маршруты при создании VPN-соединения. Когда VPN-соединение прерывается, маршрут автоматически удаляется из таблицы маршрутизации Windows. Чтобы добавить маршрут IPv4 или IPv6 для VPN-соединения, выполните следующие действия. Add-VpnConnectionRoute Используется команда PowerShell.
Предположим, вам нужен трафик только двух подсетей (192.168.11.0/24
и 10.1.0.0/16
) будет направляться через ваше VPN-соединение, а другой трафик – через вашего провайдера (ISP).
Откройте консоль PowerShell и отобразите список настроенных VPN-соединений в Windows:
Get-VpnConnection
Прежде всего, снимите флажок Использовать шлюз по умолчанию в удаленной сети опция. Это можно сделать в свойствах VPN-соединения в панели управления или с помощью команды PowerShell Set-VpnConnection:
Set-VpnConnection –Name workVPN -SplitTunneling $True
Давайте добавим два статических маршрута для нашего VPN-соединения:
Add-VpnConnectionRoute -ConnectionName workVPN -DestinationPrefix 192.168.11.0/24 –PassThru
Add-VpnConnectionRoute -ConnectionName workVPN -DestinationPrefix 10.1.0.0/16 –PassThru
10.1.1.26/32
.DestinationPrefix : 192.168.11.0/24 InterfaceIndex : InterfaceAlias : workVPN AddressFamily : IPv4 NextHop : 0.0.0.0 Publish : 0 RouteMetric : 1
Если ваше VPN-соединение активно, вам нужно будет переподключиться, чтобы новые маршруты были добавлены в таблицу маршрутизации.
Новые маршруты привязываются к VPN-соединению и добавляются только при установлении соединения. При отключении от VPN-сервера маршруты автоматически удаляются.
Отключитесь от VPN и проверьте таблицу маршрутизации. Маршрут к вашей удаленной сети был удален автоматически, и Get-NetRoute
возвращается сообщение о том, что маршрут не найден:
Get-NetRoute : No MSFT_NetRoute objects found with property 'DestinationPrefix' equal to '192.168.11.0/24'. Verify the value of the property and retry. CmdletizationQuery_NotFound_DestinationPrefix,Get-NetRoute
Чтобы полностью удалить статический маршрут для VPN-соединения, используйте команду:
Remove-VpnConnectionRoute -ConnectionName workVPN -DestinationPrefix 192.168.111.0/24 -PassThru
В предыдущих версиях Windows (Windows 7/ Windows Server 2008R2) для динамического добавления маршрутов после создания VPN-соединения приходилось использовать CMAK и различные сценарии с командами add route.
Например, можно создать пакетный файл vpn_route.netsh чтобы добавить несколько статических маршрутов.
interface ipv4 add route prefix=192.168.11.24 interface="workVPN" store=active add route prefix=10.1.0.0/16 interface="workVPN" store=active exit
Вы можете запустить этот файл с помощью планировщика задач, который срабатывает после установления VPN-соединения (файл RasMan 20225 событие в средстве просмотра событий).
schtasks /create /F /TN "Add VPN routes" /TR "netsh -f C:\PS\vpn_route.netsh" /SC ONEVENT /EC Application /RL HIGHEST /MO "*[System[(Level=4 or Level=0) and (EventID=20225)]] and *[EventData[Data="My VPN"]]"