Как я могу предотвратить 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.