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

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

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

3 ответа

Решение

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

--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, обратите внимание, что вы можете получить доступ к заданным маршрутам в route-up Скрипт через переменные среды. Таким образом, вы можете добавить только необходимые маршруты.

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

route 192.168.1.0 netmask 255.255.255.0 net_gateway

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

PS Протестировано на ArchLinux/OpenVPN 2.3.5.

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

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

Другие вопросы по тегам