On Fri, Jul 13, 2001 at 09:53:24AM +0200, RoMaN SoFt / LLFB !! wrote: > On Thu, 12 Jul 2001 11:20:18 -0700, you wrote: > > >> The situation I'm looking for is having two real routes to the > >> destination network (via the fast gateway and the slow one > >> respectively) but only the first (=fast) one is used in normal > >> conditions. The second (=slow) one will only be used in case the first > >> breaks (i.e. failover mode). > > > >I believe the only way for the kernel to recognize that there has been > >a failure, is the ethernet card detecting a line drop. If you can be > >sure that when the link goes down that this happens, you won't need > >anything else except for the right rules in your routing setup. > > I forgot to say that I also tried to use metric: two routes with > different metric (one with default metric [0, isn't it] and the other > one with metric 10). This time I could enter the two routes to the > same destination but when the first gateway lose connectivity it seems > not to be detected. I'll keep on doing some testing. > > I read in this list's archives that the kernel routing code should > detect if the gateway is ok and in negative case switch to another > route (with greater metric). How does it work exactly? Which type of > checks are performed? > I don't really know. I haven't seen any traffic on the network that seems to try to detect connectivity. > Mike, the issue is not to detect when ethernet is broken (this is a > feature of the network card and it is used, for instance, in "bonding" > driver; indeed in that case my problem would be solved using this > driver in backup mode) but detecting when the destination network is > not reachable. So the gateway itself could be ok (it could have its > "receiving" ethernet up, I mean, my linux router [which I'm trying to > config] can reach the gateway) but its output line could be down > avoiding a correct deliver of packets (gateway can reach destination > network). > > Is it absolutely necessary to use a routing daemon in my case? Or the > metric trick should be sufficient for me? > I would guess that the kernel would need some icmp message sent to it to detect that a route is down. Like "dest unreachable" from the first hop. In my case, I have a bridged DSL connection, and if the link goes down, I won't get the icmp either. I have another routed dsl connection, but I haven't tested with that yet. With the bridged line, the packets go out, and don't get any response. The kernel doesn't do anything in this case. Do you know anything about C or C++ coding? If so, you could take a look at the routing code yourself and maybe get an idea of what is going on. My guess is that it requires dest-unreach to work. It'd change in the routing cache, and you wouldn't see anything in your other tables change. Mike