Что делает push “route 0.0.0.0” в файле server.conf OpenVPN?

Вопрос или проблема

Мне интересно, какова роль push "route 0.0.0.0" в /etc/openvpn/server.conf. На самом деле, у меня была строка push "route 0.0.0.0 " (обратите внимание на пробел в конце) в файле server.conf, и мне пришлось закомментировать её, чтобы получить доступ к своей локальной сети на сервере и к Интернету через VPN-соединение. Я предполагаю, что это правило охватывает весь сетевой трафик, который не соответствует другим маршрутам… Это так? А если да, то что тогда является шлюзом?

Если вы используете push "redirect-gateway def1", вы уже добавляете маршрут по умолчанию (в виде двух диапазонов адресов /1) с правильным шлюзом (VPN-сервером).

Таким образом, это уже делает то, что вы могли бы подумать, что делает push "route 0.0.0.0", за исключением того, что пропущена опция шлюза.

Я просто цитирую руководство:

–route network/IP [netmask] [gateway] [metric]
Добавить маршрут в таблицу маршрутизации после установленного соединения. Можно указать несколько маршрутов. Маршруты будут автоматически удалены в обратном порядке перед закрытием устройства TUN/TAP.

Эта опция предназначена как удобный прокси для командной оболочки route(8), одновременно обеспечивая переносимые семантики на различных платформах OpenVPN.

netmask по умолчанию — 255.255.255.255

gateway по умолчанию — берется из –route-gateway или второго параметра к –ifconfig при указании –dev tun.

Значение по умолчанию можно указать, оставив опцию пустой или установив “default”.

Параметры network и gateway также могут быть указаны как разрешаемое имя DNS или из файла /etc/hosts, или как одно из трех специальных ключевых слов:

vpn_gateway — Адрес удаленной точки VPN (выводится либо из –route-gateway, либо из второго параметра к –ifconfig при указании –dev tun).

net_gateway — Предсуществующий IP-шлюз по умолчанию, читаемый из таблицы маршрутизации (не поддерживается во всех ОС).

remote_host — Адрес –remote, если OpenVPN работает в режиме клиента, и в режиме сервера он не определен.

Как видите, указание следующего шага является необязательным. Ваша конфигурация сервера, скорее всего, неявно добавляет либо route-gateway, ifconfig, или оба параметра.

Ответ или решение

Вопрос о назначении строки push "route 0.0.0.0" в конфигурационном файле OpenVPN server.conf является актуальным для администраторов, которые проводят настройку VPN-серверов. Давайте подробно разберемся, что эта команда делает, и как она влияет на маршрутизацию трафика.

Значение команды

Команда push "route 0.0.0.0" в OpenVPN предназначена для добавления маршрута в маршрутизированном окружении клиента после установления VPN-соединения. Конструкция 0.0.0.0 представляет собой нечто вроде универсального заполнителя, который указывает на все IP-адреса, то есть на весь трафик. Это означает, что все пакеты, которые не соответствуют более специфичным маршрутам, будут маршрутизироваться через VPN.

Однако, чтобы эта команда работала корректно, необходимо указать и шлюз для маршрута. Если шлюз не установлен, OpenVPN будет использовать шлюз, заданный в параметре --route-gateway, или IP-адрес, определяемый при запуске с параметром --ifconfig.

Влияние на доступ к локальной сети и интернету

Из вашего описания становится понятно, что при использовании push "route 0.0.0.0" вы столкнулись с проблемой доступа к локальной сети и интернету. Это связано с тем, что команда перезаписывает маршруты, направляя весь трафик через VPN, и, если не установлен интернет-шлюз, клиент не может обращаться к ресурсам сети или интернету.

Это объясняется тем, что эта команда действительно является «поймальщиком трафика» и может затмить другие настройки маршрутизации, которые у вас могут быть. В конечном итоге, если вы не укажете шлюз, клиентские устройства не смогут правильно маршрутизировать трафик.

Альтернативное решение — использование redirect-gateway

Как вы уже упомянули, использование push "redirect-gateway def1" является более предпочтительным решением для достижения подобного результата. Эта команда добавляет маршруты по умолчанию более безопасным способом, добавляя несколько маршрутов с учетом шлюза, установленного на стороне сервера. Это обеспечивает баланс между направлением трафика через VPN-соединение и поддержанием доступа к локальным ресурсам.

Так, redirect-gateway def1 автоматически устанавливает маршруты по умолчанию на клиенте, при этом указав VPN-сервер как шлюз для трафика, направляемого за пределы VPN. Это позволяет поддерживать доступ к локальной сети и интернету одновременно, в то время как push "route 0.0.0.0" трафик может затмить и помешать доступу к локальным сетям.

Заключение

В итоге, push "route 0.0.0.0" является мощным инструментом для маршрутизации, но требует тщательной настройки, чтобы избежать блокировки доступа к другим сетевым ресурсам. Если задача состоит в том, чтобы установить внешний трафик через VPN, актуально использовать push "redirect-gateway def1", который более прозрачно управляет маршрутизацией, оставляя возможность доступа к локальной сети.

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

Оцените материал
Добавить комментарий

Капча загружается...