Spojování síťových rozhraní je mechanismus používaný servery Linux, který zahrnuje propojení několika fyzických rozhraní do jednoho virtuálního, což umožňuje větší propustnost nebo odolnost proti chybám v případě selhání kabelu. V této příručce se podíváme na implementaci sloučení rozhraní v Linuxu pro Ubuntu/Debian a CentOS/RHEL/Fedora.

Agregace síťového rozhraní v Ubuntu a Debianu

Důležité! Pokud používáte Ubuntu verze 17.10 a vyšší, musíte nainstalovat balíček ifupdown nebo nakonfigurovat agregaci kanálů přes netplan

Nejprve musíte nainstalovat modul jádra pro podporu sloučení a použití příkazu modprobe zkontrolujte, zda je načten ovladač.

$ sudo modprobe bonding

Starší verze Debianu nebo Ubuntu mohou vyžadovat instalaci balíčku ifenslave:

$ sudo apt-get install ifenslave

Chcete-li vytvořit spojené rozhraní ze dvou fyzických síťových karet ve vašem systému, spusťte následující příkaz. Bohužel při použití této metody sloučení rozhraní po restartu systému nepřetrvá:

$ sudo ip link add bond0 type bond mode 802.3ad $ sudo ip link set eth0 master bond0 $ sudo ip link set eth1 master bond0

Chcete-li vytvořit trvalé přidružené rozhraní typu režim 0 (těmto typům se budeme podrobněji věnovat níže), musíte upravit konfigurační soubory síťového rozhraní. Pomocí libovolného textového editoru, jako je nano, otevřete soubor /etc/network/interfaces, jak je znázorněno na následujícím úryvku (nahraďte IP adresu, masku podsítě, bránu a servery DNS těmi, které se používají ve vaší síti).

$ sudo nano /etc/network/interfaces # Primární síťové rozhraní auto bond0 iface bond0 inet statický adresu 192.168.1.150 netmask 255.255.255.0 brána 192.168.1.1 dns-nameservery 192.168.1.1 8.8.8.8 DNS-search domain.local otroci eth0 eth1 bond_mode 0 bond-miimon 100 bond_downdelay 200 bound_updelay 200

Chcete-li povolit federované rozhraní, restartujte síťovou službu, zakažte fyzická rozhraní a povolte federované rozhraní nebo restartujte počítač, aby jádro definovalo nové federované rozhraní.

$ sudo systemctl restart networking.service
$ sudo ifdown eth0 && ifdown eth1 && ifup bond0

Nastavení souvisejícího rozhraní lze zkontrolovat pomocí následujících příkazů:

$ ifconfig
$ ip adresa

Podrobné informace o jednotném rozhraní lze získat zobrazením obsahu následujícího souboru jádra pomocí příkazu cat:

$ cat /proc/net/bonding/bond0

K ladění chyb můžete použít příkaz tail

$ tail -f /var/log/messages

Parametry síťové karty můžete zkontrolovat pomocí nástroje mii-tool:

$ mii-tool

Provozní režimy

režim=0 (zůstatek-rr)
Při této metodě agregace je provoz distribuován na principu „kolotoče“: pakety jsou postupně odesílány na síťové karty konsolidovaného rozhraní. Například, pokud máme fyzická rozhraní eth0, eth1 a eth2 spojená do bond0, první paket bude odeslán přes eth0, druhý přes eth1, třetí přes eth2 a čtvrtý znovu přes eth0 atd.

ČTĚTE VÍCE
Co znamená Bootcut džíny?

režim=1 (aktivní záloha)
Při použití této metody je aktivní pouze jedno fyzické rozhraní a ostatní fungují jako zálohy v případě selhání primárního.

režim=2 (bilance-xor)
V tomto případě agregované rozhraní určuje, přes kterou fyzickou síťovou kartu se budou odesílat pakety, v závislosti na zdrojové a cílové MAC adrese.

režim=3 (broadcast) Režim vysílání, všechny pakety jsou odesílány přes každé rozhraní. Má omezené použití, ale poskytuje významnou odolnost proti chybám.

režim=4 (802.3ad)
Speciální režim sjednocení. Vyžaduje speciální konfiguraci přepínače, ke kterému je jednotné rozhraní připojeno. Implementuje standardy agregace linek IEEE a poskytuje zvýšenou propustnost a odolnost proti chybám.

režim=5 (zůstatek-tlb)
Rozložení zátěže při přenosu. Příchozí provoz je zpracováván jako obvykle a během přenosu je rozhraní určeno na základě dat o zatížení.

režim=6 (bilance-alb)
Adaptivní rozložení zátěže. Podobně jako v předchozím režimu, ale se schopností také vyrovnávat příchozí zátěž.

Konsolidace síťového rozhraní v CentOS, RHEL a Fedora

Vytvořte nový soubor bonding.conf v adresáři /etc/modprobe.d/. Název může být jakýkoli, ale přípona musí být .conf. Do tohoto souboru vložte následující řádek:

alias bond0 bonding

Tento řádek v souboru /etc/modprobe.d/bonding.conf je vyžadován pro každé rozhraní vazby.
Chcete-li agregovat rozhraní, vytvořte konfigurační soubor s názvem ifcfg-bond0. Zde je příklad obsahu konfiguračního souboru (IP adresy ve vašem systému se mohou lišit):

DEVICE=bond0 IPADDR=192.168.1.8 NETMASK=255.255.255.0 ONBOOT=ano BOOTPROTO=none USERCTL=ne

Po vytvoření jednotného rozhraní je potřeba jej nakonfigurovat a k němu přidružené síťové karty přidáním direktiv do konfiguračních souborů MISTR и OTROK. Pro všechna související rozhraní mohou být tyto soubory téměř stejné. Například pro dvě rozhraní eth0 a eth1 spojená do jednoho mohou vypadat takto. Upravte je, jak je uvedeno níže.
Pro eth0

DEVICE=eth0 USERCTL=ne ONBOOT=ano MASTER=bond0 SLAVE=ano BOOTPROTO=žádný
DEVICE=eth1 USERCTL=ne ONBOOT=ano MASTER=bond0 SLAVE=ano BOOTPROTO=žádný

Význam těchto směrnic je následující:
PŘÍSTROJ: Definuje název zařízení
USERCTL: určuje, zda uživatel může ovládat rozhraní (v tomto případě ne)
ONBOOT: určuje, zda povolit rozhraní při spouštění
MISTR: má toto zařízení hlavní rozhraní (zde je to bond0)
OTROK: Funguje toto zařízení jako otrok?
BOOTPROTO: Určuje, jak získat IP adresu přes DHCP. U statické adresy IP je hodnota nastavena na hodnotu none

ČTĚTE VÍCE
Je značka Hugo Boss?

Restartujte síťovou službu a zkontrolujte konfiguraci pomocí příkazu ifconfig.

# systemctl restart sítě # ifconfig

Závěr

Sloučení síťových rozhraní je pohodlný a funkční mechanismus pro zajištění kvalitního a nepřerušovaného provozu vaší sítě. Doufáme, že vám tento průvodce pomohl. Podrobnější informace o použitých příkazech lze nalézt v příslušných manuálových stránkách.

Pokud najdete chybu, vyberte část textu a stiskněte Ctrl + Enter.

Související příspěvky:

  1. nastavení serveru, který bude odpovídat za internetový provoz přes netflow
  2. Jak spustit program na pozadí, aniž byste byli vázáni na terminál
  3. Instalace certifikátu SSL na nginx
  4. Proměnné prostředí v Linuxu

Režim cyklického výběru aktivního rozhraní pro provoz. Pakety jsou postupně odesílány a přijímány přes každé rozhraní jeden po druhém. Tento režim nevyžaduje použití speciálních přepínačů.

aktivní záloha nebo režim=1
Aktivní záloha

V tomto režimu je aktivní pouze jedno rozhraní, ostatní jsou v režimu hot-swap. Pokud aktivní rozhraní selže, nahradí ho záložní. MAC adresa rozhraní je externě viditelná pouze na jednom síťovém adaptéru, což zabraňuje zmatkům na síťovém přepínači. Toto je nejjednodušší režim, funguje s jakýmkoli zařízením a nevyžaduje použití speciálních přepínačů.

balance-xor nebo mode=2

Stejné rozhraní funguje s konkrétním příjemcem. Přenos paketů je rozdělen mezi rozhraní na základě vzorce ((zdrojová MAC adresa) XOR (cílová MAC adresa)) % počtu rozhraní. Režim nevyžaduje použití speciálních přepínačů. Tento režim poskytuje vyrovnávání zátěže a odolnost proti chybám.

vysílání nebo režim=3
Přenos
Provoz prochází všemi rozhraními současně.
LACP (802.3ad) nebo režim=4
Agregace odkazů IEEE 802.3ad

Rozhraní stejné rychlosti a režimu se spojí do skupiny. Všechna fyzická rozhraní se používají současně podle specifikace IEEE 802.3ad. K implementaci tohoto režimu potřebujete podporu na úrovni ovladače síťové karty a přepínač, který podporuje standard IEEE 802.3ad (přepínač vyžaduje samostatnou konfiguraci).

balance-tlb nebo režim=5
Adaptivní vyvažování zatížení převodovky

Odchozí provoz je distribuován podle aktuálního zatížení (s přihlédnutím k rychlosti) na rozhraní (tento režim vyžaduje jeho podporu v ovladačích síťových karet). Příchozí pakety přijímá pouze aktivní síťové rozhraní.

Ano (odchozí provoz)
balance-alb nebo mode=6
Adaptivní vyvažování zátěže

Zahrnuje vyvažování odchozího provozu a vyvažování příjmu (rlb) pro provoz IPv4 a nevyžaduje použití speciálních přepínačů (vyvažování příjmu je dosaženo na úrovni protokolu ARP, zachycuje odpovědi ARP z místního systému a přepisuje fyzickou adresu na adresu jedno ze síťových rozhraní v závislosti na zatížení).

ČTĚTE VÍCE
Co byste s vlasy v těhotenství neměli dělat?

Níže uvedená tabulka ukazuje algoritmy výběru kanálů (rozdělení paketů mezi fyzické kanály zahrnuté ve vícekanálovém připojení) pro režimy balance-alb, balance-tlb, balance-xor, 802.3ad (hodnota parametru xmit-hash-policy).

Tabulka 38.2. Režimy pro výběr kanálů při organizování vyvažování zátěže

Kanál pro odeslání paketu je jednoznačně určen kombinací zdrojové MAC adresy a cílové MAC adresy. Veškerý provoz mezi konkrétní dvojicí uzlů vždy prochází konkrétním kanálem. Algoritmus je kompatibilní s IEEE 802.3ad. Tento režim je výchozí.

Kanál pro odeslání paketu je určen kombinací zdrojové a cílové MAC a IP adresy. Provoz mezi určitou dvojicí IP hostitelů vždy prochází určitým kanálem (je zajištěno rovnoměrnější vyrovnávání provozu, zvláště když je většina přenášena přes zprostředkující směrovače). Pro protokoly vrstvy 3 jiné než IP je tento algoritmus ekvivalentní k vrstvě2. Algoritmus je kompatibilní s IEEE 802.3ad.

Kanál pro odeslání paketu je určen kombinací IP adres a čísel portů zdroje a cíle (provoz konkrétního uzlu může být rozdělen mezi několik kanálů, ale pakety stejného TCP/UDP spojení jsou vždy přenášeny přes stejný kanál). Pro fragmentované pakety TCP a UDP, stejně jako pro všechny ostatní protokoly vrstvy 4, se berou v úvahu pouze adresy IP. Pro protokoly vrstvy 3 jiné než IP je tento algoritmus ekvivalentní k vrstvě2. Algoritmus není plně kompatibilní s IEEE 802.3ad.

Chcete-li vytvořit agregované rozhraní vazeb pomocí etcnet, musíte vytvořit adresář pro rozhraní (například bond0) s volbami souborů , ipv4address . V souboru voleb byste měli zadat vazbu typu rozhraní (TYPE), v proměnné HOST byste měli uvést nadřazená rozhraní, která budou zahrnuta v agregovaném rozhraní, v proměnné BONDMODE byste měli zadat režim (výchozí 0) a možnosti pro modul bonding kernel by měly být v BONDOPTIONS.

Poznámka

Rozhraní agregovaných vazeb lze vytvořit ve webovém rozhraní NCC, podrobněji viz Slučování síťových rozhraní.