Я использую OpenVPN в качестве шлюза, и он отлично работает - соединение успешно, маршруты установлены, пересылка работает. Но у некоторых клиентов возникают проблемы со шлюзом (два разных ПК с Windows в одной сети).
У обоих клиентов по два адаптера: первый - Ethernet, второй - VPN. OpenVPN работает нормально - маршрут по умолчанию к Ethernet удален и создается новый маршрут к виртуальному адаптеру. Но через некоторое время (пару минут) что-то создаст маршрут обратно в Ethernet.
Я попытался установить метрику на обоих адаптерах (у Ethernet было 200, у виртуального адаптера 100), но новый маршрут в Ethernet был создан с метрикой 99.
Как я могу отключить это поведение? Почему шлюз всегда переключается на Ethernet и почему это происходит только в одной сети?
Может быть, попробовать указать метрику ниже 99 в "проталкиваемом" маршруте в конфиге сервера?
push "route network/IP [netmask] [gateway] [metric]"
Наиболее вероятная причина сброса маршрута по умолчанию заключается в том, что какая-то служба или программа соответствующим образом перенастраивают вашу систему (у вас может быть запущен другой VPN-клиент, какая-то групповая политика на месте, странные настройки DHCP на работе или что-то совсем другое).
Вы можете попробовать обойти это, протолкнув четыре / 2 сетевых маршрута через OpenVPN - таким образом, маршрут по умолчанию никогда не будет использоваться, поскольку для всех пунктов назначения будут доступны более конкретные маршруты:
push "route 0.0.0.0 192.0.0.0"
push "route 64.0.0.0 192.0.0.0"
push "route 128.0.0.0 192.0.0.0"
push "route 192.0.0.0 192.0.0.0"
AFAIR вы не можете использовать сетевую маску / 1, поскольку некоторые операционные системы (могут быть клиенты Windows, хотя я должен признать, что не помню) не примут добавление маршрута / 1 в таблицу маршрутизации.