NSX Advanced Load Balancer supports scaling virtual services, which distributes workload across multiple Service Engines to provide increased capacity on demand, thus extending the throughput capacity of the virtual service and increasing the level of high availability.

NSX Advanced Load Balancer deployments in Microsoft Azure leverage the Microsoft Azure Load Balancer to provide an ECMP-like layer 3 scale-out architecture.

NSX Advanced Load Balancer supports the configuration of multiple virtual service IP addresses (VIPs) for a given virtual service in an Azure deployment. In this case, all the IP addresses are registered with the virtual service’s FQDN, and traffic is distributed across the VIPs using DNS-based load balancing. Using this feature the architecture having high SSL TPS and high throughput can be optimized. For more information on scaling virtual services in the Microsoft Azure environment, see Virtual Service Scaling section in the VMware NSX Advanced Load BalancerConfiguration guide.

Use Case

Using this feature, incoming traffic is served by two or more VIPs in the same Azure Load Balancer (ALB), and these VIPs scale out to the required SEs as per the load. It is helpful in the environment when the ALB has a limitation in scaling out beyond a certain number of SEs.

Configuring Multiple IP addresses for a Virtual Service

Note:
  • Each virtual service IP address (VIP) of a given virtual service always gets placed on a different set of SEs.

  • Both the VIPs are hosted on the same Azure LB.

The following diagram depicts traffic flow when multiple IP addresses are configured for a virtual service.

Figure 1. Multiple VIP Support for Azure Cloud

The following are the observations from the diagram shown above:

  1. VS1 is the virtual service for the domain test.foo.com.

  2. For VS1, there are two IPs configured, 10.0.0.5 and 10.0.0.6.

  3. Based on the configuration, the incoming traffic goes to one of these IPs.

  4. With this feature, VIP1 scales out to SE1, SE2, and SE3. VIP2 scales out to SE4 and SE5. SE1, SE2, and SE3 are part of the scale-set-A on the Azure cloud. SE4 and SE5 are part of the scale-set-B. As two different scale-sets are configured, the resources are optimized while a scale-out or scale-in event occurs.

Configuring using NSX Advanced Load Balancer CLI

NSX Advanced Load Balancer CLI is used to configure multiple VIP features for virtual service in an Azure cloud. Configuration using NSX Advanced Load Balancer UI is not supported yet. Login to the NSX Advanced Load Balancer CLI and use the configure virtual service <virtual service name> command to configure multiple VIPs for the selected virtual service.

[admin:controller1]: > configure virtualservice vstest
[admin:controller1]: virtualservice> services port 80
New object being created
[admin:controller1]: virtualservice:services> save
[admin:controller1]: virtualservice> vip
New object being created
[admin:controller1]: virtualservice:vip> vip
[admin:controller1]: virtualservice:vip> vip_id 1
[admin:controller1]: virtualservice:vip> subnet_uuid dev-subnet
[admin:controller1]: virtualservice:vip> auto_allocate_ip
[admin:controller1]: virtualservice:vip> auto_allocate_ip_type v4_only
[admin:controller1]: virtualservice:vip> where
Tenant: admin
Cloud: Default-Cloud
+-----------------------+---------------+
| Field | Value |
+-----------------------+---------------+
| vip_id | 1 |
| subnet_uuid | dev-subnet |
| auto_allocate_ip | True |
| auto_allocate_ip_type | V4_ONLY |
+-----------------------+---------------+
[admin:controller1]: virtualservice:vip> save
[admin:controller1]: virtualservice> vip
New object being created
[admin:controller1]: virtualservice:vip> vip_id 2
[admin:controller1]: virtualservice:vip> subnet_uuid test-subnet
[admin:controller1]: virtualservice:vip> auto_allocate_ip
[admin:controller1]: virtualservice:vip> auto_allocate_ip_type v4_only
[admin:controller1]: virtualservice:vip> save
[admin:controller1]: virtualservice> save