Spojení síťových rozhraní spočívá v agregaci dvou nebo více fyzických síťových rozhraní, nazývaných slaves
, pod jedním logickým rozhraním nazvaným master
nebo bond
rozhraní. V závislosti na režimu spojování může být takové nastavení užitečné pro dosažení odolnosti proti chybám a/nebo vyrovnávání zátěže. V tomto tutoriálu se naučíme, jaké jsou dostupné režimy propojení a jak vytvořit síťové propojení na RHEL 8 / CentOS 8.
V tomto tutoriálu se naučíte:
- Co je propojení síťového rozhraní
- Jak nakonfigurovat propojení síťového rozhraní na RHEL 8 / CentOS 8
- Jaké jsou různé režimy lepení
Stav Bondu, jak jej vidí linuxové jádro
Požadavky na software a použité konvence
Kategorie | Požadavky, konvence nebo použitá verze softwaru |
---|---|
Systém | RHEL 8 / CentOS 8 |
Software | Obslužný program nmtui pro ovládání démona NetworkManager. Aplikace je součástí minimální systémové instalace. |
Jiné | Oprávnění uživatele root pro úpravu nastavení systému |
Konvence | # – vyžaduje, aby dané linuxové příkazy byly spouštěny s právy root buď přímo jako uživatel root, nebo pomocí sudo příkaz$ – vyžaduje, aby dané linuxové příkazy byly spouštěny jako běžný neprivilegovaný uživatel |
Jaký režim vazby?
V zásadě existuje 7 režimů lepení, které můžeme použít:
Round Robin
Pakety jsou distribuovány rovnoměrně, v sekvenčním pořadí, do všech podřízených rozhraní (od prvního po poslední). Tento režim poskytuje jak vyvažování zátěže, tak odolnost proti chybám, ale potřebuje podporu na přepínačích.
Aktivní zálohování
Používá se pouze primární slave rozhraní. Pokud selže, je na jeho místo použit jiný slave. Poskytuje pouze odolnost proti chybám; nejsou žádné zvláštní požadavky.
XOR (exkluzivní OR)
Pakety jsou přenášeny a přidělovány jednomu z podřízených rozhraní v závislosti na hash zdrojové a cílové MAC adresy, vypočítané podle následujícího vzorce:
[(zdrojová MAC adresa XOR'd s cílovou MAC adresou) počet modulo slave]
Tento režim poskytuje odolnost proti chybám i vyrovnávání zátěže.
Vysílání
Při použití tohoto režimu jsou všechny pakety přenášeny na všech podřízených rozhraních, což zajišťuje odolnost proti chybám, ale ne vyrovnávání zátěže.
802.3ad
Tento režim využívá agregaci odkazů IEEE 802.3ad, která musí být podporována na přepínačích. Vytváří agregační skupiny, které sdílejí stejnou rychlost a duplexní nastavení. Vysílá a přijímá na všech podřízených v aktivní skupině. Poskytuje jak vyvažování zátěže, tak odolnost proti chybám.
Adaptivní vyvažování přenosové zátěže
Odchozí pakety jsou přenášeny přes slave rozhraní v závislosti na jejich zatížení a příchozí provoz přijímá aktuální slave zařízení. Pokud selže, další slave převezme jeho MAC adresu. Tento režim poskytuje odolnost proti chybám a vyrovnávání zátěže.
Adaptivní vyvažování zátěže
Funguje jako Adaptive Transmit Load Balancing
, ale poskytuje také inbound
vyvažování pomocí ARP
(Address Resolution Protocol) vyjednávání.
Prostředí
V zájmu tohoto tutoriálu budeme pracovat na virtualizovaném systému Red Hat Enterprise Linux 8. Abychom vytvořili naše síťové propojení, budeme pracovat s nmtui
, nástroj textového uživatelského rozhraní používaný k ovládání NetworkManager
démon. Stejné operace však lze provádět pomocí nmcli
nástroj příkazového řádku nebo přes GUI s Network Manager Connection Editor
.
Systém má aktuálně dva ethernet
odkazy, enp1s0
a enp7s0
:
1:lo:mtu 65536 stav qdisc noqueue UNKNOWN režim VÝCHOZÍ skupina výchozí qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00:00:00 :002:enp1s0: mtu 1500 qdisc fq_codel stav UP režim DEFAULT výchozí skupina qlen 1000 link/ether 52:54:00:cb:25:82 brd ff:ff:ff::ff3:enp7s0: mtu 1500 qdisc fq_codel stav UP režim DEFAULT skupina výchozí qlen 1000 link/ether 52:54:00:32:37:9b brd ff:ffff:ff:ff :ff
Vytvoření propojení sítí
Nejprve vymažeme aktuální existující konfigurace podřízených rozhraní. Není to nezbytně nutné, protože takové konfigurace bychom mohli upravovat na místě, ale abychom začali od začátku, budeme postupovat tímto způsobem. Vyvoláme nmtui
:
$ sudo nmtui
Z hlavní nabídky vybereme „Upravit připojení“ a potvrdíme.
Nmtui hlavní menu.
Nejprve v seznamu vybereme připojení, které chcete odstranit, a poté přejdeme na <Delete>
. Nakonec potvrdíme:
Seznam připojení Nmtui.
Nakonec potvrdíme, že chceme spojení smazat:
Výzva k potvrzení Nmtui k odstranění existujícího připojení.
Opakujeme operaci pro další rozhraní. Jakmile odstraníme všechny existující konfigurace, můžeme vytvořit bond
rozhraní. Vybereme <Add>
v nabídce a ze seznamu typů připojení vybereme Bond
:
Nabídka výběru typu připojení Nmtui.
Otevře se nové okno, kde můžeme nakonfigurovat naše rozhraní. V tomto případě, i když je to zcela volitelné, použiji bond0
jako profil i název zařízení. Nejdůležitější částí je však výběr podřízených rozhraní, která mají být přidána do vazby. V BOND Slaves
klikněte na <Add>
a vyberte typ připojení slave, které chcete přidat, v tomto případě ethernet
.
Nmtui menu pro výběr typu připojení slave.
Zadejte název zařízení a vyberte <OK>
a potvrďte. Operace se musí opakovat pro každé z podřízených rozhraní.
Rozhraní Nmtui pro úpravu připojení slave.
Dalším krokem je výběr bonding mode
:pro účely tohoto tutoriálu použijeme Active Backup
jeden. V nabídce vybereme související možnost a v poli „Primární“ zadáme název primárního podřízeného rozhraní. Nakonec už jen vybereme <OK>
pro potvrzení vytvoření rozhraní vazby.
Nastavení síťového propojení.
Nyní můžeme ukončit nmtui
aplikace. Chcete-li ověřit, že vytvoření vazby bylo úspěšné, můžeme spustit následující příkaz:
$ ip addr show bond0
Výsledek je následující:
4:bond0:mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 52:54:00:cb:25:82 brd ff:ff:ff:ff :ff:ff inet 192.168.122.164/24 brd 192.168.122.255 rozsah globální dynamický noprefixroute bond0 valid_lft 3304sec preferovaný_lft 3304sec inet6 fe80::48:d311:9dc6c1 rozsah preferovaný rozsah noprefix_ever
ifcfg
konfigurační soubory související s naší konfigurací byly vygenerovány v/etc/sysconfig/network-scripts
adresář:$ ls /etc/sysconfig/network-scriptsifcfg-bond0 ifcfg-enp1s0 ifcfg-enp7s0Chcete-li zobrazit aktuální stav
bond0
rozhraní, jak ho vidí jádro, můžeme spustit:$ cat /proc/net/bonding/bond0Výstup příkazu je uveden níže:
Ovladač propojení ethernetového kanálu:v3.7.1 (27. dubna 2011) Režim propojení:odolnost proti chybám (aktivní-záloha)Primární slave:enp1s0 (primární_reselect vždy)Aktuálně aktivní slave:enp1s0MII Stav:upMII Interval dotazování (ms):100 Up Zpoždění (ms):0Down Delay (ms):0Slave rozhraní:enp1s0MII Stav:upSpeed:UnknownDuplex:UnknownLink Počet chyb:0Trvalá HW adresa:52:54:00:cb:25:82Slave fronta ID:0Spe7 Enplave:Stav:0Slave slave::UnknownDuplex:Unknown Link Failure Count:0Stálá HW adresa:52:54:00:32:37:9bID fronty podřízených:0Můžeme vidět, jak jsou obě slave rozhraní aktivní, ale pouze
enp1s0
je aktivní, protože se používá jako primární slave.Testování aktivní zálohy
Jak můžeme ověřit, že naše konfigurace funguje? Můžeme odložit primární podřízené rozhraní a zjistit, zda stroj stále reaguje na ping. Abychom zrušili rozhraní, které spustíme:
$ sudo ip link set enp1s0 downOdpovídá stroj stále? Pojďme to ověřit:
$ ping -c3 192.168.122.164PING 192.168.122.164 (192.168.122.164) 56(84) bajtů dat.64 bajtů od 192.168.122.164=192.168.122.163q=ic.168.122.163q=ic mp ttl64=ic. icmp_seq=2 ttl=64 čas=0,353 ms64 bajtů z 192.168.122.164:icmp_seq=3 ttl=64 čas=0,406 ms--- 192.168.122.164 statistika odeslaných paketů, 0 % přijatých paketů 88 msrtt min/avg/max/mdev =0,353/0,381/0,406/0,027 msTo ano! Podívejme se, jak se změnil stav dluhopisu:
Ovladač propojení Ethernet kanálu:v3.7.1 (27. dubna 2011) Režim připojení:odolnost proti chybám (aktivní-záloha)Primární slave:enp1s0 (vždy primární_reselect)Aktuálně aktivní slave:enp7s0MII Stav:upMII Interval dotazování (ms):100 Up Zpoždění (ms):0Down Delay (ms):0Slave Rozhraní:enp1s0MII Stav:downSpeed:UnknownDuplex:UnknownLink Počet selhání:1Stálá HW adresa:52:54:00:cb:25:82Slave fronta ID:0Spe7 enpMI Stav:0SpeedMI Enplave::UnknownDuplex:Unknown Link Failure Count:0Stálá HW adresa:52:54:00:32:37:9bID fronty podřízených:0Jak můžete vidět, protože jsme zrušili primární slave rozhraní (
enp1s0
), druhý slave,enp7s0
byl použit jako záloha a je nyní aktivní. Kromě tohoLink Failure Count
pro primární slave se zvýšil a je nyní1
.Závěry
V tomto tutoriálu jsme se naučili, co je to síťové propojení a jaké jsou možné způsoby konfigurace síťového propojení. Vytvořili jsme také síťové propojení mezi dvěma ethernetovými rozhraními pomocí
Active Backup
režimu. S Red Hat Enterprise Linux 7 byl představen nový koncept,network teaming
. V některých aspektech je teaming podobný bondingu, ale je implementován jinak a má více funkcí. Budeme se jí zabývat v budoucích článcích.
Cent OS