** 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 Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1214385 Title: Stateless DHCPv6 not working in precise To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/isc-dhcp/+bug/1214385/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs