bonding

Cấu hình bonding trên Ubuntu

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

  1. Thêm module bonding vào hệ thống:
    • Mở file /etc/modules và thêm dòng:
      bonding
      
  2. 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:
      options bonding mode=active-backup miimon=100
      
    • Ở đâ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.

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 eth0eth1:

# Cấu hình giao diện bond0
auto bond0
iface bond0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1
    bond-mode active-backup
    bond-miimon 100
    bond-slaves none

# Cấu hình các interface thành viên
auto eth0
iface eth0 inet manual
    bond-master bond0

auto eth1
iface eth1 inet manual
    bond-master bond0
  • Lưu ý:
    • Các interface thành viên được cấu hình ở chế độ manual và gán cho bond0 thông qua bond-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).

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:

network:
  version: 2
  renderer: networkd
  bonds:
    bond0:
      interfaces: [eth0, eth1]
      addresses: [192.168.1.100/24]
      gateway4: 192.168.1.1
      parameters:
        mode: active-backup
        mii-monitor-interval: 100
  • Thực hiện:
    • Lưu file cấu hình và áp dụng bằng lệnh:
      sudo netplan apply
      

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:

    cat /proc/net/bonding/bond0
    

    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:

    ip addr show bond0
    
  • Theo dõi trạng thái giao diện:
    Sử dụng lệnh như ifconfig hoặc ip 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ói ifenslave để 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ả.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *