Bonding kart sieciowych służy do tego, aby w dużym skrócie – połączyć ze sobą minimum dwie karty sieciowe w celu zwiększenia przepustowości, niezawodności bądź też – jednocześnie przepustowości i niezawodności sieci na serwerze.
Aby skonfigurować bonding na serwerze – powinniśmy mieć bezpośredni dostęp do konsoli serwera, bądź IPMI i wydajemy polecenia:
nmcli con add type bond ifname bond0 bond.options "mode=802.3ad,miimon=100,downdelay=0,updelay=0" ip4 192.168.100.100/24 gw4 192.168.100.1 ipv4.dns "8.8.8.8 8.8.4.4"
Powyższe polecenie utworzy nowy interfejs bond0 przypisując wybraną adresację. Następnie – do interfejsu bond0 dodajemy karty sieciowe:
nmcli con add type ethernet ifname eth1 master bond0 nmcli con add type ethernet ifname eth2 master bond0
Bonding interfejsów sieciowych pozwala na ustawienie kilku trybów:
- balance-rr – wysyła pakiety w sposób sekwencyjny z każdej dostępnej karty sieciowej,
- active-backup – jeden interfejs jest aktywny, drugi oczekuje,
- balance-xor – rozkłada ruch pomiędzy dwie karty sieciowe na podstawie adresów MAC,
- broadcast – wysyła każdy pakiet na wszystkich dostępnych kartach sieciowych,
- 802.3ad – agregacja LACP, łączy obydwa interfejsy w jeden, wymaga wsparcia ze strony switcha,
- balance-tlb – ruch wychodzący rozdzielany jest automatycznie na podstawie aktualnego obciążenia kart sieciowych,
- balance-alb – to samo co wyżej + obsługa ruchu przychodzącego.
W moim przypadku – stosuję tę konfigurację na kilkudziesięciu serwerach hostingowych – łącząc dwie karty sieciowe w agregację 802.3ad. Karty sieciowe podłączone są do dwóch osobnych przełączników, spiętych w ramach jednego stosu. Dzięki temu – na co dzień – zyskuję podłączenie serwerów poprzez łącze 2Gb/s, a w razie awarii kabla, karty sieciowej czy pojedynczego przełącznika – brak przerwy w działaniu sieci.