Quick start: Cấu hình bond LACP trong 5 phút
2 giờ sáng, Zabbix réo inh ỏi. Cụm PostgreSQL trên Proxmox chạm trần 1 Gbps do chạy batch job đúng lúc sao lưu dữ liệu. Cùng lúc, cổng eth0 chập chờn (flapping) khiến tỷ lệ rớt gói vọt lên 18%. Cách giải quyết dứt điểm lúc này: gộp 2 cổng mạng vật lý (enp3s0 và enp4s0) thành một liên kết LACP 802.3ad duy nhất.
Mở terminal SSH vào node Proxmox và chạy theo thứ tự sau:
- Đảm bảo hệ thống đã có
ifupdown2để nạp lại cấu hình mạng không cần khởi động lại server:
apt-get update && apt-get install ifupdown2 -y
- Mở file cấu hình mạng
/etc/network/interfaces:
nano /etc/network/interfaces
- Khai báo interface
bond0và gắn vào bridgevmbr0:
auto lo
iface lo inet loopback
iface enp3s0 inet manual
iface enp4s0 inet manual
auto bond0
iface bond0 inet manual
bond-slaves enp3s0 enp4s0
bond-miimon 100
bond-mode 802.3ad
bond-xmit-hash-policy layer2+3
bond-lacp-rate 1
auto vmbr0
iface vmbr0 inet static
address 192.168.10.50/24
gateway 192.168.10.1
bridge-ports bond0
bridge-stp off
bridge-fd 0
- Kiểm tra cú pháp rồi kích hoạt cấu hình mới ngay lập tức:
ifreload -a
cat /proc/net/bonding/bond0
Cấu hình thành công khi output xuất hiện MII Status: up và cả hai slave interface có cùng Aggregator ID.
Bản chất kỹ thuật của LACP 802.3ad trên Linux
LACP không phải phép thuật cắm dây là chạy. Từng có người cắm 2 dây mạng từ host vào switch unmanaged phổ thông rồi bật mode 4. Chưa đầy 10 giây, loop mạng xảy ra và đánh sập toàn bộ switch bằng broadcast storm. Nguyên tắc bất di bất dịch: switch vật lý bắt buộc phải là loại Managed và được cấu hình Link Aggregation Group (LAG/LACP) tương ứng trước.
3 thông số then chốt cần lưu ý
- bond-mode 802.3ad (Mode 4): Hai đầu host và switch liên tục trao đổi gói tin LACPDU. Một cổng đứt cáp? Toàn bộ phiên làm việc tự động dồn sang cổng còn lại sau chưa đầy 1 giây. Phiên TCP của máy ảo không bị rớt.
- bond-miimon 100: Chu kỳ kiểm tra trạng thái vật lý cổng mạng là 100ms. Con số này đủ nhạy để phát hiện đứt link tức thì. Nó cũng nhẹ nhàng, không gây hao tổn CPU server.
- bond-xmit-hash-policy layer2+3: Thuật toán chia tải khi gửi gói tin. Mặc định là
layer2(chỉ băm MAC). Thiết lập này rất tệ trên môi trường ảo hóa vì mọi gói đi ra gateway đều mang cùng một MAC đích. Bạn nên đổi sanglayer2+3hoặclayer3+4để thuật toán băm dựa trên cả IP và Port, giúp chia tải đều hơn. - bond-lacp-rate 1 (fast): Ép hai đầu gửi LACPDU mỗi 1 giây/lần thay vì 30 giây (slow). Cụm mạng sẽ nhận diện sự cố và đàm phán lại nhanh gấp nhiều lần.
Thao tác trực tiếp từ Proxmox Web GUI
Nếu không muốn chỉnh file qua tay trong đêm, giao diện web của Proxmox hỗ trợ làm việc này rất nhanh:
- Truy cập Node > System > Network.
- Nhấp Create > Linux Bond.
- Đặt tên
bond0. Điềnenp3s0 enp4s0vào ô Slaves. Chọn Mode LACP (802.3ad) và Hash policy layer2+3. - Mở chỉnh sửa
vmbr0, đổi mục Bridge ports thànhbond0. - Nhấn nút Apply Configuration màu cam trên thanh menu. Gói
ifupdown2sẽ áp cấu hình nền mà không gián đoạn máy ảo đang chạy.
Mở rộng: VLAN Trunking và cấu hình switch đầu cuối
Chạy nhiều dải VLAN trên cùng cặp bond
Môi trường sản xuất thường chia tách lưu lượng: VLAN 10 (Web), VLAN 20 (DB) và VLAN 30 (Ceph/NFS). Thay vì tạo hàng loạt interface phụ, hãy bật cờ VLAN Aware trên bridge vmbr0:
auto vmbr0
iface vmbr0 inet static
address 192.168.10.50/24
gateway 192.168.10.1
bridge-ports bond0
bridge-stp off
bridge-fd 0
bridge-vlan-aware yes
bridge-vids 2-4094
Trong phần cấu hình card mạng của từng VM, bạn chỉ cần gán số VLAN Tag mong muốn. Proxmox tự động gắn tag 802.1Q vào frame rồi đẩy qua bond0 ra switch.
Cấu hình phía Switch (Cisco & MikroTik)
Cổng switch nối vào Proxmox phải ở chế độ Dynamic LACP Active. Ví dụ mẫu trên switch Cisco Catalyst:
interface range GigabitEthernet0/1 - 2
description Uplink-PVE-Node01
switchport mode trunk
channel-group 1 mode active
!
Với MikroTik RouterOS, tạo một interface trong menu Interfaces > Bonding, chọn mode 802.3ad, mục Link Monitoring để mii, và transmit hash policy chọn layer-2-and-3.
Kinh nghiệm thực chiến và xử lý sự cố
1. Bấm Apply xong mất kết nối Web GUI
Trình duyệt xoay vòng, ping gateway rớt sạch. Tình huống này xảy ra khi switch chưa kịp cấu hình LACP, hoặc switch bị cấu hình nhầm sang Static LAG thay vì 802.3ad Dynamic.
Xử lý khẩn cấp qua console IPMI/iDRAC/iLO:
# Tách bridge về card mạng đơn lẻ để lấy lại quyền truy cập
sed -i 's/bridge-ports bond0/bridge-ports enp3s0/' /etc/network/interfaces
ifreload -a
2. Kiểm tra log bonding từ kernel
Đèn link trên switch sáng không có nghĩa là LACP đã bắt tay thành công. Hãy đọc dữ liệu từ driver kernel:
cat /proc/net/bonding/bond0
Tập trung vào 2 dòng quan trọng:
- Partner Mac Address: Phải là địa chỉ MAC của switch. Nếu thấy
00:00:00:00:00:00, host chưa nhận được gói LACPDU nào từ switch. Kiểm tra lại cáp hoặc cấu hình port-channel. - Actor Churn State / Partner Churn State: Trạng thái chuẩn phải là
none. Nếu hiệnchurned, kết nối đang bị flapping do lệch tốc độ (speed duplex) hoặc cáp mạng lỏng.
3. LACP không tăng tốc cho một kết nối đơn lẻ
Gộp 2 card mạng 1 Gbps không biến đường truyền thành 2 Gbps cho một lệnh tải file scp hay wget duy nhất. Một phiên TCP từ Client A đến Server B có hash cố định, nên nó chỉ đi qua đúng một dây mạng (tối đa ~940 Mbps sau khi trừ overhead).
Băng thông tổng 2 Gbps chỉ phát huy tác dụng khi có nhiều client truy cập cùng lúc, hoặc khi chạy các công cụ benchmark hỗ trợ đa luồng song song như iperf3 -P 8.

