Ethernet Channel Bonding aka NIC Teaming akan Linux Systems


Haɗin kai ta hanyar Ethernet yana ba da damar Katin Interfaces Card guda biyu ko fiye (NIC) zuwa katin NIC mai kama-da-wane wanda zai iya haɓaka bandwidth kuma yana ba da sakewa na Katin NIC. Wannan babbar hanya ce don cimma hanyoyin haɗin kai, rashin haƙuri ko daidaita hanyoyin sadarwa a cikin tsarin samarwa. Idan NIC na zahiri ɗaya ya ragu ko an cire shi, zai matsar da albarkatun kai tsaye zuwa wani katin NIC. Tashoshi/NIC bonding zai yi aiki tare da taimakon direban haɗin gwiwa a cikin Kernel. Za mu yi amfani da NIC guda biyu don nuna iri ɗaya.

Akwai kusan iri shida na Channel Bond iri suna samuwa. Anan, za mu sake nazarin nau'ikan Bond na Channel guda biyu kawai waɗanda suka shahara kuma ana amfani da su sosai.

  1. 0: Ma'auni na Load (Round-Robin): Ana watsa zirga-zirga a cikin jeri-jeri ko salon zagaye-robin daga duka NIC. Wannan yanayin yana ba da daidaituwar kaya da haƙurin kuskure.
  2. 1: Ajiyayyen Aiki: Bawan NIC guda ɗaya ne kawai ke aiki a kowane lokaci. Sauran Katin Interface zai yi aiki ne kawai idan bawa mai aiki NIC ya gaza.

Ƙirƙirar haɗin gwiwar tashar Ethernet

Muna da katunan Ethernet guda biyu na hanyar sadarwa wato eth1 da eth2 inda za'a ƙirƙiri bond0 don haɗin gwiwa. Bukatar superuser gata don aiwatar da umarni a ƙasa.

Ambaci siga MASTER bond0 da eth1 interface azaman BAYI a cikin fayil ɗin saiti kamar yadda aka nuna a ƙasa.

# vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE="eth1"
TYPE=Ethernet
ONBOOT="yes"
BOOTPROTO="none"
USERCTL=no
MASTER=bond0
SLAVE=yes

Anan kuma, saka sigar MASTER bond0 da eth2 interface azaman BAYI.

# vi /etc/sysconfig/network-scripts/ifcfg-eth2
DEVICE="eth2"
TYPE="Ethernet"
ONBOOT="yes"
USERCTL=no
#NM_CONTROLLED=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes

Ƙirƙiri bond0 kuma saita haɗin haɗin tashar tashoshi a cikin/sauransu/sysconfig/scripts-scripts/ directory da ake kira ifcfg-bond0.

Mai zuwa shine samfurin tsarin haɗin kai na tashar tashar.

# vi /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
ONBOOT=yes
IPADDR=192.168.246.130
NETMASK=255.255.255.0
BONDING_OPTS="mode=0 miimon=100"

Lura: A cikin tsarin da ke sama mun zaɓi Yanayin Zaɓuɓɓukan ɗaure = 0 watau Round-Robin da miimon = 100 (Tazarar zaɓe 100 ms).

Bari mu ga musaya da aka ƙirƙira ta amfani da umarnin ifconfig wanda ke nuna bond0 yana gudana azaman MASTER duka musaya eth1 da eth2 suna gudana azaman BAYI.

# ifconfig
bond0     Link encap:Ethernet  HWaddr 00:0C:29:57:61:8E
          inet addr:192.168.246.130  Bcast:192.168.246.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe57:618e/64 Scope:Link
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:17374 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16060 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1231555 (1.1 MiB)  TX bytes:1622391 (1.5 MiB)

eth1      Link encap:Ethernet  HWaddr 00:0C:29:57:61:8E
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:16989 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8072 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1196931 (1.1 MiB)  TX bytes:819042 (799.8 KiB)
          Interrupt:19 Base address:0x2000

eth2      Link encap:Ethernet  HWaddr 00:0C:29:57:61:8E
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:385 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7989 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:34624 (33.8 KiB)  TX bytes:803583 (784.7 KiB)
          Interrupt:19 Base address:0x2080

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:480 (480.0 b)  TX bytes:480 (480.0 b)

Sake kunna sabis na hanyar sadarwa da musaya ya kamata su yi kyau.

# service network restart
Shutting down interface bond0:                             [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface bond0:                               [  OK  ]

Duban matsayin haɗin gwiwa.

# watch -n .1 cat /proc/net/bonding/bond0

Abubuwan da ke ƙasa yana nuna cewa Yanayin haɗin kai shine Ma'aunin Load (RR) da eth1 & eth2 suna nunawa.

Every 0.1s: cat /proc/net/bonding/bond0                         Thu Sep 12 14:08:47 2013 

Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)

Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth1
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 2
Permanent HW addr: 00:0c:29:57:61:8e
Slave queue ID: 0

Slave Interface: eth2
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 2
Permanent HW addr: 00:0c:29:57:61:98
Slave queue ID: 0

A cikin wannan yanayin, musaya na Slave sun kasance iri ɗaya. Canji ɗaya kawai zai kasance a cikin haɗin haɗin gwiwa ifcfg-bond0 maimakon '0' zai zama '1' wanda aka nuna kamar yadda yake ƙarƙashin.

# vi /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
ONBOOT=yes
IPADDR=192.168.246.130
NETMASK=255.255.255.0
BONDING_OPTS="mode=1 miimon=100"

Sake kunna sabis na cibiyar sadarwa kuma duba halin haɗin kai.

# service network restart
Shutting down interface bond0:                             [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface bond0:                               [  OK  ]

Duba matsayin haɗin gwiwa tare da umarni.

# watch -n .1 cat /proc/net/bonding/bond0

Yanayin haɗin gwiwa yana nuna haƙuri-laifi (aiki-ajiyayyen) kuma Interface Slave ya ƙare.

Every 0.1s: cat /proc/n...  Thu Sep 12 14:40:37 2013

Ethernet Channel Bonding Driver: v3.6.0 (September 2
6, 2009)

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

Slave Interface: eth1
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 00:0c:29:57:61:8e
Slave queue ID: 0

Slave Interface: eth2
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 00:0c:29:57:61:98
Slave queue ID: 0

Lura: Da hannu ƙasa kuma sama da Matsalolin Bayi don bincika aikin haɗin gwiwa na Channel. Da fatan za a duba umarnin kamar yadda ke ƙasa.

# ifconfig eth1 down
# ifconfig eth1 up

Shi ke nan!