Ikatan antarmuka jaringan terdiri dari agregasi dua atau lebih antarmuka jaringan fisik, yang disebut slaves
, di bawah satu antarmuka logis yang disebut master
atau bond
antarmuka. Tergantung pada mode ikatan, pengaturan tersebut dapat berguna untuk mencapai toleransi kesalahan dan/atau penyeimbangan beban. Dalam tutorial ini kita akan mempelajari mode bonding yang tersedia dan cara membuat bonding jaringan di RHEL 8 / CentOS 8.
Dalam tutorial ini Anda akan mempelajari:
- Apa yang dimaksud dengan ikatan antarmuka jaringan
- Cara mengonfigurasi ikatan antarmuka jaringan pada RHEL 8 / CentOS 8
- Apa saja mode ikatan yang berbeda
Status Obligasi seperti yang terlihat oleh kernel Linux
Persyaratan dan Konvensi Perangkat Lunak yang Digunakan
Kategori | Persyaratan, Konvensi, atau Versi Perangkat Lunak yang Digunakan |
---|---|
Sistem | RHEL 8 / CentOS 8 |
Perangkat Lunak | Utilitas nmtui untuk mengontrol daemon NetworkManager. Aplikasi ini termasuk dalam instalasi sistem minimal. |
Lainnya | Hak istimewa root untuk mengubah pengaturan sistem |
Konvensi | # – membutuhkan perintah linux yang diberikan untuk dieksekusi dengan hak akses root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah$ – membutuhkan perintah linux yang diberikan untuk dieksekusi sebagai pengguna biasa yang tidak memiliki hak istimewa |
Mode ikatan apa?
Pada dasarnya ada 7 mode bonding yang bisa kita gunakan:
Robin Bulat
Paket didistribusikan secara merata, secara berurutan, ke semua antarmuka budak (dari yang pertama hingga yang terakhir). Mode ini menyediakan penyeimbangan beban dan toleransi kesalahan, tetapi membutuhkan dukungan pada sakelar.
Cadangan Aktif
Hanya antarmuka budak utama yang digunakan. Jika gagal, budak lain digunakan sebagai gantinya. Itu hanya memberikan toleransi kesalahan; tidak ada persyaratan khusus.
XOR (Eksklusif ATAU)
Paket ditransmisikan dan ditetapkan ke salah satu antarmuka budak tergantung pada hash alamat MAC sumber dan tujuan, dihitung dengan rumus berikut:
[(source MAC address XOR’d with destination MAC address) modulo slave count]
Mode ini menyediakan toleransi kesalahan dan penyeimbangan beban.
Siaran
Saat mode ini digunakan, semua paket ditransmisikan pada semua antarmuka slave, memberikan toleransi kesalahan tetapi tidak load balancing.
802.3 iklan
Mode ini menggunakan agregasi tautan IEEE 802.3ad yang harus didukung pada sakelar. Membuat grup agregasi yang berbagi pengaturan kecepatan dan dupleks yang sama. Mengirim dan menerima pada semua budak di grup aktif. Menyediakan penyeimbangan beban dan toleransi kesalahan.
Penyeimbangan beban transmisi adaptif
Paket keluar ditransmisikan melalui antarmuka budak tergantung pada bebannya, dan lalu lintas masuk diterima oleh budak saat ini. Jika yang terakhir gagal, budak lain mengambil alih alamat MAC-nya. Mode ini memberikan toleransi kesalahan dan penyeimbangan beban.
Penyeimbangan beban adaptif
Bekerja seperti Adaptive Transmit Load Balancing
, tetapi juga menyediakan inbound
penyeimbangan melalui ARP
(Address Resolution Protocol) negosiasi.
Lingkungan
Demi tutorial ini kita akan bekerja pada sistem virtual Red Hat Enterprise Linux 8. Untuk membuat ikatan jaringan kami, kami akan bekerja dengan nmtui
, utilitas antarmuka pengguna teks yang digunakan untuk mengontrol NetworkManager
daemon. Namun, operasi yang sama dapat dilakukan dengan nmcli
utilitas baris perintah atau melalui GUI dengan Network Manager Connection Editor
.
Sistem saat ini memiliki dua ethernet
tautan, enp1s0
dan enp7s0
:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:cb:25:82 brd ff:ff:ff:ff:ff:ff 3: enp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:32:37:9b brd ff:ff:ff:ff:ff:ff
Membuat ikatan jaringan
Sebagai hal pertama, kami akan menghapus konfigurasi yang ada saat ini untuk antarmuka budak. Ini tidak sepenuhnya diperlukan, karena kami dapat mengedit konfigurasi seperti itu, tetapi untuk memulai dari awal, kami akan melanjutkan dengan cara ini. Mari kita panggil nmtui
:
$ sudo nmtui
Dari menu utama kami memilih “Edit koneksi” dan konfirmasi.
Menu utama nmtui.
Kami pertama-tama memilih koneksi yang akan dihapus dalam daftar, lalu melanjutkan <Delete>
. Akhirnya kami mengkonfirmasi:
Daftar koneksi Nmtui.
Terakhir, kami mengonfirmasi bahwa kami ingin menghapus koneksi:
Konfirmasi Nmtui meminta untuk menghapus koneksi yang ada.
Kami mengulangi operasi untuk antarmuka lainnya. Setelah kami menghapus semua konfigurasi yang ada, kami dapat membuat bond
antarmuka. Kami memilih <Add>
di menu, dan dari daftar jenis koneksi, kami memilih Bond
:
Menu pemilihan jenis koneksi Nmtui.
Sebuah jendela baru akan terbuka di mana kita dapat mengkonfigurasi antarmuka kita. Dalam hal ini, meskipun itu benar-benar opsional, saya akan menggunakan bond0
baik sebagai profil dan nama perangkat. Bagian terpenting, bagaimanapun, adalah pemilihan antarmuka budak yang akan ditambahkan ke ikatan. Dalam BOND Slaves
menu, klik <Add>
, dan pilih jenis koneksi budak yang akan ditambahkan, dalam hal ini ethernet
.
Menu Nmtui untuk memilih jenis koneksi budak.
Masukkan nama perangkat, pilih <OK>
dan konfirmasi. Operasi harus diulang untuk setiap antarmuka slave.
Antarmuka Nmtui untuk mengedit koneksi budak.
Langkah selanjutnya adalah memilih bonding mode
:untuk tutorial ini kita akan menggunakan Active Backup
satu. Kami memilih opsi terkait di menu dan di bidang "Utama" kami menentukan nama antarmuka budak utama. Terakhir, kita tinggal pilih <OK>
untuk mengonfirmasi pembuatan antarmuka ikatan.
Pengaturan ikatan jaringan.
Sekarang kita dapat keluar dari nmtui
aplikasi. Untuk memverifikasi bahwa pembuatan ikatan berhasil, kita dapat meluncurkan perintah berikut:
$ ip addr show bond0
Hasilnya adalah sebagai berikut:
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 52:54:00:cb:25:82 brd ff:ff:ff:ff:ff:ff inet 192.168.122.164/24 brd 192.168.122.255 scope global dynamic noprefixroute bond0 valid_lft 3304sec preferred_lft 3304sec inet6 fe80::48:d311:96c1:89dc/64 scope link noprefixroute valid_lft forever preferred_lft forever
ifcfg
file konfigurasi yang terkait dengan konfigurasi kami telah dibuat di dalam /etc/sysconfig/network-scripts
direktori:
$ ls /etc/sysconfig/network-scripts ifcfg-bond0 ifcfg-enp1s0 ifcfg-enp7s0
Untuk melihat status bond0
saat ini antarmuka seperti yang terlihat oleh kernel, kita dapat menjalankan:
$ cat /proc/net/bonding/bond0
Output dari perintah dilaporkan di bawah ini:
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: fault-tolerance (active-backup) Primary Slave: enp1s0 (primary_reselect always) Currently Active Slave: enp1s0 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: enp1s0 MII Status: up Speed: Unknown Duplex: Unknown Link Failure Count: 0 Permanent HW addr: 52:54:00:cb:25:82 Slave queue ID: 0 Slave Interface: enp7s0 MII Status: up Speed: Unknown Duplex: Unknown Link Failure Count: 0 Permanent HW addr: 52:54:00:32:37:9b Slave queue ID: 0
Kita dapat melihat bagaimana kedua antarmuka budak aktif, tetapi hanya enp1s0
aktif, karena ini adalah yang digunakan sebagai budak utama.
Menguji Cadangan Aktif
Bagaimana kami dapat memverifikasi bahwa konfigurasi kami berfungsi? Kita dapat meletakkan antarmuka slave utama dan melihat apakah mesin masih merespons ping. Untuk meletakkan antarmuka, kami menjalankan:
$ sudo ip link set enp1s0 down
Apakah mesin masih merespons? Mari kita verifikasi:
$ ping -c3 192.168.122.164 PING 192.168.122.164 (192.168.122.164) 56(84) bytes of data. 64 bytes from 192.168.122.164: icmp_seq=1 ttl=64 time=0.385 ms 64 bytes from 192.168.122.164: icmp_seq=2 ttl=64 time=0.353 ms 64 bytes from 192.168.122.164: icmp_seq=3 ttl=64 time=0.406 ms --- 192.168.122.164 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 88ms rtt min/avg/max/mdev = 0.353/0.381/0.406/0.027 ms
Itu benar! Mari kita lihat bagaimana status obligasi berubah:
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: fault-tolerance (active-backup) Primary Slave: enp1s0 (primary_reselect always) Currently Active Slave: enp7s0 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: enp1s0 MII Status: down Speed: Unknown Duplex: Unknown Link Failure Count: 1 Permanent HW addr: 52:54:00:cb:25:82 Slave queue ID: 0 Slave Interface: enp7s0 MII Status: up Speed: Unknown Duplex: Unknown Link Failure Count: 0 Permanent HW addr: 52:54:00:32:37:9b Slave queue ID: 0
Seperti yang Anda lihat, karena kami meletakkan antarmuka slave utama (enp1s0
), budak lainnya, enp7s0
digunakan sebagai cadangan dan sekarang aktif. Selain itu, Link Failure Count
untuk budak utama meningkat, dan sekarang 1
.
Kesimpulan
Dalam tutorial ini kita mempelajari apa itu network bonding dan apa saja cara yang mungkin untuk mengkonfigurasi network bonding. Kami juga membuat ikatan jaringan antara dua antarmuka ethernet menggunakan Active Backup
mode. Dengan Red Hat Enterprise Linux 7, sebuah konsep baru telah diperkenalkan, network teaming
. Dalam beberapa aspek, bekerja sama mirip dengan ikatan, tetapi diimplementasikan secara berbeda dan memiliki lebih banyak fitur. Kami akan membahasnya di artikel mendatang.