Принтер офлайн при подключении VPN? Проверьте таблицу маршрутов
VPN с полным туннелем может перекрыть маршрут к вашему принтеру. Четыре проверки находят победивший маршрут, добавляют узкий маршрут к хосту и сохраняют его после переподключения.
Ваш ноутбук подключается к корпоративному VPN, и принтер в двух метрах перестаёт отвечать. На принтере ничего не изменилось, и локальная сеть не упала. Изменилась таблица маршрутов: у адаптера туннеля теперь есть путь, охватывающий адрес принтера, поэтому эти пакеты уходят через VPN и прибывают на шлюз, который понятия не имеет, где находится ваша плоская сеть. Выполните четыре проверки ниже по порядку и остановитесь на первой, которая не пройдёт.
Шаг первый: докажите, что принтер по-прежнему доступен в LAN
Прежде чем трогать маршрутизацию, убедитесь, что устройство живо для чего-то, что не использует VPN. Попросите телефон в той же сети Wi-Fi открыть веб-страницу принтера или выполните ping адреса с другой машины в плоской сети. Если принтер не отвечает и там, VPN — случайность, а вина лежит на принтере, его Wi-Fi-подключении или изоляции клиентов на точке доступа.
Если он отвечает везде, кроме этого ноутбука, у вас проблема с маршрутизацией или разрешением имён, которая живёт на ноутбуке, и следующий шаг скажет, какая из двух.
Шаг второй: найдите маршрут, который Windows действительно выбирает
Не читайте таблицу сверху вниз и не гадайте. Спросите Windows, какую запись он выбирает для точного адреса, который вам важен, и одновременно получите индекс интерфейса.
Find-NetRoute -RemoteIPAddress 192.168.1.50
route print -4
tracert -d 192.168.1.50
Find-NetRoute печатает победивший маршрут и его интерфейс, и это два факта, от которых зависит всё остальное. route print -4 показывает окружающие записи, включая две половинные маршруты по умолчанию, которые устанавливают клиенты полного туннеля: 0.0.0.0/1 и 128.0.0.0/1, вместе покрывающие всё пространство IPv4 и никогда не заменяющие 0.0.0.0/0. /1 длиннее, чем /0, но ваш 192.168.1.0/24 ещё длиннее, и поэтому отсутствующий маршрут в LAN важнее самого заявления туннеля.
Ответ определяют два правила. Самый длинный совпадающий префикс побеждает первым, а среди записей с одинаковым префиксом побеждает меньшая общая метрика, где итог объединяет метрику маршрута и метрику интерфейса. Если выбранный интерфейс — туннель, продолжайте. Если это физический адаптер, а трафик всё равно не идёт, остановитесь здесь: ваша проблема — разрешение имён или собственный список доступа принтера, а не маршрут VPN.
Шаг третий: добавьте самый узкий маршрут, который называет шлюз и интерфейс
Исправление — одна запись, направляющая адрес принтера на локальный маршрутизатор на локальном адаптере. Выполните её в командной строке с повышенными правами и подставьте значения, которые только что прочитали.
route add 192.168.1.50 mask 255.255.255.255 192.168.1.1 if 12 -p
Значение if — это индекс интерфейса физического адаптера. Его пропуск — самая частая причина, по которой команда выглядит успешной и ничего не меняет, потому что при двух адаптерах, способных достичь одного и того же следующего перехода, Windows свободен выбрать тот, который вам не нужен. Флаг -p делает запись постоянной, поэтому она переживает перезагрузку, а не умирает вместе с сеансом.
Предпочитайте маршрут к хосту для отдельного устройства маршруту для всей сети 192.168.1.0/24. Маршрут к подсети шире, чем нужно задаче, и он конфликтует в тот момент, когда корпоративная сторона тоже использует этот префикс: у одного префикса тогда два владельца, и то, какая запись победит, решает, до какой сети вы действительно можете добраться.
В обратную сторону: если вы удалили параметр шлюза по умолчанию на подключении VPN, чтобы защитить LAN, удалённые частные префиксы тоже перестают разрешаться. Добавьте для них маршруты через интерфейс VPN таким же образом, иначе туннель станет звеном, которое ничего не несёт.
Шаг четвёртый: сделайте так, чтобы исключение переживало следующее подключение
Многие корпоративные клиенты при каждом подключении заново устанавливают весь набор маршрутов и при этом пересчитывают метрики интерфейсов, поэтому маршрут, работавший вчера, сегодня может быть перекрыт. После переподключения повторите Find-NetRoute для принтера и проверьте, что интерфейс по-прежнему соответствует физическому адаптеру. Если запись исчезла, что-то её удаляет; постоянный маршрут не защищает вас от агента, который выметает таблицу. Планировщики, которые заново добавляют маршрут после подключения VPN, — обычный обходной путь, и он же ломается, когда индекс адаптера меняется после док-станции или обновления драйвера.
Следите за IPv6 отдельно. Клиент, который заявляет только IPv4 по умолчанию, может оставить маршрут IPv6 по умолчанию на физическом адаптере, поэтому принтер, доступный по IPv6, продолжает работать, пока IPv4 не проходит, или наоборот. Проверьте с помощью ping -4 и ping -6, прежде чем решить, что таблица маршрутов невиновна.
Чего вам стоит локальный короткий путь
Любой маршрут в обход туннеля — дыра в обещании туннеля. Трафик к этому адресу больше не проходит через корпоративный шлюз, а значит, без проверки, без журналирования и без применения политик к нему. На управляемом устройстве это может быть проблемой соответствия, а не предпочтением, поэтому спросите, существует ли официальное исключение для разделённого туннеля, прежде чем добавлять своё вручную. Держите своё настолько узким, насколько требует задача, и настолько коротким, насколько позволяет ситуация.
Если после изменения принтер отвечает, повторите четыре проверки после следующего переподключения, вместо того чтобы считать, что исправление удержалось. Если он не отвечает, зафиксируйте вывод Find-NetRoute до и после подключения; разница скажет вам, удалил ли клиент запись или только переранжировал её.