ovn-octavia loadbalancer not working when VIP is on a dual-stack provider network

Bug #1959903 reported by Luis Tomas Bolivar
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
Fix Released
Undecided
Luis Tomas Bolivar

Bug Description

If an octavia loadbalancer is created with OVN provider, on a provider network which has dual-stack (ipv4 and ipv6 subnets), the next error happens:

2022-02-03 09:19:04.234 12 ERROR ovn_octavia_provider.helper [-] Exception occurred during creation of loadbalancer: ValueError: IPAddress() does not support netmasks or subnet prefixes! See documentation for details.
2022-02-03 09:19:04.234 12 ERROR ovn_octavia_provider.helper Traceback (most recent call last):
2022-02-03 09:19:04.234 12 ERROR ovn_octavia_provider.helper File "/usr/lib/python3.6/site-packages/netaddr/ip/__init__.py", line 803, in parse_ip_network
2022-02-03 09:19:04.234 12 ERROR ovn_octavia_provider.helper prefixlen = int(val2)
2022-02-03 09:19:04.234 12 ERROR ovn_octavia_provider.helper ValueError: invalid literal for int() with base 10: '24 2001:db8::f816:3eff:fed5:a9e1/64'
2022-02-03 09:19:04.234 12 ERROR ovn_octavia_provider.helper
2022-02-03 09:19:04.234 12 ERROR ovn_octavia_provider.helper During handling of the above exception, another exception occurred:
2022-02-03 09:19:04.234 12 ERROR ovn_octavia_provider.helper
2022-02-03 09:19:04.234 12 ERROR ovn_octavia_provider.helper Traceback (most recent call last):
2022-02-03 09:19:04.234 12 ERROR ovn_octavia_provider.helper File "/usr/lib/python3.6/site-packages/ovn_octavia_provider/helper.py", line 873, in lb_create
2022-02-03 09:19:04.234 12 ERROR ovn_octavia_provider.helper ovn_lr = self._find_lr_of_ls(ovn_ls, subnet.get('gateway_ip'))
2022-02-03 09:19:04.234 12 ERROR ovn_octavia_provider.helper File "/usr/lib/python3.6/site-packages/ovn_octavia_provider/helper.py", line 640, in _find_lr_of_ls
2022-02-03 09:19:04.234 12 ERROR ovn_octavia_provider.helper port.external_ids['neutron:cidrs']).ip
2022-02-03 09:19:04.234 12 ERROR ovn_octavia_provider.helper File "/usr/lib/python3.6/site-packages/netaddr/ip/__init__.py", line 928, in __init__
2022-02-03 09:19:04.234 12 ERROR ovn_octavia_provider.helper implicit_prefix, flags)
2022-02-03 09:19:04.234 12 ERROR ovn_octavia_provider.helper File "/usr/lib/python3.6/site-packages/netaddr/ip/__init__.py", line 810, in parse_ip_network
2022-02-03 09:19:04.234 12 ERROR ovn_octavia_provider.helper mask = IPAddress(val2, module.version, flags=INET_PTON)
2022-02-03 09:19:04.234 12 ERROR ovn_octavia_provider.helper File "/usr/lib/python3.6/site-packages/netaddr/ip/__init__.py", line 280, in __init__
2022-02-03 09:19:04.234 12 ERROR ovn_octavia_provider.helper % self.__class__.__name__)
2022-02-03 09:19:04.234 12 ERROR ovn_octavia_provider.helper ValueError: IPAddress() does not support netmasks or subnet prefixes! See documentation for details.
2022-02-03 09:19:04.234 12 ERROR ovn_octavia_provider.helper
2022-02-03 09:19:04.942 12 WARNING ovn_octavia_provider.helper [-] Deleting the VIP port 7b6bc45c-ff51-45e3-81ef-7b596528ff44 since LB went into ERROR state

This is due to logical ports associated to the provider network logical switch have both ipv4 and ipv6 into the "neutron:cidrs" field at external_ids:
ovn-nbctl list logical_switch_port 0016d6d0-b8cb-4542-b6fe-840740eef9f0
_uuid : 0016d6d0-b8cb-4542-b6fe-840740eef9f0
addresses : [router]
dhcpv4_options : []
dhcpv6_options : []
dynamic_addresses : []
enabled : true
external_ids : {"neutron:cidrs"="172.24.100.198/24 2001:db8::f816:3eff:fed5:a9e1/64", "neutron:device_id"="142845e4-3424-4b19-a02a-6bfed63efb8f", "neutron:device_owner"="network:router_gateway", "neutron:network_name"=neutron-b1f7e9be-2c18-4f68-9253-ca2bcbb904a1, "neutron:port_name"="", "neutron:project_id"="", "neutron:revision_number"="5", "neutron:security_group_ids"="", "neutron_bgpvpn:as"="64999", "neutron_bgpvpn:vni"="1001"}
ha_chassis_group : []
name : "6b7aa199-b715-4585-a88b-30f276961995"
options : {nat-addresses=router, router-port=lrp-6b7aa199-b715-4585-a88b-30f276961995}
parent_name : []
port_security : []
tag : []
tag_request : []
type : router
up : true

Changed in neutron:
assignee: nobody → Luis Tomas Bolivar (ltomasbo)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to ovn-octavia-provider (master)
Changed in neutron:
status: New → In Progress
tags: added: ovn-octavia-provider
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to ovn-octavia-provider (master)

Reviewed: https://review.opendev.org/c/openstack/ovn-octavia-provider/+/827670
Committed: https://opendev.org/openstack/ovn-octavia-provider/commit/1ac25e88140cd0fc2111fe0c91cb7162e2d8399a
Submitter: "Zuul (22348)"
Branch: master

commit 1ac25e88140cd0fc2111fe0c91cb7162e2d8399a
Author: Luis Tomas Bolivar <email address hidden>
Date: Thu Feb 3 14:48:39 2022 +0100

    Allow to create ovn loadbalancer on dual-stack provider networks

    This patch ensures that loadbalancer can be created with the VIP
    on the provider networks when they are dual-stack (ipv4 and ipv6
    subnets).

    Closes-Bug: #1959903
    Change-Id: Ic0e6c02defb5c98791a3c3d99ff2b7cfc0ccfe2e

Changed in neutron:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to ovn-octavia-provider (stable/xena)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to ovn-octavia-provider (stable/wallaby)

Fix proposed to branch: stable/wallaby
Review: https://review.opendev.org/c/openstack/ovn-octavia-provider/+/829440

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to ovn-octavia-provider (stable/victoria)

Fix proposed to branch: stable/victoria
Review: https://review.opendev.org/c/openstack/ovn-octavia-provider/+/829441

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to ovn-octavia-provider (stable/ussuri)

Fix proposed to branch: stable/ussuri
Review: https://review.opendev.org/c/openstack/ovn-octavia-provider/+/830150

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to ovn-octavia-provider (stable/xena)

Reviewed: https://review.opendev.org/c/openstack/ovn-octavia-provider/+/829439
Committed: https://opendev.org/openstack/ovn-octavia-provider/commit/9ba304df099b398f2439a0ae7c1b73f5af633d10
Submitter: "Zuul (22348)"
Branch: stable/xena

commit 9ba304df099b398f2439a0ae7c1b73f5af633d10
Author: Luis Tomas Bolivar <email address hidden>
Date: Thu Feb 3 14:48:39 2022 +0100

    Allow to create ovn loadbalancer on dual-stack provider networks

    This patch ensures that loadbalancer can be created with the VIP
    on the provider networks when they are dual-stack (ipv4 and ipv6
    subnets).

    Closes-Bug: #1959903
    Change-Id: Ic0e6c02defb5c98791a3c3d99ff2b7cfc0ccfe2e
    (cherry picked from commit 1ac25e88140cd0fc2111fe0c91cb7162e2d8399a)

tags: added: in-stable-xena
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to ovn-octavia-provider (stable/wallaby)

Reviewed: https://review.opendev.org/c/openstack/ovn-octavia-provider/+/829440
Committed: https://opendev.org/openstack/ovn-octavia-provider/commit/dea57c85d97c764e263bb5161429b6d53f4488be
Submitter: "Zuul (22348)"
Branch: stable/wallaby

commit dea57c85d97c764e263bb5161429b6d53f4488be
Author: Luis Tomas Bolivar <email address hidden>
Date: Thu Feb 3 14:48:39 2022 +0100

    Allow to create ovn loadbalancer on dual-stack provider networks

    This patch ensures that loadbalancer can be created with the VIP
    on the provider networks when they are dual-stack (ipv4 and ipv6
    subnets).

    Closes-Bug: #1959903
    Change-Id: Ic0e6c02defb5c98791a3c3d99ff2b7cfc0ccfe2e
    (cherry picked from commit 1ac25e88140cd0fc2111fe0c91cb7162e2d8399a)

tags: added: in-stable-wallaby
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to ovn-octavia-provider (stable/victoria)

Reviewed: https://review.opendev.org/c/openstack/ovn-octavia-provider/+/829441
Committed: https://opendev.org/openstack/ovn-octavia-provider/commit/7a51f79d62d092651f3eac272e914dbdaff9e160
Submitter: "Zuul (22348)"
Branch: stable/victoria

commit 7a51f79d62d092651f3eac272e914dbdaff9e160
Author: Luis Tomas Bolivar <email address hidden>
Date: Thu Feb 3 14:48:39 2022 +0100

    Allow to create ovn loadbalancer on dual-stack provider networks

    This patch ensures that loadbalancer can be created with the VIP
    on the provider networks when they are dual-stack (ipv4 and ipv6
    subnets).

    NOTE: added neutron_lib import constants to make use of the same
    constant used in master, otherwise pep8 gate was failing.

    Closes-Bug: #1959903
    Change-Id: Ic0e6c02defb5c98791a3c3d99ff2b7cfc0ccfe2e
    (cherry picked from commit 1ac25e88140cd0fc2111fe0c91cb7162e2d8399a)

tags: added: in-stable-victoria
tags: added: in-stable-ussuri
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to ovn-octavia-provider (stable/ussuri)

Reviewed: https://review.opendev.org/c/openstack/ovn-octavia-provider/+/830150
Committed: https://opendev.org/openstack/ovn-octavia-provider/commit/0c196f1f1b30fa657272ad6dcfe638b4f4064ce7
Submitter: "Zuul (22348)"
Branch: stable/ussuri

commit 0c196f1f1b30fa657272ad6dcfe638b4f4064ce7
Author: Luis Tomas Bolivar <email address hidden>
Date: Mon Feb 21 13:11:19 2022 +0100

    Allow to create ovn loadbalancer on dual-stack provider networks

    This patch ensures that loadbalancer can be created with the VIP
    on the provider networks when they are dual-stack (ipv4 and ipv6
    subnets).

    Closes-Bug: #1959903
    (manually cherry picked from commit 1ac25e88140cd0fc2111fe0c91cb7162e2d8399a)

    Change-Id: Ic0e6c02defb5c98791a3c3d99ff2b7cfc0ccfe2e

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/ovn-octavia-provider 2.0.0.0rc1

This issue was fixed in the openstack/ovn-octavia-provider 2.0.0.0rc1 release candidate.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/ovn-octavia-provider 1.0.1

This issue was fixed in the openstack/ovn-octavia-provider 1.0.1 release.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/networking-ovn train-eol

This issue was fixed in the openstack/networking-ovn train-eol release.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/ovn-octavia-provider 1.2.0

This issue was fixed in the openstack/ovn-octavia-provider 1.2.0 release.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/ovn-octavia-provider ussuri-eol

This issue was fixed in the openstack/ovn-octavia-provider ussuri-eol release.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/ovn-octavia-provider victoria-eom

This issue was fixed in the openstack/ovn-octavia-provider victoria-eom release.

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.