IPv6 subnet creation in segmented network partially fails

Bug #1914231 reported by Carlos Goncalves
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
New
Undecided
Unassigned

Bug Description

Creation of an IPv6 subnet in a segmented network partially fails. Neutron returns HTTP 400 but subnet record is created and shows up in subnet list.

Master OpenStack deployment (OVN TripleO-based):
  - neutron a1e74ac
  - neutron-lib: 307b6be
  - neutronclient: 4963c7a
  - OVN: 2.13-20.09.0-17.el8.x86_64

$ openstack --os-cloud overcloud subnet create --network multi-segment-provider --network-segment segment-r2 --subnet-range 2001:db8:0:2::/64 --ip-version 6 --ipv6-address-mode=slaac --ipv6-ra-mode=slaac subnet-segment-2-ipv6
BadRequestException: 400: Client Error for url: http://99.88.88.88:9696/v2.0/subnets, Invalid input for operation: Failed to create port on network e1503814-f257-4ccb-bb96-15337a345f77, because fixed_ips included invalid subnet fcdb0a79-b
d40-45d3-b0ee-8fa820c1b3e1.

$ openstack subnet list
+--------------------------------------+-----------------------+--------------------------------------+-------------------+
| ID | Name | Network | Subnet |
+--------------------------------------+-----------------------+--------------------------------------+-------------------+
| 19a5dc8a-897d-45b3-8384-97c1566f69b7 | private-subnet | 2b78aa5a-7a70-489a-a2d6-82b31f77b279 | 10.0.0.0/24 |
| 789c1e83-a3cd-4e01-ae98-286dc5c40d1a | subnet-segment-3 | e1503814-f257-4ccb-bb96-15337a345f77 | 172.24.3.0/24 |
| eada0504-71cd-424f-8ca9-cca2b925fb6d | subnet-segment-2 | e1503814-f257-4ccb-bb96-15337a345f77 | 172.24.2.0/24 |
| fcdb0a79-bd40-45d3-b0ee-8fa820c1b3e1 | subnet-segment-2-ipv6 | e1503814-f257-4ccb-bb96-15337a345f77 | 2001:db8:0:2::/64 |
+--------------------------------------+-----------------------+--------------------------------------+-------------------+

$ openstack subnet show subnet-segment-2-ipv6
+----------------------+--------------------------------------------------+
| Field | Value |
+----------------------+--------------------------------------------------+
| allocation_pools | 2001:db8:0:2::1-2001:db8:0:2:ffff:ffff:ffff:ffff |
| cidr | 2001:db8:0:2::/64 |
| created_at | 2021-02-02T10:47:54Z |
| description | |
| dns_nameservers | |
| dns_publish_fixed_ip | None |
| enable_dhcp | True |
| gateway_ip | 2001:db8:0:2:: |
| host_routes | |
| id | fcdb0a79-bd40-45d3-b0ee-8fa820c1b3e1 |
| ip_version | 6 |
| ipv6_address_mode | slaac |
| ipv6_ra_mode | slaac |
| name | subnet-segment-2-ipv6 |
| network_id | e1503814-f257-4ccb-bb96-15337a345f77 |
| prefix_length | None |
| project_id | 10a643f5ca8a4667b8c7de126c312fc3 |
| revision_number | 0 |
| segment_id | c6008184-3e32-4fbd-a413-e588a9c1249d |
| service_types | None |
| subnetpool_id | None |
| tags | |
| updated_at | 2021-02-02T10:47:54Z |
+----------------------+--------------------------------------------------+

$ openstack network segment show segment-r2
+------------------+--------------------------------------+
| Field | Value |
+------------------+--------------------------------------+
| description | |
| id | c6008184-3e32-4fbd-a413-e588a9c1249d |
| name | segment-r2 |
| network_id | e1503814-f257-4ccb-bb96-15337a345f77 |
| network_type | flat |
| physical_network | r2 |
| segmentation_id | None |
+------------------+--------------------------------------+

2021-02-02 10:47:34.823 30 INFO neutron.wsgi [-] 99.99.2.1 "GET / HTTP/1.1" status: 200 len: 227 time: 0.0046539
2021-02-02 10:47:48.333 33 DEBUG futurist.periodics [-] Submitting periodic callback 'neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb.maintenance.DBInconsistenciesPeriodics.check_for_fragmentation_support' _process_scheduled /usr/lib/py
thon3.6/site-packages/futurist/periodics.py:642
2021-02-02 10:47:48.335 33 DEBUG futurist.periodics [-] Submitting periodic callback 'neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb.maintenance.DBInconsistenciesPeriodics.check_for_ha_chassis_group_address' _process_scheduled /usr/lib
/python3.6/site-packages/futurist/periodics.py:642
2021-02-02 10:47:48.335 33 DEBUG futurist.periodics [-] Submitting periodic callback 'neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb.maintenance.DBInconsistenciesPeriodics.check_for_igmp_snoop_support' _process_scheduled /usr/lib/pytho
n3.6/site-packages/futurist/periodics.py:642
2021-02-02 10:47:48.336 33 DEBUG futurist.periodics [-] Submitting periodic callback 'neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb.maintenance.DBInconsistenciesPeriodics.check_for_localnet_legacy_port_name' _process_scheduled /usr/li
b/python3.6/site-packages/futurist/periodics.py:642
2021-02-02 10:47:48.336 33 DEBUG futurist.periodics [-] Submitting periodic callback 'neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb.maintenance.DBInconsistenciesPeriodics.check_for_port_security_unknown_address' _process_scheduled /us
r/lib/python3.6/site-packages/futurist/periodics.py:642
2021-02-02 10:47:48.336 33 DEBUG futurist.periodics [-] Submitting periodic callback 'neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb.maintenance.DBInconsistenciesPeriodics.check_global_dhcp_opts' _process_scheduled /usr/lib/python3.6/s
ite-packages/futurist/periodics.py:642
2021-02-02 10:47:48.886 33 DEBUG futurist.periodics [-] Submitting periodic callback 'neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb.maintenance.DBInconsistenciesPeriodics.check_for_inconsistencies' _process_scheduled /usr/lib/python3.
6/site-packages/futurist/periodics.py:642
2021-02-02 10:47:51.224 33 DEBUG futurist.periodics [-] Submitting periodic callback 'neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb.maintenance.HashRingHealthCheckPeriodics.touch_hash_ring_nodes' _process_scheduled /usr/lib/python3.6/
site-packages/futurist/periodics.py:642
2021-02-02 10:47:54.618 29 DEBUG neutron.pecan_wsgi.hooks.policy_enforcement [req-e396b5c0-32a3-486e-9bae-3450a861b6f8 4bff0c73ebaf4a1da4e17ac0d5cd0e8e 10a643f5ca8a4667b8c7de126c312fc3 - default default] Attributes excluded by policy engi
ne: ['standard_attr_id', 'vlan_transparent', 'dns_domain'] _exclude_attributes_by_policy /usr/lib/python3.6/site-packages/neutron/pecan_wsgi/hooks/policy_enforcement.py:256
2021-02-02 10:47:54.620 29 INFO neutron.wsgi [req-e396b5c0-32a3-486e-9bae-3450a861b6f8 4bff0c73ebaf4a1da4e17ac0d5cd0e8e 10a643f5ca8a4667b8c7de126c312fc3 - default default] 99.99.2.1 "GET /v2.0/networks/e1503814-f257-4ccb-bb96-15337a345f77
 HTTP/1.1" status: 200 len: 1160 time: 0.2195470
2021-02-02 10:47:54.701 29 DEBUG neutron.api.v2.base [req-7674e6bf-3101-4e75-8dd7-c3b817d77fb1 4bff0c73ebaf4a1da4e17ac0d5cd0e8e 10a643f5ca8a4667b8c7de126c312fc3 - default default] Request body: {'subnet': {'ipv6_address_mode': 'slaac', 'i
p_version': 6, 'cidr': '2001:db8:0:2::/64', 'name': 'subnet-segment-2-ipv6', 'segment_id': 'c6008184-3e32-4fbd-a413-e588a9c1249d', 'ipv6_ra_mode': 'slaac', 'network_id': 'e1503814-f257-4ccb-bb96-15337a345f77'}} prepare_request_body /usr/lib/python3.6/site-packages/neutron/api/v2/base.py:729
2021-02-02 10:47:54.710 29 DEBUG neutron.db.quota.driver [req-7674e6bf-3101-4e75-8dd7-c3b817d77fb1 4bff0c73ebaf4a1da4e17ac0d5cd0e8e 10a643f5ca8a4667b8c7de126c312fc3 - default default] Resources trunk,subnetpool have unlimited quota limit. It is not required to calculate headroom make_reservation /usr/lib/python3.6/site-packages/neutron/db/quota/driver.py:221
2021-02-02 10:47:54.733 29 DEBUG neutron.db.quota.driver [req-7674e6bf-3101-4e75-8dd7-c3b817d77fb1 4bff0c73ebaf4a1da4e17ac0d5cd0e8e 10a643f5ca8a4667b8c7de126c312fc3 - default default] Attempting to reserve 1 items for resource subnet. Tot
al usage: 3; quota limit: 100; headroom:97 make_reservation /usr/lib/python3.6/site-packages/neutron/db/quota/driver.py:253
2021-02-02 10:47:54.746 29 DEBUG neutron.pecan_wsgi.hooks.quota_enforcement [req-7674e6bf-3101-4e75-8dd7-c3b817d77fb1 4bff0c73ebaf4a1da4e17ac0d5cd0e8e 10a643f5ca8a4667b8c7de126c312fc3 - default default] Made reservation on behalf of 10a64
3f5ca8a4667b8c7de126c312fc3 for: {'subnet': 1} before /usr/lib/python3.6/site-packages/neutron/pecan_wsgi/hooks/quota_enforcement.py:55
2021-02-02 10:47:54.751 29 DEBUG neutron_lib.callbacks.manager [req-7674e6bf-3101-4e75-8dd7-c3b817d77fb1 4bff0c73ebaf4a1da4e17ac0d5cd0e8e 10a643f5ca8a4667b8c7de126c312fc3 - default default] Notify callbacks ['neutron.services.segments.plu
gin.SegmentHostRoutes.host_routes_before_create-27042243'] for subnet, before_create _notify_loop /usr/lib/python3.6/site-packages/neutron_lib/callbacks/manager.py:193
2021-02-02 10:47:55.000 29 DEBUG neutron.db.ovn_revision_numbers_db [req-7674e6bf-3101-4e75-8dd7-c3b817d77fb1 4bff0c73ebaf4a1da4e17ac0d5cd0e8e 10a643f5ca8a4667b8c7de126c312fc3 - default default] create_initial_revision uuid=fcdb0a79-bd40-
45d3-b0ee-8fa820c1b3e1, type=subnets, rev=-1 create_initial_revision /usr/lib/python3.6/site-packages/neutron/db/ovn_revision_numbers_db.py:105
2021-02-02 10:47:55.243 29 DEBUG neutron.objects.ports [req-7674e6bf-3101-4e75-8dd7-c3b817d77fb1 4bff0c73ebaf4a1da4e17ac0d5cd0e8e 10a643f5ca8a4667b8c7de126c312fc3 - default default] Time-cost: Fetching 1 ports in 0 security groups get_obj
ects /usr/lib/python3.6/site-packages/neutron/objects/ports.py:428
2021-02-02 10:47:56.263 29 DEBUG neutron_lib.callbacks.manager [req-7674e6bf-3101-4e75-8dd7-c3b817d77fb1 4bff0c73ebaf4a1da4e17ac0d5cd0e8e 10a643f5ca8a4667b8c7de126c312fc3 - default default] Notify callbacks [] for router, precommit_update
 _notify_loop /usr/lib/python3.6/site-packages/neutron_lib/callbacks/manager.py:193
 2021-02-02 10:47:56.518 29 DEBUG neutron_lib.callbacks.manager [req-7674e6bf-3101-4e75-8dd7-c3b817d77fb1 4bff0c73ebaf4a1da4e17ac0d5cd0e8e 10a643f5ca8a4667b8c7de126c312fc3 - default default] Notify callbacks ['neutron.plugins.ml2.plugin.SecurityGroupDbMixin._ensure_default_security_group_handler--9223372036854117193', 'neutron.services.qos.qos_plugin.QoSPlugin._check_port_for_placement_allocation_change--9223372036854435462'] for port, before_update _notify_loop /usr/lib/python3.6/site-packages/neutron_lib/callbacks/manager.py:193
2021-02-02 10:47:56.744 29 INFO neutron.pecan_wsgi.hooks.translation [req-7674e6bf-3101-4e75-8dd7-c3b817d77fb1 4bff0c73ebaf4a1da4e17ac0d5cd0e8e 10a643f5ca8a4667b8c7de126c312fc3 - default default] POST failed (client error): The server could not comply with the request since it is either malformed or otherwise incorrect.
2021-02-02 10:47:56.745 29 DEBUG neutron.pecan_wsgi.hooks.notifier [req-7674e6bf-3101-4e75-8dd7-c3b817d77fb1 4bff0c73ebaf4a1da4e17ac0d5cd0e8e 10a643f5ca8a4667b8c7de126c312fc3 - default default] No notification will be sent due to unsuccessful status code: 400 after /usr/lib/python3.6/site-packages/neutron/pecan_wsgi/hooks/notifier.py:79
2021-02-02 10:47:56.771 29 INFO neutron.wsgi [req-7674e6bf-3101-4e75-8dd7-c3b817d77fb1 4bff0c73ebaf4a1da4e17ac0d5cd0e8e 10a643f5ca8a4667b8c7de126c312fc3 - default default] 99.99.2.1 "POST /v2.0/subnets HTTP/1.1" status: 400 len: 434 time: 2.0760760

Tags: ovn
tags: added: ovn
Revision history for this message
Lajos Katona (lajos-katona) wrote :

By the gaps list (https://docs.openstack.org/neutron/latest/ovn/gaps.html) routed provider nets not supported/working with OVN now, there's an RFE for it:
https://bugs.launchpad.net/neutron/+bug/1865889

Not sure which part should be expected to work, perhaps a clean rejection would be better till the RFE finished.

Revision history for this message
Bernard Cafarelli (bcafarel) wrote :

That RFE status should be updated soon, it has been mostly complete for a while and just missing the documentation step https://review.opendev.org/c/openstack/neutron/+/743709 (which drops it from OVN gaps).
So it would probably help to get some OVN eyes on it

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.