Re: Interface operative status detection

Andi Kleen (ak@suse.de)
19 Jan 2002 18:40:35 +0100


Stefan Rompf <srompf@isg.de> writes:

> while playing with the Zebra routing daemon, I realized that neither
> Linux nor Zebra are capable of detecting the operative state of an
> interface, f.e. the ethernet link beat. This is a major show stopper
> against using Linux for "serious" IP routing.

It's only when you assume that the link beat is a "serious" sign for
link healthiness. Unfortunately there are many error cases where a link
can fail, but the link beat is still there - for example the software
on the other machine crashing but the NIC still working fine. These
seem to be the majority of the cases in fact except for demo situations
where people pull cables on purpose. To handle all the other cases you
need a separate heartbeat protocol that actually checks if the higher
layers above the networking card are alive on the peer too. Most routing
protocols do this already in fact, e.g. OSPF or RIP with their 'hello'
packets. The Linux IP stack does it also using ARP probes. When a probe
is not answered the routing daemon eventually notices and takes action.
While waiting for probes is a bit slower (30-60s usually), checking
the link beat only handles such a small subset of cases that it is not
worth it to optimize these rare ones.

Commercial vendors seem to like it because it looks good in demos ;),
but linux fortunately doesn't have to be concerned with such marketing
reasoning.

In short - Linux doesn't have this feature because it's not needed.
If your routing protocol relies on link state checking without other
probing it's broken. Zebra isn't.

-Andi
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/