[6] Network BONDING

19 marca 2022 Wyłączono przez Adam [zicherka] Nogły

Skonfiguruj Network Bonding, aby powiązać wiele interfejsów sieciowych w jeden interfejs o zrównoważonym obciążeniu lub odporności na błędy i tak dalej.

Dostępna jest również funkcja Network Teaming, która jest tym samym rozwiązaniem równoważenia obciążenia sieciowego lub odporności na awarie.

Zapoznaj się z poniższym porównaniem funkcji tworzenia zespołów i łączenia sieci: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/networking_guide/sec-comparison_of_network_teaming_to_bonding.

Istnieje kilka trybów konfigurowania połączenia sieciowego, jak poniżej.

Mode Nazwa Opis
0 balance-rr Ustawia zasady round-robin dla odporności na błędy i równoważenia obciążenia.

Transmisje są odbierane i wysyłane sekwencyjnie na każdym interfejsie elementu wiązanego, począwszy od pierwszego dostępnego.

1 active-backup Ustawia zasady aktywnej kopii zapasowej dla odporności na awarie.

Transmisje są odbierane i wysyłane za pośrednictwem pierwszego dostępnego interfejsu elementu wiązanego.

Inny interfejs elementu powiązanego jest używany tylko wtedy, gdy interfejs aktywnego elementu powiązanego ulegnie awarii.

2 balance-xor Ustawia zasadę XOR (exclusive-or) dla tolerancji błędów i równoważenia obciążenia.

Korzystając z tej metody, interfejs dopasowuje adres MAC przychodzącego żądania z adresem MAC jednej z członkowskich kart sieciowych.

Po ustanowieniu tego łącza transmisje są wysyłane sekwencyjnie, zaczynając od pierwszego dostępnego interfejsu.

3 broadcast Ustawia zasady rozgłaszania dla odporności na awarie.

Wszystkie transmisje są wysyłane na wszystkich interfejsach członkowskich.

4 802.3ad Ustawia zasady agregacji łączy dynamicznych IEEE 802.3ad.

Tworzy grupy agregacji, które mają te same ustawienia szybkości i dupleksu.

Przesyła i odbiera od wszystkich członków aktywnego agregatora. Wymaga przełącznika zgodnego ze standardem 802.3ad.

5 balance-tlb Ustawia zasadę równoważenia obciążenia transmisji (TLB) dla tolerancji błędów i równoważenia obciążenia.

Ruch wychodzący jest rozdzielany zgodnie z bieżącym obciążeniem każdego interfejsu członkowskiego. Ruch przychodzący jest odbierany przez bieżącą kartę sieciową członka.

Jeśli członek odbierający ulegnie awarii, inny członek przejmuje adres MAC uszkodzonego członka.

6 balance-alb Ustawia zasadę aktywnego równoważenia obciążenia (ALB) dla tolerancji błędów i równoważenia obciążenia.

Obejmuje równoważenie obciążenia nadawania i odbioru dla ruchu IPV4.

Równoważenie obciążenia odbieranego jest osiągane poprzez negocjacje ARP.

[1] Skonfiguruj Network Bonding

# pokaż urządzenia sieciowe
[root@vlsr01 ~]# nmcli device
DEVICE  TYPE      STATE          CONNECTION
ens192  ethernet  połączono      ens192
ens224  ethernet  rozłączono     --
lo      loopback  niezarządzane  --

# usuń istniejące połączenia sieciowe
[root@vlsr01 ~]# nmcli connection delete ens192
Pomyślnie usunięto połączenie „ens192” (bff9bf87-d753-4610-a510-609b1fc78b7b).
[root@vlsr01 ~]# nmcli device
DEVICE  TYPE      STATE         CONNECTION
Ens192  ethernet  disconnected  --
ens224  ethernet  disconnected  --
lo      loopback  unmanaged     --

# dodaj nowe urządzenie Bonding’owe [bond0] – nazwa jest dowolna
# zapoznaj się z powyższym opisem dla każdego trybu (wpisz odpowiednią cyfrę lub nazwę  aby określić trybu dla [mode=*])
[root@vlsr01 ~]# nmcli connection add type bond ifname bond0 con-name bond0 bond.options "mode=balance-rr"
Connection 'bond0' (25309d71-adeb-4b46-917a-3d4b18c86b57) successfully added.

# dodaj urządzenia członkowskie do urządzenia [bond0]
[root@vlsr01 ~]# nmcli connection add type ethernet ifname ens192 master bond0
Connection 'bond-slave-enp1s0' (f0c5a801-3d3f-431e-a31b-2f296f0ac46f) successfully added.
[root@vlsr01 ~]# nmcli connection add type ethernet ifname ens224 master bond0
Connection 'bond-slave-enp7s0' (6368b4fd-8b05-4d2a-978e-58796cf32e16) successfully added.
[root@vlsr01 ~]# nmcli connection
NAME               UUID                                  TYPE      DEVICE
bond0              25309d71-adeb-4b46-917a-3d4b18c86b57  bond      bond0
bond-slave-enp1s0  f0c5a801-3d3f-431e-a31b-2f296f0ac46f  ethernet  ens192
bond-slave-enp7s0  6368b4fd-8b05-4d2a-978e-58796cf32e16  ethernet  ens224

# ustaw adresację IP dla urządzenia [bond0] i zrestartuj go
# adres IP
[root@vlsr01 ~]# nmcli connection modify bond0 ipv4.addresses 192.168.100.101/24
# geteway
[root@vlsr01 ~]# nmcli connection modify bond0 ipv4.gateway 192.168.100.254
# DNS – wpisz ze spacją, jeśli wpisujesz kilka adresów
[root@vlsr01 ~]# nmcli connection modify bond0 ipv4.dns "192.168.100.100 1.1.1.1 8.8.8.8"
# strefa wyszukiwania DNS – wpisz ze spacją, jeśli chcesz wprowadzić kilka stref
[root@vlsr01 ~]# nmcli connection modify bond0 ipv4.dns-search "zicher.lab"
# ustaw metodę przydzielania adresu IP
[root@vlsr01 ~]# nmcli connection modify bond0 ipv4.method manual
# zrestartuj [bond0]
[root@vlsr01 ~]# nmcli connection down bond0 && nmcli connection up bond0

# sprawdź status [bond0]
[root@vlsr01 ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Peer Notification Delay (ms): 0
Slave Interface: ens192
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:4c:07:70
Slave queue ID: 0
Slave Interface: ens224
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:4c:07:7a
Slave queue ID: 0

[root@vlsr01 ~]# ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000
    link/ether 00:0c:29:4c:07:70 brd ff:ff:ff:ff:ff:ff
3: ens224: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000
    link/ether 00:0c:29:4c:07:70 brd ff:ff:ff:ff:ff:ff permaddr 00:0c:29:4c:07:7a
6: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:0c:29:4c:07:70 brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.101/24 brd 192.168.100.255 scope global noprefixroute bond0
       valid_lft forever preferred_lft forever
    inet6 fe80::e38a:dae:960c:b52a/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

# plik konfiguracyjny jest przechowywany w następującym miejscu
[root@vlsr01 ~]# ll /etc/sysconfig/network-scripts/
razem 12
-rw-r--r--. 1 root root 446 03-16 17:29 ifcfg-bond0
-rw-r--r--. 1 root root 127 03-16 17:23 ifcfg-bond-slave-ens192
-rw-r--r--. 1 root root 127 03-16 17:23 ifcfg-bond-slave-ens224