Grant Taylor wrote:

I need a way for the Linux kernel to try to use a default gateway and switch to another one if it does not see any traffic.

I don't know about any working in-kernel solutions, but you can do it trivially with netfilter and a cronjob:

* In netfilter do this:
        -t mangle -N ispA
        -t mangle -A ispA -j RETURN
        -t mangle -N ispB
        -t mangle -A ispB -j RETURN
        -t mangle -A PREROUTING -i $ifA -s ! a.a.a.a/aa -j ispA
        -t mangle -A PREROUTING -i $ifB -s ! b.b.b.b/bb -j ispB

where a.a.a.a and b.b.b.b are subnets describing your first 1 - 2 hops, so traffic from your upstream router will not count.

* Then make a cron job that run this every minute:
        iptables -t mangle -vnxZL isp[AB]
and will look for the first number on the third line. If it is not 0 - the link is alive, otherwise change the routing tables accordingly.

Of course you can have up to 1 minute of downtime, but it does not look so bad IMO.

HTH

Peter
_______________________________________________
LARTC mailing list
[email protected]
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc

Reply via email to