[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

IPv6, tentative addresses, bind(), wheezy

Hey folks,

wheezy will be the first Debian release to feature dependency-based
booting (insserv). I just finished installing a very simple gateway
(IPv4 and IPv6) for a customer, and unbound is failing to start
during a regular boot.

The reason is that by the time bind() is called, the IPv6 address
(configured with /e/n/i inet6 static, which unbound should listen
on) is not yet ready, but "tentative", so the bind() call fails.

In squeeze, this wasn't usually a problem because enough happened
before S20unbound got called.

In wheezy, however, S03unbound gets called in parallel as soon as
"$network $remote_fs $syslog" are provided, and
/etc/rcS.d/S10networking turns on $network right after configuring
the IPv6 address, ignoring that IPv6 assignment comes with the
"tentative" period, during which duplicate address detection (DAD)
is being performed.

I can now disable DAD, or insert "sleep 10" at the top of
/etc/init.d/unbound, but neither is an acceptable solution.

IPv6 has been a release goal for years and we are about to release
another Debian version that does not properly cater for IPv6.

What can be done?

 .''`.   martin f. krafft <madduck@d.o>      Related projects:
: :'  :  proud Debian developer               http://debiansystem.info
`. `'`   http://people.debian.org/~madduck    http://vcs-pkg.org
  `-  Debian - when you have better things to do than fixing systems
"auch der mutigste von uns hat nur selten den mut zu dem,
 was er eigentlich weiß."
                                                 - friedrich nietzsche

Attachment: digital_signature_gpg.asc
Description: Digital signature (see http://martin-krafft.net/gpg/sig-policy/999bbcc4/current)

Reply to: