Re: How to solve race condition between IPv6 ifup and start of services?
Marc Haber <email@example.com> writes:
> On Sat, 21 May 2011 15:42:51 -0700, Steve Langasek <firstname.lastname@example.org>
>>With an event-based init system such as upstart, you could also set up the
>>service not to start until the specified interface is fully configured.
> Issue (1): We don't have event-based init system yet
> Issue (2): When is an IPv6 interface "fully configured"?
Or: When is *any* interface "fully configured"?
The subject does not really have anything to do with IPv6. Interfaces
may have any addresses added or removed, and you may want to define
service policies depending on some specific network state. This applies
just as much to IPv4 as to IPv6.
I believe Debian as a distribution should be extremely careful about
predefining policies, but preferably give the administrators the tools
necessary to define them. So please don't try to define "fully
configured" for me.
It would of course be nice to have the ability to say: "Run service foo
when interface bar has an address matching baz", but I believe these
kinds of policies quickly will become too complex to have generic
solutions. You can usually script something, using existing tools
like laptop-net, udev, dhcp clients, wpa_supplicant etc.
And if someone wants a scriptable solution for SLAAC, then writing a
small daemon listening for netlink events and running scripts based on
them should be piece-of-cake. In fact, it is so easy that it is
probably already done.