[OVN] VMs cannot access metadata when connected to a network with only IPv6 subnets
| Affects | Status | Importance | Assigned to | Milestone | |
|---|---|---|---|---|---|
| neutron |
Fix Released
|
High
|
Miguel Lavalle | ||
Bug Description
VMs cannot access the metadata service when connected to a network with only IPv6 subnets.
Neutron branch: master
Steps to reproduce:
1) Create a network with a single IPv6 subnet:
$ openstack network create ipv6-net-
$ openstack subnet create --subnet-range fdba:e036:9e22::/64 --ip-version 6 --gateway dba:e036:9e22::1 --ipv6-ra-mode slaac --ipv6-address-mode slaac --network ipv6-net-
2) Create a VM using this network:
$ openstack server create --key-name my_key --flavor m1.small --image ubuntu-
3) The following message is added to the metadata agent log file:
Jun 14 22:00:32 central neutron-
which is produced here:
4) When an IPv4 subnet is added to the network and the VM is recreated, the metadata service is accessible to it over IPv6:
$ openstack subnet create --network ipv6-net-
$ openstack server delete my-vm-slaac
$ openstack server create --key-name my_key --flavor m1.small --image ubuntu-
From the VM:
ubuntu@
1.0
2007-01-19
2007-03-01
2007-08-29
2007-10-10
2007-12-15
2008-02-01
2008-09-01
2009-04-04
latest
ubuntu@
2012-08-10
2013-04-04
2013-10-17
2015-10-15
2016-06-30
2016-10-06
2017-02-22
2018-08-27
2020-10-14
latest
How reproducible: 100%
| Changed in neutron: | |
| importance: | Undecided → High |
| assignee: | nobody → Miguel Lavalle (minsel) |
| Changed in neutron: | |
| status: | New → Triaged |
| tags: | added: ovn |
| tags: | added: ipv6 |
| Changed in neutron: | |
| status: | Triaged → In Progress |
| summary: |
[OVN] VMs cannot access metadata when connected to a network with only - IPv6 subnets + IPv6 subnets in the Neutron gate |
| summary: |
[OVN] VMs cannot access metadata when connected to a network with only - IPv6 subnets in the Neutron gate + IPv6 subnets |

Hello. We faced the same problem. We found that when creating a new interface for metadata in a function "_get_provision _params" only ipv4 port addresses are collected by "_get_port_ ip4_ips" . Why is only ipv4 used in this place? We offer a small patch that allows to collect ipv6 too.