Записки IT специалиста
Технический блог специалистов ООО»Интерфейс»
- Главная
- Автоматическое добавление маршрутов для VPN-соединения в Windows
Автоматическое добавление маршрутов для VPN-соединения в Windows
В последнее время значительно вырос интерес к технологиям удаленного доступа для обеспечения работы сотрудников из любого места. Ключевую роль здесь играет VPN, как универсальное и безопасное средство для получения доступа во внутреннюю сеть предприятия. Наиболее привлекательно использовать для этого те протоколы, которые штатно поддерживаются в Windows, что позволяет организовать соединение на любом ПК без установки на него стороннего ПО. Но у данного способа есть одна проблема — добавление маршрутной информации, сегодня мы рассмотрим один из штатных способов, позволяющих легко управлять маршрутами для VPN-соединений.
Стандартные сетевые возможности Windows многим хороши, кроме одного — управление маршрутами для VPN-соединений. Именно это заставляло многих системных администраторов выбирать альтернативные технологии, например, OpenVPN, но это не совсем удобно если речь идет о личных устройствах сотрудников, так как требует установки дополнительного ПО, что, к тому же, не всегда возможно. Кроме того, мы неоднократно сталкивались с ситуациями, когда пользователи удаляли данное ПО, устанавливали конфликтующие приложения, теряли ярлыки для подключения, блокировали его антивирусным ПО и т.д. и т.п.
Подключение средствами ОС в этом плане более привлекательно, так как позволяет снять большую часть указанных выше проблем и подразумевает единообразие пользовательского интерфейса, что позволяет сделать простые и понятные инструкции.
Но вернемся к нашему вопросу. Для добавления маршрутов в удаленную сеть традиционно использовали несколько методов:
- Статическая маршрутизация — на первый взгляд все просто, что прописали руками — то и работает. Но добавление маршрутов требует привилегий администратора, не всегда возможно заранее прописать маршрут из-за отсутствия интерфейса, при переподключении маршруты могут стать недействительными.
- Маршрутизация на основе классов — требует тщательного планирования адресного пространства, нет возможности прокинуть дополнительные маршруты, сложно работать с сетями 192.168.х.х.
- CMAK и различные скрипты — требуют административных привилегий, сложны в настройке, непрозрачны.
В тоже время начиная с Windows 8 существует штатное решение в виде командлета PowerShell, которое позволяет привязать маршруты к VPN-подключению и добавлять их при его запуске, при отключении соединения маршруты будут автоматически удалены.
Запустим консоль PowerShell и прежде всего узнаем имена имеющихся в системе VPN-подключений:
Результатом работы команды будет информация обо всех коммутируемых подключениях, нас интересует поле Name:
Теперь добавим маршрут к удаленной сети для подключения с именем L2TP MT:
где в параметр ConnectionName содержит имя подключения, взятое в кавычки, а DestinationPrefix — необходимую сеть назначения или узел.
Теперь проверим как это все работает. Проверим таблицу маршрутизации при отключенном VPN-подключении и убедимся, что маршруты в удаленную сеть отсутствуют:
Теперь подключимся к VPN-серверу и снова проверим таблицу маршрутизации — в ней появится указанный нами маршрут к удаленной сети:
Если нужно добавить несколько маршрутов — выполняем команду несколько раз. При этом можно добавлять маршруты не только к удаленной сети, но и к определенному узлу, что в ряде случаев более предпочтительно по соображениям безопасности, например:
Данная команда добавит маршрут к узлу 192.168.111.101, к другим узлам удаленной сети доступа у VPN-пользователя не будет.
Чтобы удалить маршрут следует воспользоваться командой Remove-VPNConnectionRoute, синтаксис которой полностью повторяет команду добавления маршрута:
Как видим, современные версии Windows дают нам в руки достаточно простой и удобный инструмент управления маршрутами для VPN-подключений.
Важно! Данные возможности не поддерживаются в Windows 7.
Дополнительные материалы:
Помогла статья? Поддержи автора и новые статьи будут выходить чаще:
Или подпишись на наш Телеграм-канал:
RussianProxy.ru
Навигация
Вход на сайт
Route Add — Настройка маршрутизации при использовании RussianProxy VPN
По умолчанию, после установки RussianProxy VPN соединения ВЕСЬ трафик идёт через vpn сервер, то есть адрес нашего сервера становится основным шлюзом для всего интернет трафика. Однако, иногда возникает необходимость в других настройках vpn соединения, как то:
- 1 вариант: после установления vpn соединения, пустить весь трафик через основного провайдера интернета, и только трафик на определённые IP адреса, например только на подсеть IP адресов игры Lineage 2, пустить напрямую, минуя впн соединение.
- 2 вариант. после установления vpn соединения, пустить весь трафик через RussianProxy VPN соединение, и только трафик для некоторых IP адресов, пустить через vpn соединение.
- 3 вариант. Вы хотите чтобы весь трафик шел через RussianProxy VPN соединение, даже в случае разрыва соединения или при старте операционной системы.
Для того чтобы реализовать оба варианта Вам потребуется настройка таблицы маршрутизации, которую можно посмотреть выполнив команду route print.
Рассмотрим пример реализации первого варианта на конкретном примере — нужно, чтобы при установленном RussianProxy VPN соединении, через него шёл трафик только для сайта http://ping.eu, весь остальной трафик бы шёл через стандартного провайдера интернет.
- Открываем свойства соединения с RussianProxy VPN:
- Выбираем закладку «Сеть»:
- Открываем свойства TPC/IP протокола и нажимаем кнопку «Дополнительно»:
- Убираем галочку с пункта «Использовать основной шлюз в удаленной сети»:
- После этого нажимаем во всех открытых окнах свойств кнопку «OK» и подключаем vpn соединение.
- Теперь все соединения с интернет будут идти мимо VPN. Например: зайдите на сайте www.ping.eu и Вы увидете свой IP адрес выданный Вам провайдером интернета. Для того чтобы соединение с выбранным сайтом шло через VPN, Вы должны узнать IP адрес этого сайта (например запустив команду ping site.com или на странице: http://russianproxy.ru/ping указав адрес интересующего сайта). Для сайта ping.eu: Pinging ping.eu [85.25.86.50] with 32 bytes of data: Reply from 85.25.86.50: bytes=32 time=46ms TTL=52
После этого Вы должны узнать IP адрес выданный вам VPN сервером (можно посмотреть в сведениях о состоянии VPN соединения) или открыв наш сайт http://proxydetect.com — примерный вид: 46.183.162.### - Прописываем маршрут для нужного адреса 85.25.86.50:
route add 85.25.86.50 46.183.162.### — только для IP 85.25.86.50
route add 85.0.0.0 mask 255.0.0.0 46.183.162.### для всей подсети 85.*.*.* (если хотите чтобы трафик ко всем сайтам подсети шел через VPN)
Вместо ### — должно стоять число из вашего IP адреса. - Проверяем адрес на сайте http://ping.eu — он должен быть 46.183.162.###, при использовании vpn соединения с динамическим выделенным IP, или равен выделенному Вам IP адресу , при использовании пакета с выделенным IP.
Неудобство такого способа заключается в том, что Вам придётся прописывать маршрут каждый раз после соединения с VPN. Однако, если у Вас тариф VPN с выделенным IP, Вы можете прописать постоянный маршрут один раз и больше не заботиться о его постоянном прописывании.
route add адрес_сайта ваш_постоянный_IP -p — постоянный маршрут для одного сайта
route add адрес_сайта mask маска_подсетки ваш_постоянный_IP -p — постоянный маршрут для подсети IP адресов
На пакетах с динамическим выделенным IP возможен вариант прописавыния маршрута средствами CMD:
echo ===Routing=====================================================================
for /f «tokens=2 delims=:» %%a in (‘ipconfig ^| find /i «46.183.162.»‘) do (set «IP=%%a»)
route add 91.202.44.0 mask 255.255.255.0 %IP%
route add 92.63.99.78 mask 255.255.255.255 %IP%
Строка `for /f «tokens=2 delims=:» %%a in (‘ipconfig ^| find /i «46.183.162.»‘) do (set «IP=%%a»)` поместит в переменную `%IP%` текущий IP адрес, присвоенный VPN-соединению.
Теперь рассмотрим третий вариант.
Сделаем это на конкретном примере.
Имеется компьютер подключенный к интернету через роутер 192.1.1.1. Мы хотим чтобы ни один байт не ушел в интернет напрямую через роутер, минуя наше vpn соединение. Для начала определим на какой единственный адрес может идти трафик через роутер — это адрес впн сервера:
nslookup pptp-l2tp-vpn-russia-1.atomintersoft.com -> 46.183.162.5
Рассмотрим таблицу маршрутизации —
route print:
Сетевой адрес Маска сети Адрес шлюза Интерфейс Метрика
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.100 276 127.0.0.0 255.0.0.0 On-link
127.0.0.1 306 127.0.0.1 255.255.255.255 On-link
127.0.0.1 306 127.255.255.255 255.255.255.255 On-link
127.0.0.1 306 192.168.1.0 255.255.255.0 On-link
192.168.1.100 276 192.168.1.100 255.255.255.255 On-link
192.168.1.100 276 192.168.1.255 255.255.255.255 On-link
192.168.1.100 276 224.0.0.0 240.0.0.0 On-link
127.0.0.1 306 224.0.0.0 240.0.0.0 On-link
192.168.1.100 276 255.255.255.255 255.255.255.255 On-link
127.0.0.1 306 255.255.255.255 255.255.255.255 On-link
192.168.1.100 276 ===========================================================================
Постоянные маршруты:
Сетевой адрес Маска Адрес шлюза Метрика
0.0.0.0 0.0.0.0 192.168.1.1 По умолчанию =========================================================================== Видно, что ВЕСЬ трафик идет через постоянный маршрут по умолчанию:
0.0.0.0 0.0.0.0 192.168.1.1 По умолчанию
Удалим его: route delete 0.0.0.0
Теперь мы не можем достигнуть ни одного адреса за пределами локальной сети 192.1.1.* Далее нам нужно прописать маршрут до нашего впн сервера 46.183.162.5:
route add 46.183.162.5 192.168.1.1 -p
После этого наша таблица маршрутизации примет такой вид:
IPv4 таблица маршрута =========================================================================== Активные маршруты:
Сетевой адрес Маска сети Адрес шлюза Интерфейс Метрика
127.0.0.0 255.0.0.0 On-link
127.0.0.1 306 127.0.0.1 255.255.255.255 On-link
127.0.0.1 306 127.255.255.255 255.255.255.255 On-link
127.0.0.1 306 192.168.1.0 255.255.255.0 On-link
192.168.1.100 276 192.168.1.100 255.255.255.255 On-link
192.168.1.100 276 192.168.1.255 255.255.255.255 On-link
192.168.1.100 276 46.183.162.5 255.255.255.255
192.168.1.1 192.168.1.100 21 224.0.0.0 240.0.0.0 On-link
127.0.0.1 306 224.0.0.0 240.0.0.0 On-link
192.168.1.100 276 255.255.255.255 255.255.255.255 On-link
127.0.0.1 306 255.255.255.255 255.255.255.255 On-link
192.168.1.100 276 =========================================================================== Постоянные маршруты:
Сетевой адрес Маска Адрес шлюза Метрика
46.183.162.5 255.255.255.255 192.168.1.1 1 ===========================================================================
То есть доступен только один адрес в интернете — 46.183.162.5 — а это и есть адрес нашего впн сервера.
Не забудьте в настройках впн соединения вписать именно IP адрес 46.183.162.5, а не доменное имя pptp-l2tp-vpn-russia-1.atomintersoft.com. Теперь запускаем наше RussianProxy VPN соединение и весь интернет трафик, за исключением трафика до нашего впн сервера, пойдет через шифрованное со сжатием впн соединение. Итоговая таблица маршрутизации при установленном впн соединении выглядит в нашем случае так:
IPv4 таблица маршрута =========================================================================== Активные маршруты: Сетевой адрес Маска сети Адрес шлюза Интерфейс Метрика
0.0.0.0 0.0.0.0 On-link 46.183.162.31 21 127.0.0.0 255.0.0.0 On-link
127.0.0.1 4531 127.0.0.1 255.255.255.255 On-link
127.0.0.1 4531 127.255.255.255 255.255.255.255 On-link
127.0.0.1 4531 192.168.1.0 255.255.255.0 On-link
192.168.1.100 4501 192.168.1.100 255.255.255.255 On-link
192.168.1.100 4501 192.168.1.255 255.255.255.255 On-link
192.168.1.100 4501 46.183.162.31 255.255.255.255 On-link
46.183.162.31 276 46.183.162.5 255.255.255.255
192.168.1.1 192.168.1.100 4246 224.0.0.0 240.0.0.0 On-link
127.0.0.1 4531 224.0.0.0 240.0.0.0 On-link
192.168.1.100 4502 224.0.0.0 240.0.0.0 On-link
46.183.162.31 21 255.255.255.255 255.255.255.255 On-link
127.0.0.1 4531 255.255.255.255 255.255.255.255 On-link
192.168.1.100 4501 255.255.255.255 255.255.255.255 On-link
46.183.162.31 276 =========================================================================== Постоянные маршруты:
Трассировка маршрута к ya.ru [213.180.204.8] с максимальным числом прыжков 30:
1 16 ms 16 ms 17 ms AIS [46.183.162.1]
2 20 ms 21 ms 20 ms v1505.th-1.caravan.ru [212.158.160.2]
3 16 ms 17 ms 16 ms v811.m9-3.caravan.ru [212.24.42.49]
4 20 ms 25 ms 21 ms ix2-m9.yandex.net [193.232.244.93]
5 23 ms 20 ms 18 ms ya.ru [213.180.204.8] Трассировка завершена. ===============================================================
Если разорвать впн соединение то весь интернет пропадет, так как в таблице маршрутизации не будет шлюза по умолчанию, которым является шлюз выдаваемвый впн сервером после соединения. Если у Вас не получается настроить маршрутизацию для специального использования VPN соединения, Вы можете сообщить нам о Ваших трудностях прямо здесь, оставив комментарий, или послав личное сообщение пользователю Administrator .