@gameoverlord

Как с помощью маршрутизации и брандмауэра Windows реализовать для OpenVPN split tunneling для целевого приложения?

Здравствуйте.

Стоит задача в ОС Windows настроить использование OpenVPN только одним приложением.
Не хочу использовать ForceBindIP, считаю его костылём, требуется максимально стабильное решение, желательно средствами самой ОС.

Поэтому хочу реализовать следующий сценарий:

  • В системе после подключения туннеля есть два маршрута по умолчанию, с меньшей метрикой - стандартный шлюз по умолчанию, с большей метрикой - шлюз OpenVPN.
  • Брандмауэром Windows запрещаю целевому приложению исходящую связь через реальные физические интерфейсы (у него есть такая возможность).
  • Целевое приложение, получая запрет на использование физических интерфейсов, посылает трафик в виртуальный, так как он также является шлюзом по умолчанию.
  • Все остальные приложения и система используют стандартный шлюз.


Звучит красиво, но не получается (((

Что я делаю.
  • После подключения VPN удаляю маршруты вида 0.0.0.0/1 и 128.0.0.0/1, а затем заменяю их одним маршрутом вида 0.0.0.0/0 (см. скриншоты). На этом этапе работает, трафик идёт через VPN.
  • Далее пытаюсь у стандартного шлюза понизить метрику, полагая, что после этого трафик пойдёт через основной шлюз, а туннельный шлюз будет альтернативным. И вот здесь происходит затык.


Прилагаю несколько скриншотов с маршрутами:

первый скриншот до подключения и различных манипуляций

6590567310888798394742.jpeg

второй после подключения туннеля

6590569f9230b918082753.jpeg

третий после ручного изменения маршрутов (здесь пока работает)

659056ab1c226528852454.jpeg

четвёртый после попыток изменить метрику для маршрута (здесь уже не работает)

6590571465d7c300842620.jpeg

Помогите, пожалуйста, понять в чем моя ошибка и что делаю не правильно.

Заранее благодарен за ваши ответы.
  • Вопрос задан
  • 485 просмотров
Пригласить эксперта
Ответы на вопрос 2
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Звучит красиво, но когда пытаешься решить задачу неподходящим инструментом - обычно такой результат и получается. Вам уже об этом сообщили в комментариях, я присоединяюсь к оному.

Простыню не осилил, но по диагонали выглядит как попытка реализовать что-то, похожее на линуксовые множественные таблицы маршрутизации, скрещенные с policy-based routing. Кажется, как будто windows - не самая подходящая для таких экспериментов ОС.
Ответ написан
ValdikSS
@ValdikSS
В Windows такой возможности нет. Это можно реализовать на уровне драйвера/WFP (пример), но не стандартными средствами.

Разве что можно задействовать возможность добавления DSCP-меток для разных приложений, с помощью которого роутер может маршрутизировать трафик от разных приложений самостоятельно:
https://serverfault.com/questions/769843/cannot-se...
https://docs.openwrt.melmac.net/vpn-policy-routing/
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы