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

Reply via email to