Debian 8 resolv.conf overwritten by IPv6 autoconfiguration/DHCP when DHCP disabled

debiandebian-jessiedhcpdhcpv6ipv6

I have recently installed Debian 8 on a network with IPv6 DHCP Enabled. /etc/resolv.conf is being overwritten by the IPv6 DHCP entires continually despite the fact that all IPv6 DHCP is disabled, autoconfiguration of IPv6 is disabled, and no dhclient process exists. If I modify the IPv6 DHCP DNS servers on the router, they are updated in short order in /etc/resolv.conf. The following are true:

  • resolvconf is not on the system
  • networkmanager is not on the system
  • autoconfiguration of IPv6 has been forcefully disabled by net.ipv6.conf.all.autoconf=0 and net.ipv6.conf.all.accept_ra=0 AND net.ipv6.conf.eth0.autoconf=0 because for some reason the first two were insufficient.
  • No dhclient process is active
  • Auditd returns the PID of some shell that instantly dies when looking for edits to resolv.conf. May need to step up my stack trace game.
  • dns-nameserver entries in /etc/network/interfaces are entirely ignored for both ipv4 and v6

I would prefer an answer that isn't "disable IPv6 entirely" though I'm getting close to that point (and suffice it to say that were this a physical machine and not a virtual one I would have thrown it out the window already).

EDIT: Note that net.ipv6.conf.all.disable_ipv6=0 in sysctl fixes this issue, but it would appear that resolv.conf now gets entirely cleared periodically, breaking DNS.

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
    address xx.xx.xx.xx
    netmask 255.255.255.248
    gateway xx.xx.xxx.xx
    dns-nameservers 8.8.8.8

#auto 6to4
#iface 6to4 inet6 6to4
#       local xx.xx.xxx.xx
#       dns-nameservers 2001:4860:4860::8888

Best Answer

Do you have the rdnssd package installed? That runs a daemon which spawns shell scripts that certainly behave in the way you've described above.

Note that the dns-nameservers attribute on the interface only works with resolvconf.