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 -paktivieren


Das Kernelfeature “CONFIG_IP_ROUTE_MULTIPATH” muss natürlich aktiviert sein, damit du zwei Gateways wg. Loadbalancing nutzen kannst. (ist es aber per default).
Vielleicht vermerkst du noch, dass es auch beim Loadbalancing nicht schadet “/proc/sys/net/ipv4/route/gc_timeout” auf “10″ zu setzen, damit bei einem Ausfall eines der beiden Gateways nicht 50% es Verkehrs für 5 Minuten verloren gehen.
Den Blog als persönliches Notizbuch zu führen, war wohl wirklich meine beste Idee. Meine eigenen Notizen werden werden durch die Kommentare von dritten immer besser. So habe ich schon einiges dazu gelernt. Vielen Dank für alle Kommentare!
Vielen Dank Christian. Ich ändere das gleich mal.
Hallo,
ich habe mir mal erlaubt, deinen Beitrag in meinem Blog zu kopieren
Nutze den Blog ebenfalls als Gedankenstütze und Notizbuch! Natürlich befindet sich ein Link zur Quelle im Beitrag.
mfg Stephan