[Bug 1447715] Re: dhclient -6: Can't bind to dhcp address: Cannot assign requested address
Dan Streetman
dan.streetman at canonical.com
Fri Apr 20 11:28:21 UTC 2018
Xenial verification:
ubuntu at lp1447715:/etc/network/interfaces.d$ dpkg -l | grep ifupdown
ii ifupdown 0.8.10ubuntu1.2 amd64 high level tools to configure network interfaces
ubuntu at lp1447715:/etc/network/interfaces.d$ grep -A 2 ens7 50-cloud-init.cfg
auto ens7
iface ens7 inet6 auto
dhcp 1
ubuntu at lp1447715:/etc/network/interfaces.d$ sudo ip l show ens7
3: ens7: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
link/ether 52:54:00:b0:86:a5 brd ff:ff:ff:ff:ff:ff
ubuntu at lp1447715:/etc/network/interfaces.d$ sudo ifup -v ens7
Parsing file /etc/network/interfaces.d/50-cloud-init.cfg
Configuring interface ens7=ens7 (inet6)
/bin/run-parts --exit-on-error --verbose /etc/network/if-pre-up.d
run-parts: executing /etc/network/if-pre-up.d/ethtool
run-parts: executing /etc/network/if-pre-up.d/ifenslave
+ [ inet6 = meta ]
+ IF_BOND_SLAVES=
+ [ ]
+ [ ]
+ [ -z ]
+ exit
run-parts: executing /etc/network/if-pre-up.d/vlan
/sbin/modprobe -q net-pf-10 > /dev/null 2>&1 || true # ignore failure.
/sbin/sysctl -q -e -w net.ipv6.conf.ens7.accept_ra=2
/sbin/sysctl -q -e -w net.ipv6.conf.ens7.autoconf=1
/bin/ip link set dev ens7 up
/lib/ifupdown/wait-for-ll6.sh
/sbin/dhclient -1 -6 -S -pf /run/dhclient6.ens7.pid -lf /var/lib/dhcp/dhclient6.ens7.leases -I -df /var/lib/dhcp/dhclient.ens7.leases ens7
Failed to bring up ens7.
ubuntu at lp1447715:/etc/network/interfaces.d$ dpkg -l | grep ifupdown
ii ifupdown 0.8.10ubuntu1.3 amd64 high level tools to configure network interfaces
ubuntu at lp1447715:/etc/network/interfaces.d$ grep -A 2 ens7 50-cloud-init.cfg
auto ens7
iface ens7 inet6 auto
dhcp 1
ubuntu at lp1447715:/etc/network/interfaces.d$ sudo ip l show ens7
3: ens7: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
link/ether 52:54:00:b0:86:a5 brd ff:ff:ff:ff:ff:ff
ubuntu at lp1447715:/etc/network/interfaces.d$ sudo ifup -v ens7
Parsing file /etc/network/interfaces.d/50-cloud-init.cfg
Configuring interface ens7=ens7 (inet6)
/bin/run-parts --exit-on-error --verbose /etc/network/if-pre-up.d
run-parts: executing /etc/network/if-pre-up.d/ethtool
run-parts: executing /etc/network/if-pre-up.d/ifenslave
+ [ inet6 = meta ]
+ IF_BOND_SLAVES=
+ [ ]
+ [ ]
+ [ -z ]
+ exit
run-parts: executing /etc/network/if-pre-up.d/vlan
/sbin/modprobe -q net-pf-10 > /dev/null 2>&1 || true # ignore failure.
/sbin/sysctl -q -e -w net.ipv6.conf.ens7.accept_ra=2
/sbin/sysctl -q -e -w net.ipv6.conf.ens7.autoconf=1
/bin/ip link set dev ens7 up
/lib/ifupdown/wait-for-ll6.sh
/sbin/dhclient -1 -6 -S -pf /run/dhclient6.ens7.pid -lf /var/lib/dhcp/dhclient6.ens7.leases -I -df /var/lib/dhcp/dhclient.ens7.leases ens7
/bin/run-parts --exit-on-error --verbose /etc/network/if-up.d
run-parts: executing /etc/network/if-up.d/000resolvconf
run-parts: executing /etc/network/if-up.d/ethtool
run-parts: executing /etc/network/if-up.d/ifenslave
+ [ inet6 = meta ]
+ [ ]
run-parts: executing /etc/network/if-up.d/ip
run-parts: executing /etc/network/if-up.d/openssh-server
run-parts: executing /etc/network/if-up.d/upstart
verified.
** Tags removed: verification-needed verification-needed-xenial
** Tags added: verification-done verification-done-xenial
** Tags removed: sts-sponsor
** Tags removed: patch
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to ifupdown in Ubuntu.
https://bugs.launchpad.net/bugs/1447715
Title:
dhclient -6: Can't bind to dhcp address: Cannot assign requested
address
Status in ifupdown package in Ubuntu:
Fix Released
Status in ifupdown source package in Xenial:
Fix Committed
Status in ifupdown package in Debian:
Fix Released
Bug description:
[Impact]
When using dhcpv6 configured via ifupdown, the interface's dhcp client
fails to start at boot with the error:
Can't bind to dhcp address: Cannot assign requested address
This is because ifupdown doesn't wait, after bringing the interface
up, for it to complete its link-local Duplicate Address Detection
(DAD), and the dhcp client can't bind to the link-local address
because it's still in "tentative" state (until DAD completes).
This is fixed upstream in debian ifupdown in version 0.8.11 by adding
'-tentative' to the /lib/ifupdown/wait-for-ll6.sh script; before the
script was only waiting for the link-local address to appear, now it
waits until the link-local address appears and is not in 'tentative'
state.
[Test Case]
Original test case, before dhclient was fixed:
Configure an interface, using ifupdown, with dhcpv6 (e.g. iface eth0 inet6 dhcp) and reboot. It will fail to get a dhcp address during boot.
New test case, showing failure when using dhclient in 'stateless' mode:
Configure ifupdown like:
auto eth0
iface eth0 inet6 auto
dhcp 1
When eth0 is down, run 'sudo ifup eth0', and it will fail as dhclient
fails to start on the interface.
[Regression Potential]
As this modifies the wait-for-dad function, its potential for
regression is to introduce failures in starting dhclient, possibly by
failing to wait for DAD to complete or due to some other failure in
the wait for dad function.
[Other Info]
After upgrading to Ubuntu 15.04 my computer is unable to obtain an
IPv6 address via DHCPv6. The root cause is that dhclient is exiting
with the following message:
-----------------------------------------------------
Can't bind to dhcp address: Cannot assign requested address
Please make sure there is no other dhcp server
running and that there's no entry for dhcp or
bootp in /etc/inetd.conf. Also make sure you
are not running HP JetAdmin software, which
includes a bootp server.
If you think you have received this message due to a bug rather
than a configuration issue please read the section on submitting
bugs on either our web page at www.isc.org or in the README file
before submitting a bug. These pages explain the proper
process and the information we find helpful for debugging..
exiting.
-----------------------------------------------------
The problem seems to exist in isc-dhcp-client 4.3.1-5ubuntu2 (15.04
version) because downgrading to isc-dhcp-client 4.2.4-7ubuntu14 (14.10
version) allows me to obtain an address.
NetworkManager is the one launching dhclient. The two invocations (one
for IPv4 and one for IPv6) are:
dhclient_start(): running: /sbin/dhclient -d -q -sf
/usr/lib/NetworkManager/nm-dhcp-helper -pf /run/sendsigs.omit.d
/network-manager.dhclient-eth0.pid -lf /var/lib/NetworkManager
/dhclient-c0a3dfde-5c0b-4cef-9c3b-563cfb1fb9d2-eth0.lease -cf
/var/lib/NetworkManager/dhclient-eth0.conf eth0
dhclient_start(): running: /sbin/dhclient -d -q -6 -N -sf
/usr/lib/NetworkManager/nm-dhcp-helper -pf /run/sendsigs.omit.d
/network-manager.dhclient6-eth0.pid -lf
/var/lib/NetworkManager/dhclient6-c0a3dfde-5c0b-4cef-9c3b-
563cfb1fb9d2-eth0.lease -cf
/var/lib/NetworkManager/dhclient6-eth0.conf eth0
I do not see anything suspicious with the way both dhclients are
invoked.
Given that a downgrade allows me to obtain an IPv6 address I think
this might be a bug in the ISC DHCP client rather than in
NetworkManager.
Related Bugs:
* bug 1633479: dhclient does not wait for ipv6 dad (duplicate address detection)
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/1447715/+subscriptions
More information about the foundations-bugs
mailing list