Надежность в общедоступных зонах Azure DNS

Azure DNS предоставляет разрешение имен с помощью инфраструктуры Microsoft Azure. В этой статье рассматриваются общедоступные зоны DNS, которые обычно создаются для доменов, принадлежащих и используемых для публикации записей для приложений и служб, доступных в Интернете. Разрешенные имена узлов являются общедоступными DNS-именами, а разрешенные IP-адреса обычно доступны из Интернета.

Azure DNS — это нерегиональная служба, которая не привязана к определенной зоне доступности или Azure региону.

При использовании Azure надежность — это общая ответственность. Корпорация Майкрософт предоставляет ряд возможностей для поддержки устойчивости и восстановления. Вы несете ответственность за понимание того, как работают эти возможности во всех используемых вами службах, а также за выбор возможностей, необходимых для достижения бизнес-целей и целей бесперебойной работы.

В этой статье описывается, как общедоступные зоны Azure DNS реагируют на временные сбои, сбои в зонах доступности, сбои в масштабах региона, сбои службы, угрозы безопасности и неправильную конфигурацию, сбои портала и средств управления, а также плановое обслуживание службы. В нем также описывается, как защитить и восстановить конфигурацию зоны и объяснить требования соглашения об уровне обслуживания (SLA).

Рекомендации по развертыванию в рабочей среде для обеспечения надежности

Для рабочих развертываний Azure DNS общедоступных зон следуйте этим рекомендациям, чтобы повысить надежность:

  • Делегировать всем серверам имен: Azure DNS назначает четыре сервера имен каждой общедоступной зоне DNS. Настройте делегирование домена для использования всех четырех серверов имен. Эта конфигурация обеспечивает изоляцию сбоев и необходима для соответствия условиям SLA Azure DNS.

  • Настройте соответствующие значения TTL: Задайте значения времени в реальном времени (TTL), которые балансируют объем запросов с тем, как быстро клиенты получают изменения записи. Более низкие значения TTL позволяют клиентам получать изменения раньше, но увеличивать объем запросов. Более высокие значения TTL сокращают объем запросов, но могут задержать переключение при отказе после изменения записи.

  • Используйте записи псевдонимов для поддерживаемых ресурсов Azure:Записи Псевдонима автоматически отражают изменения базового ресурса Azure во время разрешения DNS и помогают предотвратить устаревшие записи DNS.

Обзор архитектуры надежности

В этом разделе описываются некоторые важные аспекты работы службы, наиболее релевантные с точки зрения надежности. В этом разделе представлена логическая архитектура, включающая некоторые ресурсы и функции, которые развертываются и используются. Он также обсуждает аппаратную архитектуру, которая содержит сведения о том, как работает служба изнутри.

Логическая архитектура

Основной ресурс, который вы развертываете, — это зона, содержащая наборы записей DNS для домена. Набор записей связывает DNS-имя со значением, например IP-адресом или конечной точкой. Имена, разрешаемые общедоступной зоной DNS, доступны через Интернет.

Чтобы Azure DNS стал авторитативным для вашего домена, делегируйте домен серверам DNS-имен, которые Azure назначает при создании зоны. После того как делегирование будет выполнено, вы создадите наборы записей для типов записей DNS, которые Azure DNS поддерживаются. Вы также можете создавать записи псевдонимов, ссылающиеся на ресурсы Azure, такие как общедоступные IP-адреса, профили диспетчера трафика и Azure Front Door конечные точки, чтобы запись DNS оставалась синхронизированной с целевым ресурсом.

Во время разрешения DNS рекурсивные DNS-резолверы следуют по иерархии DNS, чтобы обратиться к авторитативным серверам имён Azure DNS для вашей зоны.

Important

Azure DNS разрешает доменные имена, но не отслеживает работоспособность конечных точек и не направляет трафик приложений. Надежность общего решения зависит от конфигурации ресурсов, к которым относятся записи DNS, например виртуальные машины и подсистемы балансировки нагрузки.

Эта статья не охватывает эти ресурсы, но их конфигурации доступности напрямую влияют на устойчивость вашего приложения. Ознакомьтесь с руководствами по надежности служб Azure в решении , чтобы узнать, как каждая служба поддерживает требования к надежности.

Физическая архитектура

Azure DNS работает в качестве нерегиональной службы и развертывает свою инфраструктуру в нескольких зонах доступности в нескольких регионах Azure по всему миру. Эта конструкция позволяет Azure DNS оставаться устойчивыми во время сбоя зоны доступности или региона, так как инфраструктура в другой зоне или регионе продолжает реагировать на запросы на разрешение.

Глобальные интернет-протоколы, такие как Anycast, DNS и BGP, автоматически направляют входящие запросы разрешения DNS в ближайшую здоровую инфраструктуру Azure DNS.

Плоскость обработки запросов Azure DNS работает в конфигурации «активный — активный» в двух независимых стеках обработки запросов: один работает под Linux, а другой — под Windows. Эти стеки не используют код и не используют базовое оборудование. Так как они независимы, ошибка, уязвимость или сбой, влияющие на один стек, не влияют на другой. Эта независимость снижает риск полного сбоя службы, вызванного одной точкой сбоя, и помогает защититься от определенных классов уязвимостей нулевого дня.

Устойчивость к временным сбоям

Временные ошибки являются короткими, периодическими сбоями в компонентах. Они часто происходят в распределенной среде, такой как облачная платформа, и являются обычной частью операций. Временные ошибки исправляют себя через короткий период времени. Важно, чтобы приложения могли обрабатывать временные ошибки, обычно повторяя затронутые запросы.

Все облачные приложения должны следовать рекомендациям по обработке временных ошибок Azure при обмене данными с любыми размещенными в облаке API, базами данных и другими компонентами. Дополнительные сведения см. в Рекомендациях по обработке временных сбоев.

Azure DNS обрабатывает временные ошибки через глобальную инфраструктуру DNS.

Если во время разрешения DNS возникает временный сбой, клиент или промежуточный сопоставитель должен повторить попытку в соответствии с настроенным поведением повторных попыток DNS. От 2 до 5 секунд обычно достаточно времени ожидания для DNS-клиента.

Время жизни каждой записи DNS также влияет на то, как решение обрабатывает ошибки. Если значение TTL очень низкое, клиентам приходится отправлять больше запросов к Azure DNS, и возрастает вероятность возникновения кратковременных сбоев. Если время жизни (TTL) очень велико, то в случае реального сбоя на сервере бэкенда, требующего переключения на другой IP-адрес, у клиентов возможны задержки при аварийном переключении до истечения TTL. Тщательно настройте TTLs для балансировки доступности, задержки и реагирования.

Устойчивость к сбоям зоны доступности

Зоны доступности — это физически отдельные группы центров обработки данных в регионе Azure. При сбое одной зоны службы могут переключиться на одну из оставшихся зон.

Azure DNS работает в качестве нерегиональной службы. Microsoft распределяет инфраструктуру между несколькими зонами доступности в нескольких регионах Azure и реплицирует изменения в общедоступных зонах DNS в этой инфраструктуре. Вы не выбираете зоны доступности или настраиваете избыточность зоны. Во время сбоя зоны доступности инфраструктура в другой зоне или регионе продолжает реагировать на запросы на разрешение.

Если ресурс, развернутый в одной зоне доступности, например виртуальной машины, становится недоступным во время сбоя зоны, Azure DNS продолжает возвращать настроенный IP-адрес ресурса, так как он не отслеживает работоспособность конечных точек. Если вы переключаетесь при отказе на ресурс в исправной зоне, вы должны обновить запись DNS, чтобы клиенты использовали исправный ресурс. В качестве альтернативы разместите ресурсы за балансировщиком нагрузки с межзонным резервированием, который направляет трафик на виртуальные машины в работоспособных зонах.

Устойчивость к сбоям на уровне региона

Зоны DNS устойчивы к сбоям в регионах, так как данные зон доступны по всему миру и развернуты в нескольких регионах Azure. Если регион имеет сбой, ресурсы, развернутые в этом регионе, такие как виртуальные сети и виртуальные машины, могут быть недоступны, но Azure DNS продолжает разрешать записи в вашей зоне.

Если у вас есть решение, которое должно переключаться между несколькими регионами, например для аварийного восстановления, рассмотрите возможность использования Диспетчер трафика Azure или Azure Front Door. Эти службы предоставляют средства автоматического переключения при отказе, которые можно использовать, если регион недоступен.

Устойчивость к угрозам безопасности и неправильной настройке

Атаки безопасности и ошибки конфигурации являются двумя наиболее значительными рисками надежности для зон DNS. Несколько классов атак специально нацелены на разрешение DNS, а случайная ошибка в конфигурации может столь же серьёзно нарушить работу ваших рабочих нагрузок.

Подробные рекомендации по безопасности для общедоступных зон DNS см. в статьях «Защита развертывания Azure DNS» и «Защита зон и записей DNS».

Устойчивость к сбоям служб

Azure DNS — это высокоустойчивая служба с SLA на доступность 100 %, если ваше приложение соответствует определённым условиям. Сбои служб являются чрезвычайно необычными, но проблемы с сетью или другой инфраструктурой могут нарушить подключение к службе Azure DNS.

Устойчивость Azure DNS отчасти обусловлена его геораспределённой архитектурой плоскости обслуживания active-active.

Использование нескольких серверов имен

Azure DNS назначает четыре сервера имен каждой общедоступной зоне DNS. При делегировании домена настройте все четыре сервера имен. Если сопоставитель не может связаться с одним сервером имен, он может запрашивать другой.

Мониторинг сбоев служб

Используйте Работоспособность служб Azure для мониторинга работоспособности Azure DNS. Настройте оповещения о работоспособности служб, чтобы получать уведомления об инцидентах в службах.

Проверка сбоев служб

Azure Chaos Studio предоставляет ошибки, которые имитируют сбои разрешения DNS из некоторых типов тестовых рабочих нагрузок. Эти ошибки не вызывают сбой в Azure DNS. Агент Chaos Studio предоставляет сценарий сбоя DNS Failure, а AKS Chaos Mesh предоставляет функцию DNS Chaos. Используйте эти ошибки, чтобы проверить, как приложения и инфраструктура реагируют при сбое разрешения DNS, например во время частичного сбоя сети.

Устойчивость к сбоям средств управления и портала

Если вы управляете общедоступной зоной DNS на портале Azure, подготовьте альтернативный путь управления для сценариев, где вы не можете получить доступ к порталу, особенно если вам может потребоваться перенастроить зону во время сбоя.

Если портал Azure недоступен, используйте Azure CLI, Azure PowerShell или инфраструктуру как код (IaC), например Bicep или Terraform для управления общедоступной зоной DNS. Эти средства остаются в эксплуатации, даже если портал Azure ухудшается.

Резервное копирование и восстановление

Azure DNS — это служба без сохранения состояния. Он не предоставляет управляемые резервные копии или восстановление на определенный момент времени для общедоступных зон DNS.

Чтобы сохранить полную конфигурацию ресурсов Azure, определите общедоступные зоны DNS с помощью IaC, например Bicep или Terraform, и сохраните определения в системе управления версиями. Периодически тестируйте определения, чтобы их можно было использовать для повторного развертывания конфигурации.

В качестве дополнительного параметра восстановления уровня записи экспортируйте файл зоны, совместимый с BIND. Импорт файла зоны имеет ограничения и не сохраняет каждый параметр ресурса Azure, поэтому не используйте экспортируемый файл зоны в качестве только артефакта восстановления. Просмотрите задокументированные ограничения импорта и проверьте записи после восстановления зоны.

Устойчивость к обслуживанию служб

Корпорация Майкрософт регулярно применяет обновления служб и выполняет другое обслуживание. Платформа Azure автоматически обрабатывает эти действия, обеспечивая простое и прозрачное обслуживание. Во время мероприятий технического обслуживания простой не ожидается, если только вас не предупредили через Работоспособность служб Azure о плановом обслуживании.

Соглашение об уровне обслуживания

Соглашение об уровне обслуживания (SLA) для служб Azure описывает ожидаемую доступность каждой службы и условия, которые должно соответствовать вашему решению для достижения этого ожидания доступности. Дополнительные сведения см. в разделе SLA для онлайн-услуг.

Azure DNS предоставляет гарантию доступности по SLA на уровне 100 % для корректных ответов на DNS-запросы при соблюдении определенных условий. К этим условиям относятся повторная отправка неудачных запросов непрерывно в течение как минимум 60 секунд и использование всех серверов имён, которые Azure DNS назначает вашей зоне. Ознакомьтесь с документом соглашения об уровне обслуживания для получения подробных условий.