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


Развертывание приложения с двойным стеком IPv6 с помощью Azure Load Balancer

В этой статье показано, как развернуть приложение с двойным стеком (IPv4 + IPv6) с помощью Standard Load Balancer в Azure. Сценарий включает в себя виртуальную сеть с двумя стеками и подсетью с двумя стеками, стандартную подсистему балансировки нагрузки с двумя конфигурациями интерфейсов (IPv4 + IPv6), виртуальные машины с сетевыми адаптерами, имеющими двойную конфигурацию IP, двойные правила группы безопасности сети и два общедоступных IP-адреса.

Предпосылки

  • Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см. в руководстве по быстрому началу работы с Bash в Azure Cloud Shell.

  • Если вы предпочитаете запускать справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, попробуйте запустить Azure CLI в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.

    • Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы завершить процесс проверки подлинности, выполните действия, отображаемые в терминале. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.

    • Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.

    • Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.

Развертывание приложения с двойным стеком (IPv4 + IPv6)

Следуйте этим инструкциям в Azure CLI, чтобы развернуть приложение с двойным стеком (IPv4 и IPv6) с помощью Standard Load Balancer в Azure.

Создание группы ресурсов

Прежде чем создать виртуальную сеть с двумя стеками, необходимо создать группу ресурсов, выполнив команду az group create. В следующем примере создается группа ресурсов с именем DsResourceGroup01 в расположении eastus :

az group create \
--name DsResourceGroup01 \
--location eastus

Создание общедоступных IP-адресов IPv4 и IPv6 для подсистемы балансировки нагрузки

Для доступа к конечным точкам IPv4 и IPv6 в Интернете требуются общедоступные IP-адреса IPv4 и IPv6 для подсистемы балансировки нагрузки. Создайте общедоступный IP-адрес с помощью az network public-ip create. В следующем примере создается общедоступный IP-адрес IPv4 и IPv6 с именем dsPublicIP_v4 и dsPublicIP_v6 в группе ресурсов DsResourceGroup01 :

# Create an IPV4 IP address
az network public-ip create \
--name dsPublicIP_v4  \
--resource-group DsResourceGroup01  \
--location eastus  \
--sku STANDARD  \
--allocation-method static  \
--version IPv4

# Create an IPV6 IP address
az network public-ip create \
--name dsPublicIP_v6  \
--resource-group DsResourceGroup01  \
--location eastus \
--sku STANDARD  \
--allocation-method static  \
--version IPv6

Создание общедоступных IP-адресов для виртуальных машин

Для удаленного доступа к виртуальным машинам в Интернете требуется общедоступный IP-адрес IPv4 для виртуальных машин. Создайте общедоступный IP-адрес с помощью az network public-ip create.

az network public-ip create \
--name dsVM0_remote_access  \
--resource-group DsResourceGroup01 \
--location eastus  \
--sku Standard  \
--allocation-method static  \
--version IPv4

az network public-ip create \
--name dsVM1_remote_access  \
--resource-group DsResourceGroup01  \
--location eastus  \
--sku Standard  \
--allocation-method static  \
--version IPv4

Создать стандартный балансировщик нагрузки

В этом разделе вы настраиваете двойные интерфейсные IP-адреса (IPv4 и IPv6) и пул адресов внутренней подсистемы для балансировщика нагрузки, а затем создаете стандартный балансировщик нагрузки.

Создание подсистемы балансировки нагрузки

Создайте балансировщик нагрузки уровня "Стандартный" с помощью az network lb create под названием dsLB, который включает в себя интерфейсный пул с именем dsLbFrontEnd_v4 и внутренний пул с именем dsLbBackEndPool_v4, связанный с общедоступным IPv4-адресом dsPublicIP_v4, созданным на предыдущем шаге.

az network lb create \
--name dsLB  \
--resource-group DsResourceGroup01 \
--sku Standard \
--location eastus \
--frontend-ip-name dsLbFrontEnd_v4  \
--public-ip-address dsPublicIP_v4  \
--backend-pool-name dsLbBackEndPool_v4

Создание интерфейса IPv6

Создайте внешний IP-адрес IPV6 командой az network lb frontend-ip create. В следующем примере создается интерфейсная IP-конфигурация с именем dsLbFrontEnd_v6 и подключается адрес dsPublicIP_v6 :

az network lb frontend-ip create \
--lb-name dsLB  \
--name dsLbFrontEnd_v6  \
--resource-group DsResourceGroup01  \
--public-ip-address dsPublicIP_v6

Настройка пула внутренних адресов IPv6

Создайте пулы внутренних адресов IPv6 с помощью az network lb address-pool create. В следующем примере создается пул внутренних адресов с именем dsLbBackEndPool_v6 для включения виртуальных машин с конфигурациями сетевого адаптера IPv6:

az network lb address-pool create \
--lb-name dsLB  \
--name dsLbBackEndPool_v6  \
--resource-group DsResourceGroup01

Создание пробы работоспособности

Создайте проверку работоспособности с помощью команды az network lb probe create для мониторинга состояния виртуальных машин.

az network lb probe create -g DsResourceGroup01  --lb-name dsLB -n dsProbe --protocol tcp --port 3389

Создать правило балансировщика нагрузки

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

Создайте правило балансировщика нагрузки с помощью команды az network lb rule create. В следующем примере создаются правила подсистемы балансировки нагрузки с именами dsLBrule_v4 и dsLBrule_v6, а также выполняется балансировка трафика на TCP-порту 80 в интерфейсных конфигурациях IP-адреса версий IPv4 и IPv6.

az network lb rule create \
--lb-name dsLB  \
--name dsLBrule_v4  \
--resource-group DsResourceGroup01  \
--frontend-ip-name dsLbFrontEnd_v4  \
--protocol Tcp  \
--frontend-port 80  \
--backend-port 80  \
--probe-name dsProbe \
--backend-pool-name dsLbBackEndPool_v4


az network lb rule create \
--lb-name dsLB  \
--name dsLBrule_v6  \
--resource-group DsResourceGroup01 \
--frontend-ip-name dsLbFrontEnd_v6  \
--protocol Tcp  \
--frontend-port 80 \
--backend-port 80  \
--probe-name dsProbe \
--backend-pool-name dsLbBackEndPool_v6

Создание сетевых ресурсов

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

Создайте группу доступности

Чтобы повысить доступность приложения, разместите виртуальные машины в группе доступности.

Создайте группу доступности с az vm availability-set create. В следующем примере создается группа доступности с именем dsAVset.

az vm availability-set create \
--name dsAVset  \
--resource-group DsResourceGroup01  \
--location eastus \
--platform-fault-domain-count 2  \
--platform-update-domain-count 2  

Создание группы безопасности сети

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

Создание группы безопасности сети

Создайте группу безопасности сети с az network nsg create

az network nsg create \
--name dsNSG1  \
--resource-group DsResourceGroup01  \
--location eastus

Создание правила группы безопасности сети для входящих и исходящих подключений

Создайте правило группы безопасности сети, чтобы разрешить подключения RDP через порт 3389, подключение к Интернету через порт 80, и создайте правило для исходящих подключений с командой az network nsg rule create.

# Create inbound rule for port 3389
az network nsg rule create \
--name allowRdpIn  \
--nsg-name dsNSG1  \
--resource-group DsResourceGroup01  \
--priority 100  \
--description "Allow Remote Desktop In"  \
--access Allow  \
--protocol "*"  \
--direction Inbound  \
--source-address-prefixes "*"  \
--source-port-ranges "*"  \
--destination-address-prefixes "*"  \
--destination-port-ranges 3389

# Create inbound rule for port 80
az network nsg rule create \
--name allowHTTPIn  \
--nsg-name dsNSG1  \
--resource-group DsResourceGroup01  \
--priority 200  \
--description "Allow HTTP In"  \
--access Allow  \
--protocol "*"  \
--direction Inbound  \
--source-address-prefixes "*"  \
--source-port-ranges 80  \
--destination-address-prefixes "*"  \
--destination-port-ranges 80

# Create outbound rule

az network nsg rule create \
--name allowAllOut  \
--nsg-name dsNSG1  \
--resource-group DsResourceGroup01  \
--priority 300  \
--description "Allow All Out"  \
--access Allow  \
--protocol "*"  \
--direction Outbound  \
--source-address-prefixes "*"  \
--source-port-ranges "*"  \
--destination-address-prefixes "*"  \
--destination-port-ranges "*"

Создание виртуальной сети

Создайте виртуальную сеть с помощью команды az network vnet create. В следующем примере создается виртуальная сеть с именем dsVNET с подсетями dsSubNET_v4 и dsSubNET_v6:

# Create the virtual network
az network vnet create \
--name dsVNET \
--resource-group DsResourceGroup01 \
--location eastus  \
--address-prefixes "10.0.0.0/16" "fd00:db8:deca::/48"

# Create a single dual stack subnet

az network vnet subnet create \
--name dsSubNET \
--resource-group DsResourceGroup01 \
--vnet-name dsVNET \
--address-prefixes "10.0.0.0/24" "fd00:db8:deca:deed::/64" \
--network-security-group dsNSG1

Создание сетевых адаптеров

Создайте виртуальные сетевые адаптеры для каждой виртуальной машины с помощью az network nic create. В следующем примере создается виртуальный сетевой адаптер для каждой виртуальной машины. У каждой сетевой карты есть две IP-конфигурации (1 конфигурация IPv4, 1 конфигурация IPv6). Вы создаете конфигурацию IPV6 с помощью az network nic ip-config create.

# Create NICs
az network nic create \
--name dsNIC0  \
--resource-group DsResourceGroup01 \
--network-security-group dsNSG1  \
--vnet-name dsVNET  \
--subnet dsSubNet  \
--private-ip-address-version IPv4 \
--lb-address-pools dsLbBackEndPool_v4  \
--lb-name dsLB  \
--public-ip-address dsVM0_remote_access

az network nic create \
--name dsNIC1 \
--resource-group DsResourceGroup01 \
--network-security-group dsNSG1 \
--vnet-name dsVNET \
--subnet dsSubNet \
--private-ip-address-version IPv4 \
--lb-address-pools dsLbBackEndPool_v4 \
--lb-name dsLB \
--public-ip-address dsVM1_remote_access

# Create IPV6 configurations for each NIC

az network nic ip-config create \
--name dsIp6Config_NIC0  \
--nic-name dsNIC0  \
--resource-group DsResourceGroup01 \
--vnet-name dsVNET \
--subnet dsSubNet \
--private-ip-address-version IPv6 \
--lb-address-pools dsLbBackEndPool_v6 \
--lb-name dsLB

az network nic ip-config create \
--name dsIp6Config_NIC1 \
--nic-name dsNIC1 \
--resource-group DsResourceGroup01 \
--vnet-name dsVNET \
--subnet dsSubNet \
--private-ip-address-version IPv6 \
--lb-address-pools dsLbBackEndPool_v6 \
--lb-name dsLB

Создание виртуальных машин

Создайте виртуальные машины с помощью az vm create. В следующем примере создаются две виртуальные машины и необходимые компоненты виртуальной сети, если они еще не существуют.

Создайте виртуальную машину dsVM0 следующим образом:

 az vm create \
--name dsVM0 \
--resource-group DsResourceGroup01 \
--nics dsNIC0 \
--size Standard_A2 \
--availability-set dsAVset \
--image MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest  

Создайте виртуальную машину dsVM1 следующим образом:

az vm create \
--name dsVM1 \
--resource-group DsResourceGroup01 \
--nics dsNIC1 \
--size Standard_A2 \
--availability-set dsAVset \
--image MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest 

Виртуальная сеть IPv6 с двойным стеком на портале Azure

Вы можете просмотреть виртуальную сеть IPv6 с двумя стеками на портале Azure следующим образом:

  1. На портале в строке поиска введите dsVnet.
  2. Когда в результатах поиска появится пункт myVirtualNetwork, выберите его. Откроется страница Обзор для виртуальной сети с двумя стеками с именем dsVnet. В виртуальной сети с двойным стеком показаны две сетевые карты с конфигурациями IPv4 и IPv6, расположенные в подсети с двойным стеком и именем dsSubnet.

Очистка ресурсов

Вы можете удалить ставшие ненужными группу ресурсов, виртуальную машину и все связанные с ней ресурсы, выполнив команду az group delete.

 az group delete --name DsResourceGroup01

Дальнейшие действия