Адаптеры показывают 255.255.255.255, и часто делают вывод, что VPN достигает ровно одного адреса. Такое чтение путает собственный адрес клиента с набором назначений, которые маршрутизируются через туннель. На интерфейсе точка-точка или маршрутизируемом интерфейсе это два разных объекта, и доступность ограничивает только один из них. Миф живёт потому, что маска выглядит как маска подсети, которую изучали на Ethernet.

Миф: маска узла означает единственный доступный узел

Назначение /32 сообщает интерфейсу, какой адрес принадлежит этому концу канала, и на канале точка-точка это всё, что оно означает. Адрес партнёра — отдельное поле, а маршруты, которые говорят, что лежит за партнёром, снова отдельные. Ничто в маске не описывает удалённую сеть, потому что маска не является местом, где описываются удалённые сети. Читать её как предел доступности — всё равно что читать номер собственного дома как список всех адресов, которые разрешено посещать.

У путаницы есть реальный корень: в Ethernet маска узла действительно означала бы один адрес в этом сегменте. Туннель не является сегментом Ethernet, и то, что проходит через него, определяет таблица маршрутизации клиента, а не маска. Поэтому один и тот же /32 может стоять перед целым центром обработки данных.

Читайте адрес и маршруты как отдельные объекты

Выведите интерфейс и таблицу вместе, а затем читайте их как два ответа на два вопроса. Адрес отвечает, кто этот конец; маршруты отвечают, куда может идти трафик. Третий вопрос — какие назначения разрешает шлюз — на клиенте вообще не виден. Справочник адресов iproute2 именно поэтому описывает поля локального адреса, партнёра и маршрута префикса отдельно.

ip addr show tun0
ip route show
ip route get 10.60.5.10

В Windows такое же разделение существует между списком адресов и таблицей маршрутизации, и команда поиска — самый быстрый способ увидеть, что побеждает для конкретного назначения. Если поиск возвращает туннельный интерфейс, клиент отправит пакет туда. Если он возвращает физический адаптер, клиент никогда не спрашивает VPN, и никакое разрешение на стороне сервера этого не изменит. Проверяйте назначение, которое действительно нужно, а не общий публичный адрес.

Get-NetIPAddress -InterfaceAlias "VPN"
Find-NetRoute -RemoteIPAddress 10.60.5.10

Остановитесь, если поиск указывает на неверный интерфейс. Это проблема маршрутизации клиента, и она исправляется на клиенте.

Почему расширение маски обычно всё ухудшает

Изменение назначения на /24, чтобы выглядело как офисная LAN, может создать префикс на канале: ядро теперь считает, что весь /24 напрямую подключён к туннельному интерфейсу. Трафик к адресам, которые должны маршрутизироваться через шлюз, тогда отправляется так, будто сосед находится на канале. Результат — чёрная дыра, которая выглядит как отказ сервера.

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

Если маршрут удалённого префикса отсутствует, исправьте его обеспечение. Если он есть, а соединение всё равно отклоняется, маска никогда не была диагнозом.

Когда маршрут верен, а поток всё равно не работает

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

ping -c1 10.60.5.10
traceroute -n 10.60.5.10
curl -sv https://app.internal.example/ -o /dev/null

Держите сетевые объекты и разрешения групп у их владельца в службе, управляемой устройством. То, куда клиенту сказано достигать, и то, что ему разрешено использовать, — разные настройки, часто на разных экранах. Изменить одно и проверить другое — так заявка и прыгает между двумя командами.

Миф, который пора отправить на пенсию, — это то, что маска является пределом доступности. Читайте адрес, маршруты и политику шлюза как три отдельных факта, и /32 перестаёт выглядеть ограничением и начинает выглядеть обычным назначением туннеля.

Похожие статьи