[Bug 1214385] [NEW] Stateless DHCPv6 not working in precise

Launchpad Bug Tracker 1214385 at bugs.launchpad.net
Wed Aug 21 11:14:28 UTC 2013


You have been subscribed to a public bug by Philipp Kern (pkern-k):

[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";
pid-file-name "/tmp/dhcpd.test.pid";
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.
** Disable apparmor (it will yield losts of EPERM for the test file locations).
** 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 (alternatively: dhclient -6 -S -v IFACE)
* 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.

** Affects: isc-dhcp (Ubuntu)
     Importance: Undecided
         Status: Fix Released

** Affects: isc-dhcp (Ubuntu Precise)
     Importance: Undecided
         Status: New

-- 
Stateless DHCPv6 not working in precise
https://bugs.launchpad.net/bugs/1214385
You received this bug notification because you are a member of Ubuntu Sponsors Team, which is subscribed to the bug report.



More information about the Ubuntu-sponsors mailing list