Microsoft Azure Resource Manager (ARM) is a management framework that allows administrators to deploy, manage, and monitor Azure resources. Azure Resource Manager can handle these tasks as a group, rather than individually, in a single operation.
The NetScaler VPX virtual appliance is available as an image in the Microsoft Azure Marketplace and GitHub. For more information, see the GitHub repository for Citrix NetScaler solution templates for deploying Citrix NetScaler VPX instances in Microsoft Azure Cloud Services.
When you deploy NetScaler VPX on Microsoft Azure Resource Manager (ARM), you can leverage the Azure cloud computing capabilities and use NetScaler load balancing and traffic management features for your business needs. You can deploy NetScaler VPX instances on Azure Resource Manager either as standalone instances or as high availability pairs in active-active or active-standby modes.
This document assumes that you are familiar with Azure terminology and network details. For information, see Azure Resource Manager Terminology.
This document also assumes that you have basic knowledge of a NetScaler appliance. For detailed information about NetScaler appliances, see:
This section provides information about:
The Citrix XenApp and XenDesktop NetScaler Gateway configuration is based on the Azure Service Management mode and not on the Azure Resource Management mode.
In ARM, a NetScaler VPX virtual machine (VM) resides in a virtual network. A virtual Network Interface Card (NIC) is created on each NetScaler VM. The network security group (NSG) configured in the virtual network is bound to the NIC, and together they control the traffic flowing into the VM and out of the VM.
The NSG forwards the requests to the NetScaler VPX instance, and the VPX instance sends them to the servers. The response from a server follows the same path in reverse. The NSG can be configured to control a single VPX VM, or, with subnets and virtual networks, can control traffic in multiple VPX VM deployment.
The NIC contains network configuration details such as the virtual network, subnets, internal IP address, and Public IP address.
While on ARM, it is good to know the following IP addresses that are used to access the VMs deployed with a single NIC and a single IP address:
- Public IP (PIP) address is the internet-facing IP address configured directly on the virtual NIC of the NetScaler VM. This allows you to directly access a VM from the external network.
- NetScaler IP (NSIP) address is internal IP address configured on the VM. It is non-routable.
- Virtual IP address (VIP) is configured by using the NSIP and a port number. Clients access NetScaler services through the PIP address, and when the request reaches the NIC of the NetScaler VPX VM or the Azure load balancer, the VIP gets translated to internal IP (NSIP) and internal port number.
- Internal IP address is the private internal IP address of the VM from the virtual network’s address space pool. This IP address cannot be reached from the external network. This IP address is by default dynamic unless you set it to static. Traffic from the internet is routed to this address according to the rules created on the NSG. The NSG works with the NIC to selectively send the right type of traffic to the right port on the NIC, which depends on the services configured on the VM.
The following figure shows how traffic flows from a client to a server through a NetScaler VPX instance provisioned in ARM.
How a NetScaler VPX Instance Works on Azure
In an on-premises deployment, a NetScaler VPX instance requires at least three IP addresses:
- Management IP address, called the NetScaler IP (NSIP) address
- Subnet IP (SNIP) address for communicating with the server farm
- Virtual server IP (VIP) address for accepting client requests
In an Azure deployment, you can provision a NetScaler VPX instance on Azure in two ways:
- With a single-IP architecture
- With a multi-NIC, multi-IP architecture
VPX virtual appliances can be deployed on any instance type that has two or more cores and more than 2 GB memory.
The following image illustrates how multiple IP addresses are used to perform the functions of NSIP, SNIP, and VIP, with a single NIC in a standalone deployment. According to your requirement, you can configure multiple NICs with different IP addresses.
For more information about NetScaler multi-NIC, multi-IP deployment on Azure, see the following links:
The following image illustrates how a single IP address is used to perform the functions of NSIP, SNIP, and VIP.
The single IP mode is available only in Azure deployments. This mode is not available for a NetScaler VPX instance on your premises, on AWS, or in other type of deployment.
Traffic Flow through Port Address Translation
In an Azure deployment, when you provision the NetScaler VPX instance as a virtual machine (VM), Azure assigns a public IP address and an internal IP address (nonroutable) to the NetScaler virtual machine. Inbound and outbound rules are defined on the NSG for the NetScaler instance, along with a public port and a private port for each rule defined. The NetScaler instance listens on the internal IP address and private port.
Any external request is received on the virtual NIC of the NetScaler VPX VM. The NIC is bound to the NSG, which specifies the private IP and private port combination into which to translate the request's destination address and port (the public IP address and port). ARM performs port address translation (PAT) to map the public IP address and port to the internal IP address and private port of the NetScaler virtual machine, and forwards the traffic to the virtual machine.
The following figure shows how Azure performs port address translation to direct traffic to the NetScaler internal IP address and private port.
In this example, the Public IP address assigned to the VM is 140.x.x.x, and the internal IP address is 10.x.x.x. When the inbound and outbound rules are defined, public HTTP port 80 is defined as the port on which the client requests are received, and a corresponding private port, 10080, is defined as the port on which the NetScaler virtual machine listens. The client request is received on the Public IP address 140.x.x.x at port 80. Azure performs port address translation to map this address and port to internal IP address 10.x.x.x on private port 10080 and forwards the client request.
For information about port usage guidelines while, see Port Usage Guidelines.
For information about NSG and access control lists, see What is a Network Security Group?
Traffic Flow through Network Address Translation
You can also request a Public IP (PIP) address for your NetScaler virtual machine (instance level). If you use this direct PIP at the VM level, you need not define inbound and outbound rules to intercept the network traffic. The incoming request from the Internet is received on the VM directly. Azure performs network address translation (NAT) and forwards the traffic to the internal IP address of the NetScaler instance.
The following figure shows how Azure performs network address translation to map the NetScaler internal IP address.
In this example, the Public IP assigned to the NSG is 140.x.x.x and the internal IP address is 10.x.x.x. When the inbound and outbound rules are defined, public HTTP port 80 is defined as the port on which the client requests are received, and a corresponding private port, 10080, is defined as the port on which the NetScaler virtual machine listens. The client request is received on the Public IP address (140.x.x.x). Azure performs network address translation to map the PIP to the internal IP address 10.x.x.x on port 10080, and forwards the client request.
NetScaler VPX VMs in high availability are controlled by external or internal load balancers that have inbound rules defined on them to control the load balancing traffic. The external traffic is first intercepted by these load balancers and the traffic is diverted according to the load balancing rules configured, which has back-end pools, NAT rules, and health probes defined on the load balancers.
You can configure more inbound and outbound rules n NSG while creating the NetScaler virtual machine or after the virtual machine is provisioned. Each inbound and outbound rule is associated with a public port and a private port.
Before configuring NSG rules, note the following guidelines regarding the port numbers you can use:
1. The NetScaler virtual machine reserves the following ports. You cannot define these as private ports when using the Public IP address for requests from the internet.
Ports 21, 22, 80, 443, 8080, 67, 161, 179, 500, 520, 3003, 3008, 3009, 3010, 3011, 4001, 5061, 9000, 7000.
However, if you want internet-facing services such as the VIP to use a standard port (for example, port 443) you have to create port mapping by using the NSG. The standard port is then mapped to a different port that is configured on the NetScaler for this VIP service.
For example, a VIP service might be running on port 8443 on the NetScaler instance but be mapped to public port 443. So, when the user accesses port 443 through the Public IP, the request is directed to private port 8443.
2. Public IP address does not support protocols in which port mapping is opened dynamically, such as passive FTP or ALG.
3. High availability does not work for traffic that uses a public IP address (PIP) associated with a VPX instance, instead of a PIP configured on the Azure load balancer. For more information about configuring NetScaler VPX HA in ARM, see Configuring NetScaler VPX in High Availability Mode in Azure Resource Manager and Configuring Multiple Azure NICs and IP Addresses for NetScaler VPX Instances in HA Mode.
4. In a NetScaler Gateway deployment, you need not configure a SNIP address, because the NSIP can be used as a SNIP when no SNIP is configured.
You must configure the VIP address by using the NSIP address and some nonstandard port number. For call-back configuration on the back-end server, the VIP port number has to be specified along with the VIP URL (for example, url:port).
In Azure Resource Manager, a NetScaler VPX instance is associated with two IP addresses - a public IP address (PIP) and an internal IP address. While the external traffic connects to the PIP, the internal IP address or the NSIP is non-routable. To configure VIP in VPX, use the internal IP address (NSIP) and any of the free ports available. Do not use the PIP to configure VIP.
For example, if NSIP of a NetScaler VPX instance is 10.1.0.3 and an available free port is 10022, then you can configure VIP by providing the 10.1.0.3:10022 (NSIP address+port) combination.
A NetScaler VPX instance on Azure requires a license. The following licensing options are available for NetScaler VPX instances running on Azure.
- Subscription based licensing: NetScaler VPX appliances are available as paid instances on Azure Marketplace. Subscription based licensing is a pay-as-you-go option. Users are charged hourly. The following VPX models and license types are available on Azure Marketplace.
||Standard, Enterprise, Platinum
||Standard, Enterprise, Platinum
||Standard, Enterprise, Platinum
||Standard, Enterprise, Platinum
Starting with NetScaler release 12.0 56.20, VPX Express for on-premises and cloud deployments does not require a license file. For more information on NetScaler VPX Express see the "NetScaler VPX Express license" section in NetScaler Licensing Overview.
Regardless of the subscription-based hourly license bought from Azure Marketplace, in rare cases, the NetScaler VPX instance deployed on Azure might come up with a default NetScaler license. This happens due to issues with Azure Instance Metadata Service (IMDS).
Do a warm restart before making any configuration change on the NetScaler VPX instance, to enable the correct NetScaler VPX license.
Running the NetScaler VPX load balancing solution on ARM imposes the following limitations:
1. The Azure architecture does not accommodate support for the following NetScaler features:
- Gratuitous ARP (GARP)
- L2 Mode
- Tagged VLAN
- Dynamic Routing
- Virtual MAC (VMAC)
- Jumbo Frames
2. If you expect that you might have to shut down and temporarily deallocate the NetScaler VPX virtual machine at any time, assign a static Internal IP address while creating the virtual machine. If you do not assign a static internal IP address, Azure might assign the virtual machine a different IP address each time it restarts, and the virtual machine might become inaccessible.
3. In an Azure deployment, only the following NetScaler VPX models are supported: VPX 10, VPX 200, VPX 1000, and VPX 3000. For for information, see the NetScaler VPX Data Sheet.
If you use a NetScaler VPX instance with a model number higher than VPX 3000, the network throughput might not be the same as specified by the instance's license. However, other features, such as SSL throughput and SSL transactions per second, might improve.
4. The "deployment ID" that is generated by Azure during virtual machine provisioning is not visible to the user in ARM. You cannot use the deployment ID to deploy NetScaler VPX appliance on ARM.
5. The NetScaler VPX appliance supports 20 Mb/s throughput and standard edition features when it’s initialized.
6. For a XenApp and XenDesktop deployment, a VPN virtual server on a NetScaler appliance can be configured in the following modes:
- Basic mode, where the ICAOnly VPN virtual server parameter is set to ON. The Basic mode works fully on an unlicensed NetScaler VPX instance.
- Smart-Access mode, where the ICAOnly VPN virtual server parameter is set to OFF. The Smart-Access mode works for only 5 NetScaler AAA session users on an unlicensed NetScaler VPX instance.
To configure the Smart Control feature, you must apply a platinum license to the NetScaler VPX instance.