
Neutron adds distributed attributes to each Floating IP. Users can set this attribute according to their actual environment and use requirements. see more [1] [1] https://bugs.launchpad.net/neutron/+bug/1978039 Related-Bug: #1978039 Change-Id: Ibdaa0ae502b5fd413cb08e68356e0c18463c4974
3.0 KiB
Floating IP distributed
Launchpad Bug: https://bugs.launchpad.net/neutron/+bug/1978039
Neutron adds distributed attributes to each Floating IP. Users can set this attribute according to their actual environment and use requirements.
Problem Description
Neutron supports setting the floating IP to distributed. External traffic can go directly to the compute node without passing through the network node, and increases the network performance. This is very useful for the demand for high-performance networks.
However, we can decide whether floating ips are distributed or centralized by setting configuration option(ovn backend) or setting router's "distributed" attribute(ovs dvr mode). This is global. After configuration, all floating ips are centralized or distributed.
The actual use may be complicated:
- Not all vms with floating ip may require high-performance networks, and may only be exposed to the outside world to provide services.
- Due to equipment conditions, some compute nodes are not equipped with external network card. If enable distributed, the vm of this compute node cannot allocate floating ip.
Proposed Change
Add new API extension to extend floatingip
resource in
Neutron with distributed
attribute. If not set this
attribute, the distributed
attribute of the router will be
used for the floating ip1.
Server side changes
A new API extension of Neutron will be added with new attribute for
the floatingip
resource. This new attribute will be called
distributed
:
RESOURCE_ATTRIBUTE_MAP = {
l3.FLOATINGIPS: {
"distributed": {
'allow_post': True,
'allow_put': True,
'convert_to': converters.convert_to_boolean_if_not_none,
'default': constants.ATTR_NOT_SPECIFIED,
'is_visible': True,
'is_filter': True
}
}
}
DB Impact
Extend the floatingips
table with boolean column
distributed
.
REST API Impact
New API extension: floatingip-distributed
introducing
new floatingip attribute: distributed
.
Client Impact
Relevant changes in OSC and openstacksdk to add support for new floatingip's attribute. To enable it for floatingip, it should be something like:
openstack floating ip create --distributed
and to disable it:
openstack floating ip create --centralized
and update it:
openstack floating ip update [--distributed | --centralized ]
Testing
- Unit tests.
- Functional test.
- Tempest tests in neutron-tempest-plugin.
Assignee(s)
- ZhouHeng <zhouhenglc@inspur.com>
References
Neutron Drivers meeting, June 24, 2022 https://meetings.opendev.org/meetings/neutron_drivers/2022/neutron_drivers.2022-06-24-14.00.log.html#l-116↩︎