Chống loop và mạng vòng trên switch GTWave: STP, MSTP, ERPS, EAPS

Loop lớp 2 là một trong những sự cố nguy hiểm nhất: chỉ một vòng lặp vô tình cũng đủ tạo broadcast storm làm sập toàn bộ mạng trong vài giây. Ngược lại, mạng vòng (ring) được thiết kế chủ động lại là kiến trúc dự phòng tốt nhất cho camera ngoài trời và nhà máy. Bài này – thuộc chuỗi hướng dẫn cấu hình switch GTWave – trình bày cả hai mặt: phòng loop ngoài ý muốn và xây ring phục hồi nhanh.
1. So sánh các giao thức
| Giao thức | Thời gian phục hồi | Dùng cho | Chuẩn |
|---|---|---|---|
| STP | 30–50s | Legacy | 802.1D |
| RSTP | 1–3s | Mesh nhỏ | 802.1w |
| MSTP | 1–3s | Đa VLAN, cân tải | 802.1s |
| EAPS | 50–300ms | Ring legacy | Proprietary |
| ERPS | <50ms | Ring production, carrier-grade | ITU-T G.8032 |
| Loop Detection | Chỉ phát hiện | Bắt storm khi STP bị tắt | Proprietary |
Khuyến nghị tổng quát: topology mesh dùng MSTP (mặc định trên GTWave); topology ring dùng ERPS (tốt nhất) hoặc EAPS (tương thích ngược); mesh dưới năm switch có thể dùng RSTP cho đơn giản.
2. MSTP – mặc định cho topology mesh
MSTP gom nhiều VLAN vào các instance riêng để cân tải, đồng thời chống loop. Các switch cùng region (cùng region-name, revision-level và ánh xạ VLAN-to-instance) được coi như một thực thể trong CIST. Mỗi MST Instance (1–15) có cây spanning-tree riêng.
Tình huống: bốn switch trong region “VKX-HCM”; VLAN 10,20,30 vào instance 1, VLAN 100,200 vào instance 2; switch A làm root cho instance 1, switch B làm root cho instance 2 để cân tải.
Trên switch A:
Switch-A(config)# spanning-tree mode mstp
Switch-A(config)# spanning-tree mst configuration
Switch-A(config-mst)# region-name VKX-HCM
Switch-A(config-mst)# revision-level 1
Switch-A(config-mst)# instance 1 vlan 10,20,30
Switch-A(config-mst)# instance 2 vlan 100,200
Switch-A(config-mst)# exit
Switch-A(config)# spanning-tree mst 1 priority 0
Switch-A(config)# spanning-tree mst 2 priority 8192
Switch-A# write
Trên switch B đảo ngược: spanning-tree mst 1 priority 8192 và spanning-tree mst 2 priority 0. Switch C, D chỉ cần khai báo region và ánh xạ instance giống hệt, không cần đặt priority. Region-name, revision-level và ánh xạ instance phải giống nhau 100% trên mọi switch trong region — chỉ cần lệch một ký tự là các switch coi nhau như khác region.
Cấu hình ở mức cổng cho thiết bị đầu cuối và uplink:
Switch(config)# interface ge1/1
Switch(config-ge1/1)# spanning-tree portfast
Switch(config-ge1/1)# spanning-tree bpduguard enable
Switch(config-ge1/1)# spanning-tree rootguard
portfast cho cổng nối PC/camera/AP để bỏ qua giai đoạn listening/learning (lên link tức thì); bpduguard tự shutdown cổng nếu nhận BPDU (cổng đầu cuối không được phép nhận); rootguard đặt trên cổng hướng xuống switch con để không cho thiết bị bên dưới chiếm vai trò root. Kiểm tra bằng show spanning-tree và show spanning-tree mst.
3. ERPS G.8032 – ring carrier-grade khuyến nghị
Trong một ring N switch, một cổng (RPL – Ring Protection Link) bị block khi ring khỏe mạnh để chống loop. Khi một link khác đứt, cổng RPL được mở block và ring phục hồi dưới 50ms. Có ba vai trò: RPL Owner (giữ và block cổng RPL), RPL Neighbour (đầu còn lại của link RPL, làm dự phòng), và Other (chỉ forward bản tin R-APS).
Thiết lập VLAN điều khiển R-APS trên cả bốn switch trước:
Switch(config)# vlan database
Switch(config-vlan)# vlan 4090 name ERPS-RAPS-CTRL
Switch(config-vlan)# exit
Trên switch A (RPL Owner):
Switch-A(config)# erps instance 1
Switch-A(config-erps-1)# ring-id 1
Switch-A(config-erps-1)# role rpl-owner
Switch-A(config-erps-1)# port0 ge1/23
Switch-A(config-erps-1)# port1 ge1/24
Switch-A(config-erps-1)# raps-vlan 4090
Switch-A(config-erps-1)# guard-timer 500
Switch-A(config-erps-1)# wtr-timer 5
Switch-A(config-erps-1)# hold-off-timer 0
Switch-A(config-erps-1)# exit
Switch-A(config)# erps instance 1 enable
Switch-A# write
Trên switch B đặt role rpl-neighbour; switch C, D đặt role none. Trên tất cả, port0/port1 phải đúng cổng vật lý nối vào ring. Kiểm tra:
Switch# show erps
Instance Ring-ID Role Port0 Port1 State WTR
1 1 rpl-owner ge1/23 ge1/24 Idle (block) 5min
Khi một link đứt, state chuyển Protection, cổng RPL mở block, lưu lượng đổi hướng. Khi link phục hồi, state vào Pending chờ hết WTR rồi trở lại Idle (block lại RPL).
4. EAPS – ring legacy vẫn dùng được
Switch(config)# vlan database
Switch(config-vlan)# vlan 4080 name EAPS-CTRL
Switch(config-vlan)# exit
Switch(config)# eaps domain 1
Switch(config-eaps-1)# mode master
Switch(config-eaps-1)# primary-port ge1/23
Switch(config-eaps-1)# secondary-port ge1/24
Switch(config-eaps-1)# control-vlan 4080
Switch(config-eaps-1)# protected-vlans add 10,20,30
Switch(config-eaps-1)# exit
Switch(config)# eaps domain 1 enable
Một switch đặt mode master, các switch còn lại mode transit. EAPS được GTWave hỗ trợ rộng và phù hợp khi tích hợp với thiết bị ring đời cũ.
5. DLDP và Loop Detection – hai lớp bảo vệ bổ sung
DLDP phát hiện link một chiều (một hướng cáp đứt, hướng kia còn) — tình huống có thể đánh lừa STP/EAPS:
Switch(config)# dldp enable
Switch(config)# interface ge1/23
Switch(config-ge1/23)# dldp port
Switch(config-ge1/23)# dldp aggressive
Loop Detection là lưới an toàn khi STP bị tắt hoặc lỗi: switch tự sinh frame, nếu nhận lại frame của chính mình thì có loop và shutdown cổng:
Switch(config)# loop-detection enable
Switch(config)# loop-detection recover auto
Switch(config)# interface ge1/5
Switch(config-ge1/5)# loop-detection port
Nên bật Loop Detection song song với MSTP trên các access port end-user để bắt nhanh trường hợp người dùng cắm hai đầu cáp vào cùng switch.
6. Xử lý sự cố
| Triệu chứng | Khả năng |
|---|---|
| Toàn mạng sập, mọi switch CPU 100% | Broadcast storm do loop — tìm cổng LED nhấp nháy cực nhanh, shutdown |
| Một cổng luôn ở trạng thái Blocking | Bình thường — STP block cổng dự phòng, verify root đúng |
| Cổng đầu cuối 30s mới lên | Chưa bật portfast |
| Switch coi nhau khác region | region-name/revision/instance lệch nhau |
| ERPS kẹt ở Pending | WTR còn chạy (mặc định 5 phút), hoặc fail-period quá nhỏ |
Chẩn đoán nhanh khi nghi loop:
Switch# show spanning-tree
Switch# show interface counters errors
Switch# show mac address-table | count
Switch# show logging | include spanning
Khi mạng chậm hoặc đứng, nghi loop đầu tiên: tìm cổng có nhiều topology change trong show spanning-tree – đó thường là cổng có cáp lỏng hoặc loop chập chờn.
7. Bảy thực hành chống loop
Bật MSTP global trên mọi switch ngay từ đầu. Đặt portfast + bpduguard trên mọi cổng đầu cuối. Đặt rootguard trên cổng hướng xuống switch con. Với ring, dùng ERPS thay vì phụ thuộc STP. Bật Loop Detection song song MSTP trên access port. Đặt root bridge cụ thể bằng priority thấp trên core, không để switch ngẫu nhiên làm root. Và kiểm tra topology định kỳ bằng show spanning-tree để đảm bảo root đúng thiết bị dự định.
Bài tiếp theo trong chuỗi
Ring và uplink dự phòng thường đi cùng Link Aggregation LACP. Để giám sát sự kiện topology change theo thời gian thực, thiết lập SNMP và Syslog. Quay lại trang tổng hợp switch GTWave để xem toàn chuỗi.
VILINK X thiết kế và triển khai ring ERPS/EAPS cho hệ thống camera ngoài trời và nhà máy dùng switch GTWave. Liên hệ Phòng Kỹ thuật để được hỗ trợ.
Cần tư vấn cho dự án của bạn?
Đội ngũ VILINK X hỗ trợ cấu hình thiết bị, hồ sơ kỹ thuật và báo giá theo gói thầu.
Liên hệ báo giá