Рукопожатие завершается, просмотр работает, а принтер, NAS и локальные SSH-хосты исчезают. В клиенте Windows это обычно вовсе не сбой маршрутизации: пир, в разрешённых префиксах которого есть буквальное значение по умолчанию, включает «Блокировать трафик вне туннеля», и этот параметр реализован как правила брандмауэра, отбрасывающие пакеты, уходящие через любой другой интерфейс. Таблица маршрутов по-прежнему показывает локальную подсеть как прямое подключение, поэтому симптом кажется ложью. Что с этим делать, решают три условия, и только одно из них о маршрутизации.

Два сбоя носят один и тот же симптом

Первый сбой — режим fail-closed клиента, и его признак в том, что всё за пределами туннеля останавливается, а сам туннель работает безупречно. Второй — настоящая проблема доступности: отсутствующий маршрут, отсутствующая запись на сервере для подсети за клиентом или две сети с одинаковым диапазоном адресов. Оба дают машину, которая умеет просматривать и не умеет печатать, а их исправления противоположны, поэтому диагностика должна предшествовать настройке.

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

Три условия решают ответ

Во-первых, нужен ли этой машине fail-closed? Если ответ да, упавший туннель должен останавливать трафик, а не пускать его обратно на физический интерфейс, и это требование важнее локального удобства. Во-вторых, должны ли локальные устройства оставаться доступными, пока туннель поднят? Печать, сетевое хранилище и локальные консоли управления — обычные причины, и это законные требования, а не исключения, за которые нужно извиняться. В-третьих, выражает ли профиль значение по умолчанию как буквальное 0.0.0.0/0? Именно эта деталь запускает правила клиента, и её можно изменить.

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

Выберите fail-closed и откажитесь от LAN

Если утечка важнее локальной доступности, сохраните буквальное значение по умолчанию и оставьте «Блокировать трафик вне туннеля» включённым. Это последовательная позиция: машина рассматривается как устройство, которое либо внутри туннеля, либо офлайн, а локальные службы доступны с другого устройства или через туннель, если сервер их маршрутизирует. Цена реальна, и её следует указать в заметках о развёртывании, а не оставлять на обнаружение человеку, которому нужно печатать.

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

Выберите доступ к LAN и выразите значение по умолчанию иначе

Если локальные устройства должны оставаться доступными, выразите то же покрытие без буквального префикса по умолчанию. Два половинных префикса покрывают каждый адрес IPv4, эквивалентная пара покрывает IPv6, и клиент больше не вставляет блокирующие правила, потому что искомой строки нет.

[Peer]
AllowedIPs = 0.0.0.0/1
AllowedIPs = 128.0.0.0/1
AllowedIPs = ::/1
AllowedIPs = 8000::/1
Endpoint = vpn.example.net:51820

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

Проверьте два других подозреваемых в любом случае

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

Get-NetConnectionProfile | Select-Object Name, InterfaceAlias, NetworkCategory
Get-NetFirewallProfile | Select-Object Name, Enabled, DefaultOutboundAction
route print 0.0.0.0

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

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

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