DHCPv6 responses with multiple addresses applied incorrectly to interface
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
network-manager (Ubuntu) |
Confirmed
|
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=
The following are key lines from the debug logging:
Jun 20 23:21:16 pinky-linux NetworkManager[
...
Jun 20 23:21:17 pinky-linux NetworkManager[
Jun 20 23:21:17 pinky-linux NetworkManager[
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
ProcVersionSign
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.
[main]
NetworkingEnab
WirelessEnable
WWANEnabled=true
WimaxEnabled=true
ProcEnviron:
LANGUAGE=en_CA:en
PATH=(custom, no user)
XDG_RUNTIME_
LANG=en_CA.UTF-8
SHELL=/bin/bash
SourcePackage: network-manager
UpgradeStatus: No upgrade log present (probably fresh install)
mtime.conffile.
mtime.conffile.
nmcli-con:
NAME UUID TYPE TIMESTAMP TIMESTAMP-REAL AUTOCONNECT READONLY DBUS-PATH
somewhere 1bc6a70d-
nmcli-dev:
DEVICE TYPE STATE DBUS-PATH
eth0 802-3-ethernet unavailable /org/freedeskto
wlan0 802-11-wireless connected /org/freedeskto
nmcli-nm:
RUNNING VERSION STATE NET-ENABLED WIFI-HARDWARE WIFI WWAN-HARDWARE WWAN
running 0.9.8.8 connected enabled enabled enabled enabled enabled
Status changed to 'Confirmed' because the bug affects multiple users.