在局域網剛剛組建的一段時間內,網絡運行狀態往往都比較穩定,這是因為網絡設備都是新的,網絡應用也比較少;可是運行時間長了之後,局域網中出現的網絡故障就比較多了,例如Web站點不能浏覽了,物理連接掉線了,網絡連接速度變慢了,上網性能不穩定了等等。其中,一些網絡故障由於具有特別明顯的現象,排查、解決起來往往比較輕松;但是也有一些網絡故障卻非常奇怪,明明ping測試一切正常,可是網絡傳輸速度異常緩慢,對於這類特殊的故障現象,我們必須要多點出發、全面排查,才能定位故障原因、解決故障現象。這不,筆者曾經遭遇一則上網不穩定的故障現象,經過多點、全面地排查,竟然發現該故障是由於路由器內存容量不足引起的,由於這種故障因素很少出現,在排查該故障的過程中很容易多走彎路,現在本文就將該故障的排除過程還原出來,供各位朋友參考交流
案發現場 筆者單位的一個下屬公司,共包含技術部、工程部、業務部、銷售部這幾個部門,每個部門大約有20台左右的普通計算機,這些計算機全部通過各自部門的BayNet品牌的普通交換機連接到局域網的CISCO路由器中,每個部門都擁有自己獨立的工作子網,它們相互之間不能互相訪問,普通計算機只能在相同的工作子網中進行共享、交流;但是,單位的文件服務器、打印服務器、Web服務器等,都是直接連接到路由器端口上的,所有部門的計算機都可以直接訪問,並且它們還能通過路由器訪問Internet網絡。為了保證局域網網絡的運行安全,下屬公司的網絡管理員還在路由器與Internet網絡之間,架設了天融信硬件防火牆,來對整個單位的網絡訪問行為進行安全控制與監視。
平http://www.xsyzj.cn時,各個部門的普通計算機都能正常上網,並且這些計算機在各個部門的內網中,都能互相進行共享、交流訪問;同時,由於工作需要,各個部門的上網用戶幾乎每天都要訪問公司的Web服務器,從中查詢、下載公司的一些內部信息。可是,最近一段時間,網絡管理員發現各個部門的用戶在訪問Web服務器或Internet網絡時,經常會出現上網不穩定的現象,也就是說有時候上網速度很快,有的時候上網速度很慢,甚至還會出現一會兒能上網,一會兒不能上網的故障現象。
排查故障 由於這種故障現象存在於各個部門,網絡管理員估計這種現象多半與普通客戶端系統自身的設置沒有任何關系,那究竟有哪些因素會影響整個局域網的上網穩定性呢?網絡管理員對故障現象再次進行了琢磨分析,認為該故障發生時幾乎沒有什麼規律可遵循,上網有快有慢,網絡有時能上有時不能上,這種無規律的故障現象很有可能是局域網中的網絡病毒引起的,事實上許多由病毒造成的網絡故障就是表現得如此沒有規律。如果確認網絡病毒的確是造成上網不穩定故障因素的話,那麼網絡病毒很可能造成了網絡中某些重要通信端口數據流量的異常;依照這樣的分析,網絡管理員決定先用超級終端程序登錄進入局域網路由器後台系統,然後利用該系統自帶的掃描診斷功能,發現局域網中各個交換端口的數據流量並不是很大,這說明網絡病毒並沒有造成重要端口數據傳輸發生瓶頸現象。雖然如此,網絡管理員還是有點不放心,要求各個部門的工作人員,立即登錄到局域網中的網絡病毒防御服務器,安裝更新網絡殺毒軟件,並利用它對自己部門的計算機系統進行一次病毒查殺操作,可是這樣的努力沒有取得任何效果,看來局域網上網不穩定的故障現象與網絡病毒無關。
考慮到網絡管理員先前已經掃描過各個交換端口的流量情況,並沒有看到有異常情況,這說明局域網中並不存在重要數據端口瓶頸現象,也就是說上網不穩定故障現象與端口瓶頸因素也沒有關系。同時,重要交換端口的數據流量大小正常,也反映了局域網中不存在廣播風暴或者網絡環路現象,因為這些現象要是存在的話,我們應該能夠看到重要交換端口的輸出廣播包大小應該不斷增加才對,可事實卻沒有,這就意味著上網不穩定故障不是由網絡廣播風暴或網絡環路現象引起的。
在初步排除了端口瓶頸因素、網絡環路因素、廣播風暴因素以及網絡病毒因素後,網絡故障還是不能消除,這讓網絡管理員萬分的懊惱。以前提到上網不穩定故障,網絡管理員可能會下意識地認為是網絡連接不牢靠的因素,可是現在他怎麼也不會懷疑到網絡連接因素上,因為這種上網不穩定的故障幾乎在各個部門的工作子網中都會出現,如果真的是網絡連接不牢靠的話,那也不可能局域網中所有計算機都同時出現不牢靠現象吧。
有沒有可能是網絡設備自身性能不穩定,造成了上網不穩定現象呢?聯想到夏天的時候,一些設備由於散熱不好,造成自身工作性能下降,經常出現上網掉線或速度緩慢現象,為此網絡管理員推斷可能是局域網中的路由器或交換機過熱,造成自身工作性能不穩定。於是,網絡管理員立即來到公司機房,先是觀察了路由器、交換機的信號燈狀態,發現一切正常,之後用手觸摸這些設備的表面溫度時,也沒有覺察到有什麼異常現象。
在萬般無奈的情況下,網絡管理員決定登錄進入局域網的防火牆系統,查看其中的一些運行狀態信息,看看有沒有什麼值得懷疑的地方。讓他感到非常意外的事情出現了,網絡管理員看到局域網防火牆竟然記錄了許多IP地址為0.0.0.0主機的通訊痕跡,那0.0.0.0究竟是什麼樣的主機地址呢?經過上網搜索,網絡管理員發現該地址是Windows系統對所有未知IP的地址描述,包括網卡設備通過dhcp方式取得的地址,pppoe的IP地址,以及其它非本機指定的IP地址;此外,0.0.0.0地址也代表全零網絡,它能幫助路由器發送路由表中無法查詢的包。如果設置了全零網絡的路由,路由表中無法查詢的包都將送到全零網絡的路由中去。 通過上面的描述,網絡管理員認為該地址其實就是一個不存在的地址,那麼究竟是什麼因素讓外網不停地與局域網中一個根本不存在的主機進行通信呢?如果真的是外網與0.0.0.0地址不斷進行通信的話,那麼外網的數據包是如何進入到局域網中的呢,因為單位局域網中的防火牆已經被設置,阻止那些使用明顯虛假地址的主機進行通信的?
解決故障 經過進一步查看防火牆記錄,網絡管理員看到0.0.0.0地址沒有進行任何通信操作,難道它們真的被防火牆攔截了?會不會是局域網遭到了非法攻擊,攻擊包在進入內網之後,將其IP地址喬裝成0.0.0.0地址了呢?可事實情況是,那個IP地址為0.0.0.0的主機沒有進行任何通信操作,那麼非法攻擊包即使在嘗試攻擊內網,也沒有成功,如此一來它也不會造成上網不穩定的現象;為此,網絡管理員斷定不存在外網攻擊的事情,那個0.0.0.0地址肯定來自局域網內部,那麼這個不可能的IP地址究竟是怎麼產生的呢?再次上網咨詢相關信息,網絡管理員發現一些重要網絡設備的內存容量不夠時,可能會在通信過程中丟棄一些數據包信息,造成某些上網內容無法有效組合在一起,此時就容易產生一些0.0.0.0地址。
依照上述理論分析,網絡管理員推斷0.0.0.0地址很可能來自內網,並且該地址很可能是由於局域網中的交換機或路由器內存容量不夠引起的。由於上網不穩定故障在各個部門都存在,網絡管理員估計問題多半出在與個工作子網都有關的路由器設備上,於是這一次准備通過遠程連接方式登錄進入局域網路由器後台系統,在遠程登錄過程中,網絡管理員感覺到登錄速度明顯遲鈍,看來路由器設備真的出現問題了。之後,他使用Console控制線直接連接到路由器後台系統,查看其內存的使用狀態時,發現該設備的內存容量確實不足了,很明顯在上網高峰期間,路由器的內存容量就更顯不足了,如此一來路由器自然就無法正常轉發數據信息了,這也正是各個部門上網不穩定的原因。
找到了故障原因後,網絡管理員立即重新啟動了一次路由器系統,發現各個部門的上網狀態立即又恢復正常了,此時再次監控路由器的內存容量時,發現該內存占用率也在不斷變大,看來要真正解決問題,還得需要升級路由器設備,要不然過一段時間,又要重新啟動路由器系統了
上網不穩定禍起路由器內存容量不足