Абстрактный вопрос: В моей настройке клиента OpenVPN я хотел бы установить маршруты, отправляемые сервером только при определенных условиях.
Конкретная ситуация: Я использую ноутбук, который, когда я нахожусь в офисе, подключается к инфраструктуре нашей компании через свой шлюз. Когда меня нет на работе, например На сайте клиентов я использую отдельное соединение OpenVPN для доступа к нашей инфраструктуре. Дело в том, что это соединение OpenVPN также используется для подключения к нашим клиентам, когда я нахожусь в офисе или когда я нахожусь в дороге.
Маршруты к сетям наших клиентов и нашей сети инфраструктуры проталкиваются каждый раз, когда я подключаю клиент OpenVPN на своем ноутбуке. В нашем центре обработки данных работает приложение, которое очень сбивает с толку из-за второго подключения, и я хотел бы, чтобы оно использовало маршрут только через шлюз нашего офиса, когда я нахожусь в офисе.
Вопрос: Есть ли в OpenVPN возможность сообщить клиенту что-то вроде "если вам назначен IP-адрес, например 10.0.0.X (IP-адрес офиса), сделайте НЕ применить один конкретный маршрут, отправленный с сервера (маршрут, который указывает на нашу инфраструктуру / центр обработки данных) ".
Все другие маршруты не должны зависеть от обходного пути / решения, и маршрут должен быть продвинут, когда я работаю с сайта клиентов или из моего домашнего офиса. Я не могу установить другое соединение, которое не включает маршрут к центру обработки данных, так как соединение также используется коллегами.
Исследования, проведенные на данный момент: Я уже проработал часто задаваемые вопросы и справочные страницы OpenVPN, где нашел решения, указывающие только на маршрутизацию определенного трафика или всего трафика через VPN, что так же хорошо, как и установка другого соединения.
Вы можете использовать директиву route-noexec
и вручную настроить маршрутизацию с помощью up
и down
скрипты на этом конкретном клиенте.
У вас должна быть вся необходимая информация в переменных среды, см. Раздел Environmental Variables
на странице руководства.
У вас может быть два разных файла .opvn в клиенте, которые вы используете, в зависимости от вашей ситуации. Затем в одном из этих файлов .opvpn вы можете использовать route-nopull
директиву и используйте настраиваемые альтернативные маршруты (пример).
Это не идеально, но это лучшее, что я мог придумать.