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


Сеть в Среде службы приложений

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

Примечание.

В этой статье описывается Среда службы приложений версии 3, которая используется с изолированными планами Служба приложений версии 2.

Требования к подсети

Необходимо делегировать подсеть в Microsoft.Web/hostingEnvironments, подсеть должна быть пустой.

Размер подсети может влиять на пределы масштабирования экземпляров плана службы приложений в Среде службы приложений. Для рабочей среды рекомендуется адресное /24 пространство (256 адресов) для подсети. Если вы планируете масштабировать почти максимальную емкость 200 экземпляров в нашей Среда службы приложений и планируете частые операции увеличения и уменьшения масштаба, рекомендуется адресное /23 пространство (512 адресов) для подсети.

Если вы используете меньшую подсеть, помните о следующих ограничениях:

  • В любой конкретной подсети имеется пять адресов, зарезервированных для целей управления. Помимо адресов управления, Среда службы приложений динамически масштабирует поддержку инфраструктуры и использует от 7 до 27 адресов в зависимости от конфигурации и загрузки. Оставшиеся адреса можно использовать для экземпляров в плане службы приложений. Минимальный размер подсети — диапазон адресов /27 (32 адреса).
  • Для любой комбинации os/SKU плана Служба приложений, используемой в Среда службы приложений, например i1v2 Windows, создается один резервный экземпляр для каждых 20 активных экземпляров. Резервные экземпляры также требуют IP-адресов.
  • При масштабировании планов Служба приложений в Среда службы приложений вверх/вниз количество IP-адресов, используемых планом Служба приложений, временно увеличивается, пока операция масштабирования завершается. Перед отменой подготовки существующих экземпляров новые экземпляры должны быть полностью операционными.
  • Обновления платформы нуждаются в бесплатных IP-адресах, чтобы гарантировать, что обновления могут произойти без прерываний исходящего трафика.
  • После увеличения масштаба, уменьшения или завершения операций может потребоваться некоторое время до освобождения IP-адресов. В редких случаях эта операция может составлять до 12 часов.
  • Если в вашей подсети закончились адреса, вы можете ограничить масштабирование планов службы приложений в Среде службы приложений. Другая возможность заключается в том, что при интенсивной нагрузке трафика может возникнуть увеличенная задержка, если корпорация Майкрософт не сможет масштабировать поддерживающую инфраструктуру.

Примечание.

Контейнеры Windows используют дополнительный IP-адрес для каждого приложения для каждого экземпляра плана Служба приложений и необходимо соответствующим образом размер подсети. Если Среда службы приложений имеет например 2 контейнера Windows Служба приложений планирует каждый из 25 экземпляров и каждый из которых имеет 5 приложений, вам потребуется 300 IP-адресов и дополнительные адреса для поддержки горизонтального (в/вне) масштабирования.

Пример вычисления:

Для каждого экземпляра плана Служба приложений необходимо: 5 приложений контейнеров Windows = 5 IP-адресов 1 IP-адреса на экземпляр плана Служба приложений 5 + 1 = 6 IP-адресов

Для 25 экземпляров: 6 x 25 = 150 IP-адресов на план Служба приложений

Так как у вас есть 2 Служба приложений планов, 2 x 150 = 300 IP-адресов.

Адреса

На этапе создания к Среде службы приложений относятся следующие сведения о сети.

Тип адреса Description
Виртуальная сеть Среды службы приложений Виртуальная сеть назначения развертывания.
Подсеть Среды службы приложений Подсеть назначения развертывания.
Суффикс домена Суффикс домена по умолчанию, используемый приложениями.
Суффикс личного домена (необязательно) Суффикс личного домена, используемый приложениями.
Виртуальный IP-адрес (VIP) Используемый тип виртуального IP-адреса. Может иметь два значения: внутренний и внешний.
Адрес входящего трафика Входящий адрес — это адрес для доступа к вашим приложениям. Если у вас есть внутренний виртуальный IP-адрес, он находится в вашей подсети Среды службы приложений. Если адрес внешний, он является общедоступным.
Исходящие адреса рабочей роли Приложения используют эти или эти адреса при выполнении исходящих вызовов в Интернет.
Исходящие адреса платформы Платформа использует этот адрес при выполнении исходящих вызовов в Интернет. Пример — извлечение сертификатов для суффикса личного домена из Key Vault, если частная конечная точка не используется.

Сведения можно найти в разделе IP-адреса на портале, как показано на следующем снимке экрана:

Снимок экрана: сведения об IP-адресах.

При масштабировании планов Служба приложений в Среда службы приложений вы используете дополнительные адреса из подсети. Количество используемых адресов зависит от количества имеющихся экземпляров плана службы приложений и объема существующего трафика. Приложения в Среде службы приложений не имеют выделенных адресов в подсети. Используемые приложением конкретные адреса в подсети будут изменяться с течением времени.

Принести собственный входящий адрес

Вы можете принести собственный входящий адрес в Среда службы приложений. При создании Среда службы приложений с внутренним ВИРТУАЛЬНЫМ IP-адресом можно указать статический IP-адрес в подсети. При создании Среда службы приложений с внешним ВИРТУАЛЬНЫм IP-адресом можно использовать собственный общедоступный IP-адрес Azure, указав идентификатор ресурса общедоступного IP-адреса. Ниже приведены ограничения для привлечения собственного входящего адреса:

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

Ограничения портов и сети

Чтобы ваше приложение могло получать трафик, убедитесь, что правила группы безопасности сети (NSG) для входящего трафика разрешают подсети Среды службы приложений получать трафик с необходимых портов. Помимо портов, на которые вы хотите получать трафик, необходимо убедиться, что Azure Load Balancer может подключиться к подсети через порт 80. Этот порт используется для проверки работоспособности внутренней виртуальной машины. Вы по-прежнему можете контролировать трафик порта 80 из виртуальной сети в свою подсеть.

Примечание.

Изменения правил NSG могут занять до 14 дней, чтобы вступили в силу из-за сохраняемости HTTP-подключения. Если вы вносите изменения, которые блокируют трафик платформы или управления, это может занять до 14 дней, чтобы влияние было видно.

Рекомендуем настроить следующее правило NSG для входящего трафика:

Исходные и конечные порты Направление Источник Назначение Характер использования
* / 80,443 Входящий трафик Виртуальная сеть Диапазон подсетей для Среды службы приложений Разрешить трафик приложения и внутренний трафик проверки связи для работоспособности

Минимальные требования к работе Среды службы приложений:

Исходные и конечные порты Направление Источник Назначение Характер использования
* / 80 Входящий трафик AzureLoadBalancer Диапазон подсетей для Среды службы приложений Разрешить внутренний трафик проверки связи для работоспособности

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

Внутренний трафик проверки связи для работоспособности на порту 80 изолирован между подсистемой балансировки нагрузки и внутренними серверами. Внешний трафик не может достичь конечной точки проверки связи для работоспособности.

Стандартные входящие порты доступа для приложения:

Использование Порты
HTTP/HTTPS 80, 443
FTP и FTPS 21, 990, 10001-10020
Удаленная отладка в Visual Studio 4022, 4024, 4026
Служба веб-развертывания 8172

Примечание.

Для доступа к FTP, даже если вы хотите запретить стандартный FTP через порт 21, вам по-прежнему необходимо разрешить трафик из LoadBalancer в диапазон подсети Среда службы приложений через порт 21, так как это используется для внутреннего трафика проверки работоспособности для ftp-службы в частности.

Сетевая маршрутизация

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

Зависимости приложений включают конечные точки, необходимые приложению во время выполнения. Помимо API и служб, которые вызывает приложение, зависимости также могут быть производными конечными точками, такими как список отзыва сертификатов (CRL) проверки конечных точек и конечной точки идентификации и проверки подлинности, например Идентификатор Microsoft Entra. Если вы используете непрерывное развертывание в Службе приложений, вам, возможно, также придется разрешить конечные точки в зависимости от типа и языка. В частности, для непрерывного развертывания Linux необходимо разрешить oryx-cdn.microsoft.io:443.

Вы можете разместить устройства брандмауэра веб-приложения, например Шлюз приложений Azure, перед входящим трафиком. Это обеспечивает доступ к определенным приложениям в этой Среде службы приложений.

Приложение использует один из исходящих адресов по умолчанию для исходящего трафика в общедоступные конечные точки. Если вы хотите настроить исходящий адрес приложений в Среде службы приложений, можете добавить шлюз преобразования сетевых адресов (NAT) в свою подсеть.

Примечание.

Исходящее подключение SMTP (порт 25) поддерживается для Среды службы приложений версии 3. Возможность поддержки определяется параметром для подписки, в которой развернута виртуальная сеть. Для виртуальных сетей и подсетей, созданных до 1 августа 2022 г. необходимо инициировать временное изменение конфигурации виртуальной сети или подсети, чтобы синхронизировать параметр из подписки. Например, можно добавить временную подсеть, связать или отключить связь группы безопасности сети или временно настроить конечную точку службы. Дополнительные сведения и устранение неполадок см. в статье "Устранение неполадок с исходящим подключением SMTP" в Azure.

Частная конечная точка

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

Его можно активировать с помощью портал Azure. В области конфигурации Среда службы приложений включите параметрAllow new private endpoints. В качестве альтернативы можно включить следующий интерфейс командной строки:

az appservice ase update --name myasename --allow-new-private-endpoint-connections true

Дополнительные сведения см. в статье Частная конечная точка для веб-приложения Azure.

DNS

В следующих разделах описываются рекомендации по использованию и настройке DNS для входящего и исходящего трафика из Среды службы приложений. В примерах используется суффикс appserviceenvironment.net домена из общедоступного облака Azure. Если вы используете другие облака, такие как Azure для государственных организаций, необходимо использовать соответствующий суффикс домена. Для доменов Среда службы приложений имя сайта усечено по 40 символов из-за ограничений DNS. Если у вас есть слот, имя слота усечено на 19 символов.

Настройка DNS для Среды службы приложений

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

Если нужно использовать собственный DNS-сервер, необходимо добавить следующие записи:

  1. Создайте зону для <App Service Environment-name>.appserviceenvironment.net.
  2. Создайте в этой зоне запись A, которая указывает * на входящий IP-адрес, используемый вашей ASE.
  3. Создайте в этой зоне запись A, которая указывает @ на входящий IP-адрес, используемый вашей ASE.
  4. Создайте в <App Service Environment-name>.appserviceenvironment.net зону с именем scm.
  5. Создайте в зоне scm запись A, которая указывает * на IP-адрес, используемый частной конечной точкой вашей Среды службы приложений.

Чтобы настроить DNS в частных зонах Azure DNS, выполните следующие действия:

  1. Создайте частную зону Azure DNS с именем <App Service Environment-name>.appserviceenvironment.net.
  2. Создайте в этой зоне запись A, которая указывает * на входящий IP-адрес.
  3. Создайте в этой зоне запись A, которая указывает @ на входящий IP-адрес.
  4. Создайте в этой зоне запись A, которая указывает *.scm на входящий IP-адрес.

Кроме домена по умолчанию, предоставляемого при создании приложения, можно также добавить в приложение личный домен. Можно задать имя личного домена без проверки в ваших приложениях. Если вы используете личные домены, необходимо убедиться, что для них настроены записи DNS. Чтобы настроить зоны и записи DNS для личного доменного имени (замените доменное имя по умолчанию на имя личного домена). Имя личного домена подходит для запросов приложений, но не подходит для сайта scm. Сайт scm доступен только по адресу <appname>.scm.<asename>.appserviceenvironment.net.

Конфигурация DNS для FTP-доступа

В частности, для FTP-доступа к среде Службы приложений с внутренней подсистемой балансировки нагрузки (ILB) версии 3 необходимо убедиться, что DNS настроен. Настройте частную зону Azure DNS или эквивалентную пользовательскую службу DNS со следующими параметрами.

  1. Создайте частную зону Azure DNS с именем ftp.appserviceenvironment.net.
  2. Создайте в этой зоне запись A, которая указывает <App Service Environment-name> на входящий IP-адрес.

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

Настройка DNS из Среды службы приложений

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

Дополнительные ресурсы