Назад | Перейти на главную страницу

Как я могу запретить OpenVPN сбивать локальный маршрут?

У меня локальная сеть на 192.168.1.0 с сетевой маской 255.255.255.0. Когда я подключаюсь к VPN через OpenVPN (как клиент), он проталкивает маршрут для 192.168.1.0, который перекрывает существующий, делая мою локальную сеть недоступной. Я не имею доступа ни к чему на 192.168.1.0 на удаленной машине; Я хотел бы просто проигнорировать это, принимая другие отправленные маршруты. Мой клиент - Ubuntu 10.10.

Как я могу пропустить один неприятный маршрут?

Использовать

--route-up --route-noexec

в openvpn и полностью игнорировать отправляемые вам маршруты, вместо этого добавляя статические маршруты к конкретным хостам, к которым вы хотите получить доступ через туннель.

openvpn --route-noexec --route-up /tmp/myscript --config ./client.ovpn

где / tmp / myscript

route add -host 192.168.1.69 gw ${route_net_gateway}

Что-то похожее на это, я на самом деле не тестировал это, но он должен работать. Вероятно, вы захотите удалить маршруты и при отключении.

В дополнение к @ hellomynameisjoel's ответ, обратите внимание, что вы можете получить доступ к отправленным маршрутам в route-up скрипт через переменные окружения. Таким образом, вы можете добавлять только необходимые маршруты.

В качестве альтернативы вы можете добавить маршрут с использованием шлюза по умолчанию в файле конфигурации OpenVPN:

route 192.168.1.0 netmask 255.255.255.0 net_gateway

После этого добавить идентичный продвинутый маршрут не удастся.

P.S. Проверено на ArchLinux / OpenVPN 2.3.5.

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

В противном случае вы можете заключить команду запуска openvpn в сценарий, который исправляет маршрут после запуска OpenVPN.