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


Миграция с правил NAT для входящих подключений версии 1 до версии 2

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

Внимание

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

Правило NAT версии 1

Версия 1 — это устаревший подход для привязки фронтального порта Azure Load Balancer к каждому бекенд-экземпляру. Правила применяются к сетевой карте сетевого интерфейса серверного экземпляра. Для экземпляров Масштабируемых наборов виртуальных машин (VMSS) в Azure правила NAT для входящего трафика автоматически создаются и удаляются в процессе их увеличения или уменьшения. Для управления правилами NAT для входящего трафика версии 1 в экземплярах VMSS используйте свойство Inbound NAT Pools.

Правило NAT версии 2

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

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

Как узнать, использую ли я первую версию правил входящего NAT?

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

Снимок экрана конфигурации правила NAT версии 1 в портале Azure.

Для правил NAT версии 2 значение типа будет пулом серверов с заданным целевым пулом серверов.

Снимок экрана конфигурации правила NAT версии 2 в портале Azure.

Чтобы программно определить, использует ли развертывание версии 1 правил NAT для входящего трафика, проверьте конфигурацию подсистемы балансировки нагрузки с помощью Azure CLI или PowerShell. Если хотя бы одно из свойств в конфигурации InboundNATRule заполнено, тогда развертывание — это версия 1 правил NAT для входящих подключений. Правила версии 2 будут иметь backendAddressPool свойство вместо backendIPConfiguration свойства.

Как перейти с версии 1 на версию 2?

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

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

Миграция вручную

Для миграции на 2 правил NAT для входящего трафика необходимо выполнить следующие три шага.

  1. Удалите версию 1 правил NAT для входящего трафика в конфигурации подсистемы балансировки нагрузки.
  2. Удалите ссылку на правило NAT в конфигурации масштабируемого набора виртуальных машин или виртуальной машины.
    1. Все экземпляры масштабируемого набора виртуальных машин необходимо обновить.
  3. Разверните версию 2 правил NAT для входящего трафика.

Виртуальная машина

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


az network lb inbound-nat-rule delete -g MyResourceGroup --lb-name MyLoadBalancer --name NATruleV1

az network nic ip-config inbound-nat-rule remove -g MyResourceGroup --nic-name MyNic -n MyIpConfig --inbound-nat-rule MyNatRule 

az network lb inbound-nat-rule create -g MyResourceGroup --lb-name MyLoadBalancer -n MyNatRule --protocol Tcp --frontend-port-range-start 201 --frontend-port-range-end 500 --backend-port 22 --backend-address-pool MybackendPool

Масштабируемый набор виртуальных машин

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


az network lb inbound-nat-pool delete  -g MyResourceGroup --lb-name MyLoadBalancer -n MyNatPool  

az vmss update -g MyResourceGroup -n MyVMScaleSet --remove virtualMachineProfile.networkProfile.networkInterfaceConfigurations[0].ipConfigurations[0].loadBalancerInboundNatPools  

az vmss update-instances --instance-ids '*' --resource-group MyResourceGroup --name MyVMScaleSet 

az network lb inbound-nat-rule create -g MyResourceGroup --lb-name MyLoadBalancer -n MyNatRule --protocol Tcp --frontend-port-range-start 201 --frontend-port-range-end 500 --backend-port 22 --backend-address-pool MybackendPool

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

Процесс миграции будет повторно использовать существующие серверные пулы с членством в соответствии с пулами NAT, которые будут перенесены; Если не найден соответствующий серверный пул, скрипт завершит работу (без внесения изменений). Кроме того, используйте -backendPoolReuseStrategy параметр, чтобы всегда создавать серверные пулы (NoReuse) или создавать новый внутренний пул, если соответствующий пул не существует (OptionalFirstMatch). Серверные пулы и связи правил NAT можно обновить после миграции, чтобы соответствовать вашим предпочтениям.

Предварительные условия

Перед началом процесса миграции убедитесь, что выполнены следующие предварительные требования:

Установите модуль AzureLoadBalancerNATPoolMigration

С помощью следующей команды AzureLoadBalancerNATPoolMigration установите модуль из PowerShell Gallery:

# Install the AzureLoadBalancerNATPoolMigration module

Install-Module -Name AzureLoadBalancerNATPoolMigration -Scope CurrentUser -Repository PSGallery -Force 

Переход от пулов NAT к правилам NAT

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

  1. Подключитесь к Azure с помощью Connect-AzAccount.

  2. Соберите имена целевого балансировщика нагрузки для обновления правил NAT и имя группы ресурсов.

  3. Выполните команду миграции с именами ресурсов, заменив заполнители <loadBalancerResourceGroupName> и <loadBalancerName>:

    # Run the migration command 
    
    Start-AzNATPoolMigration -ResourceGroupName <loadBalancerResourceGroupName> -LoadBalancerName <loadBalancerName>
    
    

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