DNS resolvers are not requested/learned from DHCPv6

Bug #770324 reported by Tore Anderson
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
isc-dhcp (Ubuntu)
Fix Released
Medium
Unassigned

Bug Description

Binary package hint: network-manager

When attempting to connect to a DHCPv6-using network (after having set the IPv6 mode in the connection profile to "automatic"), DHCPv6 is successfully used to acquire and configure an IPv6 address, however at no point does the Ubuntu host request DNS servers from DHCPv6. This means that only IPv4 DHCPv4-provided name servers are being added, or if there's no IPv4 on the network, *no* name servers are being configured - the network connection is for all practical purposes unusable.

I reproduced this easily using the Ubuntu 11.04 Beta 2 64-bit desktop live-CD. I'll be attaching a PCAP dump containing the network traffic from when the network connection was established. You can see clearly that the ICMPv6 Router Advertisement (frame 16) has both the M and O flags set, but the DHCPv6 queries (frames 23 and 27) do not request neither DNS recursive name servers nor the domain search list. Essentially it behaves as if the O flag was unset. I'll also be attaching the content logged to /var/log/syslog during the network connection attempt.

Curiously enough, Fedora 14 (also using NetworkManager) has no problems connecting to the exact same network and discovering the DNS server using DHCPv6. I'll also attach a PCAP file containing the DHCPv6 traffic from that connection attempt, and it's clear that the DNS information is requested and received, and also shows up in /etc/resolv.conf in the end.

Tore

Revision history for this message
Tore Anderson (toreanderson) wrote :
Revision history for this message
Tore Anderson (toreanderson) wrote :
Revision history for this message
Tore Anderson (toreanderson) wrote :
Revision history for this message
Mathieu Trudel-Lapierre (cyphermox) wrote :

I'll tentatively confirm this, but for now I have no idea if it's really NM or if there's some difference in the DHCP clients we use vs. the one in Fedora (or just configuration, even).

Changed in network-manager (Ubuntu):
status: New → Confirmed
importance: Undecided → Medium
assignee: nobody → Mathieu Trudel-Lapierre (mathieu-tl)
Revision history for this message
Mathieu Trudel-Lapierre (cyphermox) wrote :

I tested this on my own system (where my router handles DHCPv6 and DHCPv4, IPv6 going through a tunnel from tunnelbroker.net (Hurricane Electric); I can see no issue.

As displayed in the attached screenshot, while I guess dhclient doesn't explicitly request nameservers (or at least, not as clearly as in the example capture from Fedora 14), the recursive nameserver option is always listed and properly appears in NetworkManager and /etc/resolv.conf.

This was on a brand new install from yesterday evening. At least, we can verify it's not an issue in NM, although there may still be something to be done for dhclient.

Revision history for this message
Mathieu Trudel-Lapierre (cyphermox) wrote :

From the dhclient.conf manpage:

DHCPV6 OPERATION
       The client does not yet have a default DHCPv6 Option Request Option
       (ORO), nor has it been integrated with the 'request' and 'require' syn‐
       tax above. It is neccessary to configure an ORO then.

         send dhcp6.oro 1, 2, 7, 12, 13, 23, 24, 39;

       The above ORO will request both identifiers (server, client), the pref‐
       erence, unicast, nameservers, domain-search, and FQDN(v6) options.

If you still have that Fedora14 install, can you confirm whether an oro is specifically defined on that system, if it's indeed running isc-dhcp 4? I think it does, but this mostly depends on whether the "dhcp" rpm package is installed; see 'rpm -q dhcp' if my memory serves me right.

Revision history for this message
Tore Anderson (toreanderson) wrote :

Mathieu,

In that case I believe the DHCPv6 server implementation in your router differs from the one I use on my network (dhcp-4.1.2-4.ESV.R2.fc13.i686 on Fedora 13). My DHCPv6 replies never contain any DNS information unless explicity requested by the client, while I understand yours always does.

I've looked through the client system but I cannot find any dhclient.conf file there. However, the dhclient.conf manual page differs significantly - I cannot find any mention of this "send dhcp6.oro" statement at all. However, what relevant stuff I do find, says the following:

       The request statement

        [ also ] request [ [ option-space . ] option ] [, ... ];

       The request statement causes the client to request that any server responding to the client send the client its values for the specified options. Only the
       option names should be specified in the request statement - not option parameters. By default, the DHCPv4 client requests the subnet-mask, broadcast-
       address, time-offset, routers, domain-search, domain-name, domain-name-servers, host-name, nis-domain, nis-servers, ntp-servers and interface-mtu options
       while the DHCPv6 client requests the dhcp6 name-servers and domain-search options. Note that if you enter a ´request´ statement, you over-ride these
       defaults and these options will not be requested.

So it appears this particular implementation/version will by default request the necessary options. The dhclient binary is found in the package dhclient-4.2.0-21.P2.fc14.x86_64.

Let me know if you need any more help!

Tore

Revision history for this message
Mathieu Trudel-Lapierre (cyphermox) wrote :

There may be some differences brought from the version difference. Ubuntu Natty is still at isc-dhcp 4.1.1-P1-15ubuntu9; which is only slightly below the version from Debian: 4.1.1-P1-16.1. The latest upstream release appears to be DHCP 4.2.1-P1.

We can update the packaging in Oneiric (or wait/ask for the Debian maintainers to update it), which will likely get the same behavior as 4.2.0 in Fedora. I haven't seen any of these details in release notes, but it's likely just been omitted.

For now I'll reassign this to the 'isc-dhcp' package since there doesn't appear to be any issue with NetworkManager, just unexpected defaults for the DHCP client and server.

Changed in network-manager (Ubuntu):
assignee: Mathieu Trudel-Lapierre (mathieu-tl) → nobody
affects: network-manager (Ubuntu) → isc-dhcp (Ubuntu)
Changed in isc-dhcp (Ubuntu):
assignee: nobody → Mathieu Trudel-Lapierre (mathieu-tl)
status: Confirmed → Triaged
assignee: Mathieu Trudel-Lapierre (mathieu-tl) → nobody
Revision history for this message
Tore Anderson (toreanderson) wrote :

Shouldn't it be possible for Ubuntu to ship a default dhclient.conf file that explicitly makes it request the DHCPv6 DNS options, i.e., emulating the default behaviour in the 4.2.0 dhclient?

That seems to me to be a small and safe enough change that it could be considered for Natty?

Tore

Revision history for this message
Mathieu Trudel-Lapierre (cyphermox) wrote :

I tried to set that up, but in Natty according to the man page, request name-servers shouldn't work, and the 'send dhcp.oro' syntax doesn't appear to work properly.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package isc-dhcp - 4.1.1-P1-17ubuntu3

---------------
isc-dhcp (4.1.1-P1-17ubuntu3) oneiric; urgency=low

  * Add DHCPv6 client configuration to dhclient.conf (LP: #770324)
 -- Stephane Graber <email address hidden> Mon, 20 Jun 2011 09:41:26 -0400

Changed in isc-dhcp (Ubuntu):
status: Triaged → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Related blueprints

Remote bug watches

Bug watches keep track of this bug in other bug trackers.