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

Re: How to solve race condition between IPv6 ifup and start of services?



Marc Haber <mh+debian-devel@zugschlus.de> writes:

> Hi,
>
> with the increasing deployment of IPv6 I begin to see an issue
> icreasingly often: When an interface is configured for IPv6, it takes
> a few seconds before the IPv6 address actually becomes available.
> Services that are started in this time window won't listen on IPv6,
> which may be unintended behavior. Many people see this behavior as a
> bug in the distribution, which is why I am addressing this issue here
> on -devel.
>
> Unfortunately, it is non-trivial to find out whether my IPv6
> configuration has completed or not. How many addresses will be
> assigned to us via stateless autoconfig? Are we running with privacy
> extensions? Do we have additional static configuration?
>
> The most "clean" solutions for this issue would be
> (a) Modify the services to notice when additional IP addresses come up
>     and listen there if the service is configured for that IP address
> (b) Parse the configuration of each service in the init script and
>     wait for the configured IP addresses to actually come up.
>
> Both solutions are rather expensive to implement.
>
> Is there a widely accepted method to do things any easier? It is
> clearly not acceptable to have to manually log in to a newly booted
> server to restart service, neither do I like the idea of changing
> runlevels five minutes after reboot to kick IPv6 services to life.
>
> Any more ideas?
>
> Greetings
> Marc

(c) Modify ifupdown to notice when additional IP addresses come up (or
go away) and run the ifup.d (ifdown.d) scripts for it.

MfG
        Goswin


Reply to: