Ресурс шлюза NAT Azure

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

Архитектура шлюза NAT

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

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

Схема ресурса шлюза NAT с виртуальными машинами.

Рис. Шлюз NAT для исходящего трафика в Интернет

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

подсети;

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

Следующие конфигурации подсети нельзя использовать с шлюзом NAT:

  • При подключении шлюза NAT к подсети предполагается маршрут по умолчанию к Интернету. Только один шлюз NAT может служить маршрутом по умолчанию в Интернет для подсети.

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

  • Шлюз NAT нельзя использовать с подсетью шлюза. Подсеть шлюза — это назначенная подсеть для VPN-шлюза для отправки зашифрованного трафика между виртуальной сетью Azure и локальным расположением. Дополнительные сведения о подсети шлюза см. в подсети шлюза.

Статические общедоступные IP-адреса

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

  • Шлюз NAT нельзя использовать с общедоступными IP-адресами или префиксами IPv6.

  • Шлюз NAT нельзя использовать с основными общедоступными IP-адресами SKU.

Порты SNAT

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

Дополнительные сведения о портах SNAT и шлюзе NAT Azure см. в статье "Преобразование сетевых адресов источника" (SNAT) с помощью шлюза Azure NAT.

Если к одному ресурсу шлюза NAT подключено несколько подсетей в виртуальной сети, инвентаризация портов SNAT, предоставляемая шлюзом NAT, предоставляется совместно во всех подсетях.

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

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

Схема выделения портов SNAT.

Рисунок: выделение портов SNAT

Один шлюз NAT может масштабироваться до 16 IP-адресов. Каждый общедоступный IP-адрес шлюза NAT предоставляет 64 512 портов SNAT для исходящих подключений. Шлюз NAT может масштабировать до более чем 1 миллиона портов SNAT. Tcp и UDP — это отдельные инвентаризации портов SNAT и не связаны с шлюзом NAT.

Зоны доступности

Шлюз NAT можно создать в определенной зоне доступности или поместить в нее. Если шлюз NAT не помещается в ни одну зону, Azure выбирает зону для шлюза NAT для размещения.

Избыточные между зонами общедоступные IP-адреса можно использовать с зональными или без ресурсов шлюза NAT ЗОНЫ.

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

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

После развертывания шлюза NAT невозможно изменить выбор зоны.

Протоколы

Шлюз NAT взаимодействует с заголовками транспорта IP и IP-адресов потоков UDP и TCP. Шлюз NAT не зависит от полезных данных уровня приложений. Другие IP-протоколы не поддерживаются.

Сброс TCP

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

Поток подключения может не существовать, если:

  • Время ожидания простоя достигнуто после периода бездействия в потоке подключения, и подключение автоматически удаляется.

  • Отправитель, либо из сетевой стороны Azure, либо из общедоступной интернет-стороны, отправил трафик после удаления подключения.

Пакет сброса TCP отправляется только при обнаружении трафика в удаленном потоке подключения. Эта операция означает, что пакет сброса TCP может не отправляться сразу после удаления потока подключения.

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

Время ожидания простоя TCP

Шлюз NAT предоставляет настраиваемый диапазон времени ожидания простоя от 4 минут до 120 минут для протоколов TCP. Протоколы UDP имеют неконфигурируемое время ожидания простоя в течение 4 минут.

При простое подключения шлюз NAT удерживается на порту SNAT до истечения времени ожидания простоя подключения. Так как временные таймеры времени ожидания ожидания tcp могут ненужно увеличить вероятность исчерпания портов SNAT, не рекомендуется увеличить длительность времени ожидания простоя TCP дольше, чем время ожидания по умолчанию в 4 минуты. Таймер простоя не влияет на поток, который никогда не проходит бездействия.

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

Таймер времени ожидания простоя UDP не настраивается, следует использовать UDP keepalives, чтобы убедиться, что значение времени ожидания простоя не достигнуто, и что подключение поддерживается. В отличие от TCP-подключений поддержка UDP на одной стороне подключения применяется только к потоку трафика в одном направлении. UDP keepalives необходимо включить с обеих сторон потока трафика, чтобы обеспечить работоспособность потока трафика.

таймеры

Таймеры повторного использования портов

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

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

Таймер Description Значение
TCP FIN После закрытия подключения пакетом TCP FIN активируется 65-секундный таймер, содержащий порт SNAT. Порт SNAT доступен для повторного использования после окончания таймера. 65 секунд
TCP RST После закрытия подключения пакетом TCP RST (сбросом), активируется 16-секундный таймер, удерживающий порт SNAT. По истечении времени таймера порт доступен для повторного использования. 16 секунд
TCP-порт в состоянии "Полуоткрытый" Во время установки подключения, когда одна конечная точка подключения ожидает подтверждения из другой конечной точки, активируется 30-секундный таймер. Если трафик не обнаружен, подключение закрывается. После закрытия подключения исходный порт доступен для повторного использования в той же конечной точке назначения. 30 секунд

Для трафика UDP после закрытия подключения порт удерживается на 65 секунд, прежде чем он будет доступен для повторного использования.

Таймеры тайм-аута простоя

Таймер Description Значение
Время ожидания простоя TCP Соединения TCP могут переходить в режим простоя, если данные между конечными точками не передаются в течение длительного времени. Таймер для отчета времени ожидания простоя TCP можно установить в диапазоне от 4 минут (по умолчанию) до 120 минут (2 часа). Трафик потока сбрасывает таймер времени ожидания простоя. Настраивается; от 4 минут (по умолчанию) до 120 минут
Тайм-аут простоя UDP Соединения UDP могут переходить в режим простоя, если данные между конечными точками не передаются в течение длительного времени. Таймеры тайм-аута простоя UDP установлены на 4 минуты и не настраиваются. Трафик потока сбрасывает таймер времени ожидания простоя. Не настраивается; 4 минуты

Примечание.

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

Пропускная способность

Каждый шлюз NAT может обеспечить до 50 Гбит/с пропускной способности. Ограничение скорости пропускной способности данных разделяется между исходящими и входящий (ответ) данными. Пропускная способность данных ограничена на 25 Гбит/с для исходящего трафика и 25 Гбит/с для входящих (ответных) данных на ресурс шлюза NAT. Развертывания можно разделить на несколько подсетей и назначить каждую подсеть или группу подсетей шлюзу NAT для горизонтального масштабирования.

Производительность

Шлюз NAT может поддерживать до 50 000 одновременных подключений на общедоступный IP-адрес к той же конечной точке назначения через Интернет для TCP и UDP. Шлюз NAT может обрабатывать 1 млн пакетов в секунду и масштабировать до 5 МЛН пакетов в секунду.

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

Ограничения

  • Базовые подсистемы балансировки нагрузки и основные общедоступные IP-адреса несовместимы с шлюзом NAT. Вместо этого используйте Load Balancer и общедоступные IP-адреса ценовой категории "Стандартный".

  • Шлюз NAT не поддерживает ICMP

  • Фрагментация IP-адресов недоступна для шлюза NAT.

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

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

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