Вопрос или проблема
Вопрос
Можете ли вы отправить DNS-запрос к резолверу входной точки AWS с просьбой найти запись в частной зоне, для которой у него есть правило резолвера (например, используя стандартный DNS-клиент, такой как nslookup
/ resolve-dnsname`); или эти резолверы обрабатывают разрешения иным образом (например, их можно опрашивать только из определенных решений, которые поддерживают какой-то альтернативный DNS-протокол), что означает, что вам нужно выполнять запрос через (например) контроллер домена AD с условным пересылателем.
Контекст
У нас есть настроенный резолвер входной точки Route53 в нашей учетной записи AWS Transit Gateway. Этот резолвер имеет правило резолвера для обработки запросов к нашему домену awscloud.private
; при этом каждая из наших учетных записей AWS имеет свои собственные <myAccountFriendlyName>.awscloud.private
(например, production.awscloud.private
) частные зоны.
Наш (локальный / размещенный в Azure) DNS Active Directory настроен с условным пересылателем для зоны awscloud.private
, при этом IP-адреса резолвера направлены на наш резолвер входной точки. Все это работает, как и ожидалось; т.е. на моем компьютере я ввожу resolve-dnsname example.production.awscloud.private -server $myDomainController
и получаю IP-адрес, связанный с этой записью из соответствующей частной зоны AWS.
Тем не менее, исследуя недавний сбой в разрешении DNS, я обнаружил, что если я выполняю resolve-dnsname example.production.awscloud.private -server $myAwsResolverIp
, он не разрешается; даже если я выполню эту команду с существующего контроллера домена (т.е. с того же клиентского IP). Контроллер домена продолжает правильно разрешать даже недавно добавленные записи (т.е. он обращается к AWS / не полагается на кэшированные значения), но когда я пытаюсь выполнить запрос в PowerShell (или используя nslookup в cmd) с контроллера домена вместо того, чтобы опрашивать сам контроллер и полагаться на условный пересылатель, все заканчивается таймаутом.
Это подразумевает, что условный пересылатель не выполняет обычный DNS-запрос; или, по крайней мере, он делает что-то другое по сравнению с тем, что делают nslookup/resolve-dnsname… Я пытаюсь понять, что это; согласно моему пониманию, я должен иметь возможность выполнять обычный DNS-запрос к этой конечной точке, и, поскольку это для домена, который управляется там, я не использую итеративные запросы (т.е. то, как работает nslookup/resolve-dnsname), и домен, который я запрашиваю, входит в область действия этого резолвера, я должен получить действительный ответ.
Ответ или решение
Решение проблемы с DNS-запросами к AWS Inbound Endpoint Resolver
Введение
Вопрос, касающийся возможности выполнения DNS-запросов к AWS Inbound Endpoint Resolver для поиска записей в частной зоне, имеет несколько важных аспекта. В данной статье мы глубже исследуем, как работает этот процесс, и выясним, почему ваш запрос не удается, даже если вы подключены к тому же серверу. Это позволит лучше понять механизмы разрешения DNS в контексте AWS.
Преамбула: Контекст использования
Компания имеет настроенный Inbound Endpoint Resolver в AWS и специальное правило разрешателя для запросов к зоне awscloud.private
. Каждый AWS-аккаунт имеет свою собственную частную зону, например, production.awscloud.private
. Существует также конфигурация условного перенаправителя в локальном Active Directory DNS, который корректно перенаправляет запросы на AWS Resolver, что подтверждается успешными результатами при выполнении команды:
resolve-dnsname example.production.awscloud.private -server $myDomainController
Это создает впечатление, что при попытке выполнить ту же команду с использованием IP-адреса AWS Resolver происходит что-то, что мешает корректному разрешению.
Понимание механизма разрешения DNS
-
Работа AWS Inbound Endpoint Resolver:
AWS Route 53 Inbound Resolver позволяет получать DNS-запросы из сети, которая находится вне AWS, и разрешать их для частных зон. Однако для этого Resolver должен знать, как обрабатывать запросы, поступающие от внешних клиентов. -
Разрешение запросов при помощи условного перенаправления:
Когда вы делаете запрос через ваш DC с условным перенаправителем, этот DC отправляет DNS-запросы своим настроенным серверам DNS (в данном случае — AWS Resolver). Однако если вы напрямую запрашиваете AWS Resolver, это может приводить к проблемам, так как он ожидает получить запросы от конкретных источников и может не поддерживать стандартные способы DNS-запроса, используемые в командной строке. -
Различие в протоколах и конфигурациях:
Важно отметить, что AWS Resolver может полагаться на определенные протоколы и может быть настроен так, чтобы обрабатывать только запросы, поступающие от определенных адресов или по специфическим каналам. Попробуйте проверить, доступны ли необходимые порты и протоколы.
Почему запросы к AWS Resolver могут не срабатывать
-
Политики безопасности: AWS Security Groups и Network ACL могут блокировать входящие DNS-запросы, исходящие от ваших DC либо от определенных IP-адресов.
-
Неподходящий формат запроса: Некоторые DNS-клиенты могут отправлять запросы в формате, несовместимом с тем, как ожидает получать их AWS Resolver.
-
Протокол транзакций: AWS Resolver может ожидать, что все DNS-запросы будут инициированы в контексте AWS и могут иметь определенные ограничения на разрешение DNS-запросов извне.
Рекомендации для устранения проблем
-
Проверка конфигурации: Убедитесь, что ваши правила разрешения и политики безопасности корректно настроены и позволяют необходимые запросы.
-
Изучение логов ушедших и пришедших пакетов: Такой анализ позволит выяснить, действительно ли ваши запросы доходят до AWS Resolver и какова их судьба.
-
Альтернативное тестирование: Попробуйте использовать другой DNS-клиент или инструмент диагностики. Иногда десктопные инструменты могут не реализовывать некоторые сетевые аспекты, нужные для взаимодействия с такими серверами.
-
Обращение в техническую поддержку AWS: Если проблема не решается, услуги технической поддержки AWS могут предоставить детальную информацию о конфигурации вашего Resolver.
Заключение
Понимание взаимодействия между локальными DNS-серверами и AWS Inbound Endpoint Resolver имеет решающее значение при диагностике и решении проблем с DNS. Убедитесь, что у вас выстроена правильная архитектура и что все сетевые правила настроены правильно, чтобы избежать потенциальных проблем в будущем.