Cannot setup IPv6 overlay network in xena
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
neutron |
Fix Released
|
High
|
Tamas Gergely Peter |
Bug Description
After upgrading from pike to xena my IPv6 vxlan overlay networks with linuxbridge stopped working.
In neutron-
Traceback (most recent call last):
File "/usr/lib/
sync = self.process_
File "/usr/local/
result = f(*args, **kwargs)
File "/usr/lib/
resync_a = self.treat_
File "/usr/local/
result = f(*args, **kwargs)
File "/usr/lib/
self.
File "/usr/lib/
interface_
File "/usr/lib/
return self.add_
File "/usr/lib/
return False
File "/usr/local/
self.
File "/usr/local/
raise self.value
File "/usr/lib/
return self._add_
File "/usr/lib/
elif not self.ensure_
File "/usr/lib/
return self.ensure_
File "/usr/lib/
interface = self.ensure_
File "/usr/lib/
int_vxlan = self.ip.
File "/usr/lib/
privileged.
File "/usr/local/
return self.channel.
File "/usr/local/
raise exc_type(
OSError: illegal IP address string passed to inet_pton
After some debugging I've found that xena uses pyroute2 module to create interfaces and it tries to parse the IPv6 vxlan_group and vxlan_local addresses with AF_INET address family, despite that the ml2_conf.ini contains "overlay_ip_version = 6".
If I apply the following modification to ip_lib.py, the issue disappears, however I know that this is just working until I use IPv6 vxlan networks.
--- ip_lib.py.orig 2021-11-30 16:12:31.434975862 +0000
+++ ip_lib.py 2021-12-01 10:44:20.737971722 +0000
@@ -280,7 +280,7 @@
kwargs = {'vxlan_id': vni}
if group:
- kwargs[
+ kwargs[
if dev:
if ttl:
@@ -288,7 +288,7 @@
if tos:
if local:
- kwargs[
+ kwargs[
if proxy:
# tuple: min,max
Is there any solution to use IPv6 overlay networks without issues?
tags: | added: ipv6 linuxbridge |
Changed in neutron: | |
assignee: | nobody → Tamas Gergely Peter (tamasgp) |
tags: | added: neutron-proactive-backport-potential |
Hi, thanks for the bug report. /github. com/svinota/ pyroute2/ blob/master/ pyroute2. core/pr2modules /netlink/ rtnl/ifinfmsg/ plugins/ vxlan.py
After some digging I found where pyroute2 ip.link for VXLAN have all possible params:
https:/
I am not sure which pyroute2 is installed for your xena env.
Perhaps the simplest way is similar to your suggestion, but check ip family from local, and call privsep. create_ interface with the correct (ipv4 or ipv6) kwargs.
If you would like to and have time please propose the patch (to master, we can backport from master only) or I can propose as well.