筆者是某單位大樓的一名網絡管理員,平時主要任務就是維護大樓局域網網絡的安全、穩定運行。最近一段時間,隔三差五的,大樓局域網網絡總會發生一些故障:有的時候某個工作子網能夠正常訪問Internet網絡,但另外某個工作子網卻不能正常上網訪問;在同一個工作子網中,有的工作站能夠正常上網,有的工作站卻不能訪問Internet網絡;甚至有的時候,單位大樓中的所有工作子網都不能訪問外部網絡。除了單位同事的抱怨,還經常被單位領導“請”去教訓一下,弄得筆者焦頭爛額的。

  故障接二連三發生

  以前單位大樓網絡偶爾也發生過有的工作站能上網、有的工作站不能上網的故障現象,遇到這種故障現象時,筆者曾經使用專業的數據抓包工具進行抓包分析,不過仔細分析之后,并沒有從中找到具體的故障發生根源,每次只是簡單地重新啟動一下大樓局域網的交換機設備以及防火墻設備,所有工作站的網絡訪問狀態就都能恢復正常了。不過如此頻繁地通過重新啟動交換機和防火墻,來解決網絡故障現象,也不是一個有效的辦法啊,畢竟經常頻繁地重新啟動類似交換機這樣的重要網絡設備,不但會降低大樓局域網網絡的運行穩定性,而且時間一長交換機之類的網絡設備使用壽命也會縮短。更為嚴重的情況是,即使有的時候重新啟動了交換機之類的網絡設備,沒有幾分鐘的時間,網絡故障又會再次發生了;很明顯,如果不從源頭上找到網絡故障根源的話,那么網絡故障現象將會接二連三地發生,那么單位大樓網絡的運行效率就會大大下降。

  初步排查故障現象

  單位大樓局域網的拓撲結構主要是一臺通過寬帶光纖與本地ISP直接相連的硬件防火墻,以及與硬件防火墻保持連接的核心路由交換機,其中核心路由交換機中劃分了70個VLAN.為了尋找網絡故障根源,筆者先是在局域網的任意一臺普通工作站中依次單擊“開始”/“運行”命令,在彈出的系統運行對話框中輸入“cmd”命令,單擊回車鍵后,將系統工作狀態切換到DOS命令行狀態,在該狀態的命令行提示符下輸入字符串命令“ping 10.176.1.2”(其中10.176.1.2是本地局域網網絡的網關地址),單擊回車鍵后,屏幕上返回了本地局域網網絡的網關地址能夠被正常Ping通的測試結果(如圖1所示);接著,筆者又在命令行提示符下輸入字符串命令“ping 10.176.1.3”(其中10.176.1.3是本地局域網網絡的防火墻地址),單擊回車鍵后,屏幕上同樣返回了本地局域網網絡的防火墻地址能夠被正常Ping通的測試結果。通過上面的測試,筆者認為大樓內網到網絡出口之間的網絡連接一切都很正常。

  為了檢驗防火墻到本地ISP之間的寬帶連接線路是否處于通暢狀態,筆者通過telnet命令遠程登錄到防火墻設備中,并在該設備的遠程登錄狀態下Ping了一下本地ISP的網關地址,測試結果發現本地ISP的網關地址也能被正常Ping通,這說明單位大樓網絡能夠正常訪問到本地ISP.對于上面的測試結果筆者百思不得其解,本地局域網的網關地址能夠被正常Ping通,本地網絡到本地ISP之間的網絡連接也是通暢的,但偏偏局域網中的某些工作站就不能上網訪問,難道問題出在局域網工作站身上?但轉念一想,還是不太可能,如果網絡不出問題的話,最多只有一臺或幾臺工作站不能上網,但現在有的時候會出現某一個工作子網工作站都不能上網的故障現象,這說明網絡肯定是有問題的!經過仔細分析故障現象,以及對比測試結果,筆者初步認為這種故障現象很可能是由網絡中的ARP病毒造成的;因為一旦局域網網絡感染了ARP病毒時,局域網工作站在上網訪問時會將上網請求信息全部轉發到虛假的網關設備上,最終會造成工作站都不能上網的故障現象。

  深入解決故障現象

  為了確認ARP病毒是不是最終的故障根源,筆者在局域網的一臺普通工作站中打開MS-DOS窗口,在該窗口的命令行提示符下輸入“arp -a”字符串命令,單擊回車鍵后,筆者發現本地網關設備的物理地址變成了000d-87f8-36d3,這個地址與核心路由交換機上設置的網關真實物理地址完全不同,這說明局域網網絡中果然存在ARP病毒。

  那么局域網中究竟是哪一臺工作站感染了ARP病毒呢?由于單位大樓局域網網絡包含10個VLAN,每一個VLAN下面連接的計算機數量也是不斷處于動態變化之中,因此單純依靠傳統方法很難快速找到感染了ARP病毒的目標工作站系統。想到在組建大樓局域網網絡時,工作人員曾經創建了VLAN數據對照表,從該對照表中網絡管理員能夠快速查詢到每一個VLAN中包含了哪些網絡連接端口,每一個網絡連接端口位于單位的哪一個房間。為此,筆者打算先找出究竟是哪些VLAN中存在ARP病毒,之后根據查找出來的虛假網關物理地址信息,尋找到感染了ARP病毒的工作站來自特定工作站的哪個端口,最后再查找對照表找到故障工作站所在的房間號碼,最后電話聯系房間主人隔離殺毒。

  由于筆者單位使用的交換機支持診斷功能,于是筆者打算利用該功能尋找局域網中的ARP病毒。筆者先是利用超級終端程序連接到單位核心交換機上,并進入特權模式;在特權模式命令行狀態下,輸入字符串命令“dis dia”(顯示診斷信息),單擊回車鍵后,系統詢問是否要進行診斷操作,為了能夠查看到所有的診斷信息,筆者在進行回答之前,先依次單擊超級終端界面中的“捕捉”/“捕捉到文本”命令,再設置好診斷信息保存的路徑以及文件名稱,最后單擊“y”(如圖2所示),開始進行診斷檢查,診斷檢查的結果會被自動捕捉保存到指定的文本文件中。

  診斷結束后,筆者立即打開指定的文本文件,從中果然看到VLAN61中的網關設備物理地址變成了000d-87f8-36d3.之后,筆者使用telnet命令登錄到VLAN61所在的交換機中,并在命令行提示符下輸入“dis mac”字符串命令,單擊回車鍵后,筆者看到了連接到VLAN61中的所有工作站網卡物理地址,從中筆者發現000d-87f8-36d3地址所對應的工作站連接在VLAN61的e0/9端口上(如圖3所示);為了防止這臺感染了ARP病毒的工作站繼續影響網絡的正常訪問,筆者立即在對應交換機的后臺管理界面,依次執行字符串命令“inter e0/9”(進入端口修改模式狀態)、“shutdown”(關閉端口),將這臺感染了ARP病毒的工作站從大樓網絡中隔離開來。最后,筆者查看單位的VLAN數據對照表,根據VLAN號碼、端口號碼等信息,尋找到故障工作站是四樓文印室的,打電話聯系他們,要求他們使用最新版本的殺毒軟件進行殺毒操作,至此ARP病毒終于被揪出來了。