Anders als viele glauben kann ein Linux „Router“ nicht nur ein Default Gateway besitzen sondern mehrere. Das macht bei 2 Szenarien Sinn:
- Autofailover
Definiert man 2 Default Routen etwa mit:route add default gw 172.16.1.1 dev eth1 route add default gw 172.16.2.1 dev eth2
So wird die zweite Default Route dann verwendet, wenn die erste einen Timeout liefert.
- Loadbalancing
Das geht auch ganz einfach:ip route del default ip route add default equalize nexthop via 172.16.1.1 dev eth1 nexthop via 172.16.2.1 dev eth2
. Am besten trägt man das in /etc/rc.d/rc.local ein. Dann übersteht es auch einen Reboot.
Beiden Methoden ist übrigens gemein, dass der Timeout einer ausgefallenen Default Route noch angepasst werden muss. Der Default Timeout liegt bei stolzen 300 Sekunden.
cat /proc/sys/net/ipv4/route/gc_timeout
300
Das bedeutet, dass erst nach 5 Minuten die entsprechende Route deaktiviert wird. Umstellen kann man diesen Wert über sysctl. Also in /etc/sysctl.conf folgendes eintragen:
net.ipv4.route.gc_timeout = 10
und mit
sysctl -p
aktivieren