Ethernet Channel Bonding aka NIC Teaming sa Linux Systems
Ang Ethernet Channel Bonding makapahimo sa duha o daghan pa nga Network Interfaces Card (NIC) ngadto sa usa ka virtual NIC card nga mahimong makadugang sa bandwidth ug makahatag ug redundancy sa NIC Cards. Kini usa ka maayo nga paagi aron makab-ot ang daghang mga link, pagtugot sa sayup o mga network sa pagbalanse sa load sa sistema sa produksiyon. Kung ang usa ka pisikal nga NIC nawala o natangtang sa saksakan, awtomatiko kini nga ibalhin ang mga kapanguhaan sa ubang NIC card. Ang channel/NIC bonding magtrabaho uban sa tabang sa bonding driver sa Kernel. Gigamit namon ang duha ka NIC aron ipakita ang parehas.
Adunay hapit unom ka matang sa mga tipo sa Channel Bond ang anaa. Dinhi, atong susihon ang duha lamang ka matang sa Channel Bond nga popular ug kaylap nga gigamit.
- 0: Pagbalanse sa load (Round-Robin): Ang trapiko gipasa sa sequential order o round-robin nga paagi gikan sa duha ka NIC. Kini nga mode naghatag og load balancing ug fault tolerance.
- 1: Active-Backup : Usa ra ka ulipon nga NIC ang aktibo sa bisan unsang gihatag nga punto sa panahon. Ang ubang Interface Card mahimong aktibo lamang kung ang aktibong ulipon nga NIC mapakyas.
Paghimo sa Ethernet Channel Bonding
Kami adunay duha ka Network Ethernet Cards ie eth1 ug eth2 diin ang bond0 pagabuhaton alang sa katuyoan sa pag-bonding. Kinahanglan ang superuser nga adunay pribilehiyo sa pagpatuman sa ubos nga mga sugo.
Hisguti ang parameter MASTER bond0 ug eth1 interface isip SLAVE sa config file sama sa gipakita sa ubos.
# vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE="eth1" TYPE=Ethernet ONBOOT="yes" BOOTPROTO="none" USERCTL=no MASTER=bond0 SLAVE=yes
Dinhi usab, ipiho ang parameter nga MASTER bond0 ug eth2 nga interface isip SLAVE.
# vi /etc/sysconfig/network-scripts/ifcfg-eth2
DEVICE="eth2" TYPE="Ethernet" ONBOOT="yes" USERCTL=no #NM_CONTROLLED=yes BOOTPROTO=none MASTER=bond0 SLAVE=yes
Paghimo bond0 ug i-configure ang Channel bonding interface sa “/etc/sysconfig/network-scripts/” nga direktoryo nga gitawag ug ifcfg-bond0.
Ang mosunod usa ka sample channel bonding configuration file.
# 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"
Mubo nga sulat: Sa ibabaw nga configuration atong gipili ang Bonding Options mode=0 i.e Round-Robin ug miimon=100 (Polling interval 100 ms).
Atong tan-awon ang mga interface nga gihimo gamit ang ifconfig command nga nagpakita sa bond0 nga nagdagan isip MASTER nga parehong interface eth1 ug eth2 nga nagdagan isip 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)
I-restart ang serbisyo sa Network ug ang mga interface kinahanglan nga OK ra.
# service network restart
Shutting down interface bond0: [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface bond0: [ OK ]
Pagsusi sa kahimtang sa bond.
# watch -n .1 cat /proc/net/bonding/bond0
Ubos nga output nagpakita nga ang Bonding Mode mao ang Load Balancing (RR) ug ang eth1 & eth2 nagpakita.
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
Niini nga senaryo, ang mga interface sa Slave nagpabilin nga pareho. usa ra ka pagbag-o ang naa sa interface sa bond ifcfg-bond0 imbes nga '0' kini mahimong '1' nga gipakita ingon sa ilawom.
# 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"
I-restart ang serbisyo sa network ug susiha ang status sa bonding.
# service network restart
Shutting down interface bond0: [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface bond0: [ OK ]
Pagsusi sa kahimtang sa bugkos nga adunay mando.
# watch -n .1 cat /proc/net/bonding/bond0
Ang Bonding Mode nagpakita sa fault-tolerance (active-backup) ug ang Slave Interface nahuman na.
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
Mubo nga sulat: Manwal nga ipaubos ug pataas ang Slave Interfaces aron masusi ang pagtrabaho sa Channel Bonding. Palihug tan-awa ang sugo sama sa ubos.
# ifconfig eth1 down # ifconfig eth1 up
Mao na!