NSX Advanced Load Balancer integrates with Google Cloud Platform (GCP) for providing Internet Protocol Address Management (IPAM) services to applications running on instances in GCP. This section explains how to create a GCP profile and configure GCP IPAM.

Note:

Starting with NSX Advanced Load Balancer version 20.1.3, Linux Server Cloud and GCP IPAM on GCP are not supported.

Prerequisites for GCP IPAM

  • Set up the Controller and Service Engine instances on GCP.

  • Install NSX Advanced Load Balancer in a Linux Cloud. To use GCP as the IPAM provider, all the Controller and Service Engine instances must run in Google Cloud. The cloud type selected within NSX Advanced Load Balancer should be Linux Server Cloud.

  • GCP uses a /32-based interface IP configuration. To support this, perform the following after configuring the Linux Server Cloud.

The CLI command is as follows:

configure serviceengineproperties
se_runtime_properties
se_handle_interface_routes

service_ip_subnets subnet/mask
save
save

Reload all the Service Engines for the configuration to take effect.

The service_ip_subnets configuration optimizes the Docker routes on the Service Engines. If VIP allocation is done from multiple subnets, specify all of them.

Configuring GCP IPAM

Create the GCP IPAM in NSX Advanced Load Balancer, and configure it by following the steps given below.

You can create the IPAM profile as follows:

  1. Navigate to Templates > Profiles > IPAM/DNS profiles.

  2. Click Create.

  3. Specify the IPAM Profile Name.

  4. Select the Type as Google Cloud Platform IPAM from the drop-down menu.

  5. Click Save.

You can configure GCP IPAM as follows:

  1. Navigate to Infrastructure > Cloud.

  2. Select Default Cloud and click the Edit icon.

  3. The IPAM that was created appears in the IPAM Profile drop-down menu. Select the IPAM Profile.

  4. Configure a Linux Server Cloud using the IP addresses for the Service Engine instances created.

GCP IPAM has been configured, and virtual services can now be provisioned.

Note:

On GCP only L3 scale out mode is supported for virtual services.

Some of the GCP zones may require the MTU to be lowered to 1400. To set the MTU on the Service Engines, you can use the following CLI command:

configure serviceengineproperties
se_runtime_properties
global_mtu 1400
save
save

The MTU value will take effect after the Service Engines are rebooted once.

Assigning Floating IP

You can assign floating IP using the following CLI command:

++Truncated Output++
+------------------------------------+-----------------------------------------------------+
[admin:10-146-43-2]: virtualservice> vip index 1
[admin:10-146-43-2]: virtualservice:vip> auto_allocate_floating_ip
Overwriting the previously entered value for auto_allocate_floating_ip
[admin:10-146-43-2]: virtualservice:vip> save
[admin:10-146-43-2]: virtualservice> save
++ Truncated Output++
Note:

Assigning Floating IP is currently supported via the CLI only.

Auto-allocate Floating IP

All GCP resources will be created in the SEs project. Only auto-allocation of floating IP is supported.

++Truncated Output++
[2018-07-16 06:48:08,717] INFO [gcp_nlb.allocate_vip:63] old_vip_info: vip {
addr: "55.55.55.100"
type: V4
}
alloc_fip: false
|| new_vip_info: vip {
addr: "55.55.55.100"
type: V4
}
alloc_fip: true

You can also use Swagger APIs to auto-allocate a Floating IP via a PUT request using the following CLI command as follows:

"vip" : [ {
"availability_zone" : "aeiou",
"ip6_address" : "",
"subnet" : "",
"port_uuid" : "aeiou",
"subnet_uuid" : "aeiou",
"avi_allocated_vip" : true,
"vip_id" : "aeiou",
"ip_address" : "",
"auto_allocate_floating_ip" : true, *
"enabled" : true,
"floating_subnet6_uuid" : "aeiou",
"auto_allocate_ip" : true,
"subnet6" : "",
"floating_ip" : "",
"floating_subnet_uuid" : "aeiou",
"avi_allocated_fip" : true,
"subnet6_uuid" : "aeiou",
"floating_ip6" : "",
"ipam_network_subnet" : "",
"network_ref" : "aeiou",
"discovered_networks" : [ "" ]