Интеграция приложения с виртуальной сетью Azure

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

Служба приложений реализована в виде двух моделей:

  • Ценовые категории выделенных вычислительных ресурсов, включая "Базовый", "Стандартный", "Премиум", "Премиум v2" и "Премиум v3".
  • Среда службы приложений, которая развертывается непосредственно в виртуальной сети с выделенной вспомогательной инфраструктурой и использует ценовые категории "Изолированный" и "Изолированный v2".

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

Интеграция с виртуальной сетью предоставляет приложению доступ к ресурсам виртуальной сети, но не предоставляет входящий частный доступ к этому приложению остается из этой сети. Доступ к частным сайтам подразумевает доступность приложения только из частной сети, например из виртуальной сети Azure. Интеграция с виртуальной сетью используется только для выполнения исходящих вызовов из вашего приложения к виртуальной сети. Поведение функции интеграции с виртуальной сетью отличается при использовании для виртуальных сетей в том же регионе и для виртуальных сетей в других регионах. Функция интеграции с виртуальной сетью имеет два варианта:

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

Функция интеграции с виртуальной сетью:

Функции, не поддерживаемые при интеграции с виртуальной сетью:

  • подключение диска;
  • присоединение к домену Active Directory на Windows Server;
  • NetBIOS.

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

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

Узнайте, как включить интеграцию с виртуальной сетью.

Интеграция региональной виртуальной сети

Интеграция с региональной виртуальной сетью поддерживает подключение к виртуальной сети в том же регионе и не требует шлюза. Использование интеграции c региональной виртуальной сетью позволяет приложению получить доступ к следующим ресурсам:

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

При использовании интеграции с региональной виртуальной сетью можно использовать следующие сетевые функции Azure:

  • Группы безопасности сети (NSG) . Можно блокировать исходящий трафик с помощью NSG, размещенного в подсети интеграции. Правила для входящих подключений не применяются, так как вы не можете использовать интеграцию с виртуальной сетью для предоставления входящего доступа к своему приложению.
  • Таблицы маршрутов (UDR) . Можно поместить таблицу маршрутов в подсеть интеграции для отправки исходящего трафика.

Принцип работы интеграции с региональной виртуальной сетью

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

Схема: принцип работы интеграции региональной виртуальной сети.

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

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

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

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

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

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

Размер блока CIDR Максимальное количество доступных адресов Максимальное масштабирование по горизонтали (экземпляры)*
/28 11 5
/27 27 13
/26 59 29

*Предполагается, что в некоторый момент вам придется увеличивать или уменьшать масштаб в какой-либо размер либо SKU.

Так как размер подсети невозможно изменить после назначения, используйте подсеть, которая достаточно велика для любого масштаба, которого может достигнуть ваше приложение. Чтобы избежать проблем с емкостью подсети, используйте подсеть /26 с 64 адресами. При создании подсетей на портале Azure в рамках интеграции с виртуальной сетью требуемый минимальный размер составляет /27. Если подсеть уже существует перед интеграцией через портал, можно использовать подсеть /28.

Примечание

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

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

Разрешения

Чтобы настроить интеграцию с региональной виртуальной сетью с помощью портала Azure, CLI или непосредственного задания свойства сайта virtualNetworkSubnetId, необходимо иметь по крайней мере следующие разрешения на управление доступом на основе ролей в подсети или на более высоком уровне:

Действие Описание
Microsoft.Network/virtualNetworks/read Чтение определения виртуальной сети
Microsoft.Network/virtualNetworks/subnets/read Чтение определения подсети виртуальной сети
Microsoft.Network/virtualNetworks/subnets/join/action Присоединяет виртуальную сеть.

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

Маршруты

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

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

Маршрутизация приложений

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

  • Только трафик, настроенный в рамках маршрутизации приложений или конфигурации, подпадает под действие групп безопасности сети и определяемых пользователем маршрутов, которые применяются к подсети интеграции.
  • Если параметр Route All включен, исходный адрес исходящего общедоступного трафика из приложения по-прежнему является одним из IP-адресов, перечисленных в свойствах приложения. При маршрутизации трафика через брандмауэр или шлюз NAT исходный IP-адрес будет поступать из этой службы.

Узнайте, как настроить маршрутизацию приложений.

Примечание

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

Маршрутизация конфигурации

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

Общий ресурс содержимого

Создание собственного хранилища для содержимого часто используется в Функциях, где общий ресурс содержимого настраивается как часть приложения "Функции".

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

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

Извлечение образа контейнера

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

Параметры приложения с использованием ссылок Key Vault

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

Примечание

  • Резервное копирование и восстановление в частных учетных записях хранения сейчас не поддерживается.
  • Настройка сертификатов SSL/TLS из частных хранилищ ключей сейчас не поддерживается.
  • Журналы Службы приложений в частных учетных записях хранения сейчас не поддерживаются. Мы рекомендуем использовать журнал ведения диагностики и разрешить доверенные службы для учетной записи хранения.

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

Таблицы маршрутов можно использовать для маршрутизации исходящего трафика из приложения без ограничений. Местами назначения часто являются брандмауэры и шлюзы. Для блокирования исходящего трафика к ресурсам в виртуальной сети или Интернете, можно также использовать группу безопасности сети (NSG). Группа безопасности сети, применяемая к подсети интеграции, действует независимо от любых таблиц маршрутизации, применяемых к подсети интеграции.

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

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

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

Конечные точки служб

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

  1. Настройте интеграцию вашего веб-приложения с региональной виртуальной сетью для подключения к определенной подсети для интеграции.
  2. Перейти в целевую службу и настроить конечные точки службы для подсети интеграции.

Частные конечные точки

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

  • Настроить интеграцию с частными зонами Azure DNS. Когда в виртуальной сети нет настраиваемого DNS-сервера, интеграция выполняется автоматически, если зоны связаны с виртуальной сетью.
  • Управлением частной конечной точкой на DNS-сервере, используемом приложением. Для управления конфигурацией необходимо знать IP-адрес частной конечной точки. Затем укажите конечную точку, с которой вы пытаетесь связаться по этому адресу, используя запись A.
  • Настроить собственный DNS-сервер для перенаправления в частные зоны Azure DNS.

Частные зоны Azure DNS

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

Ограничения

Существует несколько ограничений, касающихся использования интеграции с региональной виртуальной сетью:

  • Эта функция доступна во всех развертываниях Службы приложений с планами "Премиум v2" и "Премиум v3". Она также доступна в плане «Базовый» и «Стандартный», но только в новых развертываниях Службы приложений. Если вы используете более раннее развертывание, эту функцию можно использовать только начиная с плана "Премиум v2" службы приложений. Если вы хотите проверить, можете ли вы использовать эту функцию в плане "Базовый" или "Стандартный", создайте приложение в плане "Премиум v3" Службы приложений. Эти планы поддерживаются только в новых развертываниях. При желании после создания плана вы можете уменьшить масштаб.
  • Эта функция не может использоваться приложениями плана "Изолированный", которые находятся в Среде службы приложений.
  • Вы не можете получить доступ к ресурсам через пиринговые подключения к классическим виртуальным сетям.
  • Для этой функции требуется неиспользуемая подсеть с блоком IPv4-адресов /28 или больше в виртуальной сети Azure Resource Manager.
  • Приложение и виртуальная сеть Azure должны располагаться в одном регионе.
  • Для виртуальной сети интеграции не могут быть определены диапазоны адресов IPv6.
  • Для подсети интеграции не могут быть включены политики конечных точек службы.
  • Подсеть интеграции может использоваться только одним планом службы приложений.
  • Невозможно удалить виртуальную сеть с интегрированным приложением. Перед удалением виртуальной сети необходимо удалить интеграцию.
  • Для каждого плана Служба приложений можно использовать две интеграции с региональной виртуальной сетью. Несколько приложений в одном плане Служба приложений могут использовать одну и ту же интеграцию с виртуальной сетью.
  • Невозможно изменить подписку приложения или плана, пока есть приложение, использующее интеграцию с региональной виртуальной сетью.

Интеграция с виртуальной сетью на базе шлюза

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

  • позволяет приложению в один момент времени подключаться только к одной виртуальной сети;
  • позволяет интегрировать до пяти виртуальных сетей в рамках плана службы приложений;
  • позволяет нескольким приложениям использовать одну виртуальную сеть в рамках плана службы приложений, не влияя на общее количество, доступное плану службы приложений (если у вас шесть приложений используют одну виртуальную сеть в рамках одного плана службы приложений, считается, что вы используете одну виртуальную сеть);
  • позволяет соглашению об уровне обслуживания на шлюзе влиять на общее соглашение об уровне обслуживания;
  • позволяет вашим приложениям использовать параметры DNS, настроенные для виртуальной сети;
  • требует настройки сети VPN "точка — сеть" на базе SSTP для шлюза на основе маршрутов перед подключением к приложению.

Вы не можете использовать интеграцию с виртуальной сети на базе шлюза:

  • с виртуальной сетью, подключенной к ExpressRoute;
  • для приложений Linux;
  • для контейнеров Windows;
  • для доступа к защищенным ресурсам конечной точки службы;
  • для разрешения параметров приложений, ссылающихся на защищенный сетью Key Vault;
  • в режиме сосуществования со шлюзом, который поддерживает как ExpressRoute, так и VPN типа "точка — сеть" или "сеть — сеть".

Настройка шлюза в виртуальной сети Azure

Создание шлюза:

  1. Создайте VPN-шлюз и подсеть. Выберите тип сети VPN на основе маршрутов.

  2. Задайте адреса для подключения "точка — сеть". Если шлюз не входит в базовый SKU, то в конфигурации подключения "точка — сеть" необходимо отключить IKEV2 и выбрать SSTP. Диапазон адресов подключения "точка — сеть" должен находиться в блоках адресов RFC 1918 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16.

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

Как работает интеграция с виртуальной сетью на базе шлюза

Интеграция с виртуальной сетью на базе шлюза основана на технологии сетей VPN типа "точка — сеть". Для VPN типа "точка — сеть" сетевой доступ ограничен виртуальной машиной, на которой размещено приложение. Приложениям разрешается отправлять трафик в Интернет только через гибридные подключения или путем интеграции с виртуальной сетью. Когда вы настраиваете для приложения на портале интеграцию с виртуальной сетью на базе шлюза, от вашего имени производится сложная процедура согласования для создания и назначения сертификатов на стороне шлюза и приложения. В результате рабочие роли, которые используются для размещения ваших приложений, получают возможность напрямую подключаться к шлюзу виртуальной сети в выбранной виртуальной сети.

Схема: принцип работы интеграции виртуальной сети, требуемой для шлюза.

Доступ к локальным ресурсам

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

Маршруты BGP из локальной среды не будут передаваться в Службу приложений автоматически. Их необходимо вручную передать в конфигурации "точка — сеть", выполнив действия, описанные в документе Объявление пользовательских маршрутов для VPN-клиентов P2S.

Дополнительная настройка для доступа к локальным ресурсам через виртуальную сеть в рамках интеграции с региональной виртуальной сетью не требуется. Достаточно подключить виртуальную сеть к локальным ресурсам с помощью ExpressRoute или VPN типа "сеть — сеть".

Примечание

Функция интеграции виртуальной сети на базе шлюза не интегрирует приложение с виртуальной сетью, имеющей шлюз ExpressRoute. Даже если шлюз ExpressRoute настроен в режиме сосуществования, функция интеграции c виртуальной сетью работать не будет. Если требуется получить доступ к ресурсам через соединение ExpressRoute, используйте интеграцию с региональной виртуальной сетью или Среду службы приложений, которая работает в виртуальной сети.

Пиринг

Для установки пиринга в рамках интеграции с региональной виртуальной сетью дополнительная настройка не требуется.

Для установки пиринга в рамках интеграции с виртуальной сетью на базе шлюза требуется настроить ряд дополнительных параметров. Настройка пиринга для работы с приложением:

  1. Добавьте пиринговое подключение в виртуальную сеть, к которой подключается приложение. Добавляя пиринговое подключение, включите параметр Разрешить доступ к виртуальным сетям, а также установите флажки Разрешить перенаправленный трафик и Разрешить транзит шлюзов.
  2. Добавьте пиринговое подключение в виртуальной сети, соединенной посредством пиринга с той виртуальной сетью, к которой вы подключены. Добавляя пиринговое подключение к целевой виртуальной сети, включите параметр Разрешить доступ к виртуальным сетям, а также установите флажки Разрешить перенаправленный трафик и Разрешить удаленные шлюзы.
  3. Перейдите в раздел План службы приложений>Сеть>Интеграция виртуальной сети на портале. Выберите виртуальную сеть, к которой подключается приложение. В разделе маршрутизации добавьте диапазон адресов виртуальной сети, для которой установлен пиринг с виртуальной сетью, к которой подключается ваше приложение.

Управление интеграцией с виртуальной сетью

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

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

В пользовательском интерфейсе "Интеграция с виртуальной сетью" плана службы приложений показаны все интеграции с виртуальными сетями, которые ваши приложения используют в рамках вашего плана службы приложений. Чтобы просмотреть сведения о той или иной виртуальной сети, выберите ее. Для интеграции с виртуальной сетью на базе шлюза в этом интерфейсе можно выполнить две операции:

  • Синхронизировать сеть. Операция синхронизации сети используется только при интеграции с виртуальной сетью на базе шлюза. Эта операция гарантирует, что сертификаты и сведения о сети будут синхронизированы. Если вы добавите или измените DNS виртуальной сети, необходимо выполнить операцию "Синхронизировать сеть". При ее выполнении перезапускаются все приложения, которые используют данную виртуальную сеть. Эта операция не работает для приложения и виртуальной сети, которые относятся к разным подпискам.
  • Добавить маршруты. При добавлении маршрутов исходящий трафик направляется в вашу виртуальную сеть.

Частный IP-адрес, назначенный экземпляру, предоставляется через переменную среды WEBSITE_PRIVATE_IP. В пользовательском интерфейсе консоли Kudu также отображается список переменных среды, доступных для веб-приложения. Этот IP-адрес назначается из диапазона адресов интегрированной подсети. Для интеграции с региональной виртуальной сетью значение WEBSITE_PRIVATE_IP представляет собой IP-адрес из диапазона адресов делегированной подсети. Для интеграции с виртуальной сетью на базе шлюза это IP-адрес из диапазона адресов, принадлежащего пулу адресов для подключения "точка — сеть", настроенному в шлюзе виртуальной сети. Это IP-адрес веб-приложение будет использовать для подключения к ресурсам через виртуальную сеть Azure.

Примечание

Значение WEBSITE_PRIVATE_IP привязано к изменению. Тем не менее этот IP-адрес будет находиться в диапазоне адресов подсети интеграции или диапазоне адресов подключения типа "точка — сеть", поэтому вам понадобится разрешить доступ из всего диапазона адресов.

Маршрутизация интеграции с виртуальной сетью на базе шлюза

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

Сертификаты интеграции с виртуальной сетью на базе шлюза

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

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

Сведения о тарифах

Дополнительная плата за интеграцию с региональной виртуальной сетью (помимо стоимость плана службы приложений соответствующей ценовой категории) не взимается.

С интеграцией с виртуальной сетью на базе шлюза связано три вида дополнительных расходов:

  • Расходы в рамках ценовой категории плана службы приложений. Приложение должно относиться к одному из следующих планов службы приложений: "Базовый", "Стандартный", "Премиум", "Премиум v2" или "Премиум v3". Дополнительные сведения об этих ценах см. в разделе Цены для Службы приложений.
  • Расходы, связанные с передачей данных. За исходящий трафик взимается плата, даже если виртуальная сеть находится в том же центре обработки данных. Эти тарифы описаны в сведениях о ценах за передачу данных.
  • Расходы, связанные с использованием VPN-шлюза. Взимается плата за шлюз виртуальной сети, необходимый для сети VPN типа "точка — сеть". Дополнительные сведения см. на странице цен на VPN-шлюз.

Устранение неполадок

Примечание

Интеграция с виртуальной сетью не поддерживается для сценариев Docker Compose в Службе приложений. При наличии частной конечной точки ограничения доступа игнорируются.

Эта функция просто настраивается, но это не гарантирует отсутствия проблем при ее использовании. При возникновении проблем с доступом к нужной конечной точке можно воспользоваться некоторыми служебными программами для проверки подключения из консоли приложения. Вы можете использовать две консоли: одной из таких консолей является Kudu, а другая консоль находится на портале Azure. Чтобы открыть консоль Kudu из приложения, выберите последовательно пункты Инструменты>Kudu. Доступ к консоли Kudu можно также получить по адресу [sitename].scm.azurewebsites.net. После загрузки веб-сайта перейдите на вкладку Консоль отладки. Чтобы получить доступ к консоли на портале Azure из приложения, перейдите по пунктам Инструменты>Консоль.

Инструменты

В собственных приложениях Windows такие инструменты, как ping, nslookup и tracert не будут работать в консоли из-за ограничений безопасности (они работают в пользовательских контейнерах Windows). Для устранения этого недостатка добавлены два других инструмента. Для проверки работоспособности DNS добавлен инструмент с именем nameresolver.exe. Синтаксис:

nameresolver.exe hostname [optional: DNS Server]

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

Примечание

Средство nameresolver.exe в настоящее время не работает в пользовательских контейнерах Windows.

Чтобы проверить TCP-подключение по комбинации "узел: порт", можно воспользоваться следующим инструментом. Этот инструмент называется tcpping.exe и использует следующий синтаксис.

tcpping.exe hostname [optional: port]

Служебная программа tcpping сообщает, возможно ли получить доступ к определенному узлу и порту. Сообщение об успешном выполнении отображается только с том случае, когда приложение ожидает передачи данных по комбинации "узел: порт", а также есть доступ по сети из приложения к указанным узлу и порту.

Доступ для отладки к ресурсам, размещенным в виртуальной сети

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

  • Брандмауэр блокирует доступ. Если используется брандмауэр, может быть превышено время ожидания для протокола TCP. В нашем случае это 21 секунда. Проверьте подключение с помощью средства tcpping. Время ожидания для протокола TCP может быть превышено и по многим другим причинам, но начать стоит именно с этой.
  • Служба DNS недоступна. Время ожидания для DNS составляет 3 секунды на каждый DNS-сервер. Если у вас два DNS-сервера, то время ожидания составляет 6 секунд. Используйте средство nameresolver для проверки работы DNS. Инструмент nslookup нельзя использовать, так как он игнорирует настройки DNS для виртуальной сети. Если DNS-сервер недоступен, возможно, что он либо заблокирован брандмауэром или NSG, либо не работает.

Если эти рекомендации не помогут вам решить проблему, проверьте еще несколько факторов:

Интеграция региональной виртуальной сети

  • Ваш целевой адрес не соответствует требованиям RFC1918, а параметр Маршрутизировать весь трафик не включен?
  • Блокируется ли исходящий трафик из вашей подсети интеграции с помощью NSG?
  • Если вы работаете через Azure ExpressRoute или VPN, настроена ли на вашем локальном шлюзе обратная маршрутизация трафика для Azure? Если к конечным точкам в виртуальной сети вы можете получить доступ, а в локальной среде нет, то следует проверить настройку маршрутов.
  • Имеются ли у вас достаточные разрешения для настройки делегирования в подсети интеграции? Во время настройки интеграции с региональной виртуальной сетью ваша подсеть интеграции делегируется ресурсу Microsoft.Web/serverFarms. Пользовательский интерфейс интеграции с виртуальной сетью делегирует подсеть ресурсу Microsoft.Web/serverFarms автоматически. Если у вашей учетной записи нет достаточных сетевых разрешений для настройки делегирования, вам следует обратиться к пользователю, который может задать в подсети интеграции атрибуты, необходимые для делегирования подсети. Чтобы вручную делегировать подсеть интеграции, перейдите в пользовательский интерфейс подсети виртуальной сети Azure и задайте делегирование для ресурса Microsoft.Web/serverFarms.

Интеграция с виртуальной сетью на базе шлюза

  • Находится ли диапазон адресов "точка — сеть" в диапазонах, предусмотренных требованиями RFC 1918 (10.0.0.0-10.255.255.255 / 172.16.0.0-172.31.255.255 / 192.168.0.0-192.168.255.255)?
  • Отображается ли на портале шлюз как работающий? Если шлюз не работает, восстановите его работоспособность.
  • Отображаются ли сертификаты как синхронизированные или можно предположить, что конфигурация сети была изменена? Если сертификаты не синхронизированы или вы предполагаете, что в конфигурацию виртуальной сети были внесены изменения, не синхронизированные с планами ASP, выберите Синхронизировать сеть.
  • Если вы работаете через VPN, настроена ли на вашем локальном шлюзе обратная маршрутизация трафика для Azure? Если к конечным точкам в виртуальной сети вы можете получить доступ, а в локальной среде нет, то следует проверить настройку маршрутов.
  • Вы используете шлюз с реализацией совместной работы, поддерживающий сразу два таких варианта, как "точка — сеть" и ExpressRoute? Шлюзы с режимом сосуществования не поддерживаются при интеграции с виртуальной сетью.

Отладка сетевых проблем является сложной задачей, так как не видно, что блокирует доступ к определенной комбинации "узел: порт". К некоторым причинам относятся следующие:

  • На узле запущен брандмауэр, который блокирует доступ к порту приложения для диапазона IP-адресов "точка — сеть". Для реализации подключения между подсетями часто требуется разрешить общий доступ.
  • Целевой узел не работает.
  • Приложение не работает.
  • Указан неверный IP-адрес или неверное имя узла.
  • Приложение ожидает передачи данных не по тому порту, который предполагается. Вы можете сопоставить ИД процесса с портом прослушивания при помощи команды "netstat -aon" в узле конечной точки.
  • Группы безопасности сети настроены на блокирование доступа к узлу и порту приложения для диапазона IP-адресов "точка — сеть".

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

Можно выполнить дополнительные действия по отладке:

  • Войдите на виртуальную машину в вашей виртуальной сети и попробуйте из нее обратиться к нужной комбинации "узел: порт". Чтобы проверить доступ TCP, используйте команду PowerShell Test-NetConnection. Синтаксис:
Test-NetConnection hostname [optional: -Port]
  • Откройте приложение на виртуальной машине и проверьте из консоли приложения доступ к узлу и порту с помощью инструмента tcpping.

Локальные ресурсы

Если приложение не может перейти к ресурсу локально, проверьте, можно ли перейти к ресурсу через виртуальную сеть. Чтобы проверить доступ по протоколу TCP, используйте команду PowerShell Test-NetConnection. Если виртуальная машина не может подключиться к локальному ресурсу, возможно, неправильно настроено подключение VPN или ExpressRoute.

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

  • Не настроена маршрутизация для подсети или для диапазонов адресов подключений "точка — сеть" в локальном шлюзе.
  • Группы безопасности сети блокируют доступ к диапазону IP-адресов подключений "точка — сеть".
  • Локальные брандмауэры блокируют трафик из диапазона IP-адресов подключений "точка — сеть".
  • Вы пытаетесь обратиться к адресу, не соответствующему требованиям RFC 1918, используя возможности интеграции с региональной виртуальной сетью.

Удаление плана службы приложений или веб-приложения перед отключением интеграции с виртуальной сетью

Если вы удалили веб-приложение или план службы приложений без предварительного отключения интеграции с виртуальной сетью, то не сможете выполнять операции обновления или удаления в виртуальной сети или подсети, которая использовалась для интеграции с удаленным ресурсом. Делегирование подсети "Microsoft.Web/serverFarms" по-прежнему останется назначенным вашей подсети и будет препятствовать операциям обновления и удаления.

Чтобы снова выполнить обновление или удаление для подсети или виртуальной сети, нужно повторно создать интеграцию с виртуальной сетью, а затем отключить ее:

  1. Повторно создайте план службы приложений и веб-приложение (обязательно используйте точно такое же имя веб-приложения, как и раньше).
  2. Перейдите в колонку "Сеть" в веб-приложении и настройте интеграцию с виртуальной сетью.
  3. После настройки интеграции с виртуальной сетью нажмите кнопку "Отключить".
  4. Удалите план службы приложений или веб-приложение.
  5. Обновите или удалите подсеть или виртуальную сеть.

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