
Mục lục bài viết 10 phần
Một LACP bundle ở trạng thái up chỉ xác nhận các member đã được tập hợp theo policy; nó không chứng minh flow được phân bố hợp lý, capacity khả dụng đúng hay dịch vụ phục hồi trong ngân sách khi một member lỗi. Nghiệm thu cần nối LACP state machine, forwarding/hashing, lưu lượng theo flow và transaction của ứng dụng.
Bài viết giúp bạn
- LACP cần chứng minh điều gì
- Topology và điểm quan sát
- Biến số phải kiểm soát
LACP cần chứng minh điều gì
#IEEE 802.1AX mô tả Link Aggregation và LACP để nhiều link vật lý hoạt động như một logical link theo các điều kiện tương thích. LACP không chia một flow đơn lẻ thành nhiều member theo mặc định và không tiêu chuẩn hóa mọi thuật toán hash của implementation. Vì vậy tổng throughput của nhiều flow và throughput của một elephant flow là hai bài toán khác nhau.
Cần chứng minh bốn lớp: member được select/collect/distribute đúng; frame đi đúng member và không loop; tải giảm/tăng theo capacity thật khi member rời/vào; dịch vụ giữ loss, latency, reordering trong SLO. Một member có carrier và LACP state hợp lệ vẫn có thể silent-drop ở một chiều.
Topology và điểm quan sát
#Topology tối thiểu gồm hai DUT nối bằng bundle 2–4 member, traffic generator/sink ở hai phía và khả năng gây lỗi từng member độc lập. Nếu dùng switch stack, chassis hay MC-LAG, ghi rõ failure domain; trước hết kiểm thử LACP điểm-điểm đơn giản để không trộn lỗi peer-link hoặc multi-chassis state.
Thu LACPDU trên từng member, state actor/partner, aggregator ID, collecting/distributing flags, interface/ASIC counters và packet sequence tại hai đầu. Tạo flow set có source/destination MAC, IP, port và VLAN biến đổi có kiểm soát để xác định hash field. Đồng bộ clock và đặt marker cho link loss, state change, packet cuối/có ích đầu tiên.

Biến số phải kiểm soát
#Ghi model/OS/version, active/passive, fast/slow periodic, system/port priority, key, min-links, individual mode, fallback và hash policy hai chiều. Khóa tốc độ/duplex/FEC/MTU, VLAN, QoS, pause/PFC, routing/ECMP và MAC/ARP state. Hai chiều có thể dùng hash khác nhau nên phải báo separately.
Traffic profile gồm frame size, flow cardinality, elephant/mice mix, offered load, burst, protocol và entropy field. Giữ tổng load dưới capacity còn lại khi mục tiêu là đo hitless failover; sau đó mới chạy oversubscription có chủ đích để đo queue/drop. Nếu không tách hai pha, congestion sau mất member dễ bị gọi nhầm là lỗi LACP.
- LACP — Giá trị cần lưu: mode, periodic, priority, key, min-links; Rủi ro nếu bỏ sót: State change không giải thích được
- Hash — Giá trị cần lưu: field/seed, flow entropy; Rủi ro nếu bỏ sót: Kết luận sai về cân bằng tải
- Member — Giá trị cần lưu: speed, MTU, FEC, QoS; Rủi ro nếu bỏ sót: Member tương thích giả
- Traffic — Giá trị cần lưu: flows, size, load, burst; Rủi ro nếu bỏ sót: Single-flow bị coi như aggregate
- Fault — Giá trị cần lưu: link-down, silent, one-way; Rủi ro nếu bỏ sót: Detection path khác nhau
KPI và chuỗi bằng chứng
#KPI gồm thời gian member bị loại/đưa lại, service interruption, packet loss/duplicate/reordering, throughput/goodput, latency p95/p99, utilization lệch giữa member, số flow remap và thời gian bundle trở về steady state. Với min-links, đo đúng thời điểm logical interface xuống; với tải vượt capacity sau fault, tách drop do congestion khỏi detection gap.
Chuỗi bằng chứng cần cùng run ID: LACPDU/state baseline; flow-to-member map; marker fault; PHY/interface event; actor/partner flags; FIB/MAC update nếu có; sequence gap; transaction hợp lệ đầu tiên; recovery và rebalance. Pass/fail nên có threshold cho cả dịch vụ lẫn state, không chỉ “port-channel vẫn up”.
Ma trận quyết định
#- Baseline nhiều flow — Tải: < capacity; Điều cần chứng minh: Hash ổn định, không loop/loss; Bằng chứng: flow map + counters
- Một member link-down — Tải: < capacity còn lại; Điều cần chứng minh: Service trong budget; Bằng chứng: event + sequence
- Silent drop — Tải: < capacity còn lại; Điều cần chứng minh: Detection ngoài carrier nếu có; Bằng chứng: probe/state + pcap
- Lỗi một chiều — Tải: < capacity còn lại; Điều cần chứng minh: Không blackhole kéo dài; Bằng chứng: capture hai hướng
- Mất member — Tải: > capacity còn lại; Điều cần chứng minh: Drop/queue đúng QoS; Bằng chứng: queue + per-class loss
- Min-links vi phạm — Tải: Bất kỳ; Điều cần chứng minh: Logical bundle xuống đúng policy; Bằng chứng: state + traffic
- Member trở lại — Tải: Ổn định; Điều cần chứng minh: Không flap/remap quá mức; Bằng chứng: state + flow map
- Config mismatch — Tải: Thấp; Điều cần chứng minh: Không ghép sai aggregator; Bằng chứng: key/state/log
Test plan baseline và member failure
#Bắt đầu từng member đơn lẻ để xác nhận throughput, loss, MTU và hướng đi. Tạo bundle, kiểm tra actor/partner, aggregator và collecting/distributing flags bằng CLI lẫn LACPDU. Chạy một flow để xác định giới hạn single-member, sau đó tăng flow cardinality và báo utilization distribution; không kỳ vọng chia đều tuyệt đối ở flow count nhỏ.
Ở steady state, gây link-down vật lý một member rồi lặp với admin shutdown, remote shutdown, silent two-way drop và one-way drop. Chạy ở 30%, 70% capacity bundle và dưới capacity còn lại. Dùng cùng seed/flow set giữa các lượt, reset counter và lưu map trước/sau để định lượng flow remap cùng sequence gap.

Scale, recovery và lỗi chồng lấn
#Tăng số flow, VLAN và MAC để quan sát polarization, queue hotspot và CPU/control-plane load. Thử một elephant flow cùng nhiều mice flow; tổng utilization cân bằng không đảm bảo tail latency của mice. Nếu nền tảng hỗ trợ resilient hashing, xác minh bằng flow remap thực tế thay vì chỉ dựa trên cấu hình.
Khi member trở lại, theo dõi synchronization, collecting/distributing, traffic rebalance và reordering. Thử flap, lỗi hai member, LACPDU loss và config mismatch. Với stack/MC-LAG, chỉ mở rộng sau baseline và thêm peer-link/keepalive/chassis failure như failure domain riêng.
Checklist nghiệm thu
#- Ghi model/OS, mode, periodic, priority, key và min-links.
- Baseline từng member về MTU, loss, throughput và latency.
- Xác nhận actor/partner và collecting/distributing trên từng member.
- Ghi hash field/seed; dùng flow set đủ entropy.
- Đo hai chiều và per-member counter.
- Thử link-down, admin-down, silent drop và one-way loss.
- Tách bài tải dưới/ trên capacity còn lại.
- Đo loss, reordering, flow remap và service restoration.
- Thử member return, flap, min-links và config mismatch.
- Lưu LACPDU, state dump, pcap, counter, config và verdict.
Giới hạn của kết luận
#Kết quả chỉ áp dụng cho hash policy, flow entropy, model/version, member speed và topology đã đo. LACP không tự tạo load balancing theo byte hoàn hảo, không phát hiện mọi silent failure và không thay thế kiểm thử routing/application HA.
Không so sánh aggregate throughput nếu flow count, hash field, frame size hoặc offered load khác nhau. Hitless ở tải thấp cũng không chứng minh hệ thống chịu mất member khi capacity còn lại bị vượt; hai kết luận phải được báo riêng.
Khái niệm cần nhớ
#- Aggregator: Logical link tập hợp các member tương thích.
- Actor/Partner: Hai phía trao đổi state trong LACPDU.
- Collecting/Distributing: Trạng thái nhận/gửi traffic của member.
- Hash polarization: Nhiều flow dồn vào cùng member do entropy/phân bố.
- Min-links: Số member tối thiểu để logical bundle được coi là up.
- Flow remap: Flow chuyển sang member khác sau thay đổi bundle.
- Service restoration: Thời điểm traffic/giao dịch hợp lệ trở lại.
Khái niệm cần nhớ
- DUT / SUT
- Thiết bị hoặc toàn bộ hệ thống đang là đối tượng của bài kiểm thử.
- Steady state
- Giai đoạn tải đã ổn định và đủ điều kiện để lấy số liệu đại diện.
- Pass / fail
- Kết luận dựa trên ngưỡng đã thống nhất, luôn đi cùng topology, cấu hình và điều kiện đo.
TÀI LIỆU ĐỐI CHIẾUTài liệu tham khảo3 nguồn +
Nội dung được biên soạn độc lập, theo hướng vendor-neutral và đối chiếu các tài liệu gốc dưới đây. Tính năng sản phẩm cần được kiểm tra lại theo phiên bản đang sử dụng.
NetVali ưu tiên nguồn tiêu chuẩn và tài liệu chính thức; phân biệt khuyến nghị triển khai với yêu cầu của tiêu chuẩn; không công bố thông số sản phẩm chưa gắn với phiên bản và điều kiện đo.
