** Description changed:

  [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 {};
+ 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
+  dhcp 1
+ * ifdown eth0 && ifup eth0 (alternatively: dhclient -6 -S -v IFACE)
  * Check if /etc/resolv.conf contains:
- search ubuntu.com
+ 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.

** Description changed:

  [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
+ * If the old version of the package is installed, /etc/resolv.conf content 
will not change.
  
  [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.

-- 
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

Reply via email to