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
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.
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 | ... +--------------+--------------------------------------------------------------------------------------------------------------------------------------------+
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