OpenStack cannot assign IPv6 address to instance via dnsmasq dhcpserver

Bug #1281916 reported by Dazhao Yu
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
neutron
Fix Released
Medium
Dazhao Yu

Bug Description

Use dnsmasq as dhcp server, OpenStack deploy one instance, we found the deployed instance cannot get the targeted IPv6 address, but it can get the targeted IPv4 address.

At the earlier time, I found this issue when use Vmware vcenter driver, today I also found this issue is Linux env.

I use dnsmasq as dhcpv6 server, use 'tcpdump -i tapXXXX' to monitor the network data, and in deployed instance, and run "dhclient -6", the result of tcpdump as below:

  22:02:54.354287 IP6 fe80::f816:3eff:fe34:a80e.dhcpv6-client > ff02::1:2.dhcpv6-server: dhcp6 solicit
  22:02:54.354689 IP6 fe80::184d:82ff:fec4:d268.dhcpv6-server > fe80::f816:3eff:fe34:a80e.dhcpv6-client: dhcp6 advertise
  22:02:55.434954 IP6 fe80::f816:3eff:fe34:a80e.dhcpv6-client > ff02::1:2.dhcpv6-server: dhcp6 solicit
  22:02:55.435283 IP6 fe80::184d:82ff:fec4:d268.dhcpv6-server > fe80::f816:3eff:fe34:a80e.dhcpv6-client: dhcp6 advertise
  22:02:57.587164 IP6 fe80::f816:3eff:fe34:a80e.dhcpv6-client > ff02::1:2.dhcpv6-server: dhcp6 solicit
  22:02:57.587456 IP6 fe80::184d:82ff:fec4:d268.dhcpv6-server > fe80::f816:3eff:fe34:a80e.dhcpv6-client: dhcp6 advertise
  22:02:59.354082 IP6 fe80::184d:82ff:fec4:d268 > fe80::f816:3eff:fe34:a80e: ICMP6, neighbor solicitation, who has fe80::f816:3eff:fe34:a80e, length 32
  22:02:59.354922 IP6 fe80::f816:3eff:fe34:a80e > fe80::184d:82ff:fec4:d268: ICMP6, neighbor advertisement, tgt is fe80::f816:3eff:fe34:a80e, length 24

from dnsmasq log, I got "no address available" error.

The root cause is dnsmasq need to read host file, and distinguish MAC addresses from IPv6 addresses.

the current host file as below:

fa:16:3e:25:f4:31,host-2001-2011-0-f104--3.openstacklocal, 2001:2011:0:f104::3

We need to wrap the ipv6 address with '[]' to let dnsmasq can distinguish MAC addresses from IPv6 addresses.

Tags: kvm vmware
Revision history for this message
Dazhao Yu (dzyu) wrote :

who can give me some help about it?

Dazhao Yu (dzyu)
Changed in nova:
assignee: nobody → Dazhao Yu (dzyu)
Matt Riedemann (mriedem)
tags: added: vmware
Dazhao Yu (dzyu)
summary: - OpenStack cannot assign IPv6 address to booted instance due to vsphere
- settings
+ OpenStack cannot assign IPv6 address to instance via dnsmamandnsmasq
summary: - OpenStack cannot assign IPv6 address to instance via dnsmamandnsmasq
+ OpenStack cannot assign IPv6 address to instance via dnsmasq
summary: - OpenStack cannot assign IPv6 address to instance via dnsmasq
+ OpenStack cannot assign IPv6 address to instance via dnsmasq dhcpserver
tags: added: kvm
removed: vmware
tags: added: vmware
Dazhao Yu (dzyu)
description: updated
Dazhao Yu (dzyu)
affects: nova → neutron
Changed in neutron:
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (master)

Reviewed: https://review.openstack.org/75355
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=b5d09ffe604a1f6d8272b773bb183e5f2bc3d0f3
Submitter: Jenkins
Branch: master

commit b5d09ffe604a1f6d8272b773bb183e5f2bc3d0f3
Author: Dazhao <email address hidden>
Date: Fri Feb 21 17:53:30 2014 +0800

    Make sure dnsmasq can distinguish IPv6 address from MAC address

    Currrently, due to in dnsmasq host file, the IPv6 address does
    not be wrapped with '[]', dnsmasq cannot distinguish IPv6 address
    from MAC address, it will cause the deployed instances cannot get
    IPv6 address via dnsmasq dhcp service.

    Change-Id: I023e44667a238664d11f2ac2cc484432cd301bcc
    Closes-Bug: #1281916

Changed in neutron:
status: In Progress → Fix Committed
Changed in neutron:
importance: Undecided → Medium
milestone: none → icehouse-3
Thierry Carrez (ttx)
Changed in neutron:
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in neutron:
milestone: icehouse-3 → 2014.1
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.