GNU/Linux >> Znalost Linux >  >> Cent OS

CentOS / RHEL 7 :Jak vytvořit Network Bonding (NIC teaming) pomocí nmcli

Co je propojení rozhraní

Bonding (neboli channel bonding) je technologie podporovaná linuxovým jádrem a Red Hat Enterprise Linux, která umožňuje správcům kombinovat dvě nebo více síťových rozhraní za účelem vytvoření jediného logického „spojeného“ rozhraní pro redundanci nebo zvýšenou propustnost. Chování spojených rozhraní závisí na režimu; Obecně řečeno, režimy poskytují buď službu horkého pohotovostního režimu nebo služby vyrovnávání zátěže. Kromě toho mohou poskytovat monitorování integrity propojení.

Proč používat propojení rozhraní?

Dva důležité důvody pro vytvoření propojení rozhraní jsou:
1. Poskytování větší šířky pásma
2. Zajištění redundance při selhání hardwaru

Jedním z předpokladů pro konfiguraci propojení je mít síťový přepínač, který podporuje EtherChannel (což platí v případě téměř všech přepínačů).

Režimy lepení

V závislosti na vašich požadavcích můžete nastavit režim lepení na kterýkoli z níže uvedených 7 režimů.

Režim Zásady Jak to funguje Tolerance chyb Vyrovnávání zátěže
0 Round Robin pakety jsou postupně přenášeny/přijímány přes každé rozhraní jeden po druhém. Ano Ano
1 Aktivní zálohování jedna síťová karta je aktivní, zatímco druhá síťová karta spí. Pokud aktivní NIC přestane fungovat, stane se aktivní jiná NIC. podporováno pouze v prostředí x86. Ano Ne
2 XOR [exkluzivní NEBO] V tomto režimu se MAC adresa podřízené síťové karty porovnává s MAC příchozího požadavku a jakmile je toto spojení navázáno, stejná síťová karta se používá k vysílání/přijímání pro cílovou MAC. Ano Ano
3 Vysílání Všechny přenosy jsou odesílány na všechny podřízené jednotky Ano Ne
4 Dynamická agregace odkazů agregované síťové karty fungují jako jedna síťová karta, což má za následek vyšší propustnost, ale také poskytuje přepnutí při selhání v případě, že síťová karta selže. Dynamic Link Aggregation vyžaduje přepínač, který podporuje IEEE 802.3ad. Ano Ano
5 Transmit Load Balancing (TLB) Odchozí provoz je distribuován v závislosti na aktuálním zatížení každého podřízeného rozhraní. Příchozí provoz přijímá aktuální slave zařízení. Pokud selže přijímající slave, jiný slave převezme MAC adresu neúspěšného slave. Ano Ano
6 Adaptivní vyvažování zátěže (ALB) Na rozdíl od dynamické agregace odkazů nevyžaduje adaptivní vyvažování zátěže žádnou konkrétní konfiguraci přepínače. Adaptivní vyvažování zátěže je podporováno pouze v prostředí x86. Přijímající pakety jsou vyrovnávány zatížením prostřednictvím vyjednávání ARP. Ano Ano

Vytvoření síťového propojení pomocí nmcli

1. Vytvoření rozhraní Bonding

1. Pro zobrazení existujících síťových připojení použijte příkaz nmcli connection bez jakýchkoli argumentů. Můžete zkrátit „připojení “ argument na „con “. Příklad:

# nmcli connection 
NAME                UUID                                  TYPE            DEVICE 
ens33               59b61d18-90ed-4c3c-97e0-6c9e0528f25f  802-3-ethernet  ens33  
ens37               c09f18e1-793b-4d60-9107-98762cf593a7  802-3-ethernet  ens37

2. Zahrňte „přidat typ vazby ” argumenty a jakékoli další informace k vytvoření připojení k síti. Následující příklad vytvoří spojené rozhraní s názvem bond0, definuje rozhraní jako bond0, nastaví režim na „aktivní-záloha “ a přiřadí IP adresu propojenému rozhraní.

# nmcli con add type bond con-name bond0 ifname bond0 mode active-backup ip4 192.168.219.150/24
Connection 'bond0' (1a75eef0-f2c9-417d-81a0-fabab4a1531c) successfully added.

Příkaz nmcli con zobrazí nové spojení vazby.

# nmcli connection 
NAME                UUID                                  TYPE            DEVICE 
bond0               1a75eef0-f2c9-417d-81a0-fabab4a1531c  bond            bond0  
ens33               59b61d18-90ed-4c3c-97e0-6c9e0528f25f  802-3-ethernet  ens33  
ens37               c09f18e1-793b-4d60-9107-98762cf593a7  802-3-ethernet  ens37

3. Příkaz ‚nmcli con add type bond‘ vytvoří konfigurační soubor rozhraní v /etc/sysconfig/network-scripts adresář. Například:

# cat /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BONDING_OPTS=mode=active-backup
TYPE=Bond
BONDING_MASTER=yes
BOOTPROTO=none
IPADDR=192.168.219.150
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=bond0
UUID=1a75eef0-f2c9-417d-81a0-fabab4a1531c
ONBOOT=yes

4. Příkaz ip addr zobrazí nové rozhraní bond0:

# ip addr show bond0
5: bond0: [BROADCAST,MULTICAST,MASTER,UP] mtu 1500 qdisc noqueue state DOWN qlen 1000
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
    inet 192.168.219.150/24 brd 192.168.219.255 scope global bond0
       valid_lft forever preferred_lft forever

2. Vytvoření rozhraní Slave

1. Pro každé rozhraní, které chcete spojit, použijte ‘nmcli con add typ bond-slave ‘příkaz. Následující příklad přidává ens33 rozhraní jako bond slave. Příkaz neobsahuje argument con-name, takže název je vygenerován automaticky. Název podřízených rozhraní můžete nastavit pomocí argumentu con-name.

# nmcli con add type bond-slave ifname ens33 master bond0
Connection 'bond-slave-ens33' (79c40960-6b2c-47ba-a417-988332affed1) successfully added.

2. Následující příklad přidává ens37 rozhraní jako „bond-slave “.

# nmcli con add type bond-slave ifname ens37 master bond0
Connection 'bond-slave-ens37' (46222a52-f2ae-4732-bf06-ef760aea0d7b) successfully added.

3. Příkaz nmcli con zobrazí nová připojení.

# nmcli connection 
NAME                UUID                                  TYPE            DEVICE 
bond0               1a75eef0-f2c9-417d-81a0-fabab4a1531c  bond            bond0  
ens33               59b61d18-90ed-4c3c-97e0-6c9e0528f25f  802-3-ethernet  ens33  
ens37               c09f18e1-793b-4d60-9107-98762cf593a7  802-3-ethernet  ens37  
bond-slave-ens33    79c40960-6b2c-47ba-a417-988332affed1  802-3-ethernet  --     
bond-slave-ens37    46222a52-f2ae-4732-bf06-ef760aea0d7b  802-3-ethernet  --   

4. Příkazy nmcli con add bond-slave vytvářejí konfigurační soubory rozhraní v /etc/sysconfig/network-scripts adresář. Například:

# cat /etc/sysconfig/network-scripts/ifcfg-bond-slave-ens33
TYPE=Ethernet
NAME=bond-slave-ens33
UUID=79c40960-6b2c-47ba-a417-988332affed1
DEVICE=ens33
ONBOOT=yes
MASTER=bond0
SLAVE=yes
# cat /etc/sysconfig/network-scripts/ifcfg-bond-slave-ens37
TYPE=Ethernet
NAME=bond-slave-ens37
UUID=46222a52-f2ae-4732-bf06-ef760aea0d7b
DEVICE=ens37
ONBOOT=yes
MASTER=bond0
SLAVE=yes

5. Příkaz ip addr obsahuje „SLAVE “ pro rozhraní ens33 a ens37 a zahrnuje také „master bond0 “.

3. Aktivace dluhopisu

1. K vyvolání připojení můžete použít příkaz nmcli. Nejprve vychovejte otroky a pak vyvolejte vazební rozhraní. Následující příkazy vyvolají podřízené:

# nmcli connection up bond-slave-ens33
# nmcli connection up bond-slave-ens37

2. Následující příkaz vyvolá rozhraní bond0:

# nmcli con up bond0

3. Příkaz ip addr nebo příkaz ip link nyní zobrazuje rozhraní slave a bond, která jsou UP.

# ip link
2: ens33: [BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP] mtu 1500 qdisc pfifo_fast master bond0 state UP mode DEFAULT qlen 1000
    link/ether 00:0c:29:54:f7:20 brd ff:ff:ff:ff:ff:ff
3: ens37: [BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP] mtu 1500 qdisc pfifo_fast master bond0 state UP mode DEFAULT qlen 1000
    link/ether 00:0c:29:54:f7:20 brd ff:ff:ff:ff:ff:ff
4: bond0: [BROADCAST,MULTICAST,MASTER,UP,LOWER_UP] mtu 1500 qdisc noqueue state UP mode DEFAULT qlen 1000
    link/ether 00:0c:29:54:f7:20 brd ff:ff:ff:ff:ff:ff

Zobrazení informací o síťovém propojení

1. Každé síťové rozhraní obsahuje adresář v adresáři /sys/class/net. Například:

# ls /sys/class/net
bond0  bonding_masters  ens33  ens36  ens37  lo

2. V tomto příkladu existuje síťová vazba s názvem „bond0“. Existuje adresář se stejným názvem, který obsahuje konfigurační informace pro tuto vazbu. Například:

# ls /sys/class/net/bond0
addr_assign_type  bonding    carrier_changes  dormant  gro_flush_timeout  iflink       lower_ens37   operstate     queues      subsystem     uevent
address           broadcast  dev_id           duplex   ifalias            link_mode    mtu           phys_port_id  speed       tx_queue_len
addr_len          carrier    dev_port         flags    ifindex            lower_ens33  netdev_group  power         statistics  type

3. V tomto adresáři je adresář bonding, který obsahuje informace pro rozhraní bond0. Například:

# ls /sys/class/net/bond0/bonding
active_slave       ad_aggregator   ad_select          arp_interval   fail_over_mac  mii_status    num_unsol_na       queue_id        updelay
ad_actor_key       ad_num_ports    ad_user_port_key   arp_ip_target  lacp_rate      min_links     packets_per_slave  resend_igmp     use_carrier
ad_actor_sys_prio  ad_partner_key  all_slaves_active  arp_validate   lp_interval    mode          primary            slaves          xmit_hash_policy
ad_actor_system    ad_partner_mac  arp_all_targets    downdelay      miimon         num_grat_arp  primary_reselect   tlb_dynamic_lb

4. Existují také adresáře, které obsahují informace o každém z podřízených jednotek. Například:

# ls /sys/class/net/bond0/lower_ens33
addr_assign_type  bonding_slave  carrier_changes  dev_port  flags              ifindex    master        operstate     queues      subsystem     uevent
address           broadcast      device           dormant   gro_flush_timeout  iflink     mtu           phys_port_id  speed       tx_queue_len  upper_bond0
addr_len          carrier        dev_id           duplex    ifalias            link_mode  netdev_group  power         statistics  type

5. Následuje několik příkladů prohlížení souborů v adresáři /sys/class/net.

# cat /sys/class/net/bonding_masters
bond0
# cat /sys/class/net/bond0/operstate
up
# cat /sys/class/net/bond0/address
00:0c:29:54:f7:20
# cat /sys/class/net/bond0/bonding/active_slave
ens33
# cat /sys/class/net/bond0/bonding/mode
active-backup 1
# cat /sys/class/net/bond0/bonding/slaves
ens33 ens37

6. Následuje příklad zobrazení souboru /proc/net/bonding/bond0.

# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: ens33
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: ens33
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:54:f7:20
Slave queue ID: 0

Slave Interface: ens37
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:54:f7:34
Slave queue ID: 0

Jak deaktivovat IPv4 nebo IPv6 na propojeném rozhraní

Tyto kroky jsou potřeba pouze v případě, že bond1 nebude používat adresu ipv4 nebo ipv6

# nmcli connection modify bond1 ipv4.method disabled

a/nebo

# nmcli connection modify bond1 ipv6.method ignore


Cent OS
  1. Jak přiřadit více IP adres jednomu síťovému rozhraní na CentOS 8

  2. CentOS / RHEL 4:Jak nakonfigurovat propojení rozhraní (Týmování NIC)

  3. Jak nakonfigurovat Network Teaming v CentOS/RHEL 7

  1. Jak nakonfigurovat Teaming Network Interface Teaming v CentOS/RHEL 7 a 8

  2. Jak změnit režim síťového propojení v CentOS/RHEL 6

  3. Jak odstranit propojení konfigurace sítě v CentOS/RHEL

  1. Jak vytvořit síťový most na CentOS 7 / RHEL 7

  2. CentOS / RHEL 7 :Jak upravit názvy síťových rozhraní

  3. CentOS / RHEL 7 :Jak nakonfigurovat Network Bonding nebo NIC teaming