ADC

PowerShellコマンドを使用して、複数のIPアドレスとNICを使用した高可用性設定を構成する

Azureのアクティブ/パッシブ高可用性(HA)セットアップで、複数のNICを持つ一対のNetScaler ADC VPXインスタンスを展開できます。各NICに複数のIPアドレスを設定できます。

アクティブ/パッシブ展開では以下が必要です。

  • HA Independent Network Configuration(INC)構成
  • Direct Server Return(DSR)モードのAzure Load Balancer(ALB)

すべてのトラフィックはプライマリノードを経由します。セカンダリノードは、プライマリノードが失敗するまでスタンバイモードを維持します。

Azureクラウド上のNetScaler ADC VPX高可用性展開を機能させるには、2つの高可用性ノード間で移動できるフローティングパブリックIP(PIP)が必要です。Azure ロードバランサー (ALB) は、フローティング PIP を提供します。このフローティング PIP は、フェールオーバーが発生した場合に自動的に第 2 ノードに移動されます。

: アクティブ-パッシブ展開アーキテクチャの例

Azure 高可用性

アクティブ/パッシブ展開では、ALBフローティングパブリックIP(PIP)アドレスが各VPXノードにVIPアドレスとして追加されます。HA-INC構成では、これらのVIPアドレスはフローティングされ、SNIPアドレスはインスタンス固有のアドレスとなります。

ALB は 5 秒ごとにヘルスプローブを送信して各 VPX インスタンスを監視し、定期的にヘルスプローブ応答を送信するトラフィックのみをそのインスタンスにリダイレクトします。そのため、HAセットアップでは、プライマリノードがヘルスプローブに応答し、セカンダリノードは応答しません。プライマリインスタンスが 2 つの連続したヘルスプローブを見逃した場合、ALB はそのインスタンスにトラフィックをリダイレクトしません。フェイルオーバー時は、新しいプライマリがヘルスプローブへの応答を開始し、ALBはそのプライマリにトラフィックをリダイレクトします。標準のVPX高可用性フェイルオーバー時間は3秒です。トラフィック切り替えにかかる合計フェイルオーバー時間は、最大で13秒になる可能性があります。

VPXペアをアクティブ/パッシブHAセットアップに導入するには、次の2つの方法があります。

  • NetScaler VPX標準高可用性テンプレート:このオプションを使用して、3つのサブネットと6つのNICのデフォルトオプションでHAペアを構成します。
  • Windows PowerShell コマンド:このオプションを使用して、サブネットと NIC の要件に応じて HA ペアを構成します。

このトピックでは、PowerShell コマンドを使用してアクティブ/パッシブHAセットアップでVPXペアを展開する方法について説明します。NetScaler VPX標準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 の 1 つのプライベート IP が含まれます
- サーバー側の 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 = “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
<!--NeedCopy--> ```

NICに割り当てられたプライベートIPアドレスとパブリックIPアドレスを表示するには、次のコマンドを入力します。

```
$nic1.IPConfig


$nic2.IPConfig


$nic3.IPConfig


$nic4.IPConfig


$nic5.IPConfig


$nic6.IPConfig
<!--NeedCopy--> ```

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 の構成

PowerShellコマンドを使用して、複数のIPアドレスとNICを使用した高可用性設定を構成する