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


Надежность в шлюзе NAT Azure

Шлюз NAT Azure — это полностью управляемая служба преобразования сетевых адресов (NAT), которая обеспечивает исходящее подключение к Интернету для ресурсов, подключенных к частной виртуальной сети. Служба предоставляет преобразование сетевых адресов источника (SNAT) для исходящих подключений и преобразование сетевых адресов назначения (DNAT) для пакетов ответа только для исходных исходящих подключений. Так как шлюз NAT Azure обрабатывает трафик для критически важных ресурсов виртуальной сети, он предназначен для обеспечения высокой устойчивости.

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

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

Это важно

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

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

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

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

    Замечание

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

  • Выделите достаточно общедоступных IP-адресов для требований к пиковой нагрузке на подключение. Недостаточно IP-адресов может вызвать проблемы с нехваткой портов SNAT и доступностью.

  • Используйте публичные IP-адреса StandardV2 SKU с шлюзом Azure NAT StandardV2. Шлюз Azure NAT StandardV2 не поддерживает общедоступные IP-адреса SKU уровня "Стандартный".

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

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

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

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

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

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

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

Дополнительные сведения об архитектуре и избыточности шлюза Azure NAT см. в ресурсах шлюза Azure NAT.

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

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

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

Исчерпание портов SNAT возникает, когда приложения делают несколько независимых подключений к одному IP-адресу и порту, что исчерпает порты SNAT, доступные для исходящего IP-адреса. Исчерпание портов SNAT может отображаться как временный сбой в приложении. Чтобы снизить вероятность временных сбоев, связанных с NAT, выполните следующие задачи:

  • Свести к минимуму вероятность исчерпания портов SNAT. Настройте приложения для корректной обработки SNAT путем реализации пула подключений и правильного управления жизненным циклом подключения.

  • Развертывание достаточных общедоступных IP-адресов. Один шлюз NAT поддерживает несколько общедоступных IP-адресов, и каждый общедоступный IP-адрес предоставляет отдельный набор портов SNAT.

  • Отслеживайте метрику доступности PATH шлюза NAT. Используйте Azure Monitor для обнаружения потенциальных проблем с подключением. Настройте оповещения о сбоях подключения и исчерпании портов SNAT для упреждающего выявления и устранения временных условий сбоя, прежде чем они влияют на исходящее подключение приложений. Дополнительные сведения см. в разделе метрики и оповещения шлюза NAT Azure.

  • Избегайте установки высоких значений времени ожидания простоя. Если вы устанавливаете значение тайм-аута простоя для подключений шлюза NAT значительно выше значения по умолчанию в 4 минуты, то во время большого объема подключений может возникнуть исчерпание портов SNAT.

Дополнительные сведения об управлении подключениями и устранении неполадок в шлюзе NAT Azure см. в статье "Устранение неполадок с подключением к шлюзу NAT Azure".

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

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

Шлюз NAT Azure поддерживает зоны доступности как в зонально-резервируемых конфигурациях, так и в зональных конфигурациях.

  • Избыточность между зонами: SKU StandardV2 для шлюза NAT в Azure обеспечивает автоматическую избыточность между зонами. Зональная избыточность распространяет экземпляры шлюза NAT по всем зонам доступности в регионе. Зонально-избыточная конфигурация обеспечивает устойчивость и надежность рабочих нагрузок.

    Схема зонально-избыточного развертывания шлюза Azure NAT.

    На схеме показан Интернет в верхней части экрана. Под Интернетом находится ресурс шлюза NAT, который находится в виртуальной сети и охватывает три зоны доступности. Подсеть в виртуальной сети содержит три виртуальных машины. Каждая виртуальная машина размещается в разной зоне доступности. Первая виртуальная машина находится в зоне доступности 1, вторая виртуальная машина находится в зоне доступности 2, а третья виртуальная машина находится в зоне доступности 3. Три отдельные стрелки в каждой зоне доступности указывают поток исходящего трафика из шлюза NAT в Интернет.

  • Зональный: При использовании номера SKU "Стандартный" (версии 1) можно при необходимости создать зональную конфигурацию. Вы развертываете зональный шлюз NAT в выбранной зоне доступности. При развертывании шлюза NAT в определенной зоне он предоставляет исходящее подключение к Интернету явным образом из этой зоны. Зональные общедоступные IP-адреса из другой зоны доступности не допускаются. Весь трафик из подключенных подсетей направляется через шлюз NAT, даже если ресурсы подсети находятся в другой зоне доступности.

    Схема зонального развертывания шлюза Azure NAT.

    На схеме показан Интернет в верхней части экрана. В инфраструктуре ниже уровня интернета размещается ресурс NAT-шлюза, развернутый только в зоне доступности 1. Шлюз NAT подключается к подсети, содержащей одну виртуальную машину. Виртуальная сеть содержит подсеть, расположенную в зоне доступности 1. Зона доступности 2 и зона доступности 3 пусты. Стрелка указывает поток исходящего трафика из шлюза NAT в Интернет.

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

    Это важно

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

    При развертывании виртуальных машин в нескольких зонах доступности и использовании зональных шлюзов NAT можно создать зональные стеки в каждой зоне доступности. Чтобы создать зональные стеки, разверните следующие ресурсы:

    • Несколько подсетей: Создайте отдельную подсеть для каждой зоны доступности, а не одну подсеть, которая охватывает зоны.

    • Зональные шлюзы NAT: Разверните шлюз NAT в той же зоне доступности, что и подключенная подсеть.

    • Назначение виртуальной машины вручную: Поместите каждую виртуальную машину в правильную зону доступности и соответствующую подсеть зоны доступности.

    Схема зональной изоляции путем создания зональных стеков.

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

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

Требования

  • Поддержка регионов: Вы можете развертывать зонально-избыточные и зональные шлюзы NAT в любом регионе, поддерживающем зоны доступности.

  • SKU: Чтобы развернуть зонально-избыточный шлюз NAT, используйте SKU StandardV2. Чтобы развернуть зональный шлюз NAT, используйте Standard SKU. Мы рекомендуем номер SKU StandardV2.

  • Общедоступные IP-адреса: Требования к общедоступным IP-адресам, подключенным к шлюзу NAT, зависят от конфигурации SKU и развертывания.

    SKU шлюза NAT Azure Тип поддержки зоны доступности Требования к общедоступному IP-адресу
    StandardV2 Резервирование по зонам Общедоступный IP-адрес StandardV2
    Стандарт Зональный Общедоступный IP-адрес стандартного уровня с избыточностью по зонам или в той же зоне, что и шлюз NAT
    Стандарт Незональный Общедоступный стандартный IP-адрес, с резервированием по зонам или в любой зоне

Себестоимость

Поддержка зоны доступности для шлюза NAT Azure не требует дополнительных затрат. Дополнительные сведения см. в разделе о ценах на шлюз Azure NAT.

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

  • Новые ресурсы: Действия развертывания зависят от конфигурации зоны доступности:

    • Избыточность между зонами: Сведения о развертывании нового шлюза NAT, избыточного между зонами, с помощью SKU StandardV2 см. в статье "Создание шлюза Azure NAT standardV2".

    • Зональный: Сведения о развертывании нового зонального шлюза NAT с помощью номера SKU уровня "Стандартный" см. в статье "Создание шлюза NAT". При создании шлюза NAT выберите ее зону доступности вместо выбора зоны "Нет".

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

    Чтобы обновить шлюз NAT Standard до StandardV2, необходимо создать новый публичный IP-адрес, использующий SKU StandardV2.

Поведение, когда все зоны работоспособны

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

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

    • Зональная избыточность: Трафик может проходить через инстанцию шлюза NAT в любой зоне доступности.

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

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

Поведение во время сбоя зоны

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

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

    • Зонально-избыточный: Шлюз NAT Azure обнаруживает и реагирует на сбои в зонах доступности. Вам не нужно ничего делать, чтобы инициировать переключение зоны доступности.

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

  • Уведомление: Корпорация Майкрософт не уведомляет вас об отключении зоны. Однако вы можете использовать Azure Resource Health для отслеживания работоспособности отдельного ресурса и настроить оповещения о работоспособности ресурсов , чтобы уведомить вас о проблемах. Вы также можете использовать службу "Работоспособность служб Azure ", чтобы понять общую работоспособность службы, включая любые сбои зоны, и вы можете настроить оповещения о работоспособности служб , чтобы уведомить вас о проблемах.

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

  • Активные запросы: Поведение активного запроса зависит от конфигурации зоны доступности, используемой шлюзом NAT.

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

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

      Если вы перенаправляете трафик, исходящий общедоступный IP-адрес изменяется, поэтому может потребоваться повторно установить сеансы протокола TCP.

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

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

    • Зональная избыточность: Существующие подключения из зоны сбоя могут потерять соединение. Клиенты могут немедленно повторно подключаться, а запросы перенаправляются к экземпляру в другой зоне. Все оставшиеся подключения из здоровых зон сохраняются.

    • Зональный: Исходящее подключение остается недоступным, пока зона не восстановится или пока не перенаправляется трафик с помощью альтернативных методов подключения или шлюзов NAT в других зонах.

  • Перенаправка трафика: Поведение перенаправки трафика зависит от конфигурации зоны доступности, используемой шлюзом NAT.

    • Зональная избыточность: Новые запросы на подключение направляются через экземпляр NAT-шлюза в работоспособной зоне доступности.

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

    • Зональный: Необходимо обеспечить отказоустойчивость на уровне приложения, используя альтернативные методы подключения или перенаправляя трафик на шлюзы NAT в других зонах.

Восстановление зоны

Шлюз NAT Azure — это бестатусная служба, поэтому операции возврата к исходному состоянию не требуют вмешательства вручную.

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

Тестирование на сбои в зоне

Параметры тестирования сбоев зоны зависят от конфигурации зоны доступности, которую использует экземпляр.

  • Зонально-избыточный: Платформа шлюза NAT Azure управляет маршрутизацией трафика, отработкой отказа и восстановлением после сбоя для зонально-избыточных шлюзов NAT. Эти управляемые функции не требуют запуска каких-либо действий вручную или проверки процессов сбоя зоны доступности.

  • Зональный: Вы несете ответственность за подготовку и тестирование планов отказоустойчивости в случае потенциального сбоя зоны.

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

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

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

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

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

Соглашение об уровне обслуживания NAT виртуальной сети Azure охватывает шлюз NAT Azure. Соглашение об уровне обслуживания доступности применяется только при наличии двух или более работоспособных виртуальных машин. Он также исключает исчерпание портов SNAT из вычислений простоя.