Ethernet Channel Bonding aka NIC Teaming kwenye Linux Systems


Uunganishaji wa Kituo cha Ethernet huwezesha Kadi ya Violesura vya Mtandao viwili au zaidi (NIC) kwa kadi moja pepe ya NIC ambayo inaweza kuongeza kipimo data na kutoa Kadi za NIC zisizohitajika. Hii ni njia nzuri ya kufikia viungo visivyohitajika, uvumilivu wa hitilafu au mitandao ya kusawazisha mizigo katika mfumo wa uzalishaji. Ikiwa NIC moja halisi iko chini au haijachomekwa, itahamisha rasilimali kiotomatiki hadi kwenye kadi nyingine ya NIC. Uunganishaji wa kituo/NIC utafanya kazi kwa usaidizi wa uwekaji dhamana katika Kernel. Tutakuwa tukitumia NIC mbili kuonyesha sawa.

Kuna karibu aina sita za aina za Bondi za Chaneli zinapatikana. Hapa, tutapitia aina mbili pekee za Dhamana ya Kituo ambazo ni maarufu na zinazotumika sana.

  1. 0: Kusawazisha mizigo (Round-Robin) : Trafiki inasambazwa kwa mpangilio mfuatano au mtindo wa duara kutoka kwa NIC zote mbili. Hali hii hutoa kusawazisha mzigo na uvumilivu wa makosa.
  2. 1: Hifadhi Rudufu Inayotumika : Ni mtumwa mmoja tu wa NIC anayetumika wakati wowote. Kadi ya Kiolesura Nyingine itafanya kazi ikiwa tu NIC ya mtumwa inayotumika itashindwa.

Inaunda Uunganishaji wa Idhaa ya Ethaneti

Tuna Kadi mbili za Mtandao wa Ethaneti yaani eth1 na eth2 ambapo bond0 itaundwa kwa madhumuni ya kuunganisha. Haja ya mtumiaji mkuu aliyebahatika kutekeleza amri zilizo hapa chini.

Taja kigezo cha MASTER bond0 na kiolesura cha eth1 kama MTUMWA katika faili ya usanidi kama inavyoonyeshwa hapa chini.

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

Hapa pia, bainisha kigezo MASTER bond0 na kiolesura cha eth2 kama MTUMWA.

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

Unda bond0 na usanidi kiolesura cha kuunganisha cha Kituo katika saraka ya /etc/sysconfig/network-scripts/ inayoitwa ifcfg-bond0.

Ifuatayo ni sampuli ya faili ya usanidi ya kuunganisha kituo.

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

Kumbuka: Katika usanidi ulio hapo juu tumechagua Modi ya Chaguo za Kuunganisha=0 yaani Round-Robin na miimon=100 (Vipindi vya upigaji kura 100 ms).

Hebu tuone violesura vilivyoundwa kwa kutumia amri ya ifconfig ambayo inaonyesha bond0 inayoendesha kama MASTER miingiliano yote eth1 na eth2 inayoendesha kama SLAVES.

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

Anzisha tena huduma ya Mtandao na miingiliano inapaswa kuwa sawa.

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

Kuangalia hali ya dhamana.

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

Matokeo yaliyo hapa chini yanaonyesha kuwa Njia ya Kuunganisha ni Usawazishaji wa Mzigo (RR) na eth1 & eth2 zinaonekana.

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

Katika hali hii, miingiliano ya Watumwa inabaki sawa. badiliko moja tu litakuwepo kwenye kiolesura cha dhamana ifcfg-bond0 badala ya '0' itakuwa '1' ambayo imeonyeshwa hapa chini.

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

Anzisha upya huduma ya mtandao na uangalie hali ya kuunganisha.

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

Kuangalia hali ya dhamana kwa amri.

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

Hali ya Kuunganisha inaonyesha uvumilivu wa hitilafu (hifadhi nakala inayotumika) na Kiolesura cha Slave kiko juu.

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

Kumbuka: Weka mwenyewe chini na juu Violesura vya Watumwa ili kuangalia utendakazi wa Uunganishaji wa Idhaa. Tafadhali tazama amri kama ilivyo hapo chini.

# ifconfig eth1 down
# ifconfig eth1 up

Ni hayo tu!