NetScaler VPX

Citrix ADC VPXインスタンスでGSLBを構成する

グローバルサーバー負荷分散(GSLB)用に構成されたCitrix ADCアプライアンスは、WANの障害点から保護することにより、ディザスタリカバリとアプリケーションの継続的な可用性を提供します。 GSLB は、クライアント要求を最も近い、または最もパフォーマンスの高いデータセンター、または停止が発生した場合に存続しているデータセンターに送信することにより、データセンター間で負荷を分散できます。

このセクションでは、Windows PowerShellコマンドを使用して、Microsoft Azure環境の2つのサイトのVPXインスタンスでGSLBを有効にする方法について説明します。

GSLB の詳細については、「 グローバルサーバーの負荷分散」を参照してください。

Azure上のCitrix ADC VPXインスタンスでGSLBを構成するには、次の2つの手順を実行します。

  1. 各サイトに、複数の NIC と複数の IP アドレスを持つ VPX インスタンスを作成します
  2. VPX インスタンスで GSLB を有効にします

複数の NIC と IP アドレスの構成の詳細については、以下を参照してください: PowerShell コマンドを使用して、スタンドアロン モードで Citrix ADC VPX インスタンスに複数の IP アドレスを構成する

シナリオ

このシナリオには、2つのサイト(Site 1とSite 2)が含まれています。 各サイトのVM(VM1とVM2)には、複数のNIC、複数のIPアドレス、およびGSLBが構成されています。

図. GSLB セットアップは、サイト 1 とサイト 2 の 2 つのサイトに実装されています。

VPX Azure GSLB トポロジ

このシナリオでは、各VMには3つのNIC(NIC 0/1、1/1、1/2)が設定されています。 各NICに複数のプライベートおよびパブリックIPアドレスを設定できます。 これらのNICは次の目的で構成されています。

  • NIC 0/1:管理トラフィックを提供する
  • NIC 1/1:クライアント側のトラフィックを提供する
  • NIC 1/2:バックエンドサーバーと通信する

このシナリオで各 NIC に設定された IP アドレスの詳細については、「 IP 構成の詳細 」セクションを参照してください。

パラメーター

このドキュメントのこのシナリオのサンプルパラメーター設定は、次のとおりです。 必要な場合は、異なる設定を使用できます。

  $location="West Central US"

  $vnetName="NSVPX-vnet"

  $RGName="multiIP-RG"

  $prmStorageAccountName="multiipstorageaccnt"

  $avSetName="MultiIP-avset"

  $vmSize="Standard\_DS3\_V2"
<!--NeedCopy-->

VPX インスタンスの最小要件は、2 つの vCPU と 2 GB の RAM です。

  $publisher="citrix"

  $offer="netscalervpx111"

  $sku="netscalerbyol"

  $version="latest"

  $vmNamePrefix="MultiIPVPX"

  $nicNamePrefix="MultiipVPX"

  $osDiskSuffix="osdiskdb"

  $numberOfVMs=1

  $ipAddressPrefix="10.0.0."

  $ipAddressPrefix1="10.0.1."

  $ipAddressPrefix2="10.0.2."

  $pubIPName1="MultiIP-pip1"

  $pubIPName2="MultiIP-pip2"

  $IpConfigName1="IPConfig1"

  $IPConfigName2="IPConfig-2"

  $IPConfigName3="IPConfig-3"

  $IPConfigName4="IPConfig-4"

  $frontendSubnetName="default"

  $backendSubnetName1="subnet\_1"

  $backendSubnetName2="subnet\_2"

  $suffixNumber=10
<!--NeedCopy-->

仮想マシンの作成

PowerShell コマンドを使用して、ステップ 1 ~ 10 に従って、複数の NIC と複数の IP アドレスを使用して VM1 を作成します。

  1. リソースグループの作成

  2. ストレージアカウントの作成

  3. アベイラビリティセットの作成

  4. 仮想ネットワークの作成

  5. パブリック IP アドレスの作成

  6. NIC の作成

  7. VM 設定オブジェクトの作成

  8. 認証情報を取得し、VM の OS プロパティを設定します

  9. NICの追加

  10. OSディスクの指定とVMの作成

すべての手順とコマンドを完了してVM1を作成した後で、これらの手順を繰り返してVM2固有のパラメーターでVM2を作成します。

リソースグループの作成

  New-AzureRMResourceGroup -Name $RGName -Location $location
<!--NeedCopy-->

ストレージアカウントの作成

  $prmStorageAccount=New-AzureRMStorageAccount -Name $prmStorageAccountName -ResourceGroupName $RGName -Type Standard_LRS -Location $location
<!--NeedCopy-->

アベイラビリティセットの作成

  $avSet=New-AzureRMAvailabilitySet -Name $avSetName -ResourceGroupName $RGName -Location $location
<!--NeedCopy-->

仮想ネットワークの作成

  1. サブネットを追加します。

      $subnet1=New-AzureRmVirtualNetworkSubnetConfig -Name $frontendSubnetName -AddressPrefix "10.0.0.0/24"
      $subnet2=New-AzureRmVirtualNetworkSubnetConfig -Name $backendSubnetName1 -AddressPrefix "10.0.1.0/24"
      $subnet3=New-AzureRmVirtualNetworkSubnetConfig -Name $backendSubnetName2 -AddressPrefix "10.0.2.0/24"
    <!--NeedCopy-->
    
  2. 仮想ネットワークオブジェクトを追加します。

      $vnet=New-AzureRmVirtualNetwork -Name $vnetName -ResourceGroupName $RGName -Location $location -AddressPrefix 10.0.0.0/16 -Subnet $subnet1, $subnet2, $subnet3
    <!--NeedCopy-->
    
  3. サブネットを取得します。

      $frontendSubnet=$vnet.Subnets|?{$_.Name -eq $frontendSubnetName}
      $backendSubnet1=$vnet.Subnets|?{$_.Name -eq $backendSubnetName1}
      $backendSubnet2=$vnet.Subnets|?{$_.Name -eq $backendSubnetName2}
    <!--NeedCopy-->
    

パブリック IP アドレスの作成

  $pip1=New-AzureRmPublicIpAddress -Name $pubIPName1 -ResourceGroupName $RGName -Location $location -AllocationMethod Dynamic
  $pip2=New-AzureRmPublicIpAddress -Name $pubIPName2 -ResourceGroupName $RGName -Location $location -AllocationMethod Dynamic
<!--NeedCopy-->

NIC の作成

NIC 0/1の作成

  $nic1Name=$nicNamePrefix + $suffixNumber + "-Mgmnt"
  $ipAddress1=$ipAddressPrefix + $suffixNumber
  $IPConfig1=New-AzureRmNetworkInterfaceIpConfig -Name $IPConfigName1 -SubnetId $frontendSubnet.Id -PublicIpAddress $pip1 -PrivateIpAddress $ipAddress1 -Primary
  $nic1=New-AzureRMNetworkInterface -Name $nic1Name -ResourceGroupName $RGName -Location $location -IpConfiguration $IpConfig1
<!--NeedCopy-->

NIC 1/1の作成

  $nic2Name $nicNamePrefix + $suffixNumber + "-frontend"
  $ipAddress2=$ipAddressPrefix1 + ($suffixNumber)
  $ipAddress3=$ipAddressPrefix1 + ($suffixNumber + 1)
  $IPConfig2=New-AzureRmNetworkInterfaceIpConfig -Name $IPConfigName2 -PublicIpAddress $pip2 -SubnetId $backendSubnet1.Id  -PrivateIpAddress $ipAddress2  -Primary
  $IPConfig3=New-AzureRmNetworkInterfaceIpConfig -Name $IPConfigName3 -SubnetId $backendSubnet1.Id  -PrivateIpAddress $ipAddress3
  nic2=New-AzureRMNetworkInterface -Name $nic2Name -ResourceGroupName $RGName -Location $location -IpConfiguration $IpConfig2, $IpConfig3
<!--NeedCopy-->

NIC 1/2の作成

  $nic3Name=$nicNamePrefix + $suffixNumber + "-backend"
  $ipAddress4=$ipAddressPrefix2 + ($suffixNumber)
  $IPConfig4=New-AzureRmNetworkInterfaceIpConfig -Name $IPConfigName4 -SubnetId $backendSubnet2.Id -PrivateIpAddress $ipAddress4 -Primary
  $nic3=New-AzureRMNetworkInterface -Name $nic3Name -ResourceGroupName $RGName -Location $location -IpConfiguration $IpConfig4
<!--NeedCopy-->

VM 設定オブジェクトの作成

  $vmName=$vmNamePrefix
  $vmConfig=New-AzureRMVMConfig -VMName $vmName -VMSize $vmSize -AvailabilitySetId $avSet.Id
<!--NeedCopy-->

認証情報の取得と OS プロパティの設定

  $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
<!--NeedCopy-->

NICの追加

  $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
<!--NeedCopy-->

OSディスクの指定とVMの作成

  $osDiskName=$vmName + "-" + $osDiskSuffix
  $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 $location
<!--NeedCopy-->

「PowerShell コマンドを使用したマルチ NIC 仮想マシンの作成」に記載されている手順 1~10 を繰り返して、VM2 に固有のパラメータを使用して VM2 を作成します。

IP 構成の詳細

次のIPアドレスを使用します。

テーブル 1. VM1で使用するIPアドレス

NIC プライベートIP パブリックIP(PIP) 説明
0/1 10.0.0.10 PIP1 NSIP(管理IP)として構成
1/1 10.0.1.10 PIP2 SNIP/GSLB サイト IP として設定されています
- 10.0.1.11 - LB サーバ IP として設定されています。 パブリックIPアドレスは必須ではありません
1/2 10.0.2.10 - モニタプローブをサービスに送信するための SNIP として設定。 パブリック IP は必須ではありません。

表2. VM2で使用されるIPアドレス

NIC 内部IP パブリックIP(PIP) 説明
0/1 20.0.0.10 PIP4 NSIP(管理IP)として構成
1/1 20.0.1.10 PIP5 SNIP/GSLB サイト IP として設定されています
- 20.0.1.11 - LB サーバ IP として設定されています。 パブリックIPアドレスは必須ではありません
1/2 20.0.2.10 - モニタプローブをサービスに送信するための SNIP として設定。 パブリック IP は必須ではありません。

VM1およびVM2用のCitrix ADC VPX CLIで作成されたIPアドレスと初期LB構成を示す、このシナリオの構成例を次に示します。

VM1 の設定例を次に示します。

  add ns ip 10.0.1.10 255.255.255.0 -mgmtAccess ENABLED
  Add nsip 10.0.2.10 255.255.255.0
  add service svc1 10.0.1.10 ADNS 53
  add lb vserver v1 HTTP 10.0.1.11 80
  add service s1 10.0.2.120 http 80
  Add service s2 10.0.2.121 http 80
  Bind lb vs v1 s[1-2]
<!--NeedCopy-->

VM2 の設定例を次に示します。

  add ns ip 20.0.1.10 255.255.255.0  -mgmtAccess ENABLED
  Add nsip 20.0.2.10 255.255.255.0
  add service svc1 20.0.1.10 ADNS 53
  add lb vserver v1 HTTP 20.0.1.11 80
  Add service s1 20.0.2.90 http 80
  Add service s2 20.0.2.91 http 80
  Bind lb vs v1 s[1-2]
<!--NeedCopy-->

GSLB サイトおよびその他の設定を構成する

次のトピックで説明するタスクを実行して、2 つの GSLB サイトとその他の必要な設定を構成します。

Global Server Load Balancing

VM1 および VM2 での GSLB 設定の例を次に示します。

  enable ns feature LB GSLB
  add gslb site site1 10.0.1.10 -publicIP PIP2
  add gslb site site2 20.0.1.10 -publicIP PIP5
  add gslb service site1_gslb_http_svc1 10.0.1.11 HTTP 80 -publicIP PIP3 -publicPort 80 -siteName site1
  add gslb service site2_gslb_http_svc1 20.0.1.11 HTTP 80 -publicIP PIP6 -publicPort 80 -siteName site2
  add gslb vserver gslb_http_vip1 HTTP
  bind gslb vserver gslb_http_vip1 -serviceName site2_gslb_http_svc1
  bind gslb vserver gslb_http_vip1 -serviceName site1_gslb_http_svc1
  bind gslb vserver gslb_http_vip1 -domainName www.gslbindia.com -TTL 5
<!--NeedCopy-->

Azureで実行されているCitrix ADC VPXインスタンスでGSLBを構成しました。

Citrix ADC VPXインスタンスでGSLBを構成する