Uploaded image for project: 'Red Hat OpenStack Services on OpenShift'
  1. Red Hat OpenStack Services on OpenShift
  2. OSPRH-511

BZ#2035719 [RFE][OVN] Support metadata service with IPv6-only tenant network

XMLWordPrintable

    • Support metadata service with
    • False
    • False
    • Committed
    • Proposed
    • Committed
    • Proposed
    • Networking; Neutron

      This functionality has been added in OpenStack Neutron for ML2/OVS recently [0] (Launchpad RFE [1]).

      The goal of this BZ is to track the implementation for ML2/OVN.

      [0] https://review.opendev.org/q/topic:%22metadata-ipv6%22+(status:open%20OR%20status:merged)
      [1] https://bugs.launchpad.net/neutron/+bug/1460177

      +++ This bug was initially created as a clone of Bug #1954673 +++

      +++ This bug was initially created as a clone of Bug #1741851 +++

      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

      — Additional comment from on 2019-08-16 09:14:38 UTC —

      Reproducer:

      ssh root@intel-lizardhead-02.lab.bos.redhat.com
      Password: Redhat01

      — Additional comment from Nate Johnston on 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.

      — Additional comment from Alex Stupnikov on 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.

      — Additional comment from Slawek Kaplonski on 2019-08-30 09:08:37 UTC —

      @Alex: I don't know about any other workaround for this, except using config drive.
      This is limitation which is well known since forever so I think that customers should be aware of this already.
      But I also agree that we should take care of it as it's 2019 and IPv6 should be fully supported finally

      — Additional comment from Slawek Kaplonski on 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.

      — Additional comment from Eran Kuris on 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?

      — Additional comment from Slawek Kaplonski on 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.

      — Additional comment from Red Hat Bugzilla on 2021-05-30 14:51:34 UTC —

      remove performed by PnT Account Manager <pnt-expunge@redhat.com>

      — Additional comment from Red Hat Bugzilla on 2021-05-30 14:55:05 UTC —

      remove performed by PnT Account Manager <pnt-expunge@redhat.com>

            mtomaska@redhat.com Miro Tomaska
            jira-bugzilla-migration RH Bugzilla Integration
            rhos-dfg-networking-squad-neutron
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: