This section provides information about Avi Load Balancers support for multiple OpenStack floating IPs.

The L3 API in OpenStack Networking (Neutron) supports multiple floating IP pools. In OpenStack Networking, a floating IP pool is represented as an external network, and a floating IP is allocated from a subnet associated with the external network. The external networks for an OpenStack deployment can be a combination of your intranet corporate IT network and an Internet-facing external network.

Floating IPs to Virtual Service VIP

Avi Load Balancer supports allocating and assigning a single floating IP to each VIP of a virtual service. In certain customer environments, more than one floating IP can be associated out-of-band with the VIP. Avi Load Balancer preserves any such out-of-band floating-IP associations to the VIP and manages the Avi Load Balancer-allocated floating IP to the VIP simultaneously as part of the VIP lifecycle.

Update of the VIP address preserves the out-of-band floating IPs by associating them from the old VIP with the new VIP. Updation or deletion of the Avi Load Balancer-allocated floating IP only modifies its association to the VIP, retaining out-of-band floating-IP associations. Deleting the VIP will release the out-of-band floating-IP associations.

Configuring Floating IPs to a Virtual Service VIP

  1. Create virtual service VIP with Avi Load Balancer-allocated Floating IP through the Avi Load Balancer UI.

    Avi Load Balancer screenshot shows that the Dual-FIP virtual service is created and is 100% healthy.

  2. Assess OpenStack Neutron Floating IP Associations.

    [root@sivacos ~(keystone_admin)]# neutron net-list
    +--------------------------------------+------------+------------------------------------------------------+
    | id                                   | name       | subnets                                              |
    +--------------------------------------+------------+------------------------------------------------------+
    | 74b6ff07-eb04-44cb-afb9-9f25d03342da | lab-ext    | 2f95bbc2-9690-4fa4-935c-0a251153d198 192.168.99.0/24 |
    | c71d1f1b-429c-4bc0-8029-587138550126 | public-ext | 15046d5d-d26d-4099-9916-2f18aa7de30e 10.130.128.0/18 |
    +--------------------------------------+------------+------------------------------------------------------+
    
    [root@sivacos ~(keystone_admin)]# neutron floatingip-list
    +--------------------------------------+------------------+---------------------+--------------------------------------+
    | id                                   | fixed_ip_address | floating_ip_address | port_id                              |
    +--------------------------------------+------------------+---------------------+--------------------------------------+
    | 5ecceb7d-bf68-4a1a-b383-9566a8f4c5d3 | 10.0.0.8         | 10.130.130.6        | e8b242b6-aa0a-4a22-b120-d21dd2979f21 |
    | 1348f055-8e6c-423f-b628-292d43071d6d |                  | 192.168.99.14       |                                      |
    +--------------------------------------+------------------+---------------------+--------------------------------------+
    
    [root@sivacos ~(keystone_admin)]# neutron port-show e8b242b6-aa0a-4a22-b120-d21dd2979f21
    +--------------+--------------------------------------------------------------------------------------------------------------------------------------------+
    | Field        | Value                                                                                                                                      |
    +--------------+--------------------------------------------------------------------------------------------------------------------------------------------+
    | device_id    |                                                                                                                                            |
    | device_owner | neutron:LOADBALANCER                                                                                                                       |
    | fixed_ips    | {"subnet_id": "4e010951-eb90-43af-9bad-e578f1ac2f77", "ip_address": "10.0.0.8"}                                                            |
    | id           | e8b242b6-aa0a-4a22-b120-d21dd2979f21                                                                                                       |
    | mac_address  | fa:16:3e:61:02:14                                                                                                                          |
    | name         | avi-vip-vsvip-92fc6977-d856-4427-bc52-6f09c2449d20:cluster-24e1c6db-bba4-409c-b86e-1accf4bebac3:cloud-2f391637-05bf-41c7-9c9c-6908c51c0f4d |
    | network_id   | a6669299-dccb-40a9-a0d2-4608aaea79c0                                                                                                       |
    | status       | DOWN                                                                                                                                       |
    | tenant_id    | 9d50abab12cb40c9a20242407e3f38f6                                                                                                           |
    ...
    +--------------+--------------------------------------------------------------------------------------------------------------------------------------------+
  3. Adding a second Floating IP Out-Of-Band

    [root@sivacos ~(keystone_admin)]# neutron floatingip-create lab-ext
    Created a new floatingip:
    +---------------------+--------------------------------------+
    | Field               | Value                                |
    +---------------------+--------------------------------------+
    | fixed_ip_address    |                                      |
    | floating_ip_address | 192.168.99.14                        |
    | floating_network_id | 74b6ff07-eb04-44cb-afb9-9f25d03342da |
    | id                  | 1348f055-8e6c-423f-b628-292d43071d6d |
    | port_id             |                                      |
    | router_id           |                                      |
    | status              | DOWN                                 |
    | tenant_id           | 9d50abab12cb40c9a20242407e3f38f6     |
    ...
    +---------------------+--------------------------------------+
    
    [root@sivacos ~(keystone_admin)]# neutron floatingip-associate --fixed-ip-address 10.0.0.8 1348f055-8e6c-423f-b628-292d43071d6d e8b242b6-aa0a-4a22-b120-d21dd2979f21
    Associated floating IP 1348f055-8e6c-423f-b628-292d43071d6d
    
    [root@sivacos ~(keystone_admin)]# neutron floatingip-list
    +--------------------------------------+------------------+---------------------+--------------------------------------+
    | id                                   | fixed_ip_address | floating_ip_address | port_id                              |
    +--------------------------------------+------------------+---------------------+--------------------------------------+
    | 5ecceb7d-bf68-4a1a-b383-9566a8f4c5d3 | 10.0.0.8         | 10.130.130.6        | e8b242b6-aa0a-4a22-b120-d21dd2979f21 |
    | 1348f055-8e6c-423f-b628-292d43071d6d | 10.0.0.8         | 192.168.99.14       | e8b242b6-aa0a-4a22-b120-d21dd2979f21 |
    +--------------------------------------+------------------+---------------------+--------------------------------------+

Floating IPs to a Cluster IP

Avi Load Balancer supports associating a cluster IP with the Avi Load Balancer Controller cluster. More than one floating IP can be associated out-of-band with that cluster IP. Avi Load Balancer Controller preserves any such out-of-band floating-IP associations to the cluster VIP in the event of a cluster leader change. Update of the cluster IP address preserves the out-of-band floating IPs by associating them from the old VIP to the new VIP. Deleting a cluster IP will release the out-of-band floating-IP associations.

[root@sivacos ~(keystone_admin)]# neutron net-list
+--------------------------------------+------------+------------------------------------------------------+
| id                                   | name       | subnets                                              |
+--------------------------------------+------------+------------------------------------------------------+
| 74b6ff07-eb04-44cb-afb9-9f25d03342da | lab-ext    | 2f95bbc2-9690-4fa4-935c-0a251153d198 192.168.99.0/24 |
| c71d1f1b-429c-4bc0-8029-587138550126 | public-ext | 15046d5d-d26d-4099-9916-2f18aa7de30e 10.130.128.0/18 |
+--------------------------------------+------------+------------------------------------------------------+

Configure Avi Load Balancer Controller Cluster IP

Add Floating IPs Out-Of-Band Using the OpenStack Neutron CLI

[root@sivacos ~(keystone_admin)]# neutron floatingip-list
+--------------------------------------+------------------+---------------------+--------------------------------------+
| id                                   | fixed_ip_address | floating_ip_address | port_id                              |
+--------------------------------------+------------------+---------------------+--------------------------------------+
| 2f769d13-e463-46c5-befe-7049ab6d9693 |                  | 10.130.130.10       |                                      |
| 562477b5-dbb4-4bff-b7d2-90455230b36d |                  | 192.168.99.6        |                                      |
+--------------------------------------+------------------+---------------------+--------------------------------------+

[root@sivacos ~(keystone_admin)]# neutron port-show 90b0a7fc-5376-4ddc-9740-18c508a4d7fc
+-----------------------+------------------------------------------------------------------------------------------------------+
| Field                 | Value                                                                                                |
+-----------------------+------------------------------------------------------------------------------------------------------+
| device_id             |                                                                                                      |
| device_owner          | neutron:LOADBALANCER                                                                                 |
| fixed_ips             | {"subnet_id": "a178c1f1-5cce-4f0a-ac1a-8277e26b085e", "ip_address": "172.24.16.100"}                 |
| id                    | 90b0a7fc-5376-4ddc-9740-18c508a4d7fc                                                                 |
| mac_address           | fa:16:3e:79:fb:cf                                                                                    |
| name                  | AviClusterIp:cluster-e5293381-d3ca-4630-8535-5b4071a78482:cloud-14b49755-c9ff-4e1e-8a42-21a1590e3345 |
| network_id            | 27bd1f64-5a50-4189-98db-3265809ac71a                                                                 |
| tenant_id             | a6d878c0f7db40bf91ed1226e720460a                                                                     |
...
+-----------------------+------------------------------------------------------------------------------------------------------+

[root@sivacos ~(keystone_admin)]# neutron floatingip-associate --fixed-ip-address 172.24.16.100 2f769d13-e463-46c5-befe-7049ab6d9693 90b0a7fc-5376-4ddc-9740-18c508a4d7fc
Associated floating IP 2f769d13-e463-46c5-befe-7049ab6d9693

[root@sivacos ~(keystone_admin)]# neutron floatingip-associate --fixed-ip-address 172.24.16.100 562477b5-dbb4-4bff-b7d2-90455230b36d 90b0a7fc-5376-4ddc-9740-18c508a4d7fc
Associated floating IP 562477b5-dbb4-4bff-b7d2-90455230b36d

[root@sivacos ~(keystone_admin)]# neutron floatingip-list
+--------------------------------------+------------------+---------------------+--------------------------------------+
| id                                   | fixed_ip_address | floating_ip_address | port_id                              |
+--------------------------------------+------------------+---------------------+--------------------------------------+
| 2f769d13-e463-46c5-befe-7049ab6d9693 | 172.24.16.100    | 10.130.130.10       | 90b0a7fc-5376-4ddc-9740-18c508a4d7fc |
| 562477b5-dbb4-4bff-b7d2-90455230b36d | 172.24.16.100    | 192.168.99.6        | 90b0a7fc-5376-4ddc-9740-18c508a4d7fc |
+--------------------------------------+------------------+---------------------+--------------------------------------+

Updating the Cluster IP

Update the Avi Load Balancer Controller Cluster Configuration

[root@sivacos ~(keystone_admin)]# neutron floatingip-list
+--------------------------------------+------------------+---------------------+--------------------------------------+
| id                                   | fixed_ip_address | floating_ip_address | port_id                              |
+--------------------------------------+------------------+---------------------+--------------------------------------+
| 2f769d13-e463-46c5-befe-7049ab6d9693 | 172.24.16.200    | 10.130.130.10       | 68c54c6a-e305-4c92-90c0-418240ecf7fd |
| 562477b5-dbb4-4bff-b7d2-90455230b36d | 172.24.16.200    | 192.168.99.6        | 68c54c6a-e305-4c92-90c0-418240ecf7fd |
+--------------------------------------+------------------+---------------------+--------------------------------------+

[root@sivacos ~(keystone_admin)]# neutron port-show 68c54c6a-e305-4c92-90c0-418240ecf7fd
+-----------------------+------------------------------------------------------------------------------------------------------+
| Field                 | Value                                                                                                |
+-----------------------+------------------------------------------------------------------------------------------------------+
| device_id             |                                                                                                      |
| device_owner          | neutron:LOADBALANCER                                                                                 |
| fixed_ips             | {"subnet_id": "a178c1f1-5cce-4f0a-ac1a-8277e26b085e", "ip_address": "172.24.16.200"}                 |
| id                    | 68c54c6a-e305-4c92-90c0-418240ecf7fd                                                                 |
| mac_address           | fa:16:3e:46:e1:c4                                                                                    |
| name                  | AviClusterIp:cluster-e5293381-d3ca-4630-8535-5b4071a78482:cloud-14b49755-c9ff-4e1e-8a42-21a1590e3345 |
| network_id            | 27bd1f64-5a50-4189-98db-3265809ac71a                                                                 |
| tenant_id             | a6d878c0f7db40bf91ed1226e720460a                                                                     |
...
+-----------------------+------------------------------------------------------------------------------------------------------+

Deleting Out-Of-Band Floating IPs

The Free Unused Floating IP Address check box in the Cloud configuration Avi Load Balancer UI (corresponding to the free_floatingips flag in the Avi Load Balancer CLI) determines if the out-of-band floating IPs are deleted when the virtual service VIP or the cluster IP is deleted. If activated, the out-of-band floating IPs are deleted; else, they are just released back to the pool of available floating IPs.

Freeing unused floating IP addresses