neutron dhcp agent failed to spawn dnsmasq because tap interface had address configured by RA from external router
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
neutron |
Fix Released
|
Undecided
|
Xu Han Peng |
Bug Description
i was configuring an ipv6 subnet in slaac address mode and N/S ipv6 ra mode, because external router provides router advertisement.
there was also an ipv4 subnet in the network.
after i created the ipv6 subnet, i found that dnsmasq was down because when neutron-rootwrap configured ipv6 address to the tap interface which dnsmasq listened to, the ipv6 address had already been auto configured by the router advertisement from external router, hence neutron-rootwrap exited with RTNETLINK answers: File exists
steps to reproduce the bug:
have an external router or radvd sending RA
add an ipv4 subnet
wait for a while until router advertisement reaches the tap interface dnsmasq binds to and gets an ipv6 address.
add an ipv6 subnet with ipv6 address mode: slaac ; ipv6 ra mode: not specified.
dnsmasq will fail to restart.
Changed in neutron: | |
assignee: | nobody → Xu Han Peng (xuhanp) |
Changed in neutron: | |
milestone: | none → kilo-2 |
status: | Fix Committed → Fix Released |
Changed in neutron: | |
milestone: | kilo-2 → 2015.1.0 |
ip netns exec qdhcp-609ce0e0- 671e-47ad- b285-4f0afddf44 57 tcpdump -i tap3195cce6-10 -vv ip6 -lnSxs 0 bff:fe8c: 36b9 > ff02::1: [icmp6 sum ok] ICMP6, router advertisement, length 64 bb86:1: :/64, Flags [onlink, auto], valid time 2592000s, pref. time 604800s
tcpdump: listening on tap3195cce6-10, link-type EN10MB (Ethernet), capture size 65535 bytes
08:11:58.592621 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 64) fe80::da49:
hop limit 64, Flags [none], pref medium, router lifetime 1800s, reachable time 0s, retrans time 0s
source link-address option (1), length 8 (1): d8:49:0b:8c:36:b9
0x0000: d849 0b8c 36b9
mtu option (5), length 8 (1): 1500
0x0000: 0000 0000 05dc
prefix info option (3), length 32 (4): 2001:470:
0x0000: 40c0 0027 8d00 0009 3a80 0000 0000 2001
0x0010: 0470 bb86 0001 0000 0000 0000 0000
0x0000: 6000 0000 0040 3aff fe80 0000 0000 0000
0x0010: da49 0bff fe8c 36b9 ff02 0000 0000 0000
0x0020: 0000 0000 0000 0001 8600 078e 4000 0708
0x0030: 0000 0000 0000 0000 0101 d849 0b8c 36b9
0x0040: 0501 0000 0000 05dc 0304 40c0 0027 8d00
0x0050: 0009 3a80 0000 0000 2001 0470 bb86 0001
0x0060: 0000 0000 0000 0000
ip netns exec qdhcp-609ce0e0- 671e-47ad- b285-4f0afddf44 57 ifconfig
collisions: 0 txqueuelen:0
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:27 errors:0 dropped:0 overruns:0 frame:0
TX packets:27 errors:0 dropped:0 overruns:0 carrier:0
RX bytes:4672 (4.6 KB) TX bytes:4672 (4.6 KB)
tap3195cce6-10 Link encap:Ethernet HWaddr fa:16:3e:95:83:d0 3eff:fe95: 83d0/64 Scope:Link bb86:1: f816:3eff: fe95:83d0/ 64 Scope:Global
collisions: 0 txqueuelen:0
inet addr:162.3.122.5 Bcast:162.3.122.255 Mask:255.255.255.0
inet6 addr: fe80::f816:
inet6 addr: 2001:470:
UP BROADCAST RUNNING MTU:1500 Metric:1
RX packets:18861 errors:0 dropped:0 overruns:0 frame:0
TX packets:355 errors:0 dropped:0 overruns:0 carrier:0
RX bytes:2302847 (2.3 MB) TX bytes:31988 (31.9 KB)
neutron subnet-create --ip-version=6 --name=ipv6 --ipv6- address- mode=slaac provider-net 2001:470: bb86:0001: :/64 --allocation-pool start=2001: 470:bb86: 0001::20, end=2001: 470:bb86: 0001::fffe --gateway 2001:470: bb86:0001: :1 ------- ------+ ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- --+ ------- ------+ ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- --+ bb86:0001: :20", "end": "2001:470: bb86:0001: :fffe"} | bb86:1: :/64 | bb86:0001: :1 |...
Created a new subnet:
+------
| Field | Value |
+------
| allocation_pools | {"start": "2001:470:
| cidr | 2001:470:
| dns_nameservers | |
| enable_dhcp | True |
| gateway_ip | 2001:470: