← Back to team overview

touch-packages team mailing list archive

[Bug 1469346] [NEW] DHCPv6 responses with multiple addresses applied incorrectly to interface

 

Public bug reported:

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

** Affects: network-manager (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: amd64 apport-bug trusty

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to network-manager in Ubuntu.
https://bugs.launchpad.net/bugs/1469346

Title:
  DHCPv6 responses with multiple addresses applied incorrectly to
  interface

Status in network-manager package in Ubuntu:
  New

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

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/network-manager/+bug/1469346/+subscriptions


Follow ups

References