DHCPv6 responses with multiple addresses applied incorrectly to interface

Bug #1469346 reported by Joe Hohertz on 2015-06-27
26
This bug affects 5 people
Affects Status Importance Assigned to Milestone
network-manager (Ubuntu)
Undecided
Unassigned

Bug Description

A DHCPv6 server may respond with multiple addresses, and is not an unusual case as you may wish to provide both a ULA and a global prefix to a common suffix. Recent versions of OpenWRT behave in this manner for DHCPv6.

Network Manager is handling this *almost* correctly. Both addresses get applied, just not simultaneously as would be expected.

The dhclient process is seeing both addresses, and both get processed by the handler, but is handled as though there were two seperate requests, applies the first address, promptly removes it, and replaces it with the second address, resulting in only the latter address persisting after interface setup.

After adding the following to the upstart config for network manager, you can easily follow the mishandling of the response:

--log-level=debug --log-domains=DEVICE,IP6,DHCP6

The following are key lines from the debug logging:

Jun 20 23:21:16 pinky-linux NetworkManager[6244]: <debug> [1434856876.790352] [nm-system.c:280] sync_addresses(): (wlan0): adding address '2607:xxxx:xxxx:ad10::61/128'
...

Jun 20 23:21:17 pinky-linux NetworkManager[6244]: <debug> [1434856877.837130] [nm-system.c:247] sync_addresses(): (wlan0): removing address '2607:xxxx:xxxx:ad10::61/128'
Jun 20 23:21:17 pinky-linux NetworkManager[6244]: <debug> [1434856877.837526] [nm-system.c:280] sync_addresses(): (wlan0): adding address 'fd5b:xxxx:xxxx:10::61/128'

In this case the global prefixed address was applied, then immediately replaced by the ULA prefixed one.

So it's correctly parsing both addresses of the response as supplied by dhclient, but the end result is not what is expected for the given configuration sent from the server.

The correct behaviour is to add/replace all addresses in the response as a set.

This negates much of the usefulness of supporting DHCPv6, and is an impediment to integration with IPv6 networks requiring it's use.

ProblemType: Bug
DistroRelease: Ubuntu 14.04
Package: network-manager 0.9.8.8-0ubuntu7.1
ProcVersionSignature: Ubuntu 3.16.0-38.52~14.04.1-generic 3.16.7-ckt10
Uname: Linux 3.16.0-38-generic x86_64
ApportVersion: 2.14.1-0ubuntu3.11
Architecture: amd64
CurrentDesktop: Unity
Date: Fri Jun 26 22:19:20 2015
IfupdownConfig:
 # interfaces(5) file used by ifup(8) and ifdown(8)
 auto lo
 iface lo inet loopback
InstallationDate: Installed on 2015-05-21 (36 days ago)
InstallationMedia: Ubuntu 14.04.2 LTS "Trusty Tahr" - Release amd64 (20150218.1)
IpRoute:
 default via 192.168.169.1 dev wlan0 proto static
 192.168.169.0/24 dev wlan0 proto kernel scope link src 192.168.169.61 metric 9
NetworkManager.state:
 [main]
 NetworkingEnabled=true
 WirelessEnabled=true
 WWANEnabled=true
 WimaxEnabled=true
ProcEnviron:
 LANGUAGE=en_CA:en
 PATH=(custom, no user)
 XDG_RUNTIME_DIR=<set>
 LANG=en_CA.UTF-8
 SHELL=/bin/bash
SourcePackage: network-manager
UpgradeStatus: No upgrade log present (probably fresh install)
mtime.conffile..etc.NetworkManager.NetworkManager.conf: 2015-06-17T17:39:57.347300
mtime.conffile..etc.init.network.manager.conf: 2015-06-20T23:20:39.172713
nmcli-con:
 NAME UUID TYPE TIMESTAMP TIMESTAMP-REAL AUTOCONNECT READONLY DBUS-PATH
 somewhere 1bc6a70d-cf1a-4109-8a21-71656d34685c 802-11-wireless 1435371500 Fri 26 Jun 2015 10:18:20 PM EDT yes no /org/freedesktop/NetworkManager/Settings/0
nmcli-dev:
 DEVICE TYPE STATE DBUS-PATH
 eth0 802-3-ethernet unavailable /org/freedesktop/NetworkManager/Devices/1
 wlan0 802-11-wireless connected /org/freedesktop/NetworkManager/Devices/0
nmcli-nm:
 RUNNING VERSION STATE NET-ENABLED WIFI-HARDWARE WIFI WWAN-HARDWARE WWAN
 running 0.9.8.8 connected enabled enabled enabled enabled enabled

Joe Hohertz (jhohertz) wrote :
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in network-manager (Ubuntu):
status: New → Confirmed
Alexey Zagarin (zagarin) wrote :

There is a patch exists that fixes this problem, but against more recent version of NetworkManager: https://bugzilla.gnome.org/show_bug.cgi?id=681764#c20
I tried to adapt it to 1.0.4 currently present in Ubuntu (and it works for me). However, further testing needed.

The attachment "nm.patch" seems to be a patch. If it isn't, please remove the "patch" flag from the attachment, remove the "patch" tag, and if you are a member of the ~ubuntu-reviewers, unsubscribe the team.

[This is an automated message performed by a Launchpad user owned by ~brian-murray, for any issues please contact him.]

tags: added: patch
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Patches

Remote bug watches

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