Правила для исходящего трафика в Azure Load Balancer

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

Эта конфигурация обеспечивает:

  • маскировку IP-адресов;
  • упрощение списков разрешений;
  • сокращение числа общедоступных IP-ресурсов, требующих развертывания.

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

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

На этой схеме показана конфигурация портов SNAT на виртуальных машинах с правилами исходящей подсистемы балансировки нагрузки.

С помощью правил для исходящего трафика можно задать поведение исходящего трафика SNAT.

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

  • Виртуальные машины, на которых выполняется преобразование конкретных общедоступных IP-адресов.
    • При этом используются два правила: для серверного пула 1 используется оба синих IP-адреса, а для серверного пула 2 используется желтый префикс IP-адреса.
  • Выделение исходящих портов SNAT.
    • Если внутренний пул 2 является единственным пулом, выполняющим исходящие подключения, предоставьте все порты SNAT серверному пулу 2 и ни одного — серверному пулу 1.
  • Протоколы, для которых требуется обеспечить исходящее преобразование.
    • Если серверному пулу 2 требуются UDP-порты для исходящего трафика, а серверному пулу 1 требуется протокол TCP, присвойте портам TCP значение 1, а порту UDP значение 2.
  • Тайм-аут простоя для исходящего подключения (от 4 до 120 минут).
    • Если имеются длительные подключения с удержанием соединения, требуется зарезервировать неактивные порты для длительных подключений продолжительностью до 120 минут. Предполагается, что устаревшие подключения отброшены, а порты освобождаются в течение 4 минут для новых подключений.
  • Отправка сброса TCP при превышении тайм-аута простоя.
    • Если время тайм-аута простаивающих подключений истекло, нужно ли отправлять TCP RST клиенту и серверу, чтобы они узнали, что поток отброшен?

Внимание

Если серверный пул настроен по IP-адресу, он будет вести себя как Load Balancer категории "Базовый" с включенным исходящим трафиком по умолчанию. Для безопасной по умолчанию конфигурации и приложений с большим объемом исходящего трафика настройте серверный пул по сетевой карте.

Определение правила для исходящего трафика

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

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

Параметры обеспечивают тонкую настройку алгоритма NAT для исходящего трафика.

Горизонтальное увеличение масштаба NAT для исходящего трафика при использовании нескольких IP-адресов

Каждый дополнительный IP-адрес, предоставляемый внешним интерфейсом, обеспечивает 64 000 эфемерных портов для использования экземпляром подсистемы балансировки нагрузки в качестве портов SNAT.

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

Можно также использовать префикс общедоступного IP-адреса непосредственно с правилом для исходящего трафика.

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

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

Каждый из IP-адресов в пределах префикса общедоступного IP-адреса предоставляет дополнительно 64 000 эфемерных портов на каждый IP-адрес для использования подсистемой балансировки нагрузки в качестве портов SNAT.

Тайм-аут простоя исходящего потока и сброс TCP

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

Поведение подсистемы балансировки нагрузки по умолчанию заключается в том, что поток автоматически отключается перед переходом в режим тайм-аута простоя для исходящего трафика. Параметр enableTCPReset обеспечивает предсказуемое поведение приложения и управление им. Этот параметр определяет, следует ли отсылать двунаправленный сброс TCP (TCP RST) по истечении времени перед переходом в режим тайм-аута простоя для исходящего трафика.

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

Явная защита исходящих подключений и управление ими

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

Этот параметр можно использовать двумя способами:

  1. Предотвращение входящего IP-адреса при исходящем SNAT. Отключите исходящие SNAT-подключения в правиле балансировки нагрузки.

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

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

Внимание

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

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

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

Убедитесь, что виртуальная машина может получать запросы проб работоспособности из Azure Load Balancer.

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

Сценарии исходящих правил

Сценарий 1. Привязка исходящих подключений к определенному набору общедоступных IP-адресов или префиксу

Сведения

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

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

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

  1. Создайте префикс общедоступного IP-адреса или общедоступный IP-адрес.
  2. Создайте общедоступную подсистему балансировки нагрузки в ценовой категории "Стандартный".
  3. Создайте внешний интерфейс, ссылающийся на префикс общедоступного IP-адреса или общедоступный IP-адрес, который хотите использовать.
  4. Повторно используйте серверный пул или создайте его и разместите в этом пуле общедоступной подсистемы балансировки нагрузки виртуальные машины.
  5. Настройте в общедоступной подсистеме балансировки нагрузки правило для исходящего трафика, позволяющее управлять NAT для исходящего трафика этих виртуальных машин с помощью внешнего интерфейса. Не рекомендуется использовать правило балансировки нагрузки для исходящего трафика; отключите исходящий SNAT в правиле балансировки нагрузки.

Сценарий 2. Изменение выделения SNAT-портов

Сведения

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

Если вы испытываете нехватку SNAT, увеличьте количество предоставленных портов SNAT с 1024 по умолчанию.

Каждый общедоступный IP-адрес может становиться одним из следующих 64 000 эфемерных портов. Число виртуальных машин в серверном пуле определяет количество портов, передаваемых на каждую виртуальную машину. Одна виртуальная машина во внутреннем пуле имеет доступ к максимум 64 000 портов. Для двух виртуальных машин с помощью правила для исходящего трафика может быть предоставлено максимум 32 000 портов SNAT (2 x 32 000 = 64 000).

Для настройки портов SNAT, заданных по умолчанию, можно использовать правила для исходящего трафика. Вы предоставляете большее или меньшее количество портов, чем предусмотрено выделением портов SNAT по умолчанию. Каждый общедоступный IP-адрес из внешнего интерфейса правила исходящего трафика предоставляет до 64 000 временных портов для использования в качестве портов SNAT.

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

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

Вернитесь к выделению порта по умолчанию, задав 0 в качестве числа портов. Дополнительные сведения о выделении портов SNAT по умолчанию см. в разделе Таблица распределения портов SNAT.

Сценарий 3. Включение только исходящего трафика

Сведения

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

Примечание.

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

Сценарий 4. NAT для исходящего трафика только для виртуальных машин (без входящего трафика)

Примечание.

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

Сведения

В этом сценарии правила для исходящего трафика Azure Load Balancer и NAT виртуальной сети — это параметры, доступные для исходящего трафика из виртуальной сети.

  1. Создайте префикс общедоступного IP-адреса.
  2. Создайте общедоступную подсистему балансировки нагрузки в ценовой категории "Стандартный".
  3. Создайте интерфейс, связанный с общедоступным IP-адресом или префиксом, выделенным для исходящего трафика.
  4. Создайте серверный пул для виртуальных машин.
  5. Разместите виртуальные машины в серверном пуле.
  6. Настройте правило для исходящего трафика, чтобы разрешить NAT для исходящего трафика.

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

Сценарий 5. Исходящий трафик NAT для внутренней подсистемы балансировки нагрузки ценовой категории "Стандартный"

Примечание.

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

Сведения

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

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

Сценарий 6. Включение протоколов TCP и UDP системы преобразование сетевых адресов для исходящего трафика с помощью общедоступной стандартной подсистемы балансировки нагрузки

Сведения

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

  1. Отключите исходящие SNAT-подключения в правиле балансировки нагрузки.
  2. Настройте правило для исходящего трафика в той же подсистеме балансировки нагрузки.
  3. Повторно используйте серверный пул, который уже использовался для виртуальных машин.
  4. Укажите для протокола значение "Все" как часть правила для исходящего трафика.

Если используются только правила NAT для входящего трафика, NAT для исходящего трафика обеспечиваться не будет.

  1. Поместите виртуальные машины в серверный пул.
  2. Определите одну или несколько интерфейсных IP-конфигураций с общедоступными IP-адресами или префиксом общедоступного IP-адреса.
  3. Настройте правило для исходящего трафика в той же подсистеме балансировки нагрузки.
  4. Укажите для протокола значение "Все" как часть правила для исходящего трафика.

Ограничения

  • Максимальное количество используемых эфемерных портов на один интерфейсный IP-адрес составляет 64 000.
  • Диапазон настраиваемого времени ожидания перед переходом исходящих подключений в режим простоя составляет 4–120 минут (240–7200 секунд).
  • Подсистема балансировки нагрузки не поддерживает ICMP для исходящего NAT, единственными поддерживаемыми протоколами являются TCP и UDP.
  • Правила исходящего трафика можно применять только к основной конфигурации IPv4 сетевого адаптера. Невозможно создать правило исходящего трафика для дополнительных конфигураций IPv4 виртуальной машины или NVA. Поддерживается несколько сетевых карт.
  • Правила исходящего трафика для вторичной IP-конфигурации поддерживаются только для IPv6.
  • Все виртуальные машины в группе доступности должны быть добавлены во внутренний пул для исходящих подключений.
  • Все виртуальные машины в масштабируемом наборе виртуальных машин должны быть добавлены во внутренний пул для исходящих подключений.

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