-
Getting Started with Citrix NetScaler
-
Deploy a Citrix NetScaler VPX instance
-
Install a Citrix NetScaler VPX instance on Microsoft Hyper-V servers
-
Install a NetScaler VPX instance on Linux-KVM platform
-
Prerequisites for Installing NetScaler VPX Virtual Appliances on Linux-KVM Platform
-
Provisioning the NetScaler Virtual Appliance by using OpenStack
-
Provisioning the NetScaler Virtual Appliance by using the Virtual Machine Manager
-
Configuring NetScaler Virtual Appliances to Use SR-IOV Network Interface
-
Configuring NetScaler Virtual Appliances to use PCI Passthrough Network Interface
-
Provisioning the NetScaler Virtual Appliance by using the virsh Program
-
-
Deploying NetScaler VPX Instances on AWS
-
Deploy a NetScaler VPX instance on Microsoft Azure
-
Configuring Multiple IP Addresses for a Standalone NetScaler Instance
-
Configuring Address Pools (IIP) for a NetScaler Gateway Appliance
-
PowerShell Scripts for Azure Deployment
-
Upgrade and downgrade a NetScaler appliance
-
-
-
-
-
-
Overriding Static Proximity Behavior by Configuring Preferred Locations
-
Example of a Complete Parent-Child Configuration Using the Metrics Exchange Protocol
-
Configuring Global Server Load Balancing for DNS Queries with NAPTR records
-
Using the EDNS0 Client Subnet Option for Global Server Load Balancing
-
-
Persistence and persistent connections
-
Advanced load balancing settings
-
Gradually stepping up the load on a new service with virtual server–level slow start
-
Protect applications on protected servers against traffic surges
-
Use source IP address of the client when connecting to the server
-
Set a limit on number of requests per connection to the server
-
Configure automatic state transition based on percentage health of bound services
-
-
Use case 2: Configure rule based persistence based on a name-value pair in a TCP byte stream
-
Use case 3: Configure load balancing in direct server return mode
-
Use case 6: Configure load balancing in DSR mode for IPv6 networks by using the TOS field
-
Use case 7: Configure load balancing in DSR mode by using IP Over IP
-
Use case 10: Load balancing of intrusion detection system servers
-
Use case 11: Isolating network traffic using listen policies
-
Use case 14: ShareFile wizard for load balancing Citrix ShareFile
-
-
-
-
-
Configuring a CloudBridge Connector Tunnel between two Datacenters
-
Configuring CloudBridge Connector between Datacenter and AWS Cloud
-
Configuring a CloudBridge Connector Tunnel Between a Datacenter and Azure Cloud
-
Configuring CloudBridge Connector Tunnel between Datacenter and SoftLayer Enterprise Cloud
-
Configuring a CloudBridge Connector Tunnel Between a NetScaler Appliance and Cisco IOS Device
-
CloudBridge Connector Tunnel Diagnostics and Troubleshooting
This content has been machine translated dynamically.
Dieser Inhalt ist eine maschinelle Übersetzung, die dynamisch erstellt wurde. (Haftungsausschluss)
Cet article a été traduit automatiquement de manière dynamique. (Clause de non responsabilité)
Este artículo lo ha traducido una máquina de forma dinámica. (Aviso legal)
此内容已经过机器动态翻译。 放弃
このコンテンツは動的に機械翻訳されています。免責事項
이 콘텐츠는 동적으로 기계 번역되었습니다. 책임 부인
Este texto foi traduzido automaticamente. (Aviso legal)
Questo contenuto è stato tradotto dinamicamente con traduzione automatica.(Esclusione di responsabilità))
This article has been machine translated.
Dieser Artikel wurde maschinell übersetzt. (Haftungsausschluss)
Ce article a été traduit automatiquement. (Clause de non responsabilité)
Este artículo ha sido traducido automáticamente. (Aviso legal)
この記事は機械翻訳されています.免責事項
이 기사는 기계 번역되었습니다.책임 부인
Este artigo foi traduzido automaticamente.(Aviso legal)
这篇文章已经过机器翻译.放弃
Questo articolo è stato tradotto automaticamente.(Esclusione di responsabilità))
Translation failed!
PowerShell scripts for Azure deployment
This topic provides the PowerShell cmdlets with which you can perform the following configurations in Azure PowerShell:
- Provision NetScaler VPX in Standalone Mode
- Configure NetScaler VPX HA with Azure External Load Balancer
- Configure NetScaler VPX HA with Azure Internal Load Balance
Provision NetScaler VPX in Standalone Mode
1. Creating a resource group
The resource group can include all the resources for the solution, or only those resources that you want to manage as a group. The location specified here is the default location for resources in that resource group. Make sure all commands to create a load balancer use the same resource group.
$rgName=”<resource group name>”
$locName=”<location name, such as West US>”
New-AzureRmResourceGroup -Name $rgName -Location $locName
For example:
$rgName = “ARM-VPX”
$locName = “West US”
New-AzureRmResourceGroup -Name $rgName -Location $locName
2. Creating a storage account
Choose a unique name for your storage account that contains only lowercase letters and numbers.
$saName=”<storage account name>”
$saType=”<storage account type, specify one: Standard_LRS, Standard_GRS, Standard_RAGRS, or Premium_LRS>”
New-AzureRmStorageAccount -Name $saName -ResourceGroupName $rgName -Type $saType -Location $locName
For example:
$saName=”vpxstorage”
$saType=”Standard_LRS”
New-AzureRmStorageAccount -Name $saName -ResourceGroupName $rgName -Type $saType -Location $locName
3. Creating an availability set
Availability set helps to keep your virtual machines available during downtime, such as during maintenance. A load balancer configured with an availability set ensures that your application is always available.
$avName=”<availability set name>”
New-AzureRmAvailabilitySet -Name $avName -ResourceGroupName $rgName -Location $locName
4. Creating a virtual network
Add a new virtual network with at least one subnet, if the subnet was not created previously.
$FrontendAddressPrefix=”10.0.1.0/24”
$BackendAddressPrefix=”10.0.2.0/24”
$vnetAddressPrefix=”10.0.0.0/16”
$frontendSubnet=New-AzureRmVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix $FrontendAddressPrefix
$backendSubnet=New-AzureRmVirtualNetworkSubnetConfig -Name backendSubnet -AddressPrefix $BackendAddressPrefix
New-AzureRmVirtualNetwork -Name TestNet -ResourceGroupName $rgName -Location $locName -AddressPrefix $vnetAddressPrefix -Subnet $frontendSubnet,$backendSubnet
For example:
$frontendSubnet=New-AzureRmVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix $FrontendAddressPrefix
$backendSubnet=New-AzureRmVirtualNetworkSubnetConfig -Name backendSubnet -AddressPrefix $BackendAddressPrefix
New-AzureRmVirtualNetwork -Name TestNet -ResourceGroupName $rgName -Location $locName -AddressPrefix $vnetAddressPrefix -Subnet $frontendSubnet,$backendSubnet
5. Creating a NIC
Create a NIC and associate the NIC with the NetScaler VPX instance. The front end Subnet created in the above procedure is indexed at 0 and the back end Subnet is indexed at 1. Now create NIC in one of the three following ways:
a) NIC with Public IP address
$nicName=”<name of the NIC of the VM>”
$pip = New-AzureRmPublicIpAddress -Name $nicName -ResourceGroupName $rgName -Location $locName -AllocationMethod Dynamic
$nic = New-AzureRmNetworkInterface -Name $nicName -ResourceGroupName $rgName -Location $locName -SubnetId $vnet.Subnets[$subnetIndex].Id -PublicIpAddressId $pip.Id
b) NIC with Public IP and DNS label
$nicName=”<name of the NIC of the VM>”
$domName=”<domain name label>”
$pip = New-AzureRmPublicIpAddress -Name $nicName -ResourceGroupName $rgName -DomainNameLabel $domName -Location $locName -AllocationMethod Dynamic
Before assigning $domName, check it is available or not by using command:
Test-AzureRmDnsAvailability -DomainQualifiedName $domName -Location $locName
$nic = New-AzureRmNetworkInterface -Name $nicName -ResourceGroupName $rgName -Location $locName -SubnetId $vnet.Subnets[$subnetIndex].Id -PublicIpAddressId $pip.Id
For example:
$nicName=”frontendNIC”
$domName=”vpxazure”
$pip = New-AzureRmPublicIpAddress -Name $nicName -ResourceGroupName $rgName -DomainNameLabel $domName -Location $locName -AllocationMethod Dynamic
$nic = New-AzureRmNetworkInterface -Name $nicName -ResourceGroupName $rgName -Location $locName -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id
c) NIC with Dynamic Public Address and Static Private IP address
Make sure that the private (static) IP address you add to the VM should be the same range as that of the subnet specified.
$nicName=”<name of the NIC of the VM>”
$staticIP=”<available static IP address on the subnet>”
$pip = New-AzureRmPublicIpAddress -Name $nicName -ResourceGroupName $rgName -Location $locName -AllocationMethod Dynamic
$nic = New-AzureRmNetworkInterface -Name $nicName -ResourceGroupName $rgName -Location $locName -SubnetId $vnet.Subnets[$subnetIndex].Id -PublicIpAddressId $pip.Id -PrivateIpAddress $staticIP
6. Creating a virtual object
$vmName=”<VM name>”
$vmSize=”<VM size string>”
$avSet=Get-AzureRmAvailabilitySet -Name $avName -ResourceGroupName $rgName
$vm=New-AzureRmVMConfig -VMName $vmName -VMSize $vmSize -AvailabilitySetId $avset.Id
7. Getting the NetScaler VPX image
$pubName=”<Image publisher name>”
$offerName=”<Image offer name>”
$skuName=”<Image SKU name>”
$cred=Get-Credential -Message “Type the name and password of the local administrator account.”
Provide your credentials that is used to login into VPX
$vm=Set-AzureRmVMOperatingSystem -VM $vm -Linux -ComputerName $vmName -Credential $cred -Verbose
$vm=Set-AzureRmVMSourceImage -VM $vm -PublisherName $pubName -Offer $offerName -Skus $skuName -Version “latest”
$vm=Add-AzureRmVMNetworkInterface -VM $vm -Id $nic.Id
For example:
$pubName=”citrix”
The following command is used for displaying all offers from Citrix:
Get-AzureRMVMImageOffer -Location $locName -Publisher $pubName | Select Offer |
$offerName=”netscalervpx110-6531”
The following command is used to know sku offered by publisher for specific offer name:
Get-AzureRMVMImageSku -Location $locName -Publisher $pubName -Offer $offerName | Select Skus |
8. Creating a virtual machine
$diskName=”<name identifier for the disk in Azure storage, such as OSDisk>”
For example:
$diskName=”dynamic”
$pubName=”citrix”
$offerName=”netscalervpx110-6531”
$skuName=”netscalerbyol”
$storageAcc=Get-AzureRmStorageAccount -ResourceGroupName $rgName -Name $saName
$osDiskUri=$storageAcc.PrimaryEndpoints.Blob.ToString() + “vhds/” + $diskName + “.vhd”
$vm=Set-AzureRmVMOSDisk -VM $vm -Name $diskName -VhdUri $osDiskUri -CreateOption fromImage
When you create VM from Images present in marketplace, use the following command to specify the VM plan:
Set-AzureRmVMPlan -VM $vm -Publisher $pubName -Product $offerName -Name $skuName
New-AzureRmVM -ResourceGroupName $rgName -Location $locName -VM $vm
Provision NetScaler VPX in HA with Azure External Load Balancer
Log on to AzureRmAccount using your Azure user credentials.
1) Creating a resource group
The location specified here is the default location for resources in that resource group. Make sure that all commands used to create a load balancer use the same resource group.
$rgName=”<resource group name>”
$locName=”<location name, such as West US>”
New-AzureRmResourceGroup -Name $rgName -Location $locName
For example:
$rgName = “ARM-LB-NS”
$locName = “West US”
New-AzureRmResourceGroup -Name $rgName -Location $locName
2) Creating a storage account
Choose a unique name for your storage account that contains only lowercase letters and numbers.
$saName=”<storage account name>”
$saType=”<storage account type, specify one: Standard_LRS, Standard_GRS, Standard_RAGRS, or Premium_LRS>”
New-AzureRmStorageAccount -Name $saName -ResourceGroupName $rgName -Type $saType -Location $locName
For example:
$saName=”vpxstorage”
$saType=”Standard_LRS”
New-AzureRmStorageAccount -Name $saName -ResourceGroupName $rgName -Type $saType -Location $locName
3) Creating an availability set
A load balancer configured with an availability set ensures that your application is always available.
$avName=”<availability set name>”
New-AzureRmAvailabilitySet -Name $avName -ResourceGroupName $rgName -Location $locName
4) Creating a virtual network
Add a new virtual network with at least one subnet, if the subnet was not created previously.
$vnetName = “LBVnet”
$FrontendAddressPrefix=”10.0.1.0/24”
$BackendAddressPrefix=”10.0.2.0/24”
$vnetAddressPrefix=”10.0.0.0/16”
$frontendSubnet=New-AzureRmVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix $FrontendAddressPrefix
$backendSubnet=New-AzureRmVirtualNetworkSubnetConfig -Name backendSubnet -AddressPrefix $BackendAddressPrefix
$vnet=New-AzureRmVirtualNetwork -Name $vnetName -ResourceGroupName $rgName -Location $locName -AddressPrefix $vnetAddressPrefix -Subnet $frontendSubnet,$backendSubnet`
Note: Choose the AddressPrefix parameter value as per your requirement.
Assign front end and back end subnet to the virtual network that you created earlier in this step.
If the front end subnet is the first element of array vnet, subnetId should be $vnet.Subnets[0].Id.
If the front end subnet is the second element in the array, the subnetId should be $vnet.Subnets[1].Id, and so on..
5) Configuring front end IP address and creating back end address pool
Configure a front end IP address for the incoming load balancer network traffic and create a back end address pool to receive the load balanced traffic.
$pubName=”PublicIp1”
$publicIP1 = New-AzureRmPublicIpAddress -Name $pubName -ResourceGroupName $rgName -Location $locName -AllocationMethod Static -DomainNameLabel nsvpx
Note: Check for the availability of the value for DomainNameLabel.
$FIPName = “ELBFIP”
$frontendIP1 = New-AzureRmLoadBalancerFrontendIpConfig -Name $FIPName -PublicIpAddress $publicIP1
$BEPool = “LB-backend-Pool”
$beaddresspool1= New-AzureRmLoadBalancerBackendAddressPoolConfig -Name $BEPool
8) Creating a health probe
Create a TCP health probe with port 9000 and interval 5 seconds.
$healthProbe = New-AzureRmLoadBalancerProbeConfig -Name HealthProbe -Protocol Tcp -Port 9000 -IntervalInSeconds 5 -ProbeCount 2
9) Creating a load balancing rule
Create a LB rule for each service that you are load balancing.
For example:
You can use the following example to load balance http service.
$lbrule1 = New-AzureRmLoadBalancerRuleConfig -Name “HTTP-LB” -FrontendIpConfiguration $frontendIP1 -BackendAddressPool $beAddressPool1 -Probe $healthProbe -Protocol Tcp -FrontendPort 80 -BackendPort 80
10) Creating inbound NAT rules
Create NAT rules for services that you are not load balancing.
For example, when creating a SSH access to a NetScaler VPX instance.
Note: Protocol-FrontEndPort-BackendPort triplet should not be the same for two NAT rules.
$inboundNATRule1= New-AzureRmLoadBalancerInboundNatRuleConfig -Name SSH1 -FrontendIpConfiguration $frontendIP1 -Protocol TCP -FrontendPort 22 -BackendPort 22
$inboundNATRule2= New-AzureRmLoadBalancerInboundNatRuleConfig -Name SSH2 -FrontendIpConfiguration $frontendIP1 -Protocol TCP -FrontendPort 10022 -BackendPort 22
11) Creating a load balancer entity
Create the load balancer adding all objects (NAT rules, load balancer rules, probe configurations) together.
$lbName=”ELB”
$NRPLB = New-AzureRmLoadBalancer -ResourceGroupName $rgName -Name $lbName -Location $locName -InboundNatRule $inboundNATRule1, $inboundNATRule2 -FrontendIpConfiguration $frontendIP1 -LoadBalancingRule $lbrule1 -BackendAddressPool $beAddressPool1 -Probe $healthProbe
12) Creating a NIC
Create two NICs and associate each NIC with each VPX instance
a) NIC1 with VPX1
For example:
$nicName=”NIC1”
$lbName=”ELB”
$bePoolIndex=0
* Rule indexes starts from 0.
$natRuleIndex=0
$subnetIndex=0
* Frontend subnet index
$lb=Get-AzureRmLoadBalancer -Name $lbName -ResourceGroupName $rgName
$nic1=New-AzureRmNetworkInterface -Name $nicName -ResourceGroupName $rgName -Location $locName -Subnet $vnet.Subnets[$subnetIndex] -LoadBalancerBackendAddressPool $lb.BackendAddressPools[$bePoolIndex] -LoadBalancerInboundNatRule $lb.InboundNatRules[$natRuleIndex]
b) NIC2 with VPX2
For example:
$nicName=”NIC2”
$lbName=”ELB”
$bePoolIndex=0
$natRuleIndex=1
* Second Inbound NAT (SSH) rule we need to use
$subnetIndex=0
* Frontend subnet index
$lb=Get-AzureRmLoadBalancer -Name $lbName -ResourceGroupName $rgName
$nic2=New-AzureRmNetworkInterface -Name $nicName -ResourceGroupName $rgName -Location $locName -Subnet $vnet.Subnets[$subnetIndex] -LoadBalancerBackendAddressPool $lb.BackendAddressPools[$bePoolIndex] -LoadBalancerInboundNatRule $lb.InboundNatRules[$natRuleIndex]
13) Creating NetScaler VPX instances
Create two NetScaler VPX instances as part of the same resource group and availability set, and attach it to the external load balancer.
a) NetScaler VPX instance 1
For example:
$vmName=”VPX1”
$vmSize=”Standard_A3”
$pubName=”citrix”
$offerName=”netscalervpx110-6531”
$skuName=”netscalerbyol”
$avSet=Get-AzureRmAvailabilitySet -Name $avName -ResourceGroupName $rgName
$vm1=New-AzureRmVMConfig -VMName $vmName -VMSize $vmSize -AvailabilitySetId $avset.Id
$cred=Get-Credential -Message “Type Credentials which will be used to login to VPX instance”
$vm1=Set-AzureRmVMOperatingSystem -VM $vm1 -Linux -ComputerName $vmName -Credential $cred -Verbose
$vm1=Set-AzureRmVMSourceImage -VM $vm1 -PublisherName $pubName -Offer $offerName -Skus $skuName -Version “latest”
$vm1=Add-AzureRmVMNetworkInterface -VM $vm1 -Id $nic1.Id
$diskName=”dynamic”
$storageAcc=Get-AzureRmStorageAccount -ResourceGroupName $rgName -Name $saName
$osDiskUri1=$storageAcc.PrimaryEndpoints.Blob.ToString() + “vhds1/” + $diskName + “.vhd”
$vm1=Set-AzureRmVMOSDisk -VM $vm1 -Name $diskName -VhdUri $osDiskUri1 -CreateOption fromImage
Set-AzureRmVMPlan -VM $vm1 -Publisher $pubName -Product $offerName -Name $skuName
New-AzureRmVM -ResourceGroupName $rgName -Location $locName -VM $vm1
b) NetScaler VPX instance 2
For example:
$vmName=”VPX2”
$vmSize=”Standard_A3”
$avSet=Get-AzureRmAvailabilitySet -Name $avName -ResourceGroupName $rgName
$vm2=New-AzureRmVMConfig -VMName $vmName -VMSize $vmSize -AvailabilitySetId $avset.Id
$cred=Get-Credential -Message “ Type Credentials which will be used to login to VPX instance “
$vm2=Set-AzureRmVMOperatingSystem -VM $vm2 -Linux -ComputerName $vmName -Credential $cred -Verbose
$vm2=Set-AzureRmVMSourceImage -VM $vm2 -PublisherName $pubName -Offer $offerName -Skus $skuName -Version “latest”
$vm2=Add-AzureRmVMNetworkInterface -VM $vm2 -Id $nic2.Id
$diskName=”dynamic”
$storageAcc=Get-AzureRmStorageAccount -ResourceGroupName $rgName -Name $saName
$osDiskUri1=$storageAcc.PrimaryEndpoints.Blob.ToString() + “vhds2/” + $diskName + “.vhd”
$vm2=Set-AzureRmVMOSDisk -VM $vm2 -Name $diskName -VhdUri $osDiskUri1 -CreateOption fromImage
Set-AzureRmVMPlan -VM $vm2 -Publisher $pubName -Product $offerName -Name $skuName
New-AzureRmVM -ResourceGroupName $rgName -Location $locName -VM $vm2
14) Configuring the virtual machines
When both the NetScaler VPX instances start, then connect to both NetScaler VPX instances using the SSH protocol to configure the virtual machines.
a) Active-Active: Run the same set of configuration commands on the command line of both the NetScaler VPX instances.
b) Active-Passive: Run this command on the command line of both the NetScaler VPX instances.
add ha node #nodeID <nsip of other NetScaler VPX>
In Active-Passive mode, run configuration commands on the primary node only.
Provision NetScaler VPX in HA with Azure Internal Load Balancer
Log on to AzureRmAccount using your Azure user credentials.
1) Creating a resource group
The location specified here is the default location for resources in that resource group. Make sure all commands to create a load balancer use the same resource group.
$rgName=”<resource group name>”
$locName=”<location name, such as West US>”
New-AzureRmResourceGroup -Name $rgName -Location $locName
For example:
$rgName = “ARM-LB-NS”
$locName = “West US”
New-AzureRmResourceGroup -Name $rgName -Location $locName
2) Creating a storage account
Choose a unique name for your storage account that contains only lowercase letters and numbers.
$saName=”<storage account name>”
$saType=”<storage account type, specify one: Standard_LRS, Standard_GRS, Standard_RAGRS, or Premium_LRS>”
New-AzureRmStorageAccount -Name $saName -ResourceGroupName $rgName -Type $saType -Location $locName
For example:
$saName=”vpxstorage”
$saType=”Standard_LRS”
New-AzureRmStorageAccount -Name $saName -ResourceGroupName $rgName -Type $saType -Location $locName
3) Creating an availability set
A load balancer configured with an availability set ensures that your application is always available..
$avName=”<availability set name>”
New-AzureRmAvailabilitySet -Name $avName -ResourceGroupName $rgName -Location $locName
4) Creating a virtual network
Add a new virtual network with at least one subnet, if the subnet was not created previously.
$vnetName = “LBVnet”
$vnetAddressPrefix=”10.0.0.0/16”
$FrontendAddressPrefix=”10.0.1.0/24”
$BackendAddressPrefix=”10.0.2.0/24”
$vnet=New-AzureRmVirtualNetwork -Name $vnetName -ResourceGroupName $rgName -Location $locName -AddressPrefix $vnetAddressPrefix -Subnet $frontendSubnet,$backendSubnet`
$frontendSubnet=New-AzureRmVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix $FrontendAddressPrefix
$backendSubnet=New-AzureRmVirtualNetworkSubnetConfig -Name backendSubnet -AddressPrefix $BackendAddressPrefix
Note: Choose the AddressPrefix parameter value as per your requirement.
Assign front end and back end subnet to the virtual network that you created earlier in this step.
If the front end subnet is the first element of array vnet, subnetId should be $vnet.Subnets[0].Id.
If the front end subnet is the second element in the array, the subnetId should be $vnet.Subnets[1].Id, and so on..
5) Creating an back end address pool
$beaddresspool= New-AzureRmLoadBalancerBackendAddressPoolConfig -Name “LB-backend”
6) Creating NAT rules
Create NAT rules for services that you are not load balancing.
$inboundNATRule1= New-AzureRmLoadBalancerInboundNatRuleConfig -Name “Inboundnatrule1” -FrontendIpConfiguration $frontendIP -Protocol TCP -FrontendPort 3441 -BackendPort 3389
$inboundNATRule2= New-AzureRmLoadBalancerInboundNatRuleConfig -Name “RDP2” -FrontendIpConfiguration $frontendIP -Protocol TCP -FrontendPort 3442 -BackendPort 3389
Use front end and back end ports as per your requirement.
7) Creating a health probe
Create a TCP health probe with port 9000 and interval 5 seconds.
$healthProbe = New-AzureRmLoadBalancerProbeConfig -Name “HealthProbe” ” -Protocol tcp -Port 9000 -IntervalInSeconds 5 -ProbeCount 2
8) Creating a load balancing rule
Create a LB rule for each service that you are load balancing.
For example:
You can use the following example to load balance http service.
$lbrule = New-AzureRmLoadBalancerRuleConfig -Name “lbrule1” -FrontendIpConfiguration $frontendIP -BackendAddressPool $beAddressPool -Probe $healthProbe -Protocol Tcp -FrontendPort 80 -BackendPort 80
Use front end and back end ports as per your requirement.
9) Creating a load balancer entity
Create the load balancer adding all objects (NAT rules, load balancer rules, probe configurations) together.
$NRPLB = New-AzureRmLoadBalancer -ResourceGroupName $rgname -Name “InternalLB” -Location $locName -FrontendIpConfiguration $frontendIP -InboundNatRule $inboundNATRule1,$inboundNatRule2 -LoadBalancingRule $lbrule -BackendAddressPool $beAddressPool -Probe $healthProbe
10) Creating a NIC
Create two NICs and associate each NIC with each NetScaler VPX instance
$backendnic1= New-AzureRmNetworkInterface -ResourceGroupName $rgName -Name lb-nic1-be -Location $locName -PrivateIpAddress 10.0.2.6 -Subnet $backendSubnet -LoadBalancerBackendAddressPool $nrplb.BackendAddressPools[0] -LoadBalancerInboundNatRule $nrplb.InboundNatRules[0]
This NIC is for NetScaler VPX 1. The Private IP should be in same subnet as that of subnet added.
$backendnic2= New-AzureRmNetworkInterface -ResourceGroupName $rgName -Name lb-nic2-be -Location $locName -PrivateIpAddress 10.0.2.7 -Subnet $backendSubnet -LoadBalancerBackendAddressPool $nrplb.BackendAddressPools[0] -LoadBalancerInboundNatRule $nrplb.InboundNatRules[1].
This NIC is for NetScaler VPX 2.The parameter Private IPAddress can have any private IP as per your requirement.
11) Creating NetScaler VPX instances
Create two VPX instances part of same resource group and availability set and attach it to the internal load balancer.
a) NetScaler VPX instance 1
For example:
$vmName=”VPX1”
$vmSize=”Standard_A3”
$avSet=Get-AzureRmAvailabilitySet -Name $avName -ResourceGroupName $rgName
$vm1=New-AzureRmVMConfig -VMName $vmName -VMSize $vmSize -AvailabilitySetId $avset.Id
$cred=Get-Credential -Message “Type Credentials which will be used to login to VPX instance”
$vm1=Set-AzureRmVMOperatingSystem -VM $vm1 -Linux -ComputerName $vmName -Credential $cred -Verbose
$vm1=Set-AzureRmVMSourceImage -VM $vm1 -PublisherName $pubName -Offer $offerName -Skus $skuName -Version “latest”
$vm1=Add-AzureRmVMNetworkInterface -VM $vm1 -Id $backendnic1.Id
$diskName=”dynamic”
$storageAcc=Get-AzureRmStorageAccount -ResourceGroupName $rgName -Name $saName
$osDiskUri1=$storageAcc.PrimaryEndpoints.Blob.ToString() + “vhds1/” + $diskName + “.vhd”
$vm1=Set-AzureRmVMOSDisk -VM $vm1 -Name $diskName -VhdUri $osDiskUri1 -CreateOption fromImage
Set-AzureRmVMPlan -VM $vm1 -Publisher $pubName -Product $offerName -Name $skuName
New-AzureRmVM -ResourceGroupName $rgName -Location $locName -VM $vm1
b) NetScaler VPX instance 2
For example:
$vmName=”VPX2”
$vmSize=”Standard_A3”
$avSet=Get-AzureRmAvailabilitySet -Name $avName -ResourceGroupName $rgName
$vm2=New-AzureRmVMConfig -VMName $vmName -VMSize $vmSize -AvailabilitySetId $avset.Id
$cred=Get-Credential -Message “ Type Credentials which will be used to login to VPX instance “
$vm2=Set-AzureRmVMOperatingSystem -VM $vm2 -Linux -ComputerName $vmName -Credential $cred -Verbose
$vm2=Set-AzureRmVMSourceImage -VM $vm2 -PublisherName $pubName -Offer $offerName -Skus $skuName -Version “latest”
$vm2=Add-AzureRmVMNetworkInterface -VM $vm2 -Id $backendnic2.Id
$diskName=”dynamic”
$storageAcc=Get-AzureRmStorageAccount -ResourceGroupName $rgName -Name $saName
$osDiskUri1=$storageAcc.PrimaryEndpoints.Blob.ToString() + “vhds2/” + $diskName + “.vhd”
$vm2=Set-AzureRmVMOSDisk -VM $vm2 -Name $diskName -VhdUri $osDiskUri1 -CreateOption fromImage
Set-AzureRmVMPlan -VM $vm2 -Publisher $pubName -Product $offerName -Name $skuName
New-AzureRmVM -ResourceGroupName $rgName -Location $locName -VM $vm2
12) Configuring the virtual machines
When both the NetScaler VPX instances start, then connect to both NetScaler VPX instances using the SSH protocol to configure the virtual machines.
a) Active-Active: Run the same set of configuration commands on the command line of both the NetScaler VPX instances.
b) Active-Passive: Run this command on the command line of both the NetScaler VPX instances.
add ha node #nodeID <nsip of other NetScaler VPX>
In Active-Passive mode, run configuration commands on the primary node only.
Share
Share
This Preview product documentation is Citrix Confidential.
You agree to hold this documentation confidential pursuant to the terms of your Citrix Beta/Tech Preview Agreement.
The development, release and timing of any features or functionality described in the Preview documentation remains at our sole discretion and are subject to change without notice or consultation.
The documentation is for informational purposes only and is not a commitment, promise or legal obligation to deliver any material, code or functionality and should not be relied upon in making Citrix product purchase decisions.
If you do not agree, select Do Not Agree to exit.