Multipath Routing mit FreeBSD
Betreibt man viele Server, die viele Uplinks ansprechen müssen, sind Ungleichgewichte im Routing unvermeidlich. Aber so kraß wie hier muß es nicht sein. Ein Blick auf die Auslastung der Außenleitungen in abgehender Richtung zeigt ungewöhnliches. Nur eine Leitung ist aktiv in Benutzung. Alle anderen idlen vor sich hin. Das ist ungesund.
Widersprüche
Der Quagga meint, er hätte vier Routen nach außen:
O>* 0.0.0.0/0 [110/11] via 192.0.0161, lagg115, 2d03h41m via 192.0.0162, lagg115, 2d03h41m via 192.0.0167, lagg115, 2d03h41m via 192.0.0163, lagg115, 2d03h41m
Andererseits meint der Kernel, er habe nur eine Route.
# netstat -rn | head Destination Gateway Flags Refs Use Netif Expire default 192.0.0.161 UG1 0 692675252 lagg11 =>
Eine kurze Recherche ergab, daß der FreeBSD-Kernel mehrere Routen nur dann beherrscht, wenn er mit der Option RADIX_MPATH compiliert wurde. Und natürlich ist das hier nicht der Fall.
Recompile, Reboot
Der neue Kernel ist vergleichsweise schnell ausgerollt.
Und das Ergebnis kann sich sehen lassen:
O>* 0.0.0.0/0 [110/11] via 192.0.0.161, lagg115, 2d03h41m * via 192.0.0.162, lagg115, 2d03h41m * via 192.0.0.167, lagg115, 2d03h41m * via 192.0.0.163, lagg115, 2d03h41m
sowie der Kernel
Destination Gateway Flags Refs Use Netif Expire default 192.0.0.161 UG1 0 692675252 lagg11 => default 192.0.0.162 UG1 0 715615509 lagg11 => default 192.0.0.167 UG1 0 754143735 lagg11 => default 192.0.0.163 UG1 0 749227950 lagg11
Aber auch graphisch sieht es so aus, wie man sich das wünscht ...
So ganz "spontan" gleichen sich die Datenströme über alle vier Router an.
2 Kommentare