網管人員最頭痛的不是「壞了」,而是「莫名其妙壞了又莫名其妙好」。本文以真實案例拆解路由器癱瘓的深層原因——無效路由封包風暴,並建立系統化的分析、解決與預防框架。
案例現場還原
- 設備:Fore Systems ASX-1000/7010/7110 ATM 交換路由器 (年代設備,但原理通用)
- 現象:10 秒內有效路由服務癱瘓,Ping 延遲飆至 300-900ms (正常 <1ms),CPU 狂轉,介面指示燈狂閃
- 監測數據:無效路由封包從基線
10^1-10^2 暴增至 10^5-10^7/秒
- 定性:典型拒絕服務攻擊——內部惡意程式/誤配置裝置發送大量偽造路由更新,耗盡路由器 CPU 與緩衝區
分析與檢測方法論
1. 流量鏡像/監控埠 (SPAN/RSPAN/ERSPAN)
將疑似來源埠 (案例中為 8.3/8.5/8.6) 流量鏡像至分析埠 (8.1 接 Sun 工作站),避免 monitor 指令佔用交換矩陣資源影響生產流量。
2. 封包捕獲與深度分析
snoop -d interface -o capture.cap (Solaris) / tcpdump -i eth0 -w capture.pcap -s 0 (Linux)
- Wireshark 過濾器:
routing protocol (ospf || rip || bgp || isis) && (malformed || suspicious)
- 關注欄位:來源 MAC/IP、TTL 異常、序號跳躍、負載異常
3. 缺乏專業分析儀時的替代方案
- VLAN 隔離法:將疑似埠與分析主機劃入獨立 VLAN,排除廣播干擾
- NetFlow/sFlow/IPFIX 匯出:路由器支援時,導出流量元數據至 ntopng/Elastic/Scrutinizer 分析 Top Talkers
- 內建 CPU 保護:
control-plane policing (CoPP)、route processor protection 限制控制平面佔用
根因與解決
- 定位來源:某內部伺服器遭植入惡意代碼,每秒發送百萬偽造 RIP/OSPF 更新
- 隔離處置:關閉對應交換埠、刪除惡意檔案、關閉不必要遠端服務 (Telnet/FTP/匿名 SMB)
- 驗證恢復:
snoop 確認無效封包降回 10^1-10^2/秒,Ping 延遲恢復 <1ms
預防性維運體系建設
1. 基線建立與異常偵測
- 每日自動收集:CPU、記憶體、緩衝區、路由表大小、鄰居數、介面錯誤計數
- 建立動態基線 (EWMA/季節性分解),閾值自適應,避免靜態閾值誤報/漏報
- 關鍵指標:路由更新頻率/秒、CPU 控制平面佔用%、緩衝區使用率%
2. 管控平面強化
- 路由協定認證:OSPF MD5/SHA-256、BGP MD5/TCP-AO、RIPv2 驗證
- BGP TTL Security (GTSM):TTL=255 僅接受直連鄰居
- Prefix List/Route Map 過濾:只接受合法前綴,拒絕預設路由/私有網段外洩
- CoPP 策略:分級保護 (關鍵協定 > 管理流量 > 其它),超速丟棄
3. 變更管理與審計
- 所有配置變更經Git 版控 + PR 審核 + 自動化測試 (Batfish/pyATS) 後推送
- 配置漂移偵測:每日比對運行配置與版本庫,差異告警
- 故障知識庫:每次事故必填「根因、影響範圍、修復步驟、預防措施」,建立組織記憶
4. 定期演練
- 季度:雙 WAN 切換、VRRP/HSRP 切換、路由器冷備援啟動
- 半年:核心路由器韌體升級、配置回滾、DDoS 模擬演練
- 年度:網絡架構審視、容量規劃、廠商支援狀態確認 (EOL/EOS)
給網管的三把鑰匙
- 可觀測性先行:沒有遙測數據,就沒有排查依據,更談不上預防
- 最小權限原則:路由器只跑必要協定,關閉所有未用服務,縮小攻擊面
- 自動化補充人力:Ansible/Python/Go 將重複性檢查 (配置合規、證書到期、版本漏洞) 代勞
路由器故障多半非硬體損壞,而是配置疏失、管理缺位、演進滯後的累積結果。建立「可觀測 → 可分析 → 可自動化 → 可演進」的維運閉環,才能從「救火隊長」進化為「架構師」。