Развертывание приложения с двойным стеком 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 следующим образом:
- На портале в строке поиска введите dsVnet.
- Когда в результатах поиска появится пункт myVirtualNetwork, выберите его. Откроется страница Обзор для виртуальной сети с двумя стеками с именем dsVnet. В виртуальной сети с двойным стеком показаны две сетевые карты с конфигурациями IPv4 и IPv6, расположенные в подсети с двойным стеком и именем dsSubnet.
Очистка ресурсов
Вы можете удалить ставшие ненужными группу ресурсов, виртуальную машину и все связанные с ней ресурсы, выполнив команду az group delete.
az group delete --name DsResourceGroup01
Следующие шаги
Из этой статьи вы узнали, как создать Load Balancer (цен. категория "Стандартный") с двойной интерфейсной IP-конфигурацией (IPv4 и IPv6). Вы также создали две виртуальные машины, которые включали сетевые адаптеры с двумя IP-конфигурациями (IPV4 + IPv6), которые были добавлены в внутренний пул подсистемы балансировки нагрузки. Дополнительные сведения о поддержке IPv6 в виртуальных сетях Azure см. в статье Что такое IPv6 для виртуальной сети Azure?