2014-02-21 06:17:21 |
Dazhao Yu |
description |
I use vmware vcenter driver to nova boot instance.
After I create one ipv4 address network, and nova boot instance, in vsphere client, we can see the instance have been deployed, and also the instance have been assigned the targeted IPv4 address.
But after create one IPv6 address network, and use this network to boot instance, the instance have been deployed successfully, but it can not be assigned the targeted IPv6 address.
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
It seems like dnsmasq can get client request from deployed instance, and can give response to client, but vsphere block these message. |
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. |
|