No default route for stateful DHCPv6
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
ifupdown (Ubuntu) |
Fix Released
|
Medium
|
Unassigned | ||
Precise |
Won't Fix
|
Low
|
Unassigned |
Bug Description
The default route cannot be provided via DHCPv6, it must be obtained from router advertisements. However, when using the dhcp method for inet6 in /etc/network/
A workaround is to set it in a post-up script. However, Linux apparently only sends router solicitations when the interface is brought up, so if unsolicited RA:s are infrequent the host will be without a default route until the next RA.
Another problem is that when bringing the interface down on dual-stack hosts, there will be a long timeout. This is because bringing down IPv4 also brings the interface link down, and afterwards dhclient cannot release the DHCPv6 lease due to the link being down ("RTNETLINK answers: Cannot assign requested address"). The workaround is to bring the link back up before bringing IPv6 down.
So the workarounds (which obviously should not be needed) for a dual-stack dhcp client look like this:
iface eth0 inet dhcp
iface eth0 inet6 dhcp
up sysctl net.ipv6.
pre-down ip link set dev $IFACE up
Related branches
description: | updated |
Changed in ifupdown (Ubuntu): | |
status: | New → Fix Committed |
importance: | Undecided → Medium |
Changed in ifupdown (Ubuntu): | |
assignee: | nobody → Stéphane Graber (stgraber) |
Changed in ifupdown (Ubuntu Precise): | |
status: | New → Triaged |
importance: | Undecided → Low |
assignee: | nobody → Stéphane Graber (stgraber) |
Changed in ifupdown (Ubuntu Precise): | |
assignee: | Stéphane Graber (stgraber) → nobody |
Changed in ifupdown (Ubuntu): | |
assignee: | Stéphane Graber (stgraber) → nobody |
Changed in ifupdown (Ubuntu): | |
assignee: | nobody → Dan Streetman (ddstreet) |
Changed in ifupdown (Ubuntu Precise): | |
assignee: | nobody → Dan Streetman (ddstreet) |
Changed in ifupdown (Ubuntu): | |
assignee: | Dan Streetman (ddstreet) → nobody |
Changed in ifupdown (Ubuntu Precise): | |
assignee: | Dan Streetman (ddstreet) → nobody |
Changed in ifupdown (Ubuntu Precise): | |
status: | Triaged → Won't Fix |
This bug was fixed in the package ifupdown - 0.7ubuntu1
---------------
ifupdown (0.7ubuntu1) quantal-proposed; urgency=low
* Resynchronise with Debian experimental. Remaining changes: interface. ager/NetworkMan ager.conf file is present interfaces, add it on upgrade. interfaces. pl (LP: #286808) if-*.d/ (LP: #258782)
(LP: #298488, LP: #663352)
- ifupdown.nw: Use 100 as default route metric unless an explicit metric
parameter is set in /etc/network/
- If the /etc/NetworkMan
but doesn't have the "ifupdown:managed" the previous upload instructed
the iniparser to return -1, which evaluates to TRUE. We instead instruct
it to return 0, as we shouldn't prevent ifupdown from managing the
interfaces in that case, as NM won't either. (LP: #281984)
- debian/postinst: If the loopback interface is missing from the config
in /etc/network/
- Add jobs and hooks for upstart.
* Cherry-pick commit 011d5904c09d from upstream, fixing cases where the
error messages wouldn't be triggered (caused test failure).
* Cherry-pick commit 7c1a226cc995 from upstream, adds support for two
options on dhcpv6 (accept_ra and autoconf) (LP: #1013597)
* Cherry-pick commit 5af7e814faee from upstream, fixing a failure in the
example script generate-
* Cherry-pick commit a1f8efc4d93f from upstream, add --no-scripts as a
parameter to ifup/ifdown, allowing the user to bypass the the scripts
in /etc/network/
ifupdown (0.7) unstable; urgency=low
* Accept duplicate options in /etc/network/ interfaces, join them using
a newline as a delimiter.
* If an interface isn't defined, but mentioned in auto or allow statement,
don't mention it in ifquery output.
* Change shortcut for --exclude to -X (was -e previously).
* Make ifquery return false if the interface isn't defined.
* Fix typos in the changelog.
* Calculate broadcast address internally.
* Allow concurrent netmask specification in both address (using CIDR
notation) and netmask for IPv6 (Closes: #674775).
* Add preferred-lifetime setting for IPv6.
* Pass -w and -e options to sysctl so we still can configure an interface
even if IPv6 SLAAC options can't be set for some reason.
* Port to GNU/Hurd (thanks to Svante Signell, closes: #296115).
* Chdir to root when executing external programs (Closes: #361964).
* Remove updetach from PPP method (Closes: #675016).
* Configure hotplug interfaces only if they're running (thanks to Evgeni
Golov, closes: #673658).
* Rewrite NEWS file (Closes: #673688).
* Update examples (Closes: #340992).
* Update tests.
* Update README.
ifupdown (0.7~rc3) unstable; urgency=low
* Upload to unstable.
* Don't refer to README from netbase any more.
* Internal changes:
- Make set_variable() able to set variables conditionally.
- Improve conversions interface.
- Add some support for interface link configuration.
- Don't leak memory in some functions.
* Configure VLANs automatically (Closes: #520436).
* Calculate netmask internally, so even if a user haven't supplied
one or have used CIDR notation, hook scripts will have it properly
specified in IF_NE...