PowerShell を使用して Azure 仮想ネットワーク 内で IPv4 アプリケーションを IPv6 に追加する

この記事では、Standard Load Balancer とパブリック IP を使用して、Azure 仮想ネットワーク内の既存の IPv4 アプリケーションに IPv6 接続を追加する方法について説明します。 インプレース アップグレードには次のものが含まれます。

  • 仮想ネットワークとサブネットの IPv6 アドレス空間
  • IPv4 と IPV6 の両方のフロントエンド構成の Standard Load Balancer
  • IPv4 + IPv6 の両方が構成された NIC を使用する VM
  • IPv6 パブリック IP。これにより、ロード バランサーは、インターネットに接続する IPv6 接続を取得します

Azure Cloud Shell

Azure では、ブラウザーを介して使用できる対話型のシェル環境、Azure Cloud Shell がホストされています。 Cloud Shell で Bash または PowerShell を使用して、Azure サービスを操作できます。 ローカル環境に何もインストールしなくても、Cloud Shell にプレインストールされているコマンドを使用して、この記事のコードを実行できます。

Azure Cloud Shell を開始するには、以下のようにします。

オプション 例とリンク
コードまたはコマンド ブロックの右上隅にある [使ってみる] を選択します。 [使ってみる] を選択しても、コードまたはコマンドは Cloud Shell に自動的にはコピーされません。 Screenshot that shows an example of Try It for Azure Cloud Shell.
https://shell.azure.com に移動するか、[Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。 Button to launch Azure Cloud Shell.
Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。 Screenshot that shows the Cloud Shell button in the Azure portal

Azure Cloud Shell を使用するには、以下のようにします。

  1. Cloud Shell を開始します。

  2. コード ブロック (またはコマンド ブロック) の [コピー] ボタンを選択し、コードまたはコマンドをコピーします。

  3. Windows と Linux では Ctrl+Shift+V キーを選択し、macOS では Cmd+Shift+V キーを選択して、コードまたはコマンドを Cloud Shell セッションに貼り付けます。

  4. Enter キーを選択して、コードまたはコマンドを実行します。

PowerShell をローカルにインストールして使用することを選択する場合、この記事では Azure PowerShell モジュール バージョン 6.9.0 以降が必要になります。 インストールされているバージョンを確認するには、Get-Module -ListAvailable Az を実行します。 アップグレードする必要がある場合は、Azure PowerShell モジュールのインストールに関するページを参照してください。 PowerShell をローカルで実行している場合、Connect-AzAccount を実行して Azure との接続を作成することも必要です。

前提条件

この記事では、クイック スタート: Standard Load Balancer を作成する - Azure PowerShell に関するページに説明されているように、Standard Load Balancer をデプロイしたことを前提としています。

リソース グループの取得

デュアル スタック仮想ネットワークを作成する前に、Get-AzResourceGroup でリソース グループを取得する必要があります。

$rg = Get-AzResourceGroup  -ResourceGroupName "myResourceGroupSLB"

IPv6 IP アドレスの作成

Standard Load Balancer の New-AzPublicIpAddress を使用して、パブリック IPv6 アドレスを作成します。 次の例では、PublicIP_v6 という名前の IPv6 パブリック IP アドレスを myResourceGroupSLB リソース グループに作成します。

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

ロード バランサー フロントエンドの構成

既存のロード バランサー構成を取得し、次のように Add-AzLoadBalancerFrontendIpConfig を使用して新しい IPv6 IP アドレスを追加します。

# 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 アドレス範囲の追加

次のように、VM をホストする仮想ネットワークとサブネットに 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

NIC への IPv6 構成の追加

次のように Add-AzNetworkInterfaceIpConfig を使用して、すべての VM NIC を IPv6 アドレスで構成します。

#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

Azure portal で IPv6 デュアル スタック仮想ネットワークを表示する

次のようにして、Azure portal で IPv6 デュアル スタック仮想ネットワークを表示することができます。

  1. ポータルの検索バーに「仮想ネットワーク」と入力し、

  2. [仮想ネットワーク] ウィンドウで [myVNet] を選びます。

  3. [設定][接続されているデバイス] を選び、接続されているネットワーク インターフェイスを表示します。 デュアル スタック仮想ネットワークには、IPv4 と IPv6 の両方の構成を持つ 3 つの NIC が表示されます。

    Screenshot of connected devices settings displaying IPv4 and IPv6 addresses on network interfaces.

リソースをクリーンアップする

必要がなくなったら、Remove-AzResourceGroup コマンドを使用して、リソース グループ、VM、およびすべての関連リソースを削除できます。

Remove-AzResourceGroup -Name MyAzureResourceGroupSLB

次のステップ

この記事では、IPv4 フロントエンド IP 構成を持つ既存の Standard Load Balancer をデュアル スタック (IPv4 および IPv6) 構成に更新しました。 また、IPv6 構成をバックエンド プール内の VM の NIC と、それらをホストする仮想ネットワークに追加しました。 Azure 仮想ネットワークでの IPv6 サポートの詳細については、Azure Virtual Network の IPv6 の概要に関するページを参照してください