Решение DNS с использованием AWS Inbound Endpoint Resolver

Вопрос или проблема

Вопрос

Можете ли вы отправить 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

  1. Работа AWS Inbound Endpoint Resolver:
    AWS Route 53 Inbound Resolver позволяет получать DNS-запросы из сети, которая находится вне AWS, и разрешать их для частных зон. Однако для этого Resolver должен знать, как обрабатывать запросы, поступающие от внешних клиентов.

  2. Разрешение запросов при помощи условного перенаправления:
    Когда вы делаете запрос через ваш DC с условным перенаправителем, этот DC отправляет DNS-запросы своим настроенным серверам DNS (в данном случае — AWS Resolver). Однако если вы напрямую запрашиваете AWS Resolver, это может приводить к проблемам, так как он ожидает получить запросы от конкретных источников и может не поддерживать стандартные способы DNS-запроса, используемые в командной строке.

  3. Различие в протоколах и конфигурациях:
    Важно отметить, что AWS Resolver может полагаться на определенные протоколы и может быть настроен так, чтобы обрабатывать только запросы, поступающие от определенных адресов или по специфическим каналам. Попробуйте проверить, доступны ли необходимые порты и протоколы.

Почему запросы к AWS Resolver могут не срабатывать

  • Политики безопасности: AWS Security Groups и Network ACL могут блокировать входящие DNS-запросы, исходящие от ваших DC либо от определенных IP-адресов.

  • Неподходящий формат запроса: Некоторые DNS-клиенты могут отправлять запросы в формате, несовместимом с тем, как ожидает получать их AWS Resolver.

  • Протокол транзакций: AWS Resolver может ожидать, что все DNS-запросы будут инициированы в контексте AWS и могут иметь определенные ограничения на разрешение DNS-запросов извне.

Рекомендации для устранения проблем

  1. Проверка конфигурации: Убедитесь, что ваши правила разрешения и политики безопасности корректно настроены и позволяют необходимые запросы.

  2. Изучение логов ушедших и пришедших пакетов: Такой анализ позволит выяснить, действительно ли ваши запросы доходят до AWS Resolver и какова их судьба.

  3. Альтернативное тестирование: Попробуйте использовать другой DNS-клиент или инструмент диагностики. Иногда десктопные инструменты могут не реализовывать некоторые сетевые аспекты, нужные для взаимодействия с такими серверами.

  4. Обращение в техническую поддержку AWS: Если проблема не решается, услуги технической поддержки AWS могут предоставить детальную информацию о конфигурации вашего Resolver.

Заключение

Понимание взаимодействия между локальными DNS-серверами и AWS Inbound Endpoint Resolver имеет решающее значение при диагностике и решении проблем с DNS. Убедитесь, что у вас выстроена правильная архитектура и что все сетевые правила настроены правильно, чтобы избежать потенциальных проблем в будущем.

Оцените материал
Добавить комментарий

Капча загружается...