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