Danh mục sản phẩm
Loop Detection Guard trên Catalyst 9000: nguyên lý, so sánh với STP Loop Guard và cấu hình (IOS XE 17.2.x trở lên)
Vòng lặp Layer 2 xảy ra khi giữa hai điểm có nhiều hơn một đường đi ở Layer 2. Frame Ethernet không có TTL, nên broadcast, multicast và unicast không xác định bị chuyển tiếp qua vòng lặp sẽ quay đi quay lại và nhân lên không dừng. Kết quả là broadcast storm: băng thông và CPU của switch cạn dần, mạng chậm hoặc treo hoàn toàn.
Bài này giải thích vòng lặp đến từ đâu, các lớp bảo vệ thường dùng, Loop Detection Guard hoạt động ra sao, khác gì STP Loop Guard, và cách cấu hình trên Catalyst 9000.
1. Vòng lặp Layer 2 thường đến từ đâu?
- Người dùng cắm nhầm hai cổng của cùng một switch vào nhau, hoặc cắm vòng giữa các switch.
- Switch unmanaged xuất hiện trong mạng mà không ai kiểm soát. Switch này không có STP, và một số loại không chuyển tiếp BPDU nên STP trên switch chính không nhìn thấy loop.
- STP cấu hình chưa đúng: root bridge đặt sai vị trí, cổng chuyển tiếp sai trạng thái.
- Lỗi phần cứng, lỗi cáp hoặc liên kết một chiều làm switch mất BPDU.
2. Các lớp bảo vệ thường dùng
| Tính năng | Mục đích |
|---|---|
| STP (RSTP, MSTP) | Chặn các đường dự phòng để không tạo loop |
| PortFast + BPDU Guard | Cổng edge nhận BPDU thì bị error-disable |
| Root Guard | Không cho switch lạ trở thành root bridge |
| STP Loop Guard | Chặn cổng chuyển sang forwarding khi mất BPDU (thường do liên kết một chiều) |
| UDLD | Phát hiện liên kết một chiều |
| Storm Control | Giới hạn broadcast, multicast, unicast để giảm thiệt hại khi có loop |
| Tắt cổng không dùng | Giảm nguy cơ cắm nhầm |
| Loop Detection Guard | Phát hiện loop đang diễn ra bằng frame do switch gửi (Catalyst 9000, IOS XE 17.2.1 trở lên) |
Hầu hết các tính năng trên dựa vào BPDU hoặc trạng thái STP. Nếu BPDU không đến được switch, ví dụ vì switch unmanaged không chuyển tiếp BPDU hoặc vì STP bị tắt, thì không có cơ chế nào chủ động xác nhận loop đang xảy ra. Đó là chỗ Loop Detection Guard bổ sung.
3. Loop Detection Guard là gì?
Loop Detection Guard phát hiện loop Layer 2 ở cấp interface. Switch gửi các frame loop-detect ra interface theo chu kỳ đã cấu hình. Nếu frame quay lại switch, switch coi là có loop và thực hiện hành động đã chọn. Tính năng phù hợp khi mạng có switch unmanaged không hiểu STP, hoặc mạng không cấu hình STP. Mặc định tính năng tắt, ra mắt từ Cisco IOS XE Amsterdam 17.2.1.
Một số tình huống loop điển hình theo tài liệu Cisco:
- SW A gửi traffic ra một switch unmanaged qua một cổng và nhận lại traffic từ chính switch đó qua cổng khác, vì hai cổng này thông nhau trên switch unmanaged.
- Loop qua bốn switch: SW A → SW B → Un A → Un B → quay lại SW A.
- Hai cổng trên cùng một switch unmanaged cắm vào nhau.
4. STP Loop Guard và Loop Detection Guard
Tên gọi giống nhau nhưng hai tính năng hoàn toàn khác nhau: một bên phản ứng khi mất BPDU (nguy cơ loop), một bên phản ứng khi loop đã xuất hiện.
| Tiêu chí | STP Loop Guard | Loop Detection Guard |
|---|---|---|
| Lệnh | spanning-tree guard loop |
loopdetect |
| Dựa trên | BPDU của STP | Frame loop-detect do switch gửi |
| Phát hiện | Cổng ngừng nhận BPDU, nguy cơ xảy ra loop | Frame quay lại switch, loop đang xảy ra |
| Hành động | Cổng chuyển sang loop-inconsistent, không chuyển tiếp traffic cho đến khi nhận lại BPDU | Error-disable cổng nhận, cổng gửi, hoặc chỉ hiển thị thông báo |
| Switch unmanaged | Không giúp được vì phụ thuộc BPDU | Thiết kế cho trường hợp này |
| Chu kỳ gửi frame | Không áp dụng | 5 giây (cấu hình 0 đến 10 giây) |
Hai tính năng bổ sung cho nhau chứ không thay thế nhau. Về tương tác giữa Loop Detection Guard và STP, xem mục 6.
5. Hành động khi phát hiện loop
| Tùy chọn | Kết quả |
|---|---|
| Mặc định (không chỉ định) | Error-disable destination port (cổng nhận traffic) |
source-port |
Error-disable cổng gửi |
action syslog |
Chỉ hiển thị thông báo, không error-disable cổng nào |
Cổng đã error-disable sẽ không gửi và không nhận traffic.
6. Điều kiện, hạn chế và tương tác với tính năng khác
- Chỉ cấu hình được trên cổng Layer 2 vật lý. Không hỗ trợ cổng Layer 3, Port-channel, SVI và tunnel.
- STP: theo tài liệu Cisco, khi cả Loop Detection Guard và STP cùng bật trên thiết bị, STP đảm nhiệm giám sát loop và frame loop-detect không được nhận hay xử lý. Cần kiểm tra trong lab nếu bạn dựa vào tính năng này trên mạng có STP.
- Trunk port: cấu hình được nhưng switch hiện cảnh báo. Một trunk mang nhiều VLAN, nên loop ở một VLAN có thể làm error-disable toàn bộ traffic của trunk đó.
- Hub: không khuyến nghị khi switch nối với hub. Hub flood traffic ra mọi cổng, nên cổng ở VLAN khác có thể bị error-disable nhầm. Dùng
action syslogcũng không ổn, vì switch sinh số thông báo bằng số cổng của hub và có thể làm CPU quá tải.
7. Các bước cấu hình
Switch> enable Switch# configure terminal Switch(config)# interface GigabitEthernet 1/0/10 Switch(config-if)# loopdetect Switch(config-if)# end
Tùy chỉnh chu kỳ gửi và hành động:
Switch(config-if)# loopdetect 7 ! gửi frame mỗi 7 giây Switch(config-if)# loopdetect source-port ! error-disable cổng gửi Switch(config-if)# loopdetect action syslog ! chỉ hiển thị thông báo Switch(config-if)# no loopdetect ! tắt tính năng
| Tham số | Ý nghĩa |
|---|---|
time |
Chu kỳ gửi frame, 0 đến 10 giây, mặc định 5 |
action syslog |
Chỉ hiển thị thông báo. Dùng no thì quay về tùy chọn đã cấu hình trước đó |
source-port |
Error-disable cổng gửi. Dùng no thì quay về error-disable destination port |
Frame loop-detect được gửi từ interface đã cấu hình, nên cần bật loopdetect trên các cổng cần giám sát. Ví dụ: interface range Gi1/0/1 - 2 rồi loopdetect.
8. Kiểm tra
Switch# show loopdetect Switch# show interfaces status err-disabled
show loopdetect hiển thị các interface đã bật tính năng, chu kỳ gửi frame và trạng thái cổng vật lý. Sau khi gỡ nguyên nhân loop, bạn có thể đưa cổng bị error-disable trở lại bằng shutdown rồi no shutdown trên interface.
Lưu ý: hướng "cổng nào bị error-disable" nên được xác nhận bằng lab. Tài liệu Cisco chỉ ghi "destination port / port receiving traffic" mà không định nghĩa chi tiết.
9. Hỗ trợ theo dòng Catalyst 9000
Tính năng có từ 17.2.1 trên Catalyst 9200, 9300, 9400, 9500 và 9600. Một số ngoại lệ theo từng model:
- 9400: supervisor C9400X-SUP-2 và SUP-2XL từ 17.7.1.
- 9500: C9500X-28C8D không hỗ trợ.
- 9200CX (C9200CX-12P-2X2G, C9200CX-8P-2X2G, C9200CX-12T-2X2G): từ 17.9.1.
Hãy kiểm tra từng model trên Cisco Feature Navigator trước khi triển khai.
10. Gợi ý triển khai
- Bật Loop Detection Guard ở các cổng nghi ngờ có switch unmanaged đấu vào, hoặc các cổng quan trọng.
- Một ý tưởng đã được nêu trong bài viết cũ của VNExperts: chỉ bật trên cổng uplink với hành động mặc định, để cổng đích (downlink gây loop với uplink) bị error-disable thay vì bật trên mọi cổng. Cách này cần được kiểm chứng trong lab trước khi áp dụng.
- Kết hợp với PortFast, BPDU Guard và Storm Control ở cổng edge. Loop Detection Guard bổ sung cho STP chứ không thay thế STP.
- Luôn thử trong môi trường lab trước khi đưa vào mạng thật.
Tài liệu tham khảo
- Configuring Loop Detection Guard, Catalyst 9600, IOS XE 17.2.x
- Configuring Loop Detection Guard, Catalyst 9300, IOS XE 17.3.x
- Troubleshoot Layer-2 Loops on Catalyst 9000
- Layer 2/3 Commands, Command Reference của từng dòng Catalyst 9000.
