Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • EtherChannel Load-Balancing – Làm sao switch quyết định đưa frame đi link nào?

    EtherChannel Load-Balancing – Làm sao switch quyết định đưa frame đi link nào?


    Anh em khi triển khai EtherChannel thường kỳ vọng rằng lưu lượng sẽ được chia đều trên các link trong bundle. Nhưng thực tế thì không hẳn như vậy – có khi một link gánh gần hết, còn các link khác “rảnh rang”. Lý do nằm ở thuật toán hashing mà switch dùng để chọn đường. 1. Cơ chế hoạt động


    Mỗi khi có một frame cần đi ra EtherChannel, switch sẽ lấy một (hoặc nhiều) trường trong header (MAC/IP/Port) rồi cho chạy qua hash function. Kết quả là một chuỗi bit, dùng để ánh xạ frame đó ra một link cụ thể trong bundle.
    • Nếu bundle có 2 link, switch chỉ cần lấy 1 bit cuối làm index (0 → link 1, 1 → link 2).
    • Nếu bundle có 4 link, switch lấy 2 bit cuối để ra 4 giá trị (00, 01, 10, 11).
    • Nếu bundle có 8 link, lấy 3 bit cuối để chia ra 8 đường.

    👉 Vì vậy nên luôn ghép số lượng link chẵn (2, 4, 8) để load-balance tốt nhất. Nếu chỉ có 3 link, thuật toán vẫn dùng 2 bit, dẫn tới 1 link bị chọn nhiều gấp đôi (tỷ lệ 2:1:1). 2. Các phương thức load-balancing phổ biến


    Tùy dòng switch (Catalyst 2960, 3650, 4500, 6500, 9K…), Cisco cho phép cấu hình các tiêu chí khác nhau để làm input cho hash:
    • Source MAC (src-mac) → frame từ cùng 1 host luôn đi cùng 1 link.
    • Destination MAC (dst-mac) → frame đi đến cùng host sẽ tập trung về 1 link.
    • Source IP (src-ip) → các client khác subnet thì sẽ được phân ra nhiều link.
    • Destination IP (dst-ip) → nhiều server khác nhau thì được phân đều link.
    • Source + Destination IP (src-dst-ip) → default trên nhiều switch; phù hợp cho môi trường nhiều client ↔ nhiều server.
    • Source + Destination MAC (src-dst-mac) → load chia tốt ở layer 2.
    • Source/Destination Port number (src-port, dst-port, src-dst-port) → chỉ có trên các dòng cao hơn như 4500, 6500, 9K; hữu ích khi có traffic lớn giữa 2 IP cố định nhưng nhiều session (ví dụ web server, DB server).

    💡 Khi muốn kiểm tra switch hỗ trợ option nào, chỉ cần gõ:
    Switch(config)# port-channel load-balance ? 3. Ví dụ minh họa


    Giả sử ta chọn src-dst-ip và có 2 link trong bundle. Switch sẽ XOR bit cuối của source IP và destination IP để chọn đường.
    • 192.168.1.2 → 192.168.1.4
      → XOR = 0 → đi link 0
    • 172.16.1.20 → 172.16.1.21
      → XOR = 1 → đi link 1
    • 192.168.1.1 → 192.168.1.2
      → XOR = 1 → đi link 1
    • 10.1.1.101 → 10.1.1.103
      → XOR = 0 → đi link 0

    Như vậy, tất cả lưu lượng giữa một cặp IP cố định sẽ đi cùng một link. Chỉ khi có nhiều cặp host khác nhau thì load-balancing mới phân tán đều hơn.

    Nếu có tình huống một cặp host truyền rất nhiều traffic (elephant flow), dẫn tới một link bị nghẽn, ta nên đổi sang phương thức khác như src-dst-port, để tách các phiên TCP/UDP ra nhiều link. 4. Lưu ý quan trọng
    • Load-balancing không phải load-sharing 100% đều. Nó phụ thuộc vào cách các host giao tiếp.
    • Một EtherChannel trên switch chỉ có 1 chế độ load-balance duy nhất, áp dụng cho tất cả các port-channel trên thiết bị đó.
    • Nếu traffic chủ yếu là IP, thì nên chọn hash theo IP hoặc port number thay vì MAC.

    Câu hỏi ôn tập


    Frames trong EtherChannel được chuyển tiếp dựa trên kết quả của hashing algorithm. Vậy switch có thể dùng hai lựa chọn nào sau đây để tính toán hash? (Chọn 2)

    ✅ Destination IP address
    ❌ Loopback address
    ❌ Router ID
    ✅ Source port number
    ❌ VLAN
    Attached Files
    Đặng Quang Minh, CCIE#11897 (Enterprise Infrastructure, Wireless, Automation, AI), CCSI#31417

    Email : dangquangminh@vnpro.org
    https://www.facebook.com/groups/vietprofessional/
Working...
X