張靚晶,鈕大騫
(中國原子能科學研究院,北京 102413)
近年來,隨著信息化的發展,單位辦公自動化程度的提升,單位內部局域網中的應用、設備和終端數量越來越多,網絡規模也越來越龐大。隨之而來的是網絡故障出現的概率上升,種類也有所增加,在用戶量較多的內部網絡中,最常見、影響最大的故障就是網絡環路。本文將根據一個實例介紹網絡環路故障的排查和解決措施。
維護人員在日常巡檢交換機時發現,無法連接該局域網內核心交換機或連接時延長,隨后就接到大量用戶上網異常的報修。運維人員運行ping網關發現網絡時斷時續,無法保證網絡的可用性。
為更快排查出故障,運維人員進入機房后,會使用運維專用筆記本電腦通過console口直接登錄核心交換機,查看交換機運行狀況和日志報警。由于中國原子能科學研究院核心交換機是華為9306交換機,匯聚交換機基本為華為5700交換機,接入交換機基本為華為2700交換機,故本文所用交換機操作命令均為華為交換機命令。故障排查過程如下:
(1)使用display log命令查看核心交換機日志,未發現任何異常。
(2)使用display CPU-usage命令查看該交換機的CPU占用率,發現CPU占用率高達89%,最高值為100%,占用CPU最多的報文為ARP包。
(3)使用display CPU-defend statistics 命令查看核心交換機上各種報文的發送和丟棄情況,其中ARPMiss報文的丟棄數量非常大。
ARP-Miss報文是設備在轉發數據包時由于匹配不到對應的ARP 表項而上報的消息,即設備路由表中存在該IP報文目的IP地址對應的路由表項,但缺少該路由表項中下一跳對應的ARP表項時,就會生成ARPMiss報文。ARP-Miss報文將發送到CPU 進行處理,消耗CPU 資源[1]。
基于以上分析,此次網絡故障可斷定為,由于網絡中產生大量ARP包形成廣播風暴而導致。產生廣播風暴一般有幾個情況。
(1)網絡環路。指數據包不斷在閉環網絡傳輸,無法到達目的地址,從而導致網絡癱瘓。網絡環路分為二層環路和三層環路,二層環路指在數據鏈路層,網絡設備之間或同一臺網絡設備的連接線路成環,如圖1所示;三層環路是指在網絡層,網絡路由發生意外,形成環路。常見的網絡環路一般是由線路成環而形成的二層環路。

圖1 二層網絡環路
(2)網絡中設備故障,如網絡設備接口故障、水晶頭損壞等,導致大量發送廣播包。
(3)計算機中ARP病毒,在網絡中大量發送ARP廣播包進行ARP攻擊[2]。
首先,工作人員使用dis cur|in route命令,查看核心交換機和防火墻中路由相關的配置,未發現環路和其他異常,排除三層環路。然后,工作人員登錄殺毒系統管理端,查看病毒查殺情況,未發現異常,排除病毒引發大量ARP廣播包的情況。最終,故障原因定位于線路連接錯誤引發的二層網絡環路或者網絡中設備出現故障。
工作人員經過分析鎖定了故障發生的原因,上述兩種原因引發的故障,均需通過排查找出故障點來解決,因此采取分區域查找的辦法排查故障點。
(1)由于各樓宇均通過匯聚交換機接入核心交換機,為確定故障發生的樓宇,工作人員首先通過console口登錄核心交換機,排查故障來源于哪個匯聚交換機的接入端口。使用dis int brief查看各端口的流量,篩選出input流量大的端口。Shutdown某一端口,等待30 s,查看核心交換機CPU占用率是否正常,如正常則定位故障來源端口,如仍異常,通過undo shutdown命令,恢復該端口通信,繼續對其他端口重復上述操作。最終定位到故障發生的匯聚交換機,并一直使該匯聚交換機的端口保持shutdown狀態,以恢復其他樓宇的網絡[3]。
(2)通過console口登錄故障樓宇的匯聚交換機,工作人員按上述方法逐一shutdown各樓層接入交換機的接入端口,并查看匯聚交換機的CPU占用率是否恢復正常,從而定位出故障發生的樓層接入交換機。
(3)通過console口登錄故障發生的接入交換機,工作人員通過dis int brief查看端口流量,首先shutdown流量較大的端口進行排查,最終定位到故障發生在某一會議室的接入交換機,原因是工作人員將線路連接成環路了。
(4)拆除環路,恢復核心交換機上該樓宇匯聚交換機的接入端口。
為防止二層網絡環路故障和其他廣播風暴故障的再次發生,需優化交換機配置,通過技術手段降低此類故障的發生率。目前,主要有兩種配置方法解決上述問題:一是交換機所有端口配置風暴控制功能,一旦檢測到某個端口的廣播包操作設置的閾值即關閉該端口;二是交換機開啟STP生成樹協議,將交換機上的終端接入端口配置成邊緣端口。仍以華為交換機為例,具體命令如下:
(1)風暴控制配置。
在端口下配置如下命令:
storm-control broadcast min-rate 1 000 max-rate 2 000 //配置廣播風暴控制
storm-control multicast min-rate 1 000 max-rate 2 000//配置組播風暴控制
storm-control unicast min-rate 1 000 max-rate 2 000//配置單播風暴控制
storm-control action block //配置風暴控制的動作為阻塞報文
storm-control enable log //配置打開風暴控制時記錄日志的功能
storm-control interval 120 // 配置風暴控制的檢測時間間隔
(2)STP生成樹配置。
在全局下配置如下命令:
STP enable //全局下使能STP協議
將連接終端設備的交換機端口配置為邊緣端口,具體命令如下:
STP edged-port enable //設置為邊緣端口
STP BPDU-protection //使用BPDU保護功能,如邊緣端口收到BPDU報文,該端口將關閉,需手動恢復
以上兩種方法各有其優劣,風暴控制方法所用協議本身的開銷較小,對交換機性能要求不高,但對于命令中min-rate和max-rate的設定值并沒有明確的規定,需根據運維人員的經驗或者通過設置不同的值進行測試來確定。STP生成樹協議將網絡中的交換設備依據優先級確定成樹形結構,一旦發現環路,工作人員應立刻斷掉相關端口,這樣可有效避免環路的產生,但STP協議需要動態計算網絡中的根橋,協議開銷較大,尤其是網絡中的交換設備有所變動時,對交換機性能要求較高。
另外,為減少環路產生,終端用戶需要增強安全意識,不隨意變動網絡線路,并做好線路的標識,關閉不必要的端口。
網絡環路故障或其他廣播風暴故障是局域網中最為常見的網絡故障之一,并且會對整個網絡產生巨大影響,甚至導致網絡癱瘓。本文通過一個故障實例闡述了網絡環路的故障現象、故障診斷、故障排查及解決措施。本文所采取的解決措施,可以有效預防并解決網絡環路和其他廣播風暴導致的網絡故障。