PowerShellコマンドを使用して、複数のIPアドレスとNICを持つ高可用性セットアップを構成する

最終公開日 : Oct 05, 2026
Azure上で、複数のNICを持つNetScaler VPXインスタンスのペアをアクティブ-パッシブ高可用性 (HA) セットアップで展開できます。各NICには複数のIPアドレスを含めることができます。
アクティブ-パッシブ展開には、以下が必要です。
  • HA独立ネットワーク構成 (INC) の構成
  • ダイレクトサーバーリターン (DSR) モードのAzure Load Balancer (ALB)
すべてのトラフィックはプライマリノードを経由します。セカンダリノードは、プライマリノードがフェールオーバーするまでスタンバイモードのままです。
注:
AzureクラウドでNetScaler VPXの高可用性展開を機能させるには、2つの高可用性ノード間で移動できるフローティングパブリックIP (PIP) が必要です。Azure Load Balancer (ALB) は、そのフローティングPIPを提供し、フェールオーバー時に自動的にセカンドノードに移動されます。
図: アクティブ-パッシブ展開アーキテクチャの例
アジュール高可用性
アクティブ-パッシブ展開では、ALBフローティングパブリックIP (PIP) アドレスが各VPXノードのVIPアドレスとして追加されます。HA-INC構成では、VIPアドレスはフローティングであり、SNIPアドレスはインスタンス固有です。
ALBは、5秒ごとにヘルスプローブを送信して各VPXインスタンスを監視し、定期的にヘルスプローブ応答を送信するインスタンスにのみトラフィックをリダイレクトします。そのため、HAセットアップでは、プライマリノードがヘルスプローブに応答し、セカンダリノードは応答しません。プライマリインスタンスが2回連続でヘルスプローブを逃した場合、ALBはそのインスタンスにトラフィックをリダイレクトしません。フェールオーバー時には、新しいプライマリがヘルスプローブに応答を開始し、ALBはそれにトラフィックをリダイレクトします。標準のVPX高可用性フェールオーバー時間は3秒です。トラフィック切り替えにかかる合計フェールオーバー時間は最大13秒になる可能性があります。
アクティブ-パッシブHAセットアップでVPXペアを展開するには、次の2つの方法があります。
  • NetScaler VPX標準高可用性テンプレート: このオプションを使用して、デフォルトの3つのサブネットと6つのNICでHAペアを構成します。
  • Windows PowerShellコマンド: このオプションを使用して、サブネットとNICの要件に応じてHAペアを構成します。
このトピックでは、PowerShellコマンドを使用してアクティブ-パッシブHAセットアップでVPXペアを展開する方法について説明します。NetScaler VPX Standard HAテンプレートを使用する場合は、複数のIPアドレスとNICを使用したHAセットアップの構成を参照してください。

PowerShellコマンドを使用してHA-INCノードを構成する

シナリオ: HA-INC PowerShell展開

このシナリオでは、表に示されているトポロジを使用してNetScaler VPXペアを展開します。各VPXインスタンスには3つのNICが含まれており、各NICは異なるサブネットに展開されます。各NICにはIP構成が割り当てられます。
ALB VPX1 VPX2
ALBはパブリックIP 3 (pip3) に関連付けられています 管理IPはIPConfig1で構成されており、これには1つのパブリックIP (pip1) と1つのプライベートIP (12.5.2.24) が含まれます。nic1; Mgmtsubnet=12.5.2.0/24 管理IPはIPConfig5で構成されており、これには1つのパブリックIP (pip3) と1つのプライベートIP (12.5.2.26) が含まれます。nic4;Mgmtsubnet=12.5.2.0/24
構成されているLBルールとポートは、HTTP (80)、SSL (443)、ヘルスプローブ (9000) です クライアント側IPはIPConfig3で構成されており、これには1つのプライベートIP (12.5.1.27) が含まれます。nic2; FrontEndsubet=12.5.1.0/24 クライアント側IPはIPConfig7で構成されており、これには1つのプライベートIP (12.5.1.28) が含まれます。nic5;FrontEndsubet=12.5.1.0/24
- サーバー側IPはIPConfig4で構成されており、これには1つのプライベートIP (12.5.3.24) が含まれます。nic3;BackendSubnet=12.5.3.0/24 サーバー側IPはIPConfig8で構成されており、これには1つのプライベートIP(12.5.3.28);nic6;BackendSubnet=12.5.3.0/24が含まれます。
- NSGのルールとポートはSSH (22)、HTTP (80)、HTTPS (443)です。 -

パラメータ設定

このシナリオでは、以下のパラメータ設定が使用されます。

$locName= "South east Asia"

$rgName = "MulitIP-MultiNIC-RG"

$nicName1= "VM1-NIC1"

$nicName2 = "VM1-NIC2"

$nicName3= "VM1-NIC3"

$nicName4 = "VM2-NIC1"

$nicName5= "VM2-NIC2"

$nicName6 = "VM2-NIC3"

$vNetName = "Azure-MultiIP-ALB-vnet"

$vNetAddressRange= "12.5.0.0/16"

$frontEndSubnetName= "frontEndSubnet"

$frontEndSubnetRange= "12.5.1.0/24"

$mgmtSubnetName= "mgmtSubnet"

$mgmtSubnetRange= "12.5.2.0/24"

$backEndSubnetName = "backEndSubnet"

$backEndSubnetRange = "12.5.3.0/24"

$prmStorageAccountName = "multiipmultinicbstorage"

$avSetName = "multiple-avSet"

$vmSize= "Standard\_DS4\_V2"

$publisher = "Citrix"

$offer = "netscalervpx-120"

$sku = "netscalerbyol"

$version="latest"

$pubIPName1="VPX1MGMT"

$pubIPName2="VPX2MGMT"

$pubIPName3="ALBPIP"

$domName1="vpx1dns"

$domName2="vpx2dns"

$domName3="vpxalbdns"

$vmNamePrefix="VPXMultiIPALB"

$osDiskSuffix1="osmultiipalbdiskdb1"

$osDiskSuffix2="osmultiipalbdiskdb2"

$lbName= "MultiIPALB"

$frontEndConfigName1= "FrontEndIP"

$backendPoolName1= "BackendPoolHttp"

$lbRuleName1= "LBRuleHttp"

$healthProbeName= "HealthProbe"

$nsgName="NSG-MultiIP-ALB"

$rule1Name="Inbound-HTTP"

$rule2Name="Inbound-HTTPS"

$rule3Name="Inbound-SSH"
デプロイを完了するには、PowerShellコマンドを使用して以下の手順を実行します。
  1. リソースグループ、ストレージアカウント、および可用性セットを作成します
  2. ネットワークセキュリティグループを作成し、ルールを追加します
  3. 仮想ネットワークと3つのサブネットを作成します
  4. パブリックIPアドレスを作成します
  5. VPX1のIP構成を作成します
  6. VPX2のIP構成を作成します
  7. VPX1のNICを作成します
  8. VPX2のNICを作成します
  9. VPX1 を作成
  10. VPX2 を作成
  11. ALB を作成
リソースグループ、ストレージアカウント、および可用性セットを作成します。
New-AzureRmResourceGroup -Name $rgName -Location $locName


$prmStorageAccount=New-AzureRMStorageAccount -Name $prmStorageAccountName -ResourceGroupName $rgName -Type Standard_LRS -Location $locName


$avSet=New-AzureRMAvailabilitySet -Name $avSetName -ResourceGroupName $rgName -Location $locName
ネットワークセキュリティグループを作成し、ルールを追加します。
$rule1 = New-AzureRmNetworkSecurityRuleConfig -Name $rule1Name -Description "Allow HTTP" -Access Allow -Protocol Tcp -Direction Inbound -Priority 101


-SourceAddressPrefix Internet -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 80


$rule2 = New-AzureRmNetworkSecurityRuleConfig -Name $rule2Name -Description "Allow HTTPS" -Access Allow -Protocol Tcp -Direction Inbound -Priority 110


-SourceAddressPrefix Internet -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 443


$rule3 = New-AzureRmNetworkSecurityRuleConfig -Name $rule3Name -Description "Allow SSH" -Access Allow -Protocol Tcp -Direction Inbound -Priority 120


-SourceAddressPrefix Internet -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 22


$nsg = New-AzureRmNetworkSecurityGroup -ResourceGroupName $rgName -Location $locName -Name $nsgName -SecurityRules $rule1,$rule2,$rule3
仮想ネットワークと3つのサブネットを作成します。
$frontendSubnet=New-AzureRmVirtualNetworkSubnetConfig -Name $frontEndSubnetName -AddressPrefix $frontEndSubnetRange (this parameter value should be as per your requirement)


$mgmtSubnet=New-AzureRmVirtualNetworkSubnetConfig -Name $mgmtSubnetName -AddressPrefix $mgmtSubnetRange


$backendSubnet=New-AzureRmVirtualNetworkSubnetConfig -Name $backEndSubnetName -AddressPrefix $backEndSubnetRange


$vnet =New-AzureRmVirtualNetwork -Name $vNetName -ResourceGroupName $rgName -Location $locName -AddressPrefix $vNetAddressRange -Subnet $frontendSubnet,$backendSubnet, $mgmtSubnet


$subnetName ="frontEndSubnet"


$subnet1=$vnet.Subnets|?{$_.Name -eq $subnetName}


$subnetName="backEndSubnet"


$subnet2=$vnet.Subnets|?{$_.Name -eq $subnetName}


$subnetName="mgmtSubnet"


$subnet3=$vnet.Subnets|?{$_.Name -eq $subnetName}
パブリックIPアドレスを作成します。
$pip1=New-AzureRmPublicIpAddress -Name $pubIPName1 -ResourceGroupName $rgName -DomainNameLabel $domName1 -Location $locName -AllocationMethod Dynamic

$pip2=New-AzureRmPublicIpAddress -Name $pubIPName2 -ResourceGroupName $rgName -DomainNameLabel $domName2 -Location $locName -AllocationMethod Dynamic

$pip3=New-AzureRmPublicIpAddress -Name $pubIPName3 -ResourceGroupName $rgName -DomainNameLabel $domName3 -Location $locName -AllocationMethod Dynamic
VPX1 の IP 構成を作成します。
$IpConfigName1 = "IPConfig1"


$IPAddress = "12.5.2.24"


$IPConfig1=New-AzureRmNetworkInterfaceIpConfig -Name $IPConfigName1 -Subnet $subnet3 -PrivateIpAddress $IPAddress -PublicIpAddress $pip1 -Primary


$IPConfigName3="IPConfig-3"


$IPAddress="12.5.1.27"


$IPConfig3=New-AzureRmNetworkInterfaceIpConfig -Name $IPConfigName3 -Subnet $subnet1 -PrivateIpAddress $IPAddress -Primary


$IPConfigName4 = "IPConfig-4"


$IPAddress = "12.5.3.24"


$IPConfig4 = New-AzureRmNetworkInterfaceIpConfig -Name $IPConfigName4 -Subnet $subnet2 -PrivateIpAddress $IPAddress -Primary
VPX2 の IP 構成を作成します。
$IpConfigName5 = "IPConfig5"


$IPAddress="12.5.2.26"


$IPConfig5=New-AzureRmNetworkInterfaceIpConfig -Name $IPConfigName5 -Subnet $subnet3 -PrivateIpAddress $IPAddress -PublicIpAddress $pip2 -Primary


$IPConfigName7="IPConfig-7"


$IPAddress="12.5.1.28"


$IPConfig7=New-AzureRmNetworkInterfaceIpConfig -Name $IPConfigName7 -Subnet $subnet1 -PrivateIpAddress $IPAddress -Primary


$IPConfigName8="IPConfig-8"


$IPAddress="12.5.3.28"


$IPConfig8=New-AzureRmNetworkInterfaceIpConfig -Name $IPConfigName8 -Subnet $subnet2 -PrivateIpAddress $IPAddress -Primary
VPX1 の NIC を作成します。
$nic1=New-AzureRmNetworkInterface -Name $nicName1 -ResourceGroupName $rgName -Location $locName -IpConfiguration $IpConfig1 -NetworkSecurityGroupId $nsg.Id


$nic2=New-AzureRmNetworkInterface -Name $nicName2 -ResourceGroupName $rgName -Location $locName -IpConfiguration $IpConfig3 -NetworkSecurityGroupId $nsg.Id


$nic3=New-AzureRmNetworkInterface -Name $nicName3 -ResourceGroupName $rgName -Location $locName -IpConfiguration $IpConfig4 -NetworkSecurityGroupId $nsg.Id
VPX2 の NIC を作成します。
$nic4=New-AzureRmNetworkInterface -Name $nicName4 -ResourceGroupName $rgName -Location $locName -IpConfiguration $IpConfig5 -NetworkSecurityGroupId $nsg.Id


$nic5=New-AzureRmNetworkInterface -Name $nicName5 -ResourceGroupName $rgName -Location $locName -IpConfiguration $IpConfig7 -NetworkSecurityGroupId $nsg.Id


$nic6=New-AzureRmNetworkInterface -Name $nicName6 -ResourceGroupName $rgName -Location $locName -IpConfiguration $IpConfig8 -NetworkSecurityGroupId $nsg.Id
VPX1 を作成します。
この手順には、次のサブステップが含まれます。
  • VM構成オブジェクトを作成
  • 資格情報、OS、およびイメージを設定
  • NICを追加
  • OSディスクを指定してVMを作成
     $suffixNumber = 1

     $vmName=$vmNamePrefix + $suffixNumber

     $vmConfig=New-AzureRMVMConfig -VMName $vmName -VMSize $vmSize -AvailabilitySetId $avSet.Id

     $cred=Get-Credential -Message "Type the name and password for VPX login."

     $vmConfig=Set-AzureRMVMOperatingSystem -VM $vmConfig -Linux -ComputerName $vmName -Credential $cred

     $vmConfig=Set-AzureRMVMSourceImage -VM $vmConfig -PublisherName $publisher -Offer $offer -Skus $sku -Version $version

     $vmConfig=Add-AzureRMVMNetworkInterface -VM $vmConfig -Id $nic1.Id -Primary

     $vmConfig=Add-AzureRMVMNetworkInterface -VM $vmConfig -Id $nic2.Id

     $vmConfig=Add-AzureRMVMNetworkInterface -VM $vmConfig -Id $nic3.Id

     $osDiskName=$vmName + "-" + $osDiskSuffix1

     $osVhdUri=$prmStorageAccount.PrimaryEndpoints.Blob.ToString() + "vhds/" + $osDiskName + ".vhd"

     $vmConfig=Set-AzureRMVMOSDisk -VM $vmConfig -Name $osDiskName -VhdUri $osVhdUri -CreateOption fromImage

     Set-AzureRmVMPlan -VM $vmConfig -Publisher $publisher -Product $offer -Name $sku

     New-AzureRMVM -VM $vmConfig -ResourceGroupName $rgName -Location $locName
VPX2を作成。
```
$suffixNumber=2


$vmName=$vmNamePrefix + $suffixNumber


$vmConfig=New-AzureRMVMConfig -VMName $vmName -VMSize $vmSize -AvailabilitySetId $avSet.Id


$cred=Get-Credential -Message "Type the name and password for VPX login."


$vmConfig=Set-AzureRMVMOperatingSystem -VM $vmConfig -Linux -ComputerName $vmName -Credential $cred


$vmConfig=Set-AzureRMVMSourceImage -VM $vmConfig -PublisherName $publisher -Offer $offer -Skus $sku -Version $version


$vmConfig=Add-AzureRMVMNetworkInterface -VM $vmConfig -Id $nic4.Id -Primary


$vmConfig=Add-AzureRMVMNetworkInterface -VM $vmConfig -Id $nic5.Id


$vmConfig=Add-AzureRMVMNetworkInterface -VM $vmConfig -Id $nic6.Id


$osDiskName=$vmName + "-" + $osDiskSuffix2


$osVhdUri=$prmStorageAccount.PrimaryEndpoints.Blob.ToString() + "vhds/" + $osDiskName + ".vhd"


$vmConfig=Set-AzureRMVMOSDisk -VM $vmConfig -Name $osDiskName -VhdUri $osVhdUri -CreateOption fromImage


Set-AzureRmVMPlan -VM $vmConfig -Publisher $publisher -Product $offer -Name $sku


New-AzureRMVM -VM $vmConfig -ResourceGroupName $rgName -Location $locName
```
NICに割り当てられているプライベートIPアドレスとパブリックIPアドレスを表示するには、次のコマンドを入力します。
```
$nic1.IPConfig


$nic2.IPConfig


$nic3.IPConfig


$nic4.IPConfig


$nic5.IPConfig


$nic6.IPConfig
```
Azureロードバランサー (ALB) を作成。
この手順には、次のサブステップが含まれます。
  • フロントエンドIP構成を作成
  • ヘルスプローブを作成
  • バックエンドアドレスプールを作成
  • ロードバランシングルール (HTTPおよびSSL) を作成
  • フロントエンドIP構成、バックエンドアドレスプール、およびLBルールを使用してALBを作成
  • IP構成をバックエンドプールに関連付ける
    $frontEndIP1=New-AzureRmLoadBalancerFrontendIpConfig -Name $frontEndConfigName1 -PublicIpAddress $pip3
    $healthProbe=New-AzureRmLoadBalancerProbeConfig -Name $healthProbeName -Protocol Tcp -Port 9000 –IntervalInSeconds 5 -ProbeCount 2
    $beAddressPool1=New-AzureRmLoadBalancerBackendAddressPoolConfig -Name $backendPoolName1
    $lbRule1=New-AzureRmLoadBalancerRuleConfig -Name $lbRuleName1 -FrontendIpConfiguration $frontEndIP1 -BackendAddressPool $beAddressPool1 -Probe $healthProbe -Protocol Tcp -FrontendPort 80 -BackendPort 80 -EnableFloatingIP
    $lb=New-AzureRmLoadBalancer -ResourceGroupName $rgName -Name $lbName -Location $locName -FrontendIpConfiguration $frontEndIP1 -LoadBalancingRule $lbRule1 -BackendAddressPool $beAddressPool1 -Probe $healthProbe
    $nic2.IpConfigurations[0].LoadBalancerBackendAddressPools.Add($lb.BackendAddressPools[0])
    $nic5.IpConfigurations[0].LoadBalancerBackendAddressPools.Add($lb.BackendAddressPools[0])
    $lb=$lb |Set-AzureRmLoadBalancer
    $nic2=$nic2 | Set-AzureRmNetworkInterface
    $nic5=$nic5 | Set-AzureRmNetworkInterface
NetScaler VPXペアのデプロイが正常に完了したら、各VPXインスタンスにログオンして、HA-INC、SNIP、およびVIPアドレスを設定します。
  1. HAノードを追加するには、次のコマンドを入力します。
    add ha node 1 PeerNodeNSIP -inc Enabled
  2. クライアント側NICのプライベートIPアドレスを、VPX1 (NIC2) およびVPX2 (NIC5) のSNIPとして追加します。
    add nsip privateIPofNIC2 255.255.255.0 -type SNIP add nsip privateIPofNIC5 255.255.255.0 -type SNIP
  3. プライマリノードに、ALBのフロントエンドIPアドレス (パブリックIP) を持つ負荷分散仮想サーバーを追加します。
    add lb virtual server v1 HTTP FrontEndIPofALB 80
関連リソース:
Azureでのアクティブ/スタンバイHA展開におけるGSLBの構成(/ja-jp/vpx/current-release/deploy-vpx-on-azure/configuring-gslb-active-standby-ha-deployment-azure.html)