Понимание шлюза 255.255.255.0

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

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

В моем случае, после подключения к серверу OpenVPN, я заметил, что шлюз по умолчанию изменился на 255.255.255.0 (верно, шлюз, а не маска). Ниже представлена моя таблица маршрутов.

Перед подключением к серверу OpenVPN:

Таблица маршрутизации IP ядра
Назначение       Шлюз           Маска             Флаги Метрика Ссылка Использ. Интерфейс
0.0.0.0         172.16.15.254  0.0.0.0          UG    20600  0        0 wlp0s20f3
169.254.0.0     0.0.0.0        255.255.0.0      U     1000   0        0 wlp0s20f3
172.16.8.0      0.0.0.0        255.255.248.0    U     600    0        0 wlp0s20f3
172.17.0.0      0.0.0.0        255.255.0.0      U     0      0        0 docker0
172.18.0.0      0.0.0.0        255.255.0.0      U     0      0        0 br-8c249cf54f1c

После подключения к серверу OpenVPN:

Таблица маршрутизации IP ядра
Назначение       Шлюз           Маска             Флаги Метрика Ссылка Использ. Интерфейс
0.0.0.0         255.255.255.0  128.0.0.0        UG    0      0        0 tun0
0.0.0.0         172.16.15.254  0.0.0.0          UG    600    0        0 wlp0s20f3
10.8.0.0        255.255.255.0  255.255.255.0    UG    0      0        0 tun0
128.0.0.0       255.255.255.0  128.0.0.0        UG    0      0        0 tun0
169.254.0.0     0.0.0.0        255.255.0.0      U     1000   0        0 wlp0s20f3
172.16.8.0      0.0.0.0        255.255.248.0    U     600    0        0 wlp0s20f3
172.17.0.0      0.0.0.0        255.255.0.0      U     0      0        0 docker0
172.18.0.0      0.0.0.0        255.255.0.0      U     0      0        0 br-8c249cf54f1c
192.168.100.0   255.255.255.0  255.255.255.0    UG    0      0        0 tun0
_VPN_server_IP_ 172.16.15.254  255.255.255.255  UGH   0      0        0 wlp0s20f3
255.255.255.0   0.0.0.0        255.255.255.255  UH    0      0        0 tun0

Это работает, как и ожидалось: OpenVPN направляет весь мой интернет-трафик через сервер, а также весь трафик на удаленную локальную сеть (192.168.100.0/24). Мне просто стало непонятно, когда я увидел, что шлюз равен 255.255.255.0. Я бы понял это, если бы маска была 255.255.255.0, но это шлюз, установленный на 255.255.255.0. Как это понимать?

Если я удалю первую запись с помощью ip route del 0.0.0.0/1 via 255.255.255.0 dev tun0, интернет действительно перестает маршрутизироваться через VPN. Я попытался поиграть с этим, добавив обратно с помощью

ip route add 0.0.0.0/1 via _VPNserver_IP_ dev tun0

или используя IP сервера в подсети VPN (10.8.0.0/24),

ip route add 0.0.0.0/1 via 10.8.0.1 dev tun0

ни одно из решений не сработало. Поэтому я подозреваю, что это какой-то трюк, который использует OpenVPN для направления трафика к серверу. Любая информация будет полезна.

Как предположил @A.B, это действительно связано с неправильной конфигурацией: я забыл указать топологию как подсеть, поэтому она была по умолчанию установлена на net30. В результате в журнале появилась эта предупреждение:

"Пт апр. 29 22:38:56 2022 ВНИМАНИЕ: Поскольку вы используете --dev
 tun с топологией «точка-точка», второй аргумент к 
--ifconfig должен быть IP-адресом. Вы используете что-то 
(255.255.255.0), что больше похоже на маску сети. (умолчать это 
предупреждение с помощью --ifconfig-nowarn)".

После изменения на подсеть проблема была устранена. Вот как в моей таблице маршрутов выглядят записи, связанные с tun0:

10.8.0.0        0.0.0.0        255.255.255.0    U     0      0        0 tun0
192.168.0.0     10.8.0.1       255.255.0.0      UG    0      0        0 tun0

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

Понимание маршрутизации в OpenVPN: Проблема с шлюзом 255.255.255.0

При использовании OpenVPN для соединения с VPN-сервером пользователи могут столкнуться с различными необычными конфигурациями маршрутизации. В данном случае ключевым моментом является наблюдение о том, что шлюз изменяется на значение 255.255.255.0. Это решение рассматривает проблему, затрагивает детали маршрутизации и предлагает пути к её решению.

Контекст проблемы

После подключения к OpenVPN пользователи могли заметить, что новый маршрут с шлюзом 255.255.255.0 добавляется в таблицу маршрутов. На первый взгляд, это может вызвать недоумение, так как обычно шлюзом назначается IP-адрес, тогда как 255.255.255.0 — это маска подсети.

Анализ маршрутизационной таблицы

Маршрутизация до и после соединения с OpenVPN представлена ниже:

Перед подключением к OpenVPN:

0.0.0.0         172.16.15.254   0.0.0.0         UG
...

После подключения к OpenVPN:

0.0.0.0         255.255.255.0   128.0.0.0       UG
...

Из приведенной таблицы видно, что маршрут с шлюзом 255.255.255.0 имеет флаг ‘UG’, что указывает на то, что это маршрут к шлюзу. Однако, он не должен указывать на маску подсети.

Проблема конфигурации

Как упомянуто в вопросе, причина появления такого маршрута связана с конфигурацией OpenVPN. Известно, что при использовании --dev tun с точкой-точкой (point-to-point) топологией, OpenVPN ожидает адреса, а не маску подсети в качестве второго аргумента команды --ifconfig.

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

Решение проблемы

Решением данной проблемы является изменение конфигурации OpenVPN. Необходимо использовать параметр --topology subnet, что позволит корректно задать маршрут и избежать путаницы в конфигурации. После этого, таблица маршрутизации должна выглядеть следующим образом:

10.8.0.0        0.0.0.0         255.255.255.0   U

Теперь шлюз будет корректно указывать на IP-адрес VPN-сервера, убрав из маршрутизации любые маски подсетей как значения шлюза.

Заключение

Проблема с шлюзом, имеющим значение 255.255.255.0, в OpenVPN является следствием неправильной конфигурации топологии. Убедившись, что используется правильная топология (subnet), можно избежать данной ситуации и гарантировать корректную работу маршрутизации. Следует всегда проверять логи и настройки OpenVPN на наличие предупреждений, что поможет заранее выявить и устранить возможные проблемы.

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

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

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