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


Добавление приложения IPv4 в IPv6 в виртуальной сети Azure с помощью PowerShell

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

  • Диапазон IPv6-адресов для виртуальной сети и подсети.
  • Load Balancer (цен. категория "Стандартный") с конфигурациями для интерфейсов IPv4 и IPv6.
  • Виртуальные машины с сетевыми адаптерами, имеющими конфигурации IPv4 и IPv6.
  • Общедоступный IPv6-адрес, который предоставит подсистеме балансировки нагрузки возможность подключения к Интернету по IPv6.

Azure Cloud Shell

В Azure есть Azure Cloud Shell, интерактивная оболочка среды, с которой можно работать в браузере. Для работы со службами Azure можно использовать Bash или PowerShell с Cloud Shell. Для запуска кода из этой статьи можно использовать предварительно установленные команды Cloud Shell. Ничего дополнительного в локальной среде устанавливать не нужно.

Начало работы с Azure Cloud Shell

Вариант Пример и ссылка
Нажмите кнопку Попробовать в правом верхнем углу блока кода или команд. При нажатии кнопки Попробовать код или команда не копируется в Cloud Shell автоматически. Снимок экрана: пример открытия Azure Cloud Shell с помощью кнопки
Чтобы открыть Cloud Shell в браузере, перейдите по адресу https://shell.azure.com или нажмите кнопку Запуск Cloud Shell. Кнопка запуска Azure Cloud Shell.
Нажмите кнопку Cloud Shell в строке меню в правом верхнем углу окна портала Azure. Снимок экрана: кнопка

Чтобы использовать Azure Cloud Shell, выполните следующие действия:

  1. Запустите Cloud Shell.

  2. Нажмите кнопку Копировать в блоке кода (или блоке команд), чтобы скопировать код или команду.

  3. Вставьте код или команду в окно сеанса Cloud Shell, нажав клавиши CTRL+SHIFT+V в Windows и Linux или CMD+SHIFT+V в macOS.

  4. Нажмите клавишу ВВОД, чтобы запустить код или команду.

Чтобы установить и использовать PowerShell локально для работы с этой статьей, вам понадобится модуль Azure PowerShell 6.9.0 или более поздней версии. Выполните командлет Get-Module -ListAvailable Az, чтобы узнать установленную версию. Если вам необходимо выполнить обновление, ознакомьтесь со статьей, посвященной установке модуля Azure PowerShell. При использовании PowerShell на локальном компьютере также нужно запустить Connect-AzAccount, чтобы создать подключение к Azure.

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

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

Получение группы ресурсов

Прежде чем создать виртуальную сеть с двумя стеками, нужно получить группу ресурсов с помощью командлета Get-AzResourceGroup.

$rg = Get-AzResourceGroup  -ResourceGroupName "myResourceGroupSLB"

Создание IP-адресов IPv6

Создайте общедоступный IPv6-адрес для Load Balancer (цен. категория "Стандартный") с помощью командлета New-AzPublicIpAddress. В примере ниже создается общедоступный IP-адрес версии IPv6 с именем PublicIP_v6 в группе ресурсов myResourceGroupSLB.

$PublicIP_v6 = New-AzPublicIpAddress `
  -Name "PublicIP_v6" `
  -ResourceGroupName $rg.ResourceGroupName `
  -Location $rg.Location  `
  -Sku Standard  `
  -AllocationMethod Static `
  -IpAddressVersion IPv6

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

Получите существующую конфигурацию подсистемы балансировки нагрузки, а затем добавьте в нее новые IP-адреса IPv6 с помощью командлета Add-AzLoadBalancerFrontendIpConfig:

# Retrieve the load balancer configuration
$lb = Get-AzLoadBalancer -ResourceGroupName $rg.ResourceGroupName -Name "MyLoadBalancer"

# Add IPv6 components to the local copy of the load balancer configuration
$lb | Add-AzLoadBalancerFrontendIpConfig `
  -Name "dsLbFrontEnd_v6" `
  -PublicIpAddress $PublicIP_v6

#Update the running load balancer with the new frontend
$lb | Set-AzLoadBalancer

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

Создайте серверный пул в локальной копии подсистемы балансировки нагрузки и обновите работающую подсистему балансировки нагрузки, предоставив ей новую конфигурацию серверного пула:

$lb | Add-AzLoadBalancerBackendAddressPoolConfig -Name "LbBackEndPool_v6"

# Update the running load balancer with the new backend pool
$lb | Set-AzLoadBalancer

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

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

# Retrieve the updated (live) versions of the frontend and backend pool
$frontendIPv6 = Get-AzLoadBalancerFrontendIpConfig -Name "dsLbFrontEnd_v6" -LoadBalancer $lb
$backendPoolv6 = Get-AzLoadBalancerBackendAddressPoolConfig -Name "LbBackEndPool_v6" -LoadBalancer $lb

# Create new LB rule with the frontend and backend
$lb | Add-AzLoadBalancerRuleConfig `
  -Name "dsLBrule_v6" `
  -FrontendIpConfiguration $frontendIPv6 `
  -BackendAddressPool $backendPoolv6 `
  -Protocol Tcp `
  -FrontendPort 80 `
  -BackendPort 80

#Finalize all the load balancer updates on the running load balancer
$lb | Set-AzLoadBalancer

Добавление диапазонов адресов IPv6

Добавьте диапазоны адресов IPv6 в виртуальную сеть и подсеть, в которых размещены виртуальные машины:

#Add IPv6 ranges to the VNET and subnet
#Retreive the VNET object
$vnet = Get-AzVirtualNetwork  -ResourceGroupName $rg.ResourceGroupName -Name "myVnet" 

#Add IPv6 prefix to the VNET
$vnet.addressspace.addressprefixes.add("fd00:db8:deca::/48")

#Update the running VNET
$vnet |  Set-AzVirtualNetwork

#Retrieve the subnet object from the local copy of the VNET
$subnet= $vnet.subnets[0]

#Add IPv6 prefix to the Subnet (subnet of the VNET prefix, of course)
$subnet.addressprefix.add("fd00:db8:deca::/64")

#Update the running VNET with the new subnet configuration
$vnet |  Set-AzVirtualNetwork

Добавление конфигурации IPv6 для сетевых карт

Настройте IPv6-адреса для всех сетевых карт виртуальных машин с помощью командлета Add-AzNetworkInterfaceIpConfig:

#Retrieve the NIC objects
$NIC_1 = Get-AzNetworkInterface -Name "myNic1" -ResourceGroupName $rg.ResourceGroupName
$NIC_2 = Get-AzNetworkInterface -Name "myNic2" -ResourceGroupName $rg.ResourceGroupName
$NIC_3 = Get-AzNetworkInterface -Name "myNic3" -ResourceGroupName $rg.ResourceGroupName

#Add an IPv6 IPconfig to NIC_1 and update the NIC on the running VM
$NIC_1 | Add-AzNetworkInterfaceIpConfig -Name MyIPv6Config -Subnet $vnet.Subnets[0]  -PrivateIpAddressVersion IPv6 -LoadBalancerBackendAddressPool $backendPoolv6 
$NIC_1 | Set-AzNetworkInterface

#Add an IPv6 IPconfig to NIC_2 and update the NIC on the running VM
$NIC_2 | Add-AzNetworkInterfaceIpConfig -Name MyIPv6Config -Subnet $vnet.Subnets[0]  -PrivateIpAddressVersion IPv6 -LoadBalancerBackendAddressPool $backendPoolv6 
$NIC_2 | Set-AzNetworkInterface

#Add an IPv6 IPconfig to NIC_3 and update the NIC on the running VM
$NIC_3 | Add-AzNetworkInterfaceIpConfig -Name MyIPv6Config -Subnet $vnet.Subnets[0]  -PrivateIpAddressVersion IPv6 -LoadBalancerBackendAddressPool $backendPoolv6 
$NIC_3 | Set-AzNetworkInterface

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

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

  1. В строке поиска портала введите виртуальные сети и

  2. В окне виртуальная сеть выберите myVNet.

  3. Выберите подключенные устройства в разделе "Параметры" , чтобы просмотреть подключенные сетевые интерфейсы. Виртуальная сеть двойного стека показывает три сетевых адаптера с конфигурациями IPv4 и IPv6.

    Снимок экрана: параметры подключенных устройств с адресами IPv4 и IPv6 на сетевых интерфейсах.

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

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

Remove-AzResourceGroup -Name MyAzureResourceGroupSLB

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

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