Bonding (hay còn gọi là NIC teaming) trên Ubuntu cho phép gộp nhiều card mạng thành một giao diện ảo, giúp tăng băng thông, cải thiện khả năng chịu lỗi (failover) và cân bằng tải. Dưới đây là hướng dẫn chi tiết cấu hình bonding trên Ubuntu:
1. Giới thiệu về Bonding
- Mục đích:
- Tăng tính sẵn sàng: Nếu một card mạng bị lỗi, giao diện bonded vẫn hoạt động thông qua card dự phòng.
- Tăng băng thông: Một số chế độ cho phép gộp băng thông của nhiều card.
- Các chế độ bonding chính:
- balance-rr (Mode 0): Phân phối gói tin theo vòng tròn; phù hợp cho cân bằng tải nhưng không tối ưu cho failover.
- active-backup (Mode 1): Chỉ một interface hoạt động tại một thời điểm; khi interface chính gặp sự cố, interface dự phòng sẽ kích hoạt.
- balance-xor (Mode 2): Gửi gói tin dựa trên phép XOR của địa chỉ MAC; cân bằng tải tùy thuộc vào cấu hình.
- broadcast (Mode 3): Gửi tất cả gói tin qua tất cả các interface; đảm bảo khả năng chịu lỗi tối đa.
- 802.3ad (Mode 4): Dựa trên Link Aggregation Control Protocol (LACP); cần cấu hình hỗ trợ từ switch.
- balance-tlb (Mode 5) và balance-alb (Mode 6): Cân bằng tải động cho truyền và/hoặc nhận, không đòi hỏi hỗ trợ từ switch.
2. Chuẩn bị cấu hình
a. Load Module Bonding
- Thêm module bonding vào hệ thống:
- Mở file
/etc/modules
và thêm dòng:
- Mở file
- Cấu hình các tham số của bonding (tùy chọn):
- Tạo hoặc chỉnh sửa file
/etc/modprobe.d/bonding.conf
và thêm ví dụ cấu hình: - Ở đây:
mode=active-backup
chỉ định chế độ hoạt động.miimon=100
kiểm tra trạng thái của các interface mỗi 100ms.
- Tạo hoặc chỉnh sửa file
3. Cấu hình Bonding trên Ubuntu
Có hai cách cấu hình phổ biến tùy theo phiên bản Ubuntu: sử dụng ifupdown (các phiên bản cũ) hoặc Netplan (Ubuntu 17.10 trở lên).
a. Sử dụng ifupdown (File /etc/network/interfaces
)
Giả sử bạn muốn cấu hình giao diện bond0 với địa chỉ IP tĩnh và gộp hai interface eth0
và eth1
:
- Lưu ý:
- Các interface thành viên được cấu hình ở chế độ
manual
và gán chobond0
thông quabond-master
. - Sau khi chỉnh sửa, khởi động lại dịch vụ mạng bằng lệnh
sudo service networking restart
(cẩn thận khi cấu hình từ xa để tránh mất kết nối).
- Các interface thành viên được cấu hình ở chế độ
b. Sử dụng Netplan (Các phiên bản Ubuntu mới)
Giả sử file cấu hình nằm tại /etc/netplan/01-netcfg.yaml
:
- Thực hiện:
- Lưu file cấu hình và áp dụng bằng lệnh:
4. Kiểm tra và Xác nhận
Sau khi cấu hình, kiểm tra trạng thái bonding bằng các lệnh sau:
-
Xem thông tin bonding:
Lệnh này sẽ hiển thị thông tin chi tiết về giao diện bond0, trạng thái các interface thành viên và các thông số cấu hình.
-
Kiểm tra cấu hình IP:
-
Theo dõi trạng thái giao diện:
Sử dụng lệnh nhưifconfig
hoặcip link
để xác nhận các giao diện thành viên đã được gán đúng.
5. Một số lưu ý khi cấu hình Bonding
-
Lựa chọn chế độ phù hợp:
Tùy vào mục đích sử dụng (cân bằng tải hay failover), bạn cần chọn chế độ phù hợp. Ví dụ, nếu mục tiêu là đảm bảo tính sẵn sàng, chế độ active-backup là lựa chọn phổ biến. -
Hỗ trợ từ thiết bị chuyển mạch (switch):
Nếu sử dụng chế độ 802.3ad, hãy đảm bảo switch của bạn đã được cấu hình hỗ trợ LACP. -
Cài đặt phần mềm hỗ trợ:
Trong một số trường hợp, có thể cần cài đặt góiifenslave
để quản lý bonding (đặc biệt trên một số phiên bản Ubuntu cũ). -
Cẩn trọng với cấu hình từ xa:
Khi thay đổi cấu hình mạng, hãy đảm bảo có cách truy cập khẩn cấp (console, IPMI, …) tránh trường hợp mất kết nối do lỗi cấu hình.
Kết luận
Cấu hình bonding trên Ubuntu là một phương pháp hiệu quả để nâng cao tính sẵn sàng và hiệu năng của hệ thống mạng. Bằng cách chọn đúng chế độ bonding và cấu hình chính xác các file cấu hình (theo hệ thống ifupdown hoặc Netplan), bạn có thể tối ưu hóa hoạt động của các card mạng trong môi trường sản xuất hoặc máy chủ. Hy vọng hướng dẫn trên sẽ giúp bạn thực hiện cấu hình bonding một cách chính xác và hiệu quả.