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

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


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?

-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber         |   " Questions are the         | Mailadresse im Header
Mannheim, Germany  |     Beginning of Wisdom "     | http://www.zugschlus.de/
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834

Reply to: