Bug 1741851 - [RFE] Support metadata service with IPv6-only tenant network
Summary: [RFE] Support metadata service with IPv6-only tenant network
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: openstack-neutron
Version: 13.0 (Queens)
Hardware: x86_64
OS: Linux
medium
high
Target Milestone: ---
: ---
Assignee: Slawek Kaplonski
QA Contact: Eran Kuris
URL:
Whiteboard:
Depends On:
Blocks: 1954673 2035719
TreeView+ depends on / blocked
 
Reported: 2019-08-16 09:12 UTC by ggrimaux
Modified: 2021-12-27 08:26 UTC (History)
6 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
: 1954673 (view as bug list)
Environment:
Last Closed: 2021-01-18 09:28:55 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Launchpad 1460177 0 None None None 2019-08-16 09:15:01 UTC
OpenStack gerrit 315604 0 'None' MERGED Spec for IPv6 support in metadata service 2021-01-18 09:27:37 UTC
Red Hat Issue Tracker OSP-3392 0 None None None 2021-12-27 08:26:12 UTC
Red Hat Knowledge Base (Solution) 4387081 0 None None None 2019-09-04 09:12:51 UTC

Description ggrimaux 2019-08-16 09:12:03 UTC
Description of problem:
With IPv6-only tenant network cloud-init won't be able to configure instances.

We confirmed this in a reproducer (available right now if you want it).

Below are some of the output from an instance:

2019-08-15 09:46:35,970 - util.py[DEBUG]: Getting data from <class 'cloudinit.soo
urces.DataSourceOpenStack.DataSourceOpenStackLocal'> failed
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/cloudinit/sources/__init__.py", line 733
3, in find_source
    if s.update_metadata([EventType.BOOT_NEW_INSTANCE]):
  File "/usr/lib/python2.7/site-packages/cloudinit/sources/__init__.py", line 622
2, in update_metadata
    result = self.get_data()
  File "/usr/lib/python2.7/site-packages/cloudinit/sources/__init__.py", line 255
6, in get_data
    return_value = self._get_data()
  File "/usr/lib/python2.7/site-packages/cloudinit/sources/DataSourceOpenStack.pp
y", line 131, in _get_data
    with EphemeralDHCPv4(self.fallback_interface):
  File "/usr/lib/python2.7/site-packages/cloudinit/net/dhcp.py", line 57, in __ee
nter__
    return self.obtain_lease()
  File "/usr/lib/python2.7/site-packages/cloudinit/net/dhcp.py", line 83, in obtt
ain_lease
    leases = maybe_perform_dhcp_discovery(self.iface)
  File "/usr/lib/python2.7/site-packages/cloudinit/net/dhcp.py", line 135, in maa
ybe_perform_dhcp_discovery
    return dhcp_discovery(dhclient_path, nic, tdir)
  File "/usr/lib/python2.7/site-packages/cloudinit/net/dhcp.py", line 199, in dhh
cp_discovery
    util.subp(cmd, capture=True)
  File "/usr/lib/python2.7/site-packages/cloudinit/util.py", line 2068, in subp
    cmd=args)
ProcessExecutionError: Unexpected error while running command.
Command: ['/var/tmp/cloud-init/cloud-init-dhcp-wgbF9P/dhclient', '-1', '-v', '-ll
f', '/var/tmp/cloud-init/cloud-init-dhcp-wgbF9P/dhcp.leases', '-pf', '/var/tmp/cc
loud-init/cloud-init-dhcp-wgbF9P/dhclient.pid', 'eth0', '-sf', '/bin/true']
Exit code: 2
Reason: -
Stdout:
Stderr: Internet Systems Consortium DHCP Client 4.2.5
        Copyright 2004-2013 Internet Systems Consortium.
        All rights reserved.
        For info, please visit https://www.isc.org/software/dhcp/

        Listening on LPF/eth0/fa:16:3e:81:72:ae
        Sending on   LPF/eth0/fa:16:3e:81:72:ae
        Sending on   Socket/fallback
        DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 8 (xid=0x60824dd
c2)
        DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 19 (xid=0x608244
dc2)
        DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 15 (xid=0x608244
dc2)
        DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 8 (xid=0x60824dd
c2)
        DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 8 (xid=0x60824dd
c2)
        DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3 (xid=0x60824dd
c2)
        No DHCPOFFERS received.
        Unable to obtain a lease on first try.  Exiting.

But somehow the instance is aware of it's new IP:

[  119.918362] cloud-init[899]: Cloud-init v. 18.5 running 'init' at Thu, 15 Aug 2019 09:47:0                                                                                                8 +0000. Up 119.86 seconds.                                                                                                                                                                  
[  120.034627] cloud-init[899]: ci-info: ++++++++++++++++++++++++++++++++++++Net device info+                                                                                       ++++++++++++++++++++++++++++++++++++                                                                                                                                                         
[  120.092343] cloud-init[899]: ci-info: +--------+------+------------------------------+----                                                                                                -------+-------+-------------------+                                                                                                                                                         
[  120.154315] cloud-init[899]: ci-info: | Device |  Up  |           Address            |                                                                                                    Mask   | Scope |     Hw-Address    |                                                                                                                                                         
[  120.196936] cloud-init[899]: ci-info: +--------+------+------------------------------+----                                                                                                -------+-------+-------------------+                                                                                                                                                         
[  120.248330] cloud-init[899]: ci-info: |  eth0  | True | fe80::f816:3eff:fe81:72ae/64 |                                                                                                     .     |  link | fa:16:3e:81:72:ae |                                                                                                                                                         
[  120.311185] cloud-init[899]: ci-info: |   lo   | True |          127.0.0.1           | 255                                                                                                .0.0.0 |  host |         .         |                                                                                                                                                         
[  120.379342] cloud-init[899]: ci-info: |   lo   | True |           ::1/128            |                                                                                                     .     |  host |         .         |                                                                                                                                                         
[  120.447838] cloud-init[899]: ci-info: +--------+------+------------------------------+----                                                                                                -------+-------+-------------------+  

fe80::f816:3eff:fe81:72ae/64 is the port created by neutron:

(overcloud) [stack@undercloud-0 ~]$ openstack port show 656fd19e-d951-407f-b45f-9e58961d7878
+-----------------------+-------------------------------------------------------------------------------------------------------+
| Field                 | Value                                                                                                 |
+-----------------------+-------------------------------------------------------------------------------------------------------+
| admin_state_up        | UP                                                                                                    |
| allowed_address_pairs |                                                                                                       |
| binding_host_id       | compute-0.localdomain                                                                                 |
| binding_profile       |                                                                                                       |
| binding_vif_details   | datapath_type='system', ovs_hybrid_plug='True', port_filter='True'                                    |
| binding_vif_type      | ovs                                                                                                   |
| binding_vnic_type     | normal                                                                                                |
| created_at            | 2019-08-15T09:44:33Z                                                                                  |
| data_plane_status     | None                                                                                                  |
| description           |                                                                                                       |
| device_id             | 5be04cb6-f655-4ce8-9389-efc531632811                                                                  |
| device_owner          | compute:nova                                                                                          |
| dns_assignment        | None                                                                                                  |
| dns_name              | None                                                                                                  |
| extra_dhcp_opts       |                                                                                                       |
| fixed_ips             | ip_address='2a01:e34:ec29:d136:f816:3eff:fe81:72ae', subnet_id='99301d98-7eb8-4681-921f-b27d612dd7e3' |
| id                    | 656fd19e-d951-407f-b45f-9e58961d7878                                                                  |
| ip_address            | None                                                                                                  |
| mac_address           | fa:16:3e:81:72:ae                                                                                     |
| name                  |                                                                                                       |
| network_id            | e2689333-4e13-4b31-9c7e-09ef46af41cf                                                                  |
| option_name           | None                                                                                                  |
| option_value          | None                                                                                                  |
| port_security_enabled | True                                                                                                  |
| project_id            | 8f66f7df99b04d8a9e55a33ae6df9813                                                                      |
| qos_policy_id         | None                                                                                                  |
| revision_number       | 10                                                                                                    |
| security_group_ids    | b2de312b-6c4a-477d-ac29-fc8d3d2cb64f                                                                  |
| status                | ACTIVE                                                                                                |
| subnet_id             | None                                                                                                  |
| tags                  |                                                                                                       |
| trunk_details         | None                                                                                                  |
| updated_at            | 2019-08-15T09:44:52Z                                                                                  |
+-----------------------+-------------------------------------------------------------------------------------------------------+

Dnsmasq is running on the controller.

Let me know if you need anything else.

Thank you.


Version-Release number of selected component (if applicable):
openstack-neutron-12.0.6-9.el7ost.noarch

How reproducible:
100%

Steps to Reproduce:
1. Configure IPv6-only tenant network setup
2. Try to spawn instances
3.

Actual results:
Instances stay localhost and can't get dhcp address

Expected results:
Instances get configured properly

Additional info:
https://bugs.launchpad.net/neutron/+bug/1460177

Comment 2 Nate Johnston 2019-08-29 15:09:27 UTC
There was upstream work on this as an RFE that was abandoned due to lack of interest.  We can look at resuming this as an RFE.

Comment 3 Alex Stupnikov 2019-08-30 07:46:39 UTC
I am wondering if we have some workaround for cloud-init (config-drive is not widely supported) for this case (without adding IPv4 network)? I guess that we need to address the issue if we don't: this could escalate quickly when more customers will learn about this limitation.

Comment 5 Slawek Kaplonski 2021-01-18 09:28:55 UTC
This RFE is implemented U/S now https://bugs.launchpad.net/neutron/+bug/1460177 and should be available in OSP-17
We will not backport it to the OSP-13 so I'm closing this BZ.

Comment 6 Eran Kuris 2021-04-28 10:04:55 UTC
(In reply to Slawek Kaplonski from comment #5)
> This RFE is implemented U/S now
> https://bugs.launchpad.net/neutron/+bug/1460177 and should be available in
> OSP-17
> We will not backport it to the OSP-13 so I'm closing this BZ.

do we want to clone this one for OSP17?

Comment 7 Slawek Kaplonski 2021-04-28 14:53:20 UTC
@Eran, I think it is good idea. So we can plan eg. testing for it and be sure that all is in place.


Note You need to log in before you can comment on or make changes to this bug.