multi-space deployment: neutron-api-plugin-ovn binding with neutron-api is using the public space by default and ignoring the specified default binding space
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Neutron API OVN Plugin Charm |
New
|
Undecided
|
Unassigned |
Bug Description
Series: Focal
OpenStack release: Yoga
When using the following configuration for neutron ovn plugin and neutron-api:
neutron-
charm: ch:neutron-
channel: yoga/stable
options:
dns-servers: 8.8.8.8
neutron-api:
charm: ch:neutron-api
.
.
channel: yoga/stable
bindings:
"": *oam-space
public: *public-space
internal: *internal-space
shared-db: *internal-space
relations:
- - neutron-
- neutron-
It seems like the space being used for this relation is for some reason always the public space (10.7.208.0/24) while the default binding space OAM (192.168.24.0/24) is being ignored, as we can see as well in "juju show-unit neutron-api" output:
- relation-id: 49
endpoint: neutron-
related-
application
related-units:
neutron-
in-scope: true
data:
false], ["dns_servers", "8.8.8.8"], ["dhcp_
As a result, ovn-central UFW will be configured to allow SSL connections (port 16642) from neutron-api on the public space only, and neutron-api will crash as its connections attempts over OAM space will be refused:
> > 2022-05-31 18:37:50.189 124076 ERROR neutron.service File "/usr/lib/
> > 2022-05-31 18:37:50.189 124076 ERROR neutron.service raise ValueError(
> > 2022-05-31 18:37:50.189 124076 ERROR neutron.service ValueError: non-zero flags not allowed in calls to send() on <class 'eventlet.
> > 2022-05-31 18:37:50.189 124076 ERROR neutron.service
> > 2022-05-31 18:37:50.193 124076 CRITICAL neutron [req-1aa04fbb-
OVN-Central Units Firewall:
> # ufw status verbose | grep 16642
> > 16642/tcp ALLOW IN 10.7.208.13 # charm-ovn-central
> > 16642/tcp ALLOW IN 192.168.24.123 # charm-ovn-central
> > 16642/tcp ALLOW IN 192.168.24.128 # charm-ovn-central
> > 16642/tcp REJECT IN Anywhere # charm-ovn-central
> > 16642/tcp (v6) REJECT IN Anywhere (v6) # charm-ovn-central
The issue is resolved only when specifying explicitly the space to be used for this relation:
neutron-
.
.
bindings:
"": *oam-space
neutron-
neutron-api:
charm: ch:neutron-api
.
.
bindings:
"": *oam-space
public: *public-space
internal: *internal-space
shared-db: *internal-space
neutron-