この記事では、Azure で Standard Load Balancer を使用してデュアル スタック (IPv4 + IPv6) アプリケーションをデプロイする方法について説明します。 このシナリオには、デュアル スタック サブネットを備えたデュアル スタック仮想ネットワーク、デュアル (IPv4 + IPv6) フロントエンド構成を備えた Standard Load Balancer、デュアル IP 構成を持つ NIC を備えた VM、デュアル ネットワーク セキュリティ グループ規則、デュアル パブリック IP が含まれます。
Azure PowerShell の次の手順に従って、Azure で Standard Load Balancer を使用してデュアル スタック (IPv4 + IPv6) アプリケーションをデプロイします。
リソース グループを作成する
デュアル スタック仮想ネットワークを作成する前に、New-AzResourceGroup でリソース グループを作成する必要があります。 次の例では、myRGDualStack という名前のリソース グループを east us の場所に作成します。
$rg = New-AzResourceGroup `
-ResourceGroupName "dsRG1" `
-Location "east us"
IPv4 および IPv6 パブリック IP アドレスを作成する
インターネットから仮想マシンにアクセスするには、ロード バランサーの IPv4 および IPv6 パブリック IP アドレスが必要です。
New-AzPublicIpAddress を使用してパブリック IP アドレスを作成します。 次の例では、dsRG1 リソース グループ内に dsPublicIP_v4 および dsPublicIP_v6 という名前の IPv4 および IPv6 パブリック IP アドレスを作成します。
$PublicIP_v4 = New-AzPublicIpAddress `
-Name "dsPublicIP_v4" `
-ResourceGroupName $rg.ResourceGroupName `
-Location $rg.Location `
-AllocationMethod Static `
-IpAddressVersion IPv4 `
-Sku Standard
$PublicIP_v6 = New-AzPublicIpAddress `
-Name "dsPublicIP_v6" `
-ResourceGroupName $rg.ResourceGroupName `
-Location $rg.Location `
-AllocationMethod Static `
-IpAddressVersion IPv6 `
-Sku Standard
RDP 接続を使用して仮想マシンにアクセスするには、New-AzPublicIpAddress で仮想マシンの IPv4 パブリック IP アドレスを作成します。
$RdpPublicIP_1 = New-AzPublicIpAddress `
-Name "RdpPublicIP_1" `
-ResourceGroupName $rg.ResourceGroupName `
-Location $rg.Location `
-AllocationMethod Static `
-Sku Standard `
-IpAddressVersion IPv4
$RdpPublicIP_2 = New-AzPublicIpAddress `
-Name "RdpPublicIP_2" `
-ResourceGroupName $rg.ResourceGroupName `
-Location $rg.Location `
-AllocationMethod Static `
-Sku Standard `
-IpAddressVersion IPv4
Standard Load Balancer を作成する
このセクションでは、ロード バランサーのデュアル フロントエンド IP (IPv4 および IPv6) とバックエンド アドレス プールを構成してから、Standard ロード バランサーを作成します。
フロントエンド IP を作成する
New-AzLoadBalancerFrontendIpConfig を使ってフロントエンド IP を作成します。 次の例では、dsLbFrontEnd_v4 および dsLbFrontEnd_v6 という名前の IPv4 および IPv6 フロントエンド IP 構成を作成します。
$frontendIPv4 = New-AzLoadBalancerFrontendIpConfig `
-Name "dsLbFrontEnd_v4" `
-PublicIpAddress $PublicIP_v4
$frontendIPv6 = New-AzLoadBalancerFrontendIpConfig `
-Name "dsLbFrontEnd_v6" `
-PublicIpAddress $PublicIP_v6
後でデプロイされた仮想マシンの New-AzLoadBalancerBackendAddressPoolConfig を使用してバックエンド アドレス プールを作成します。 次の例では、 dsLbBackEndPool_v4 と dsLbBackEndPool_v6 という名前のバックエンド アドレス プールを作成し、IPV4 と IPv6 の両方の NIC 構成を持つ仮想マシンを含めます。
$backendPoolv4 = New-AzLoadBalancerBackendAddressPoolConfig `
-Name "dsLbBackEndPool_v4"
$backendPoolv6 = New-AzLoadBalancerBackendAddressPoolConfig `
-Name "dsLbBackEndPool_v6"
ヘルスプローブの作成
Add-AzLoadBalancerProbeConfig を使用して正常性プローブを作成し、VM の正常性を監視します。
$probe = New-AzLoadBalancerProbeConfig -Name MyProbe -Protocol tcp -Port 3389 -IntervalInSeconds 15 -ProbeCount 2
ロード バランサー規則の作成
ロード バランサー規則の目的は、一連の VM に対するトラフィックの分散方法を定義することです。 着信トラフィック用のフロントエンド IP 構成と、トラフィックを受信するためのバックエンド IP プールを、必要な発信元ポートと宛先ポートと共に定義します。 確実に正常な VM のみでトラフィックを受信するために、必要に応じて、正常性プローブを定義できます。 Basic Load Balancer では IPv4 プローブを使用して、VM 上の IPv4 と IPv6 の両方のエンドポイントの正常性を評価します。 Standard Load Balancer には、明示的な IPv6 正常性プローブのサポートが含まれます。
Add-AzLoadBalancerRuleConfig を使用して、ロード バランサー規則を作成します。 次の例では、dsLBrule_v4 および dsLBrule_v6 という名前のロード バランサー規則を作成し、IPv4 および IPv6 フロントエンド IP 構成に応じて、TCP ポート 80 のトラフィックを負荷分散します。
$lbrule_v4 = New-AzLoadBalancerRuleConfig `
-Name "dsLBrule_v4" `
-FrontendIpConfiguration $frontendIPv4 `
-BackendAddressPool $backendPoolv4 `
-Protocol Tcp `
-FrontendPort 80 `
-BackendPort 80 `
-probe $probe
$lbrule_v6 = New-AzLoadBalancerRuleConfig `
-Name "dsLBrule_v6" `
-FrontendIpConfiguration $frontendIPv6 `
-BackendAddressPool $backendPoolv6 `
-Protocol Tcp `
-FrontendPort 80 `
-BackendPort 80 `
-probe $probe
ロード バランサーの作成
New-AzLoadBalancer を使用して、Standard ロード バランサーを作成します。 次の例では、前述の手順で作成した IPv4 と IPv6 フロントエンド IP の構成、バックエンド プール、および負荷分散規則を使用して、myLoadBalancer という名前のパブリック Standard Load Balancer を作成します。
$lb = New-AzLoadBalancer `
-ResourceGroupName $rg.ResourceGroupName `
-Location $rg.Location `
-Name "MyLoadBalancer" `
-Sku "Standard" `
-FrontendIpConfiguration $frontendIPv4,$frontendIPv6 `
-BackendAddressPool $backendPoolv4,$backendPoolv6 `
-LoadBalancingRule $lbrule_v4,$lbrule_v6 `
-Probe $probe
ネットワーク リソースを作成する
VM をいくつかデプロイしてから、バランサーをテストできるようになる前に、サポート ネットワーク リソース (可用性セット、ネットワーク セキュリティ グループ、仮想ネットワーク、および仮想 NIC) を作成する必要があります。
可用性セットの作成
アプリの高可用性を高めるには、可用性セットに VM を配置します。
可用性セットを作成するには、New-AzAvailabilitySet を使用します。 次の例では、myAvailabilitySet という名前の可用性セットを作成します。
$avset = New-AzAvailabilitySet `
-ResourceGroupName $rg.ResourceGroupName `
-Location $rg.Location `
-Name "dsAVset" `
-PlatformFaultDomainCount 2 `
-PlatformUpdateDomainCount 2 `
-Sku aligned
ネットワーク セキュリティ グループの作成
仮想ネットワーク内の受信と送信の通信を制御する規則のネットワーク セキュリティ グループを作成します。
ポート 3389 のネットワーク セキュリティ グループの規則を作成する
New-AzNetworkSecurityRuleConfig を使用してポート 3389 経由の RDP 接続を許可するネットワーク セキュリティ グループ規則を作成します。
$rule1 = New-AzNetworkSecurityRuleConfig `
-Name 'myNetworkSecurityGroupRuleRDP' `
-Description 'Allow RDP' `
-Access Allow `
-Protocol Tcp `
-Direction Inbound `
-Priority 100 `
-SourceAddressPrefix * `
-SourcePortRange * `
-DestinationAddressPrefix * `
-DestinationPortRange 3389
ポート 80 のネットワーク セキュリティ グループ規則を作成する
New-AzNetworkSecurityRuleConfig を使用して、ポート 80 経由のインターネット接続を許可するネットワーク セキュリティ グループ規則を作成します。
$rule2 = New-AzNetworkSecurityRuleConfig `
-Name 'myNetworkSecurityGroupRuleHTTP' `
-Description 'Allow HTTP' `
-Access Allow `
-Protocol Tcp `
-Direction Inbound `
-Priority 200 `
-SourceAddressPrefix * `
-SourcePortRange * `
-DestinationAddressPrefix * `
-DestinationPortRange 80
ネットワーク セキュリティ グループの作成
New-AzNetworkSecurityGroup を使用して、ネットワーク セキュリティ グループを作成します。
$nsg = New-AzNetworkSecurityGroup `
-ResourceGroupName $rg.ResourceGroupName `
-Location $rg.Location `
-Name "dsNSG1" `
-SecurityRules $rule1,$rule2
仮想ネットワークを作成する
New-AzVirtualNetwork を使用して仮想ネットワークを作成します。 次の例では、mySubnet と共に dsVnet という名前の仮想ネットワークを作成します。
# Create dual stack subnet
$subnet = New-AzVirtualNetworkSubnetConfig `
-Name "dsSubnet" `
-AddressPrefix "10.0.0.0/24","fd00:db8:deca:deed::/64"
# Create the virtual network
$vnet = New-AzVirtualNetwork `
-ResourceGroupName $rg.ResourceGroupName `
-Location $rg.Location `
-Name "dsVnet" `
-AddressPrefix "10.0.0.0/16","fd00:db8:deca::/48" `
-Subnet $subnet
NIC の作成
New-AzNetworkInterface を使用して仮想 NIC を作成します。 次の例では、IPv4 と IPv6 の両方の構成を持つ 2 つの仮想 NIC を作成します。 (以降の手順では、アプリ用に作成する VM ごとに仮想 NIC を 1 つ)。
$Ip4Config=New-AzNetworkInterfaceIpConfig `
-Name dsIp4Config `
-Subnet $vnet.subnets[0] `
-PrivateIpAddressVersion IPv4 `
-LoadBalancerBackendAddressPool $backendPoolv4 `
-PublicIpAddress $RdpPublicIP_1
$Ip6Config=New-AzNetworkInterfaceIpConfig `
-Name dsIp6Config `
-Subnet $vnet.subnets[0] `
-PrivateIpAddressVersion IPv6 `
-LoadBalancerBackendAddressPool $backendPoolv6
$NIC_1 = New-AzNetworkInterface `
-Name "dsNIC1" `
-ResourceGroupName $rg.ResourceGroupName `
-Location $rg.Location `
-NetworkSecurityGroupId $nsg.Id `
-IpConfiguration $Ip4Config,$Ip6Config
$Ip4Config=New-AzNetworkInterfaceIpConfig `
-Name dsIp4Config `
-Subnet $vnet.subnets[0] `
-PrivateIpAddressVersion IPv4 `
-LoadBalancerBackendAddressPool $backendPoolv4 `
-PublicIpAddress $RdpPublicIP_2
$NIC_2 = New-AzNetworkInterface `
-Name "dsNIC2" `
-ResourceGroupName $rg.ResourceGroupName `
-Location $rg.Location `
-NetworkSecurityGroupId $nsg.Id `
-IpConfiguration $Ip4Config,$Ip6Config
仮想マシンを作成する
次のように、Get-Credential を使用して VM の管理者のユーザー名とパスワードを設定します。
$cred = get-credential -Message "DUAL STACK VNET SAMPLE: Please enter the Administrator credential to log into the VMs."
New-AzVM を使用して VM を作成できるようになりました。 次の例では、2 つの VM と必要な仮想ネットワーク コンポーネントを (まだ存在しない場合は) 作成します。
$vmsize = "Standard_A2"
$ImagePublisher = "MicrosoftWindowsServer"
$imageOffer = "WindowsServer"
$imageSKU = "2019-Datacenter"
$vmName= "dsVM1"
$VMconfig1 = New-AzVMConfig -VMName $vmName -VMSize $vmsize -AvailabilitySetId $avset.Id 3> $null | Set-AzVMOperatingSystem -Windows -ComputerName $vmName -Credential $cred -ProvisionVMAgent 3> $null | Set-AzVMSourceImage -PublisherName $ImagePublisher -Offer $imageOffer -Skus $imageSKU -Version "latest" 3> $null | Set-AzVMOSDisk -Name "$vmName.vhd" -CreateOption fromImage 3> $null | Add-AzVMNetworkInterface -Id $NIC_1.Id 3> $null
$VM1 = New-AzVM -ResourceGroupName $rg.ResourceGroupName -Location $rg.Location -VM $VMconfig1
$vmName= "dsVM2"
$VMconfig2 = New-AzVMConfig -VMName $vmName -VMSize $vmsize -AvailabilitySetId $avset.Id 3> $null | Set-AzVMOperatingSystem -Windows -ComputerName $vmName -Credential $cred -ProvisionVMAgent 3> $null | Set-AzVMSourceImage -PublisherName $ImagePublisher -Offer $imageOffer -Skus $imageSKU -Version "latest" 3> $null | Set-AzVMOSDisk -Name "$vmName.vhd" -CreateOption fromImage 3> $null | Add-AzVMNetworkInterface -Id $NIC_2.Id 3> $null
$VM2 = New-AzVM -ResourceGroupName $rg.ResourceGroupName -Location $rg.Location -VM $VMconfig2
IPv4 および IPv6 エンドポイントの IP アドレスを確認する
get-AzNetworkInterface
を使用してリソース グループのネットワーク インターフェイス オブジェクトをすべて取得し、このデプロイで使用される IP をまとめます。 また、get-AzpublicIpAddress
を使用して、Load Balancer の IPv4 および IPv6 エンドポイントのフロントエンド アドレスを取得します。
$rgName= "dsRG1"
$NICsInRG= get-AzNetworkInterface -resourceGroupName $rgName
write-host `nSummary of IPs in this Deployment:
write-host ******************************************
foreach ($NIC in $NICsInRG) {
$VMid= $NIC.virtualmachine.id
$VMnamebits= $VMid.split("/")
$VMname= $VMnamebits[($VMnamebits.count-1)]
write-host `nPrivate IP addresses for $VMname
$IPconfigsInNIC= $NIC.IPconfigurations
foreach ($IPconfig in $IPconfigsInNIC) {
$IPaddress= $IPconfig.privateipaddress
write-host " "$IPaddress
IF ($IPconfig.PublicIpAddress.ID) {
$IDbits= ($IPconfig.PublicIpAddress.ID).split("/")
$PipName= $IDbits[($IDbits.count-1)]
$PipObject= get-azPublicIpAddress -name $PipName -resourceGroup $rgName
write-host " "RDP address: $PipObject.IpAddress
}
}
}
write-host `nPublic IP addresses on Load Balancer:
(get-AzpublicIpAddress -resourcegroupname $rgName | where { $_.name -notlike "RdpPublicIP*" }).IpAddress
次の図には、2 つの VM のプライベート IPv4 および IPv6 アドレスと、Load Balancer のフロントエンド IPv4 および IPv6 IP アドレスをリストするサンプル出力が示されています。
Azure portal で IPv6 デュアル スタック仮想ネットワークを表示する
次のようにして、Azure portal で IPv6 デュアル スタック仮想ネットワークを表示することができます。
- ポータルの検索バーで、「dsVnet」と入力します。
- 検索結果に dsVnet が表示されたら、それを選択します。 これにより、dsVnet という名前のデュアル スタック仮想ネットワークの [概要] ページが起動します。 デュアル スタック仮想ネットワークには、dsSubnet という名前のデュアル スタック サブネットにある、IPv4 と IPv6 の両方の構成を持つ 2 つの NIC が表示されます。
リソースをクリーンアップする
必要がなくなったら、Remove-AzResourceGroup コマンドを使用して、リソース グループ、VM、およびすべての関連リソースを削除できます。
Remove-AzResourceGroup -Name dsRG1
Azure CLI で次の手順に従って、Azure で Standard Load Balancer を使用してデュアル スタック (IPv4 + IPv6) アプリケーションをデプロイします。
リソース グループを作成する
デュアルスタック仮想ネットワークを作成する前に、 az group create を使用してリソース グループを作成する必要があります。 次の例では、 DsResourceGroup01 という名前のリソース グループを eastus の場所に作成します。
az group create \
--name DsResourceGroup01 \
--location eastus
ロード バランサーの IPv4 および IPv6 パブリック IP アドレスを作成する
インターネット上の IPv4 および IPv6 エンドポイントにアクセスするには、ロード バランサーの IPv4 および IPv6 パブリック IP アドレスが必要です。
az network public-ip create を使用してパブリック IP アドレスを作成します。 次の例では、dsResourceGroup01 リソース グループに dsPublicIP_v4 および dsPublicIP_v6 という名前の IPv4 および IPv6 パブリック IP アドレスを作成します。
# 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
VM のパブリック IP アドレスを作成する
インターネット上の VM にリモートでアクセスするには、VM の IPv4 パブリック IP アドレスが必要です。
az network public-ip create を使用してパブリック IP アドレスを作成します。
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
Standard Load Balancer を作成する
このセクションでは、ロード バランサーのデュアル フロントエンド IP (IPv4 および IPv6) とバックエンド アドレス プールを構成してから、Standard ロード バランサーを作成します。
ロード バランサーの作成
az network lb create という名前の dsLB を使用して Standard Load Balancer を作成します。これには、dsLbFrontEnd_v4という名前のフロントエンド プール、前の手順で作成した IPv4 パブリック IP アドレスdsPublicIP_v4に関連付けられている dsLbBackEndPool_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 フロントエンドを作成する
az network lb frontend-ip create を使用して IPV6 フロントエンド IP を作成します。 次の例では、dsLbFrontEnd_v6という名前 の フロントエンド IP 構成を作成し、 dsPublicIP_v6 アドレスをアタッチします。
az network lb frontend-ip create \
--lb-name dsLB \
--name dsLbFrontEnd_v6 \
--resource-group DsResourceGroup01 \
--public-ip-address dsPublicIP_v6
az network lb address-pool create を使用して IPv6 バックエンド アドレス プールを作成します。 次の例では、 DSLBBACKENDPOOL_V6 という名前 のバックエンド アドレス プールを作成して、IPv6 NIC 構成の VM を含めます。
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
ロード バランサー規則の作成
ロード バランサー規則の目的は、一連の VM に対するトラフィックの分散方法を定義することです。 着信トラフィック用のフロントエンド IP 構成と、トラフィックを受信するためのバックエンド IP プールを、必要な発信元ポートと宛先ポートと共に定義します。
ロード バランサー規則は、az network lb rule create で作成します。 次の例では、dsLBrule_v4 および dsLBrule_v6 という名前のロード バランサー規則を作成し、IPv4 および IPv6 フロントエンド IP 構成に応じて、TCP ポート 80 のトラフィックを負荷分散します。
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
ネットワーク リソースを作成する
一部の VM をデプロイする前に、サポートするネットワーク リソース (可用性セット、ネットワーク セキュリティ グループ、仮想ネットワーク、仮想 NIC) を作成する必要があります。
可用性セットの作成
アプリの可用性を向上させるには、VM を可用性セットに配置します。
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
受信接続と送信接続のネットワーク セキュリティ グループ規則を作成する
ネットワーク セキュリティ グループ規則を作成して、ポート 3389 経由の RDP 接続、ポート 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 を使用して仮想ネットワークを作成します。 次の例では、サブネットdsSubNET_v4とdsSubNET_v6を使用して dsVNET という名前の仮想ネットワークを作成します。
# 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
NIC の作成
az network nic create を使用して、VM ごとに仮想 NIC を作成します。 次の例では、VM ごとに仮想 NIC を作成します。 各 NIC には、2 つの IP 構成 (1 つの IPv4 構成、1 つの IPv6 構成) があります。
az network nic ip-config create を使用して IPV6 構成を作成します。
# 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 を使用して VM を作成します。 次の例では、2 つの VM と必要な仮想ネットワーク コンポーネントを (まだ存在しない場合は) 作成します。
次のように仮想マシン 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
Azure portal で IPv6 デュアル スタック仮想ネットワークを表示する
次のようにして、Azure portal で IPv6 デュアル スタック仮想ネットワークを表示することができます。
- ポータルの検索バーで、「dsVnet」と入力します。
- 検索結果に [myVirtualNetwork] が表示されたら、それを選択します。 これにより、dsVnet という名前のデュアル スタック仮想ネットワークの [概要] ページが起動します。 デュアル スタック仮想ネットワークには、dsSubnet という名前のデュアル スタック サブネットにある、IPv4 と IPv6 の両方の構成を持つ 2 つの NIC が表示されます。
リソースをクリーンアップする
必要がなくなったら、az group delete コマンドを使用して、リソース グループ、VM、およびすべての関連リソースを削除できます。
az group delete --name DsResourceGroup01
この記事で説明されているテンプレートを使用して、Azure で Standard Load Balancer を使用してデュアル スタック (IPv4 + IPv6) アプリケーションをデプロイします。
必要な構成
テンプレート内のテンプレート セクションを検索して、それらが発生する場所を確認します。
仮想ネットワークの IPv6 アドレススペース
追加するテンプレートのセクション:
"addressSpace": {
"addressPrefixes": [
"[variables('vnetv4AddressRange')]",
"[variables('vnetv6AddressRange')]"
IPv6 仮想ネットワーク addressSpace 内の IPv6 サブネット
追加するテンプレートのセクション:
{
"name": "V6Subnet",
"properties": {
"addressPrefix": "[variables('subnetv6AddressRange')]"
}
NIC の IPv6 構成
追加するテンプレートのセクション:
{
"name": "ipconfig-v6",
"properties": {
"privateIPAllocationMethod": "Dynamic",
"privateIPAddressVersion":"IPv6",
"subnet": {
"id": "[variables('v6-subnet-id')]"
},
"loadBalancerBackendAddressPools": [
{
"id": "[concat(resourceId('Microsoft.Network/loadBalancers','loadBalancer'),'/backendAddressPools/LBBAP-v6')]"
}
IPv6 ネットワーク セキュリティ グループ (NSG) 規則
{
"name": "default-allow-rdp",
"properties": {
"description": "Allow RDP",
"protocol": "Tcp",
"sourcePortRange": "33819-33829",
"destinationPortRange": "5000-6000",
"sourceAddressPrefix": "fd00:db8:deca:deed::/64",
"destinationAddressPrefix": "fd00:db8:deca:deed::/64",
"access": "Allow",
"priority": 1003,
"direction": "Inbound"
}
条件付き構成
ネットワーク仮想アプライアンスを使用している場合は、ルート テーブルに IPv6 ルートを追加します。 それ以外の場合、この構成は省略可能です。
{
"type": "Microsoft.Network/routeTables",
"name": "v6route",
"apiVersion": "[variables('ApiVersion')]",
"location": "[resourceGroup().location]",
"properties": {
"routes": [
{
"name": "v6route",
"properties": {
"addressPrefix": "fd00:db8:deca:deed::/64",
"nextHopType": "VirtualAppliance",
"nextHopIpAddress": "fd00:db8:ace:f00d::1"
}
オプションの構成
仮想ネットワークの IPv6 インターネット アクセス
{
"name": "LBFE-v6",
"properties": {
"publicIPAddress": {
"id": "[resourceId('Microsoft.Network/publicIPAddresses','lbpublicip-v6')]"
}
IPv6 パブリック IP アドレス
{
"apiVersion": "[variables('ApiVersion')]",
"type": "Microsoft.Network/publicIPAddresses",
"name": "lbpublicip-v6",
"location": "[resourceGroup().location]",
"sku": {
"name": "Standard"
},
"properties": {
"publicIPAllocationMethod": "Static",
"publicIPAddressVersion": "IPv6"
}
Load Balancer の IPv6 フロントエンド
{
"name": "LBFE-v6",
"properties": {
"publicIPAddress": {
"id": "[resourceId('Microsoft.Network/publicIPAddresses','lbpublicip-v6')]"
}
Load Balancer の IPv6 バックエンド アドレス プール
"backendAddressPool": {
"id": "[concat(resourceId('Microsoft.Network/loadBalancers', 'loadBalancer'), '/backendAddressPools/LBBAP-v6')]"
},
"protocol": "Tcp",
"frontendPort": 8080,
"backendPort": 8080
},
"name": "lbrule-v6"
受信ポートと送信ポートを関連付ける IPv6 ロード バランサー規則
{
"name": "ipconfig-v6",
"properties": {
"privateIPAllocationMethod": "Dynamic",
"privateIPAddressVersion":"IPv6",
"subnet": {
"id": "[variables('v6-subnet-id')]"
},
"loadBalancerBackendAddressPools": [
{
"id": "[concat(resourceId('Microsoft.Network/loadBalancers','loadBalancer'),'/backendAddressPools/LBBAP-v6')]"
}
サンプル VM テンプレート JSON
Azure Resource Manager テンプレートを使用して Azure 仮想ネットワークに IPv6 デュアル スタック アプリケーションをデプロイするには、ここでサンプル テンプレートを参照 してください。