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


Настройка принудительного туннелирования в среде службы приложений

Внимание

В этой статье описывается Среда службы приложений версии 2, которая используется с изолированными планами Служба приложений. Среда службы приложений версии 1 и 2 отставаются от 31 августа 2024 года. Имеется новая версия среды службы приложений, которая проще в использовании и которая работает на более мощной инфраструктуре. Чтобы узнать больше о новой версии, начните с изучения статьи Введение в Среду службы приложений. Если вы используете Среду службы приложений версии 1, выполните действия, описанные в этой статье, чтобы перейти на новую версию.

По состоянию на 31 августа 2024 года соглашение об уровне обслуживания (SLA) и кредиты на обслуживание больше не применяются к рабочим нагрузкам Среда службы приложений версии 1 и 2, которые продолжают работать, так как они являются устаревшими продуктами. Началось списание оборудования Среда службы приложений версии 1 и 2, и это может повлиять на доступность и производительность приложений и данных.

Необходимо выполнить миграцию в Среда службы приложений версии 3 немедленно или удалить приложения и ресурсы. Мы попытаемся выполнить автоматическую миграцию всех оставшихся Среда службы приложений версии 1 и 2 на основе оптимальной работы с помощью функции миграции на месте, но корпорация Майкрософт не утверждает или не гарантирует доступность приложений после автоматической миграции. Вам может потребоваться выполнить настройку вручную, чтобы завершить миграцию и оптимизировать выбор номера SKU плана Служба приложений в соответствии с вашими потребностями. Если автоматическая миграция невозможна, ваши ресурсы и связанные данные приложения будут удалены. Мы настоятельно призываем вас действовать сейчас, чтобы избежать любого из этих экстремальных сценариев.

Если вам потребуется дополнительное время, мы можем предложить одноразовый 30-дневный льготный период для завершения миграции. Дополнительные сведения и запросы на этот льготный период см. в обзоре льготного периода, а затем перейдите к портал Azure и перейдите в колонку "Миграция" для каждого Среда службы приложений.

Последние сведения об обновлении Среда службы приложений версии 1/2 см. в Среда службы приложений обновлении для выхода на пенсию версии 1 и версии 2.

Среда службы приложений (ASE) — это развертывание службы приложений Azure в виртуальной сети Azure клиента. Многие клиенты настраивают свои виртуальные сети Azure на расширение своих локальных сетей с помощью подключений VPN или соединений Azure ExpressRoute. Принудительным туннелированием называется перенаправление исходящего интернет-трафика в подключение VPN или виртуальный модуль вместо него. Виртуальные модули часто используются для проверки и аудита исходящего сетевого трафика.

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

В виртуальной сети Azure маршрутизация выполняется на основе совпадения самого длинного префикса (LPM). При наличии нескольких маршрутов с одинаковыми совпадениями LPM маршрут выбирается по источнику в следующем порядке:

  • определяемый пользователем маршрут;
  • маршрут BGP (если используется ExpressRoute);
  • Системные маршруты

Дополнительные сведения о маршрутизации трафика в виртуальной сети см. в этой статье.

Если вы хотите направить исходящий трафик ASE не в Интернет, а в другое расположение, доступны следующие варианты:

  • Настроить в ASE прямой доступ к Интернету.
  • Настройка подсети ASE для игнорирования маршрутов BGP
  • Настроить подсеть ASE, чтобы использовать конечную точку службы для Azure SQL и службы хранилища Azure.
  • Добавление собственных IP-адресов в брандмауэр ASE Azure SQL

Включение среды службы приложений для прямого доступа к Интернету

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

  • Настройте ExpressRoute для объявления маршрута 0.0.0.0/0. Это по умолчанию направит весь исходящий трафик в локальную среду.
  • Создайте определяемые пользователем маршруты с префиксом адреса 0.0.0.0/0 и типом следующего прыжка "Интернет" и примените их к подсети ASE.

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

Если сеть уже направляет трафик в локальной среде, создайте подсеть для размещения среды ASE и настройте для нее определяемый пользователем маршрут, прежде чем развернуть ASE.

Внимание

Маршруты, указанные в UDR, должны быть достаточно конкретными, чтобы иметь приоритет над всеми маршрутами, объявленными в конфигурации ExpressRoute. В приведенном выше примере используется широкий диапазон адресов 0.0.0.0/0. Он может быть случайно заменен объявлениями маршрутов с более узкими диапазонами адресов.

Среды служб приложений с конфигурациями ExpressRoute, осуществляющие перекрестное объявление маршрутов из пути общедоступного пиринга в путь частного пиринга, не поддерживаются. Конфигурации ExpressRoute с настроенным общедоступным пирингом получают объявления маршрутов от корпорации Майкрософт. Эти объявления содержат большой набор диапазонов адресов Microsoft Azure. Если диапазоны адресов перекрестно объявляются по пути частного пиринга, все исходящие сетевые пакеты из подсети среды службы приложений направляются в локальную сетевую инфраструктуру клиента. По умолчанию этот сетевой поток не поддерживается в среде службы приложений. Чтобы решить эту проблему, необходимо остановить перекрестное объявление маршрутов между путями общедоступного и частного пиринга. Другим решением является настройка среды службы приложений для работы в конфигурации с принудительным туннелированием.

Прямой доступ к Интернету

Настройка подсети ASE для игнорирования маршрутов BGP

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

Чтобы настроить подсеть ASE для игнорирования маршрутов BGP:

  • создайте определяемый пользователем маршрут и назначьте его подсети ASE (если маршрут отсутствует);
  • на портале Azure откройте пользовательский интерфейс для таблицы маршрутов, назначенных подсети ASE. Выберите конфигурацию. Задайте для параметра "Распространение маршрутов шлюза виртуальной сети" значение "Отключено". Нажмите кнопку Сохранить. Сведения об отключении см. в документе по созданию таблицы маршрутов.

Когда вы укажите в настройках подсети ASE игнорировать все маршруты BGP, у ваших приложений не будет доступа к локальным ресурсам. Чтобы приложения имели доступ к локальным ресурсам, измените определяемый пользователем маршрут, назначенный подсети ASE, и добавьте маршруты для диапазонов локальных адресов. В качестве значения типа следующего прыжка задайте "Шлюз виртуальной сети".

Настройка среды ASE с помощью конечной точки службы

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

  1. Создайте таблицу маршрутов и назначьте ее подсети ASE. Адреса управления Среды службы приложений, соответствующие вашему региону, см. в этой статье. Создайте маршруты для этих адресов или используйте тег службы AppServiceManagement с помощью следующего прыжка в Интернете. Эти маршруты нужны, так как входящий трафик управления среды ASE должен отвечать с адреса, на который он был отправлен.

  2. Включите конечные точки службы Azure SQL и службы хранилища Azure в подсеть ASE. По завершении этого шага настройте в виртуальной сети принудительное туннелирование.

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

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

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

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

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

Принудительное туннелирование с помощью конечных точек службы

Добавление собственных IP-адресов в брандмауэр ASE Azure SQL

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

  1. Создайте таблицу маршрутов и назначьте ее подсети ASE. Адреса управления Среды службы приложений, соответствующие вашему региону, см. в этой статье. Создайте маршруты для этих адресов с типом следующего прыжка "Интернет". Эти маршруты нужны, так как входящий трафик управления среды ASE должен отвечать с адреса, на который он был отправлен.

  2. Включите конечные точки службы хранилища Azure в подсеть ASE.

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

  4. Чтобы настроить адрес исходящего трафика в существующей среде Службы приложений, откройте сайт resources.azure.com и выберите Subscription/<ИД подписки>/resourceGroups/<группа ресурсов ase>/providers/Microsoft.Web/hostingEnvironments/<имя ase>. Затем вы сможете просмотреть код JSON, в котором описана ваша среда службы приложений. Убедитесь, что вверху отображается строка read/write. Выберите Изменить. Прокрутите вниз. Измените значение userWhitelistedIpRanges с null на строку, приведенную ниже. Используйте адреса, которые нужно задать в качестве диапазона адресов исходящего трафика.

    "userWhitelistedIpRanges": ["11.22.33.44/32", "55.66.77.0/24"]
    

    Щелкните PUT в верху. Этот параметр запускает операцию масштабирования в среде службы приложений и настраивает брандмауэр.

Чтобы создать среду ASE с адресами для исходящего трафика, сделайте следующее. Следуйте указаниям в статье Создание среды ASE с помощью шаблона Azure Resource Manager и извлеките соответствующий шаблон. Отредактируйте раздел resources файла azuredeploy.json, но не в блоке properties, и включите строку для userWhitelistedIpRanges со своими значениями.

"resources": [
    {
        "apiVersion": "2015-08-01",
        "type": "Microsoft.Web/hostingEnvironments",
        "name": "[parameters('aseName')]",
        "kind": "ASEV2",
        "location": "[parameters('aseLocation')]",
        "properties": {
            "name": "[parameters('aseName')]",
            "location": "[parameters('aseLocation')]",
            "ipSslAddressCount": 0,
            "internalLoadBalancingMode": "[parameters('internalLoadBalancingMode')]",
            "dnsSuffix" : "[parameters('dnsSuffix')]",
            "virtualNetwork": {
                "Id": "[parameters('existingVnetResourceId')]",
                "Subnet": "[parameters('subnetName')]"
            },
            "userWhitelistedIpRanges":  ["11.22.33.44/32", "55.66.77.0/30"]
        }
    }
]

После внесения этих изменений трафик отправляется из ASE непосредственно в службу хранилища Azure и разрешается доступ к Azure SQL дополнительным адресам, кроме виртуального IP-адреса ASE.

Принудительное туннелирование с помощью списка разрешений SQL

Предотвращение проблем

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

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