Ethernet Channel Bonding aka NIC Teaming na Linux Systems


Njikọ ọwa Ethernet na-enyere aka abụọ ma ọ bụ karịa Network Interfaces Card (NIC) gaa na otu kaadị Nic mebere nke nwere ike ịbawanye bandwidth ma na-enye redundancy nke kaadị NIC. Nke a bụ ụzọ dị mma iji nweta njikọ na-abaghị uru, nnabata mmejọ ma ọ bụ netwọk na-edozi ibu na sistemụ mmepụta. Ọ bụrụ na otu NIC anụ ahụ dara ma ọ bụ ewepụghị ya, ọ ga-ebuga akụrụngwa na kaadị NIC ọzọ ozugbo. Njikọ ọwa/NIC ga-arụ ọrụ site n'enyemaka nke onye ọkwọ ụgbọ ala njikọ na kernel. Anyị ga-eji NIC abụọ gosipụta otu ihe ahụ.

Enwere ihe fọrọ nke nta ka ọ bụrụ ụdị isii nke ụdị ọwa ọwa dị. N'ebe a, anyị ga-atụle naanị ụdị abụọ nke Channel Bond bụ ndị ewu ewu ma na-ejikarị eme ihe.

  1. 0: Ntuzi ibu (Round-Robin): A na-ebufe okporo ụzọ n'usoro n'usoro ma ọ bụ ejiji okirikiri sitere na NIC abụọ. Usoro a na-enye nguzozi ibu na nnabata mmejọ.
  2. 1: Ndabere ọrụ: Naanị otu ohu NIC na-arụ ọrụ n'oge ọ bụla. Kaadị Interface ndị ọzọ ga-arụ ọrụ naanị ma ọ bụrụ na ohu NIC na-arụ ọrụ daa.

Ịmepụta njikọta ọwa Ethernet

Anyị nwere kaadị netwọk Ethernet abụọ ya bụ eth1 na eth2 ebe a ga-emepụta bond0 maka ebumnuche njikọ. Achọrọ superuser ohere ime iwu n'okpuru.

Kwuo paramita MASTER bond0 na interface eth1 dị ka SLAVE na faịlụ nhazi dị ka egosiri n'okpuru.

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

N'ebe a kwa, kọwaa parameter MASTER bond0 na eth2 interface dị ka ohu.

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

Mepụta bond0 ma hazie ọwa njikọ njikọ na ndekọ “/ wdg/sysconfig/netwọk-scripts/” nke akpọrọ ifcfg-bond0.

Ihe na-esonụ bụ faịlụ nhazi njikọ njikọ ọwa.

# 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"

Mara: Na nhazi nke dị n'elu, anyị ahọrọla ụdị nhọrọ Bonding = 0 i.e Round-Robin na miimon = 100 (ntụgharị ntuli aka 100 ms).

Ka anyị hụ interfaces mepụtara site na iji iwu ifconfig nke na-egosi bond0 na-agba ọsọ dị ka MASTER ma interfaces eth1 na eth2 na-agba ọsọ dị ka ndị ohu.

# 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)

Malitegharịa ọrụ netwọk na oghere kwesịrị ịdị mma.

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

Na-enyocha ọnọdụ nke njikọ ahụ.

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

N'okpuru mmepụta na-egosi na Bonding Mode bụ Load Balance (RR) na eth1 & eth2 na-egosi elu.

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

N'ọnọdụ a, oghere ndị ohu ka dị otu. naanị otu mgbanwe ga-adị na njikọ njikọ ifcfg-bond0 kama '0' ọ ga-abụ '1' nke egosiri dị ka n'okpuru.

# 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"

Malitegharịa ọrụ netwọk wee lelee ọkwa nke njikọta.

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

Iji iwu lelee ọkwa nke njikọ ahụ.

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

Ụdị njide na-egosi nnabata mmejọ (ndabere na-arụ ọrụ) yana Interface ohu adịlarị.

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

Mara: Jiri aka gbadaa na gbagoo Interfaces ohu ka ịlele ọrụ nke njikọta ọwa. Biko hụ iwu ahụ dị ka n'okpuru.

# ifconfig eth1 down
# ifconfig eth1 up

Ọ bụ ya!