Ikatan Saluran Ethernet alias NIC Teaming pada Sistem Linux


Ethernet Channel Bonding mengaktifkan dua atau lebih Kartu Antarmuka Jaringan (NIC) ke satu kartu NIC virtual yang dapat meningkatkan bandwidth dan menyediakan redundansi Kartu NIC. Ini adalah cara terbaik untuk mencapai tautan redundan, toleransi kesalahan, atau jaringan penyeimbang beban dalam sistem produksi. Jika salah satu NIC fisik down atau tercabut, maka secara otomatis akan memindahkan sumber daya ke kartu NIC lainnya. Ikatan Saluran/NIC akan bekerja dengan bantuan driver ikatan di Kernel. Kami akan menggunakan dua NIC untuk mendemonstrasikan hal yang sama.

Ada hampir enam tipe Channel Bond yang tersedia. Di sini kami hanya akan mengulas dua jenis Channel Bond yang populer dan banyak digunakan.

  1. 0: Penyeimbangan beban (Round-Robin): Lalu lintas ditransmisikan secara berurutan atau secara round-robin dari kedua NIC. Mode ini menyediakan penyeimbangan beban dan toleransi kesalahan.
  2. 1: Cadangan Aktif : Hanya satu NIC budak yang aktif pada suatu titik waktu tertentu. Kartu Antarmuka lain akan aktif hanya jika NIC budak yang aktif gagal.

Membuat Ikatan Saluran Ethernet

Kami memiliki dua Kartu Ethernet Jaringan yaitu eth1 dan eth2 di mana bond0 akan dibuat untuk tujuan pengikatan. Perlu hak istimewa pengguna super untuk menjalankan perintah di bawah ini.

Penyeimbangan Beban (Round-Robin)

Konfigurasikan eth1

Sebutkan parameter antarmuka MASTER bond0 dan eth1 sebagai SLAVE dalam file konfigurasi seperti yang ditunjukkan di bawah ini.

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

Di sini juga, tentukan parameter antarmuka MASTER bond0 dan eth2 sebagai 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
Buat Konfigurasi bond0

Buat bond0 dan konfigurasikan antarmuka Channel bonding di direktori “/etc/sysconfig/network-scripts/” yang disebut ifcfg-bond0.

Berikut ini adalah contoh file konfigurasi pengikatan saluran.

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"

Catatan: Dalam konfigurasi di atas kita telah memilih Opsi Ikatan mode=0 yaitu Round-Robin dan miimon=100 (Interval pemungutan suara 100 ms).

Mari kita lihat antarmuka yang dibuat menggunakan perintah ifconfig yang menunjukkan “bond0” berjalan sebagai MASTER pada antarmuka “eth1” dan “eth2” berjalan sebagai 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)

Mulai ulang layanan Jaringan dan antarmuka seharusnya baik-baik saja.

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

Memeriksa status obligasi.

watch -n .1 cat /proc/net/bonding/bond0
Contoh Keluaran

Output di bawah menunjukkan bahwa Bonding Mode adalah Load Balancing (RR) dan eth1 & eth2 muncul.

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

Buat Cadangan Aktif

Dalam skenario ini, antarmuka Slave tetap sama. hanya satu perubahan yang akan ada di antarmuka ikatan ifcfg-bond0 dan bukan '0' melainkan '1' yang ditampilkan seperti di bawah .

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"

Mulai ulang layanan jaringan dan periksa status ikatan.

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

Memeriksa status ikatan dengan perintah.

watch -n .1 cat /proc/net/bonding/bond0
Contoh Keluaran

Mode Ikatan menunjukkan toleransi kesalahan (cadangan aktif) dan Antarmuka Budak aktif.

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

Catatan: turunkan dan naikkan Antarmuka Budak secara manual untuk memeriksa kerja Pengikatan Saluran. Silakan lihat perintah seperti di bawah ini.

ifconfig eth1 down
ifconfig eth1 up

Itu dia!