[Bug 1214385] Re: Stateless DHCPv6 not working in precise
Philipp Kern
pkern at google.com
Tue Aug 20 15:35:45 UTC 2013
** Description changed:
- /sbin/dhclient-script in precise's isc-dhcp-client 4.1.ESV-R4-0ubuntu5.8
- contains the following snippet:
+ [Impact]
+ isc-dhcp-client in precise does not do stateless DHCPv6 correctly if it's enabled as "dhcp 1" within "iface <IFACE> inet6 auto" within /etc/network/interfaces. The dhclient-script responsible for updating /etc/resolv.conf exists if it doesn't find an IPv6 address in its environment, which is only true for stateful DHCPv6.
- BOUND6|RENEW6|REBIND6)
- if [ -z "${new_ip6_address}" ] || [ -z "${new_ip6_prefixlen}" ]; then
- exit_with_hooks 2
- fi
+ [Test Case]
+ * You should have IPv6 on your network segment, make a note of the subnet.
+ * Have a stateless DHCPv6 server listen on the network segment:
+ ** Minimal dhcpd6.conf:
+ authoritative;
+ option dhcp6.name-servers 2001:4860:4860::8888, 2001:4860:4860::8844;
+ option dhcp6.domain-search "ubuntu.com";
+ subnet6 fd7a:4ac2:1751:0::/64 {};
+ ** Adjust the subnet information to the one you're actually using or the DHCP server will refuse to start.
+ ** Install isc-dhcp-server on a host on the same network segment.
+ ** Start up the server there using: /usr/sbin/dhcpd -cf dhcpd.conf -6 -lf /tmp/leases.test
+ * Have network configuration be managed by ifupdown, not network-manager:
+ * Add the following configuration to /etc/network/interfaces:
+ iface eth0 inet6 auto
+ dhcp 1
+ * ifdown eth0
+ * ifup eth0
+ * Check if /etc/resolv.conf contains:
+ search ubuntu.com
+ nameserver 2001:4860:4860::8888
+ nameserver 2001:4860:4860::8844
- # set leased IP
- ip -6 addr add ${new_ip6_address}/${new_ip6_prefixlen} \
- dev ${interface} scope global
+ [Regression Potential]
+ The suggested change is already present since quantal. The change itself is self-contained
+
+ [Additional Info]
+ /sbin/dhclient-script in precise's isc-dhcp-client 4.1.ESV-R4-0ubuntu5.8 contains the following snippet:
+
+ BOUND6|RENEW6|REBIND6)
+ if [ -z "${new_ip6_address}" ] || [ -z "${new_ip6_prefixlen}" ]; then
+ exit_with_hooks 2
+ fi
+
+ # set leased IP
+ ip -6 addr add ${new_ip6_address}/${new_ip6_prefixlen} \
+ dev ${interface} scope global
This assumes that the result of the DHCPv6 transaction is an address
with a prefix, which is the case for stateful DHCPv6. For stateless
DHCPv6, however, we only get additional information that's not directly
- address-related. This is fixed in saucy and reads like this:
+ address-related. This is fixed since quantal and reads like this:
- BOUND6|RENEW6|REBIND6)
- if [ "${new_ip6_address}" ] && [ "${new_ip6_prefixlen}" ]; then
- # set leased IP
- ip -6 addr add ${new_ip6_address}/${new_ip6_prefixlen} \
- dev ${interface} scope global
- fi
+ BOUND6|RENEW6|REBIND6)
+ if [ "${new_ip6_address}" ] && [ "${new_ip6_prefixlen}" ]; then
+ # set leased IP
+ ip -6 addr add ${new_ip6_address}/${new_ip6_prefixlen} \
+ dev ${interface} scope global
+ fi
It looks like the only change from the diff to the current saucy version
we need for it to work correctly.
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to isc-dhcp in Ubuntu.
https://bugs.launchpad.net/bugs/1214385
Title:
Stateless DHCPv6 not working in precise
Status in “isc-dhcp” package in Ubuntu:
Fix Released
Status in “isc-dhcp” source package in Precise:
New
Bug description:
[Impact]
isc-dhcp-client in precise does not do stateless DHCPv6 correctly if it's enabled as "dhcp 1" within "iface <IFACE> inet6 auto" within /etc/network/interfaces. The dhclient-script responsible for updating /etc/resolv.conf exists if it doesn't find an IPv6 address in its environment, which is only true for stateful DHCPv6.
[Test Case]
* You should have IPv6 on your network segment, make a note of the subnet.
* Have a stateless DHCPv6 server listen on the network segment:
** Minimal dhcpd6.conf:
authoritative;
option dhcp6.name-servers 2001:4860:4860::8888, 2001:4860:4860::8844;
option dhcp6.domain-search "ubuntu.com";
subnet6 fd7a:4ac2:1751:0::/64 {};
** Adjust the subnet information to the one you're actually using or the DHCP server will refuse to start.
** Install isc-dhcp-server on a host on the same network segment.
** Start up the server there using: /usr/sbin/dhcpd -cf dhcpd.conf -6 -lf /tmp/leases.test
* Have network configuration be managed by ifupdown, not network-manager:
* Add the following configuration to /etc/network/interfaces:
iface eth0 inet6 auto
dhcp 1
* ifdown eth0
* ifup eth0
* Check if /etc/resolv.conf contains:
search ubuntu.com
nameserver 2001:4860:4860::8888
nameserver 2001:4860:4860::8844
[Regression Potential]
The suggested change is already present since quantal. The change itself is self-contained
[Additional Info]
/sbin/dhclient-script in precise's isc-dhcp-client 4.1.ESV-R4-0ubuntu5.8 contains the following snippet:
BOUND6|RENEW6|REBIND6)
if [ -z "${new_ip6_address}" ] || [ -z "${new_ip6_prefixlen}" ]; then
exit_with_hooks 2
fi
# set leased IP
ip -6 addr add ${new_ip6_address}/${new_ip6_prefixlen} \
dev ${interface} scope global
This assumes that the result of the DHCPv6 transaction is an address
with a prefix, which is the case for stateful DHCPv6. For stateless
DHCPv6, however, we only get additional information that's not
directly address-related. This is fixed since quantal and reads like
this:
BOUND6|RENEW6|REBIND6)
if [ "${new_ip6_address}" ] && [ "${new_ip6_prefixlen}" ]; then
# set leased IP
ip -6 addr add ${new_ip6_address}/${new_ip6_prefixlen} \
dev ${interface} scope global
fi
It looks like the only change from the diff to the current saucy
version we need for it to work correctly.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/isc-dhcp/+bug/1214385/+subscriptions
More information about the foundations-bugs
mailing list