Поделиться через


Разрешение имен (DNS) в Служба приложений

Приложение использует разрешение имен (DNS) при вызове зависимых ресурсов. Ресурсы могут быть службами Azure, такими как Key Vault, хранилище или SQL Azure, но это также могут быть веб-API, от которые зависит ваше приложение. Если вы хотите вызвать например myservice.com, вы используете DNS для разрешения имени IP-адреса. В этой статье описывается, как Служба приложений обрабатывает разрешение имен и как определяет, какие DNS-серверы следует использовать. В статье также описаны параметры, которые можно использовать для настройки разрешения DNS.

Как работает разрешение имен в Служба приложений

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

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

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

Настройка DNS-серверов

Отдельное приложение позволяет переопределить конфигурацию DNS, указав dnsServers свойство в объекте dnsConfiguration свойства сайта. Можно указать до пяти настраиваемых DNS-серверов. Настраиваемые DNS-серверы можно настроить с помощью Azure CLI:

az resource update --resource-group <group-name> --name <app-name> --resource-type "Microsoft.Web/sites" --set properties.dnsConfiguration.dnsServers="['168.63.129.16','xxx.xxx.xxx.xxx']"

Параметры приложения DNS

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

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

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

Параметры приложения также существуют для настройки поведения разрешения имен и именованы и WEBSITE_DNS_MAX_CACHE_TIMEOUT.WEBSITE_DNS_TIMEOUT,WEBSITE_DNS_ATTEMPTS

Настройка поведения разрешения имен

Если требуется точное управление разрешением имен, Служба приложений позволяет изменить поведение по умолчанию. Вы можете изменить попытки повторных попыток, время ожидания повторных попыток и время ожидания кэша. Изменение поведения, например отключение или снижение длительности кэша, может повлиять на производительность.

Имя свойства Значение по умолчанию для Windows Значение по умолчанию для Linux Допустимые значения Описание
Количество попыток повторного запроса DNS 1 5 1-5 Определяет количество попыток разрешения, в которых одно из них не означает повторных попыток.
dnsMaxCacheTimeout 30 0 0-60 Результаты DNS кэшируются в соответствии с отдельными записями TTL, но не более определенного максимального времени ожидания кэша. Установка кэша равным нулю означает, что кэширование отключено.
dnsRetryAttemptTimeout 3 1 1–30 Время ожидания перед повтором или сбоем. Время ожидания также определяет время ожидания результатов вторичного сервера, если основной сервер не отвечает.

Примечание.

  • Изменение поведения разрешения имен не поддерживается в приложениях контейнеров Windows.
  • Чтобы настроить dnsMaxCacheTimeout, необходимо убедиться, что кэширование включено, добавив параметр WEBSITE_ENABLE_DNS_CACHEприложения ="true". Если вы включаете кэширование, но не настраиваете dnsMaxCacheTimeout, время ожидания равно 30.

Настройте поведение разрешения имен с помощью следующих команд CLI:

az resource update --resource-group <group-name> --name <app-name> --set properties.dnsConfiguration.dnsMaxCacheTimeout=[0-60] --resource-type "Microsoft.Web/sites"
az resource update --resource-group <group-name> --name <app-name> --set properties.dnsConfiguration.dnsRetryAttemptCount=[1-5] --resource-type "Microsoft.Web/sites"
az resource update --resource-group <group-name> --name <app-name> --set properties.dnsConfiguration.dnsRetryAttemptTimeout=[1-30] --resource-type "Microsoft.Web/sites"

Проверьте параметры с помощью этой команды CLI:

az resource show --resource-group <group-name> --name <app-name> --query properties.dnsConfiguration --resource-type "Microsoft.Web/sites"

Ограничение

Служба приложений в Windows не поддерживает разрешение DNS по протоколу TCP.

Следующие шаги