[Bug 1633562] Re: 'dhclient -6 -S' does not bring interface up
Stéphane Graber
stgraber at stgraber.org
Fri Oct 14 17:40:28 UTC 2016
So I suspect the reason for this behavior is that there is no reason why
you'd want to run dhclient in IPv6 mode before you've brought up the
interface and parsed the router advertisement.
That's because unlike IPv4, IPv6 configuration is mostly done through
router advertisements which happen entirely outside of DHCPv6. The
content of that router advertisement then dictates whether DHCPv6 should
be done and if so, in which mode.
So the way things are expected to happen is:
- Bring up the interface
- Do router solicitation and get a router advertisement
- Parse the router advertisement, looking for the other-config (O) and managed (M) flag.
- If the managed bit is set, then trigger dhcpv6 in stateful mode
- If the managed bit isn't set and other-config bit is set, then trigger dhcpv6 in stateless mode
- If neither are, then use the RDNSS and DNSSL information from the advertisement to configure DNS
Triggering dhclient in stateless or even stateful mode before getting a
router advertisement may succeed but may also run into a race condition
as the gateway and prefix length may not have been received by the time
the DHCP dialog is over, leading to invalid configuration.
** Changed in: isc-dhcp (Ubuntu)
Status: New => Invalid
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to isc-dhcp in Ubuntu.
https://bugs.launchpad.net/bugs/1633562
Title:
'dhclient -6 -S' does not bring interface up
Status in isc-dhcp package in Ubuntu:
Invalid
Bug description:
When poking around with bug 1633479 i realized that 'dhclient -6 -S -1
eth0' will not raise the interface eth0. if it is not up already and
have link local addresses, then it will fail.
This may well be designed, so I'm fine if this bug is closed as 'INVALID' with such an explanation.
One thing I did notice though, when seeing if this was easily fixed was
a.) previously bringing the link up was not done (no scripts are called)
b.) the PREINIT script in dhclient.linux does:
# flush any stale global permanent IPs from interface
ip -6 addr flush dev ${interface} scope global permanent
That means that currently, a non-stateless dhclient
invocation would flush global permanent addresses, but a stateless
dhclient invocation would not.
If we changed dhclient to call dhclient-script with PREINIT6, then this scenario:
ip link set down dev eth0
ip link set up dev eth0
ip address add fd42::2/64 dev eth0
dhclient -S -6 -v -1 eth0
will cause the fd42::2 address to be removed from eth0, where
as previously it was not. I'm not sure if the previous behavior
was designed or chance.
ProblemType: Bug
DistroRelease: Ubuntu 16.10
Package: isc-dhcp-client 4.3.3-5ubuntu15
ProcVersionSignature: Ubuntu 4.8.0-22.24-generic 4.8.0
Uname: Linux 4.8.0-22-generic x86_64
NonfreeKernelModules: zfs zunicode zcommon znvpair zavl
ApportVersion: 2.20.3-0ubuntu8
Architecture: amd64
CurrentDesktop: Unity
Date: Fri Oct 14 13:08:13 2016
EcryptfsInUse: Yes
InstallationDate: Installed on 2015-07-23 (449 days ago)
InstallationMedia: Ubuntu 15.10 "Wily Werewolf" - Alpha amd64 (20150722.1)
SourcePackage: isc-dhcp
UpgradeStatus: No upgrade log present (probably fresh install)
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/isc-dhcp/+bug/1633562/+subscriptions
More information about the foundations-bugs
mailing list