Comment 30 for bug 1609898

Dan Streetman (ddstreet) wrote :

For anyone reading this because the isc-dhcp-client update broke their DHCPv6 network:

First, I assume you're running a DHCPv6 server to provide the ipv6 addresses to your clients. If you do not have any Router Advertisement service configured on your server, the easiest thing to do is use radvd.

# sudo apt install radvd

radvd requires ipv6 forwarding to be enabled (on the server), which you likely already have enabled, but if not you should edit /etc/sysctl.conf to uncomment/add:

net.ipv6.conf.all.forwarding=1

then create a /etc/radvd.conf file with contents similar to this, replacing IFACE with the interface name and using the appropriate ipv6 prefix/len for your network:

interface IFACE # your interface name
{
 AdvSendAdvert on; # send RA's on this interface
 AdvManagedFlag on; # clients will request DHCPv6 addr
 AdvOtherConfigFlag on; # clients will use DHCPv6 other config
 AdvDefaultLifetime 0; # this server is NOT a default router (gateway)
 prefix 2001:db8::/64 # your subnet prefix/len
 {
  AdvOnLink on; # everyone in this subnet is "on (this) link"
  AdvAutonomous off; # clients will NOT use SLAAC (RFC 4862) addrs
 };
};

You can of course leave the # comments out. Then (re)start the radvd daemon, or just reboot the server.

For comparision, here is an interface before the isc-dhcp-client update, without any RA:

ubuntu@lp1609898-xenial:~$ ip addr show ens7
3: ens7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:5f:c4:ee brd ff:ff:ff:ff:ff:ff
    inet6 2001:db8::55/64 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fe5f:c4ee/64 scope link
       valid_lft forever preferred_lft forever
ubuntu@lp1609898-xenial:~$ ip -6 route
2001:db8::/64 dev ens7 proto kernel metric 256 pref medium
fe80::/64 dev ens7 proto kernel metric 256 pref medium

and after the update, with RA (radvd configured with above conf):

ubuntu@lp1609898-xenial:~$ ip addr show ens7
3: ens7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:5f:c4:ee brd ff:ff:ff:ff:ff:ff
    inet6 2001:db8::55/128 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fe5f:c4ee/64 scope link
       valid_lft forever preferred_lft forever
ubuntu@lp1609898-xenial:~$ ip -6 route
2001:db8::55 dev ens7 proto kernel metric 256 pref medium
2001:db8::/64 dev ens7 proto kernel metric 256 expires 86389sec pref medium
fe80::/64 dev ens7 proto kernel metric 256 pref medium

I tested on both xenial and trusty.