Проверка раздельного DNS без утечки внутренних имён
Запрос внутреннего имени у публичного резолвера выдаёт имя и обходит правило, которое вы хотели проверить. Используйте два согласованных имени и реальный путь резолвера.
Запрос внутреннего имени у публичного резолвера выдаёт имя и обходит правило, которое вы хотели проверить. Запрос доходит до сервера, которым вы не управляете, ответ приходит из пространства имён, которое не должно было его видеть, и результат ничего не говорит о том, работает ли раздельный DNS. Проверить раздельный DNS — значит проверить путь резолвера, который приложение действительно использует. Этот путь выбирает операционная система, список доменов в профиле VPN и иногда браузер.
Выберите два имени и сначала предскажите оба ответа
Попросите владельца сети об одном документированном внутреннем тестовом имени и выберите обычное публичное имя, которое ничего не говорит об организации. Прежде чем что-либо запускать, запишите, что должно произойти с каждым: внутреннее имя должно дойти до резолвера туннеля и вернуть внутренний адрес, а публичное имя должно разрешиться через резолвер, который система обычно использует. Эти два предсказания и есть тест, потому что без них любой ответ можно оправдать задним числом. Держите пару неизменной между запусками, чтобы более позднее сравнение что-то значило.
Проверяйте действующие правила, а не предполагаемые. Список доменов, привязанный к подключению VPN, определяет, какие суффиксы идут к какому резолверу, и опечатка в этом списке даёт правдоподобное, но неверное разделение. На управляемом устройстве используйте диагностический путь администратора, так как локальные переопределения могут быть сброшены политикой при следующей проверке.
Запишите предсказание рядом с наблюдаемым ответом в той же заявке. Тест без предсказания не может провалиться, а тест, который не может провалиться, ничему не учит.
Проверяйте путь, который использует приложение, а не один выбранный вами сервер
Команда, которая явно называет резолвер, проверяет только этот резолвер и ничего больше. Она говорит, отвечает ли внутренний сервер, что полезно, и не говорит, отправляет ли приложение имя туда. Сначала проверяйте штатным путём: разрешите внутреннее имя так, как это сделало бы приложение, затем разрешите публичное имя тем же способом. Только после этого опрашивайте конкретные серверы, чтобы найти, где поведение расходится.
Браузеры усложняют картину, потому что настройки защищённого DNS могут полностью обходить системный резолвер. Браузер, настроенный со своим собственным шифрованным резолвером, никогда не видит разделения, и сбой выглядит как сломанный профиль VPN. Проверьте эту настройку, прежде чем менять туннель.
Повторите поиск после переподключения, если вопрос в восстановлении. Ответ из кэша, полученный до переподключения, может заставить правильно восстановленное разделение выглядеть лучше или хуже, чем оно есть.
Записывайте категорию ответа, а не только успех или неудачу
Запишите, что из четырёх произошло: внутренний адрес, публичный адрес, отрицательный ответ или тайм-аут. Каждое имеет своё значение. Внутренний адрес для внутреннего имени — ожидаемый успех; публичный адрес для внутреннего имени говорит о том, что запрос покинул туннель; отрицательный ответ от авторитетного сервера указывает на отсутствующую запись, а не на ошибку маршрутизации; а тайм-аут говорит о проблеме доступности или о резолвере, который так и не получил запрос. Успех и неудача слишком грубы, чтобы по ним действовать.
Учитывайте кэш, прежде чем толковать отсутствие свежего запроса, потому что отрицательный ответ в кэше выглядит точно так же, как несуществующее имя. Зафиксируйте ответ, прежде чем что-либо очищать поддерживаемыми средствами, поскольку первый ответ и есть доказательство.
Толкуйте обе ветви без догадок
Если внутреннее имя разрешается правильно, а приложение всё равно не работает, резолвер сделал своё дело, и следующие подозреваемые — маршруты и разрешения на самом ресурсе. Если приватное имя дошло до публичного резолвера, правило разделения не применяется к этому поиску, поэтому вместе с владельцем пространства имён просмотрите список доменов и любую политику браузера. У этих двух ветвей разные владельцы, и поэтому записать, какую вы видели, важнее, чем записать, что что-то сломалось.
Скройте чувствительные части в общей выдаче, сохранив структуру: какое пространство имён, какое правило, какая категория ответа. Ответ резолвера может содержать внутренние адреса и имена хостов, а заявка — надёжный дом для обоих.
Затем передайте результат владельцу пространства имён с двумя наблюдаемыми категориями и удалёнными именами. Это разговор на пять минут вместо недели догадок.