張靚晶,鈕大騫
(中國原子能科學(xué)研究院,北京 102413)
近年來,隨著信息化的發(fā)展,單位辦公自動(dòng)化程度的提升,單位內(nèi)部局域網(wǎng)中的應(yīng)用、設(shè)備和終端數(shù)量越來越多,網(wǎng)絡(luò)規(guī)模也越來越龐大。隨之而來的是網(wǎng)絡(luò)故障出現(xiàn)的概率上升,種類也有所增加,在用戶量較多的內(nèi)部網(wǎng)絡(luò)中,最常見、影響最大的故障就是網(wǎng)絡(luò)環(huán)路。本文將根據(jù)一個(gè)實(shí)例介紹網(wǎng)絡(luò)環(huán)路故障的排查和解決措施。
維護(hù)人員在日常巡檢交換機(jī)時(shí)發(fā)現(xiàn),無法連接該局域網(wǎng)內(nèi)核心交換機(jī)或連接時(shí)延長,隨后就接到大量用戶上網(wǎng)異常的報(bào)修。運(yùn)維人員運(yùn)行ping網(wǎng)關(guān)發(fā)現(xiàn)網(wǎng)絡(luò)時(shí)斷時(shí)續(xù),無法保證網(wǎng)絡(luò)的可用性。
為更快排查出故障,運(yùn)維人員進(jìn)入機(jī)房后,會(huì)使用運(yùn)維專用筆記本電腦通過console口直接登錄核心交換機(jī),查看交換機(jī)運(yùn)行狀況和日志報(bào)警。由于中國原子能科學(xué)研究院核心交換機(jī)是華為9306交換機(jī),匯聚交換機(jī)基本為華為5700交換機(jī),接入交換機(jī)基本為華為2700交換機(jī),故本文所用交換機(jī)操作命令均為華為交換機(jī)命令。故障排查過程如下:
(1)使用display log命令查看核心交換機(jī)日志,未發(fā)現(xiàn)任何異常。
(2)使用display CPU-usage命令查看該交換機(jī)的CPU占用率,發(fā)現(xiàn)CPU占用率高達(dá)89%,最高值為100%,占用CPU最多的報(bào)文為ARP包。
(3)使用display CPU-defend statistics 命令查看核心交換機(jī)上各種報(bào)文的發(fā)送和丟棄情況,其中ARPMiss報(bào)文的丟棄數(shù)量非常大。
ARP-Miss報(bào)文是設(shè)備在轉(zhuǎn)發(fā)數(shù)據(jù)包時(shí)由于匹配不到對(duì)應(yīng)的ARP 表項(xiàng)而上報(bào)的消息,即設(shè)備路由表中存在該IP報(bào)文目的IP地址對(duì)應(yīng)的路由表項(xiàng),但缺少該路由表項(xiàng)中下一跳對(duì)應(yīng)的ARP表項(xiàng)時(shí),就會(huì)生成ARPMiss報(bào)文。ARP-Miss報(bào)文將發(fā)送到CPU 進(jìn)行處理,消耗CPU 資源[1]。
基于以上分析,此次網(wǎng)絡(luò)故障可斷定為,由于網(wǎng)絡(luò)中產(chǎn)生大量ARP包形成廣播風(fēng)暴而導(dǎo)致。產(chǎn)生廣播風(fēng)暴一般有幾個(gè)情況。
(1)網(wǎng)絡(luò)環(huán)路。指數(shù)據(jù)包不斷在閉環(huán)網(wǎng)絡(luò)傳輸,無法到達(dá)目的地址,從而導(dǎo)致網(wǎng)絡(luò)癱瘓。網(wǎng)絡(luò)環(huán)路分為二層環(huán)路和三層環(huán)路,二層環(huán)路指在數(shù)據(jù)鏈路層,網(wǎng)絡(luò)設(shè)備之間或同一臺(tái)網(wǎng)絡(luò)設(shè)備的連接線路成環(huán),如圖1所示;三層環(huán)路是指在網(wǎng)絡(luò)層,網(wǎng)絡(luò)路由發(fā)生意外,形成環(huán)路。常見的網(wǎng)絡(luò)環(huán)路一般是由線路成環(huán)而形成的二層環(huán)路。
圖1 二層網(wǎng)絡(luò)環(huán)路
(2)網(wǎng)絡(luò)中設(shè)備故障,如網(wǎng)絡(luò)設(shè)備接口故障、水晶頭損壞等,導(dǎo)致大量發(fā)送廣播包。
(3)計(jì)算機(jī)中ARP病毒,在網(wǎng)絡(luò)中大量發(fā)送ARP廣播包進(jìn)行ARP攻擊[2]。
首先,工作人員使用dis cur|in route命令,查看核心交換機(jī)和防火墻中路由相關(guān)的配置,未發(fā)現(xiàn)環(huán)路和其他異常,排除三層環(huán)路。然后,工作人員登錄殺毒系統(tǒng)管理端,查看病毒查殺情況,未發(fā)現(xiàn)異常,排除病毒引發(fā)大量ARP廣播包的情況。最終,故障原因定位于線路連接錯(cuò)誤引發(fā)的二層網(wǎng)絡(luò)環(huán)路或者網(wǎng)絡(luò)中設(shè)備出現(xiàn)故障。
工作人員經(jīng)過分析鎖定了故障發(fā)生的原因,上述兩種原因引發(fā)的故障,均需通過排查找出故障點(diǎn)來解決,因此采取分區(qū)域查找的辦法排查故障點(diǎn)。
(1)由于各樓宇均通過匯聚交換機(jī)接入核心交換機(jī),為確定故障發(fā)生的樓宇,工作人員首先通過console口登錄核心交換機(jī),排查故障來源于哪個(gè)匯聚交換機(jī)的接入端口。使用dis int brief查看各端口的流量,篩選出input流量大的端口。Shutdown某一端口,等待30 s,查看核心交換機(jī)CPU占用率是否正常,如正常則定位故障來源端口,如仍異常,通過undo shutdown命令,恢復(fù)該端口通信,繼續(xù)對(duì)其他端口重復(fù)上述操作。最終定位到故障發(fā)生的匯聚交換機(jī),并一直使該匯聚交換機(jī)的端口保持shutdown狀態(tài),以恢復(fù)其他樓宇的網(wǎng)絡(luò)[3]。
(2)通過console口登錄故障樓宇的匯聚交換機(jī),工作人員按上述方法逐一shutdown各樓層接入交換機(jī)的接入端口,并查看匯聚交換機(jī)的CPU占用率是否恢復(fù)正常,從而定位出故障發(fā)生的樓層接入交換機(jī)。
(3)通過console口登錄故障發(fā)生的接入交換機(jī),工作人員通過dis int brief查看端口流量,首先shutdown流量較大的端口進(jìn)行排查,最終定位到故障發(fā)生在某一會(huì)議室的接入交換機(jī),原因是工作人員將線路連接成環(huán)路了。
(4)拆除環(huán)路,恢復(fù)核心交換機(jī)上該樓宇匯聚交換機(jī)的接入端口。
為防止二層網(wǎng)絡(luò)環(huán)路故障和其他廣播風(fēng)暴故障的再次發(fā)生,需優(yōu)化交換機(jī)配置,通過技術(shù)手段降低此類故障的發(fā)生率。目前,主要有兩種配置方法解決上述問題:一是交換機(jī)所有端口配置風(fēng)暴控制功能,一旦檢測到某個(gè)端口的廣播包操作設(shè)置的閾值即關(guān)閉該端口;二是交換機(jī)開啟STP生成樹協(xié)議,將交換機(jī)上的終端接入端口配置成邊緣端口。仍以華為交換機(jī)為例,具體命令如下:
(1)風(fēng)暴控制配置。
在端口下配置如下命令:
storm-control broadcast min-rate 1 000 max-rate 2 000 //配置廣播風(fēng)暴控制
storm-control multicast min-rate 1 000 max-rate 2 000//配置組播風(fēng)暴控制
storm-control unicast min-rate 1 000 max-rate 2 000//配置單播風(fēng)暴控制
storm-control action block //配置風(fēng)暴控制的動(dòng)作為阻塞報(bào)文
storm-control enable log //配置打開風(fēng)暴控制時(shí)記錄日志的功能
storm-control interval 120 // 配置風(fēng)暴控制的檢測時(shí)間間隔
(2)STP生成樹配置。
在全局下配置如下命令:
STP enable //全局下使能STP協(xié)議
將連接終端設(shè)備的交換機(jī)端口配置為邊緣端口,具體命令如下:
STP edged-port enable //設(shè)置為邊緣端口
STP BPDU-protection //使用BPDU保護(hù)功能,如邊緣端口收到BPDU報(bào)文,該端口將關(guān)閉,需手動(dòng)恢復(fù)
以上兩種方法各有其優(yōu)劣,風(fēng)暴控制方法所用協(xié)議本身的開銷較小,對(duì)交換機(jī)性能要求不高,但對(duì)于命令中min-rate和max-rate的設(shè)定值并沒有明確的規(guī)定,需根據(jù)運(yùn)維人員的經(jīng)驗(yàn)或者通過設(shè)置不同的值進(jìn)行測試來確定。STP生成樹協(xié)議將網(wǎng)絡(luò)中的交換設(shè)備依據(jù)優(yōu)先級(jí)確定成樹形結(jié)構(gòu),一旦發(fā)現(xiàn)環(huán)路,工作人員應(yīng)立刻斷掉相關(guān)端口,這樣可有效避免環(huán)路的產(chǎn)生,但STP協(xié)議需要?jiǎng)討B(tài)計(jì)算網(wǎng)絡(luò)中的根橋,協(xié)議開銷較大,尤其是網(wǎng)絡(luò)中的交換設(shè)備有所變動(dòng)時(shí),對(duì)交換機(jī)性能要求較高。
另外,為減少環(huán)路產(chǎn)生,終端用戶需要增強(qiáng)安全意識(shí),不隨意變動(dòng)網(wǎng)絡(luò)線路,并做好線路的標(biāo)識(shí),關(guān)閉不必要的端口。
網(wǎng)絡(luò)環(huán)路故障或其他廣播風(fēng)暴故障是局域網(wǎng)中最為常見的網(wǎng)絡(luò)故障之一,并且會(huì)對(duì)整個(gè)網(wǎng)絡(luò)產(chǎn)生巨大影響,甚至導(dǎo)致網(wǎng)絡(luò)癱瘓。本文通過一個(gè)故障實(shí)例闡述了網(wǎng)絡(luò)環(huán)路的故障現(xiàn)象、故障診斷、故障排查及解決措施。本文所采取的解決措施,可以有效預(yù)防并解決網(wǎng)絡(luò)環(huán)路和其他廣播風(fēng)暴導(dǎo)致的網(wǎng)絡(luò)故障。