Public bug reported: link local addresses are submitted to /etc/wide-dhcpv6/dhcp6c-script via the $new_domain_name_servers environment variable, but there is no way to determine their scope. the end result is a nameserver entry in /etc/resolv.conf which causes libc's resolver to fail.
After a couple minutes after the network is brought up, I end up with the following in /etc/resolv.conf. After that, libc's resolver fails: # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN nameserver fe80::beef nameserver 127.0.1.1 search base The link local name servers should be suffixed with the scope, e.g. "%eth0". From the provided /etc/wide-dhcpv6/dhcp6c-script, there is no way to accurately determine the scope. This information is not passed to the script by dhcp6c. I would suggest either making the information available via another environment variable, e.g. $interface, or have the dns server entries in $new_domain_name_servers already suffixed. My home network is on ipv4+ipv6, behind an openwrt router. OpenWrt's default ipv6 settings is to advertise its link local address as the DNS server to hosts on its LAN. It advertises this address both in router advertisements (which are picked up by NetworkManager, it seems) and in its dhcpv6 replies. The dhcp6c daemon (started via /etc/init.d/wide-dhcpv6-client) runs simultaneously with NetworkManager's dnsmasq local resolver on my system. I'm not sure resolv.conf should even be populated by dhcp6c in this scenario -- adding the ipv6 address it gets from the dhcpv6 reply bypasses NetworkManager's 127.0.1.1 resolver. It seems better to leave DNS go through NetworkManager's dnsmasq regardless. Package wide-dhcpv6-client Architecture: amd64 Version: 20080615-12 Source: wide-dhcpv6 Ubuntu release: Description: Ubuntu 14.04.5 LTS Release: 14.04 I'm attaching my workaround script, which adds the check for link-local addresses. It suffixes them with the first interface from "$INTERFACES". This is a bandaid, until the correct interface can be selected via environment variables. The check is similar to the one done in /etc/dhcp /dhclient-enter-hooks.d/resolvconf (from pkg resolvconf). Other bug: It also adds a check to avoid duplication of "search X" lines. In cases where /etc/resolv.conf is _not_ a symlink, without that check the file /etc/resolv.conf would grow by one line every time the timer fired. ** Affects: wide-dhcpv6 (Ubuntu) Importance: Undecided Status: New ** Attachment added: "patch to the config script to suffix fe80:: addresses with the scope." https://bugs.launchpad.net/bugs/1620221/+attachment/4734745/+files/dhcp6c-script.patch -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1620221 Title: dhcp6c inserts link-local entries in resolv.conf without interface scope To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/wide-dhcpv6/+bug/1620221/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs