Почему Windows отправляет имена VPN на DNS-сервер, который вы никогда не настраивали
Смена DNS на адаптере кажется решением вопроса. Правило пространства имён может перекрыть этот список, а без правила Windows опрашивает несколько адаптеров.
Вы задаёте DNS-сервер на адаптере VPN, переподключаетесь, а частное имя по-прежнему приходит от офисного резолвера, который никто не настраивал на этом ноутбуке. Результат выглядит так, будто настройка проигнорирована, и в известном смысле так и есть, потому что список адаптеров — это набор кандидатов, а не решение. Windows разрешает имена через политику пространства имён, которая может указать другой сервер для определённого суффикса, и эта политика применяется раньше, чем учитывается настройка адаптера. Найти победившее правило — дело пяти минут, когда знаешь, какую таблицу читать.
Что вы изменили и что на самом деле решает
DNS-адрес на адаптере сообщает клиенту, куда этот интерфейс может отправлять запросы. Таблица политики разрешения имён сообщает клиенту, куда он обязан отправлять запросы для заданного пространства имён, и оценивается она по имени, а не по адаптеру. Когда правило совпадает с введённым суффиксом, используются серверы этого правила, и список адаптеров перестаёт иметь значение для такого поиска.
Именно поэтому два имени на одном ноутбуке могут в один момент идти разными путями. Узел под корпоративным суффиксом следует своему правилу; публичное имя идёт по стандартному пути, что обычно означает тот адаптер, который ответит первым.
Как таблица сопоставляет имя
Правила индексируются по пространству имён, и побеждает самое точное совпадение. Правило для corp.example действует для vpn.corp.example и не действует для example.net. Правило с пространством имён . охватывает всё, что не охватывают другие правила, что делает его самой опасной записью в списке и той, которую стоит проверить, когда посторонний сайт разрешается через туннель.
Правило может также нести комментарий, политику, отключающую запись, и параметры безопасности, не имеющие отношения к DNS-адресам. Отключённое правило остаётся видимым в конфигурации, но не действует, поэтому запись, которая на бумаге выглядит правильной, после смены профиля может остаться бездейственной.
Читайте действующую таблицу, а не список желаний
Настроенные правила и действующие правила — два разных вопроса. Get-DnsClientNrptRule перечисляет то, что есть в системе. Get-DnsClientNrptPolicy -Effective показывает, что клиент действительно применит, со значениями, объединёнными из политики и локальных параметров.
Сравните суффикс в этом выводе с именем, которое вы проверяете, знак за знаком. Правило для corp.example не захватывает имя, оканчивающееся на corp.example.com, и точки в конце в одном месте и её отсутствия в другом достаточно, чтобы изменить совпадение.
Без правила Windows опрашивает больше одного адаптера
Когда в таблице ничто не претендует на имя, клиент может отправить запрос через несколько интерфейсов и взять первый пришедший ответ. Результат зависит от времени: одно и то же имя может разрешиться с проводного адаптера в понедельник и из туннеля во вторник, и ничто в конфигурации ни одного из адаптеров не объясняет разницу.
Есть два выхода. Добавьте правило для пространства имён, чтобы решение перестало быть гонкой, или отключите параллельное поведение через политику DNS-клиента и примите более медленное, детерминированное разрешение. Первое обычно лучше подходит для VPN с разделённым туннелем, потому что документирует намерение вместо опоры на порядок.
Пути, полностью обходящие резолвер
Браузер с включённым защищённым DNS разрешает сам и передаёт Windows только адрес, поэтому таблица правил никогда не видит имя. Клиенты, построенные на средах с собственным резолвером, могут вести себя так же. Когда имя разрешается в одном приложении и не разрешается в другом на той же машине, сравните оба пути разрешения, прежде чем трогать политику.
Проверьте также, не подключается ли приложение к адресу из кэша предыдущего сеанса. Clear-DnsClientCache и затем тот же поиск даёт более чистый ответ, чем вывод из устаревшего результата.
Проверяйте тем именем, которое не сработало
Разрешите точное имя узла из отчёта, а не публичный домен для теста скорости, и запишите, какой сервер ответил. Затем измените одну вещь: правило, список адаптеров или назначение политики, и после переподключения повторите тот же поиск, чтобы применённое состояние было построено заново.
Если имя разрешается, а служба всё равно отказывает, прекратите править DNS. Следующий полезный шаг — адрес и маршрут к нему, потому что разрешение имён уже сделало свою работу.