← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1959903] [NEW] ovn-octavia loadbalancer not working when VIP is on a dual-stack provider network

 

Public bug reported:

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

** Affects: neutron
     Importance: Undecided
     Assignee: Luis Tomas Bolivar (ltomasbo)
         Status: New

** Changed in: neutron
     Assignee: (unassigned) => Luis Tomas Bolivar (ltomasbo)

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1959903

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

Status in neutron:
  New

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

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1959903/+subscriptions



Follow ups