yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #07991
[Bug 1266780] [NEW] DHCP server crashes on networks where IPv6 addresses were supplied unshortened
Public bug reported:
Added a subnet as shown below.
neutron subnet-create HA1 fd5f:5d21:845:1e3c::/64 --name HA1SubnetIPv6
--no-gateway --host-route destination=::/0,nexthop=fd5f:5d21:845:1e3c::2
--allocation-pool
start=fd5f:5d21:0845:1e3c:ff00:0000:0042:0100,end=fd5f:5d21:0845:1e3c:ff00:0000:0042:0180
--ip-version 6
I wasn't necessarily expecting DHCP to work for IPv6, but it stopped working for IPv4. In the log, I saw that the DHCP server had begun failing with the error:
http://paste.openstack.org/show/60638/
After a little digging in the code, I realised the DHCP agent was trying
to re-add an address (for the DHCP server) that already existed. I'm
pretty sure the problem happens in init_l3 in interface.py, where
desired addresses are compared with existing addresses returned by "ip
addr show". Since "show" returns IPv6 addresses in shortened form (i.e.
with unnecessary 0s removed), and the starting address I specified when
creating the subnet is unshortened, the comparison fails and the agent
tries to add the address again, which fails and causes the DHCP agent to
abort startup.
Of course, it's possible the failure to convert IPv6 addresses into
shortened form (or enforce entry only in shortened form) could have
other effects that I haven't observed.
Workaround: Specify all IPv6 addresses in shortened form when setting up
subnets. The given Exception stops happening. (Though I've
subsequently run into Bug 1257446 which also prevents dual-stack
operation.)
** Affects: neutron
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1266780
Title:
DHCP server crashes on networks where IPv6 addresses were supplied
unshortened
Status in OpenStack Neutron (virtual network service):
New
Bug description:
Added a subnet as shown below.
neutron subnet-create HA1 fd5f:5d21:845:1e3c::/64 --name HA1SubnetIPv6
--no-gateway --host-route
destination=::/0,nexthop=fd5f:5d21:845:1e3c::2 --allocation-pool
start=fd5f:5d21:0845:1e3c:ff00:0000:0042:0100,end=fd5f:5d21:0845:1e3c:ff00:0000:0042:0180
--ip-version 6
I wasn't necessarily expecting DHCP to work for IPv6, but it stopped working for IPv4. In the log, I saw that the DHCP server had begun failing with the error:
http://paste.openstack.org/show/60638/
After a little digging in the code, I realised the DHCP agent was
trying to re-add an address (for the DHCP server) that already
existed. I'm pretty sure the problem happens in init_l3 in
interface.py, where desired addresses are compared with existing
addresses returned by "ip addr show". Since "show" returns IPv6
addresses in shortened form (i.e. with unnecessary 0s removed), and
the starting address I specified when creating the subnet is
unshortened, the comparison fails and the agent tries to add the
address again, which fails and causes the DHCP agent to abort startup.
Of course, it's possible the failure to convert IPv6 addresses into
shortened form (or enforce entry only in shortened form) could have
other effects that I haven't observed.
Workaround: Specify all IPv6 addresses in shortened form when setting
up subnets. The given Exception stops happening. (Though I've
subsequently run into Bug 1257446 which also prevents dual-stack
operation.)
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1266780/+subscriptions
Follow ups
References