GNU/Linux >> Belajar Linux >  >> Linux

Cara mengkonfigurasi failover dan ikatan jaringan ketersediaan tinggi di Linux

Tutorial ini menjelaskan cara mengkonfigurasi ikatan jaringan di server Linux. Sebelum saya mulai, izinkan saya menjelaskan apa itu ikatan jaringan dan apa fungsinya. Di lingkungan Windows, ikatan jaringan disebut kerja sama jaringan, ini adalah fitur yang membantu arsitektur server apa pun untuk menyediakan ketersediaan tinggi dan failover dalam skenario jika salah satu kabel ethernet utama mengalami malfungsi atau salah konfigurasi.

Biasanya, ini adalah praktik terbaik dan fitur yang harus dimiliki untuk diterapkan saat Anda menyiapkan server untuk tujuan produksi. Meskipun fitur ini dapat dilakukan dalam konfigurasi lingkungan Linux, namun Anda harus mengkonfirmasi terlebih dahulu dengan admin jaringan Anda untuk memastikan sakelar yang terhubung ke server Anda memiliki dukungan untuk ikatan jaringan. Ada beberapa mode ikatan yang dapat Anda terapkan di lingkungan server Anda. Berikut adalah daftar mode yang tersedia dan fungsinya:

  • Saldo-rr
    Mode ini menyediakan fitur penyeimbangan beban dan toleransi kesalahan (failover) melalui kebijakan round-robin. Artinya, ia mengirimkan paket secara berurutan dari budak pertama yang tersedia hingga budak terakhir.
  • Cadangan Aktif
    Mode ini menyediakan fitur toleransi kesalahan melalui kebijakan pencadangan aktif. Ini berarti bahwa setelah ethernet bonding habis, hanya 1 dari ethernet slave yang aktif. Budak ethernet lain hanya akan menjadi aktif jika dan hanya jika budak aktif saat ini gagal untuk bangun. Jika Anda memilih mode ini, Anda akan melihat bahwa alamat MAC ikatan hanya terlihat secara eksternal pada satu adaptor jaringan. Ini untuk menghindari kebingungan tombol.
  • Balance-xor
    Mode ini menyediakan penyeimbangan beban dan toleransi kesalahan. Ini mentransmisikan berdasarkan kebijakan hash transmisi yang dipilih. Kebijakan transmisi alternatif dapat dipilih melalui opsi xmit_hash_policy.
  • Siaran
    Mode ini hanya menyediakan toleransi kesalahan. Ini mentransmisikan semua yang ada di semua antarmuka ethernet budak.
  • 802.3 iklan
    Mode ini menyediakan penyeimbangan beban dan toleransi kesalahan. Ini membuat grup agregasi yang berbagi setelan kecepatan dan dupleks yang sama. Ini menggunakan semua antarmuka ethernet budak di agregator aktif, ini didasarkan pada spesifikasi 802.3ad. Untuk mengimplementasikan mode ini, ethtool harus mendukung driver dasar untuk mengambil mode kecepatan dan dupleks dari setiap slave. Sakelar juga harus mendukung agregasi tautan dinamis. Biasanya, ini memerlukan intervensi Network Engineer untuk konfigurasi mendetail.
  • Saldo-TLB
    Mode ini menyediakan kemampuan load balancing karena nama TLB mewakili transmit load balancing . Untuk mode ini, jika konfigurasi tlb_dynamic_lb =1, maka lalu lintas keluar didistribusikan sesuai dengan beban saat ini pada masing-masing slave. Jika konfigurasi tlb_dynamic_lb =0 maka load balancing dinonaktifkan, namun beban didistribusikan hanya menggunakan distribusi hasd. Untuk mode ini, ethtool harus mendukung driver dasar untuk mengambil kecepatan setiap slave.
  • Saldo-ALB
    Mode ini menyediakan kemampuan penyeimbangan beban karena nama TLB mewakili penyeimbangan beban adaptif . Mirip dengan balance-tlb, kecuali lalu lintas kirim dan terima terikat. Ia menerima penyeimbangan beban dengan mencapai negosiasi ARP. Driver bonding mencegat Balasan ARP yang dikirim oleh sistem lokal saat keluar dan menimpa alamat perangkat keras sumber dengan alamat perangkat keras unik dari salah satu budak dalam ikatan. Untuk mode ini, ethtool harus mendukung driver dasar untuk mengambil kecepatan setiap slave.


1. Catatan Awal

Untuk tutorial ini, saya menggunakan Oracle Linux 6.4 dalam versi 32bit. Harap dicatat bahwa meskipun konfigurasi dilakukan di bawah Oracle Linux, langkah-langkahnya juga berlaku untuk distro CentOS dan Red Hat OS dan juga untuk sistem 64Bit. Hasil akhir dari contoh setup kami akan menunjukkan bahwa koneksi yang dibuat ke server bonding kami akan tetap terhubung meskipun saya telah menonaktifkan 1 dari jaringan ethernet. Dalam contoh ini, saya akan menunjukkan cara menerapkan ikatan jaringan menggunakan mode 1 yang merupakan kebijakan pencadangan aktif.


2. Tahap Instalasi

Untuk proses ini, tidak diperlukan instalasi. Instalasi Linux default dari server mencakup semua paket yang diperlukan untuk konfigurasi ikatan jaringan.


3. Tahap Konfigurasi

Sebelum kita memulai konfigurasi, pertama-tama kita perlu memastikan bahwa kita memiliki setidaknya 2 antarmuka ethernet yang dikonfigurasi di server kita. Untuk memeriksa ini, buka folder konfigurasi jaringan dan daftar antarmuka ethernet yang tersedia. Berikut langkah-langkahnya:

cd /etc/sysconfig/network-scripts/
ls *ifcfg*eth*

Hasilnya adalah:

ifcfg-eth0 ifcfg-eth1 

Perhatikan bahwa saat ini kami memiliki 2 antarmuka ethernet dengan pengaturan di server kami yaitu ETH0 dan ETH1.

Sekarang mari kita mengkonfigurasi antarmuka ikatan yang disebut BOND0. Antarmuka ini akan menjadi antarmuka ethernet virtual yang berisi antarmuka ethernet fisik ETH0 dan ETH1. Berikut langkah-langkahnya:

vi ifcfg-bond0
DEVICE=bond0
ONBOOT=yes
MASTER=yes
IPADDR=172.20.43.110
NETMASK=255.255.255.0
GATEWAY=172.20.43.1
BONDING_OPTS="mode=1 miimon=100"
TYPE=Ethernet

Kemudian jalankan:

ls *ifcfg*bon*

Hasilnya adalah:

ifcfg-bond0 


Itu saja. Harap perhatikan bahwa di dalam antarmuka BOND0, saya telah menyertakan alamat IP. Alamat IP ini akan menjadi satu-satunya alamat IP yang terhubung ke server kami. Untuk melanjutkan proses, kita perlu memodifikasi antarmuka ethernet fisik yang terkait dengan antarmuka BOND0. Berikut langkah-langkahnya:

vi ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
MASTER=bond0
SLAVE=yes
vi ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
MASTER=bond0
SLAVE=yes

Selesai. Kami telah membuat modifikasi antarmuka ETH0 dan ETH1. Perhatikan bahwa kami telah menghapus alamat IP di dalam kedua antarmuka dan menambahkan MASTER =bond0. Ini diperlukan untuk memvalidasi bahwa kedua antarmuka akan menjadi antarmuka virtual yang didedikasikan untuk antarmuka ethernet BOND0.

Untuk melanjutkan dengan konfigurasi. Mari kita buat file konfigurasi bonding bernama bonding.conf di bawah /etc/modprobe.d . Berikut langkah-langkahnya:

vi /etc/modprobe.d/bonding.conf
alias bond0 bonding
options bond0 mode=1 miimon=100
modprobe bonding 

Berdasarkan konfigurasi di atas, kami telah mengonfigurasi modul bonding menggunakan antarmuka BOND0. Kami juga menetapkan konfigurasi bonding untuk menggunakan mode =1 yang merupakan kebijakan pencadangan aktif. Opsi miimon =100 mewakili frekuensi pemantauan server bonding kami untuk memantau status antarmuka dalam mili detik. Sesuai deskripsi di atas, mode ini akan memberikan fitur toleransi kesalahan dalam konfigurasi jaringan server.

Karena semuanya sudah diatur, mari mulai ulang layanan jaringan untuk memuat konfigurasi baru. Berikut langkah-langkahnya:

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


Bagus, sekarang kita telah memuat konfigurasi baru yang telah kita buat di atas. Anda akan melihat bahwa antarmuka baru bernama BOND0 akan ditampilkan pada daftar jaringan. Anda juga akan melihat bahwa tidak ada alamat IP yang ditetapkan untuk antarmuka ETH0 dan antarmuka ETH1, hanya antarmuka BOND0 yang menunjukkan IP.

ifconfig
bond0 Link encap:Ethernet HWaddr 08:00:27:61:E4:88
inet addr:172.20.43.110 Bcast:172.20.43.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe61:e488/64 Scope:Link
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:1723 errors:0 dropped:0 overruns:0 frame:0
TX packets:1110 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:147913 (144.4 KiB) TX bytes:108429 (105.8 KiB)
eth0 Link encap:Ethernet HWaddr 08:00:27:61:E4:88
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:1092 errors:0 dropped:0 overruns:0 frame:0
TX packets:1083 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:103486 (101.0 KiB) TX bytes:105439 (102.9 KiB)
eth1 Link encap:Ethernet HWaddr 08:00:27:61:E4:88
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:632 errors:0 dropped:0 overruns:0 frame:0
TX packets:28 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:44487 (43.4 KiB) TX bytes:3288 (3.2 KiB)
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:208 errors:0 dropped:0 overruns:0 frame:0
TX packets:208 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:18080 (17.6 KiB) TX bytes:18080 (17.6 KiB)


Anda juga dapat memeriksa status ikatan melalui perintah ini:

cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009) 
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 08:00:27:61:e4:88
Slave queue ID: 0
Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 08:00:27:c8:46:40
Slave queue ID: 0

Perhatikan di atas bahwa kami telah berhasil mengubah antarmuka ETH0 dan ETH1 menjadi konfigurasi ikatan menggunakan mode pencadangan aktif. Disebutkan juga sekarang server menggunakan interface ETH0, ETH1 akan menjadi interface backup.


4. Tahap Pengujian

Sekarang karena semuanya dikonfigurasi seperti yang diharapkan. Mari kita buat tes sederhana untuk memastikan konfigurasi yang kita buat sudah benar. Untuk pengujian ini, kita akan login ke server baru (atau desktop Linux) dan mulai melakukan ping ke server bonding kita untuk melihat apakah ada koneksi yang terputus-putus selama pengujian. Berikut langkah-langkahnya:

login as: root
[email protected]'s password:
Last login: Wed Sep 14 12:50:15 2016 from 172.20.43.80
ping 172.20.43.110
PING 172.20.43.110 (172.20.43.110) 56(84) bytes of data.
64 bytes from 172.20.43.110: icmp_seq=1 ttl=64 time=0.408 ms
64 bytes from 172.20.43.110: icmp_seq=2 ttl=64 time=0.424 ms
64 bytes from 172.20.43.110: icmp_seq=3 ttl=64 time=0.415 ms
64 bytes from 172.20.43.110: icmp_seq=4 ttl=64 time=0.427 ms
64 bytes from 172.20.43.110: icmp_seq=5 ttl=64 time=0.554 ms
64 bytes from 172.20.43.110: icmp_seq=6 ttl=64 time=0.443 ms
64 bytes from 172.20.43.110: icmp_seq=7 ttl=64 time=0.663 ms
64 bytes from 172.20.43.110: icmp_seq=8 ttl=64 time=0.961 ms
64 bytes from 172.20.43.110: icmp_seq=9 ttl=64 time=0.461 ms
64 bytes from 172.20.43.110: icmp_seq=10 ttl=64 time=0.544 ms
64 bytes from 172.20.43.110: icmp_seq=11 ttl=64 time=0.412 ms
64 bytes from 172.20.43.110: icmp_seq=12 ttl=64 time=0.464 ms
64 bytes from 172.20.43.110: icmp_seq=13 ttl=64 time=0.432 ms

Selama waktu ini, mari kembali ke server bonding kita dan matikan antarmuka ethernet ETH0. Berikut langkah-langkahnya:

ifconfig eth0
eth0 Link encap:Ethernet HWaddr 08:00:27:61:E4:88
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:1092 errors:0 dropped:0 overruns:0 frame:0
TX packets:1083 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:103486 (201.0 KiB) TX bytes:105439 (122.9 KiB)
ifdown eth0 

Sekarang kami telah mematikan layanan untuk antarmuka jaringan ETH0. Mari kita periksa status ikatan. Berikut langkah-langkahnya:

cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 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: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 08:00:27:c8:46:40
Slave queue ID: 0

Anda akan melihat, bahwa sekarang antarmuka ETH0 tidak ada lagi dalam status ikatan. Selama waktu ini, mari kembali ke server pengujian sebelumnya dan periksa ping berkelanjutan ke server bonding kita.

64 bytes from 172.20.43.110: icmp_seq=22 ttl=64 time=0.408 ms
64 bytes from 172.20.43.110: icmp_seq=23 ttl=64 time=0.402 ms
64 bytes from 172.20.43.110: icmp_seq=24 ttl=64 time=0.437 ms
64 bytes from 172.20.43.110: icmp_seq=25 ttl=64 time=0.504 ms
64 bytes from 172.20.43.110: icmp_seq=26 ttl=64 time=0.401 ms
64 bytes from 172.20.43.110: icmp_seq=27 ttl=64 time=0.454 ms
64 bytes from 172.20.43.110: icmp_seq=28 ttl=64 time=0.432 ms
64 bytes from 172.20.43.110: icmp_seq=29 ttl=64 time=0.434 ms
64 bytes from 172.20.43.110: icmp_seq=30 ttl=64 time=0.411 ms
64 bytes from 172.20.43.110: icmp_seq=31 ttl=64 time=0.554 ms
64 bytes from 172.20.43.110: icmp_seq=32 ttl=64 time=0.452 ms
64 bytes from 172.20.43.110: icmp_seq=33 ttl=64 time=0.408 ms
64 bytes from 172.20.43.110: icmp_seq=34 ttl=64 time=0.491 ms

Bagus, sekarang Anda akan melihat bahwa meskipun kami telah mematikan antarmuka ETH0, kami masih dapat melakukan ping dan mengakses server ikatan kami. Sekarang mari kita lakukan 1 tes lagi. Hidupkan kembali antarmuka ETH0 dan matikan antarmuka ETH1.

ifup eth0
cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 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: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 08:00:27:c8:46:40
Slave queue ID: 0
Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 08:00:27:61:e4:88
Slave queue ID: 0

Karena antarmuka ETH0 sudah aktif, mari kita matikan antarmuka ETH1.

ifdown eth1
cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009) 
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 08:00:27:61:e4:88
Slave queue ID: 0


Sekarang mari kembali ke server pengujian dan periksa apa yang terjadi pada ping berkelanjutan yang dilakukan ke server bonding kita

64 bytes from 172.20.43.110: icmp_seq=84 ttl=64 time=0.437 ms
64 bytes from 172.20.43.110: icmp_seq=85 ttl=64 time=0.504 ms
64 bytes from 172.20.43.110: icmp_seq=86 ttl=64 time=0.401 ms
64 bytes from 172.20.43.110: icmp_seq=87 ttl=64 time=0.454 ms
64 bytes from 172.20.43.110: icmp_seq=88 ttl=64 time=0.432 ms
64 bytes from 172.20.43.110: icmp_seq=89 ttl=64 time=0.434 ms
64 bytes from 172.20.43.110: icmp_seq=90 ttl=64 time=0.411 ms
64 bytes from 172.20.43.110: icmp_seq=91 ttl=64 time=0.420 ms
64 bytes from 172.20.43.110: icmp_seq=92 ttl=64 time=0.487 ms
64 bytes from 172.20.43.110: icmp_seq=93 ttl=64 time=0.551 ms
64 bytes from 172.20.43.110: icmp_seq=94 ttl=64 time=0.523 ms
64 bytes from 172.20.43.110: icmp_seq=95 ttl=64 time=0.479 ms


Acungi jempol! Kami telah berhasil mengonfigurasi dan membuktikan server bonding kami berhasil memenuhi skenario pemulihan bencana pada kondisi kegagalan jaringan.


Linux
  1. Cara Mengatur Alamat IP Statis dan Konfigurasi Jaringan di Linux

  2. Cara Mengkonfigurasi Alamat IP Statis Dan Dinamis Di Arch Linux

  3. Cara Menginstal dan Mengonfigurasi EMC PowerPath di Linux

  1. Cara mengkonfigurasi antarmuka jaringan virtual di Redhat 7 Linux

  2. Cara mengkonfigurasi ikatan antarmuka jaringan pada RHEL 8 / CentOS 8 Linux

  3. Cara Mengatur Ikatan Etherchannel Linux untuk Antarmuka Jaringan HA

  1. Cara Mengkonfigurasi Alamat IP Statis Di Linux Dan Unix

  2. Cara Mengkonfigurasi Jaringan di Linux Menggunakan Netplan dan NMTUI

  3. Cara Memasang dan Mengonfigurasi Hive dengan Ketersediaan Tinggi – Bagian 7