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


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

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

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.

Необходимые компоненты

  • Используйте среду 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.

  • Для работы с этой статьей требуется Azure CLI версии 2.0.49 или более поздней. Если вы используете Azure Cloud Shell, последняя версия уже установлена.

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

Прежде чем создать виртуальную сеть с двойным стеком, необходимо создать группу ресурсов с помощью команды 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) и пула внутренних адресов для подсистемы балансировки нагрузки, а затем создание Load Balancer (цен. категория .

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

С помощью команды az network lb create создайте Load Balancer ценовой категории "Стандартный", с именем dsLB, который содержит внешний пул с именем dsLbFrontEnd_v4 и внутренний пул с именем dsLbBackEndPool_v4, которые связаны с общедоступным IP-адресом 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, а также присоединяется адрес dsLbFrontEnd_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.

IPv6 dual stack virtual network in Azure

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

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

 az group delete --name DsResourceGroup01

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

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