如果路由器的多個接口同時丟失報文,那時很讓人頭疼的問題。路由器要實現(xiàn)數(shù)據(jù)交換過程就需要在不同的接口之間傳送報文。接收到報文對于路由交換有這至關重要的作用。如路由器在以太網接口接收到報文后,首先會從報文中獲取MAC頭信息,然后檢查網絡層報文頭。路由器將會檢查路由表是否有與報文的目的地址匹配的表項。如果路由表中有匹配的表項的話,則會進行后續(xù)的工作。所以說,路由器接口能接收到報文是其工作的基礎。如果報文丟失的話,那么將極大的影響到路由交換功能,最終導致數(shù)據(jù)的丟失。
造成報文丟失的原因有很多,不過最主要的可能是路由器內存不足或者CPU過載所造成的。要解決這個問題,首先需要判斷問題的原因。下面筆者介紹兩種簡單的方法來幫助網絡管理員判斷路由器報文丟失的幕后黑手到底是誰。
一、判斷是否是內存碎片問題造成報文丟失
內存碎片是指路由器內存被劃分了許多不連續(xù)的塊。他將導致內存利用率降低,嚴重時可能會產生內存錯誤,影響路由器的性能。它也會導致路由器報文丟失的問題。其實不僅路由器的內存存在碎片問題,普通的硬盤也存在這種問題。如微軟操作系統(tǒng)中就自帶一個碎片整理工具,可以保障用戶來整理硬盤中的碎片,以提高硬盤的存儲容量以及存儲性能。這里指的內存碎片其實跟硬盤碎片是類似的。
那該如何判斷路由器的內存是否存在碎片呢?這里主要借助的是思科路由器自帶的SHOW MEMORY命令。這個命令會顯示當前內存的相關信息。如執(zhí)行這條命令后,會顯示當前可用內存(Free)與最大可用快(Largest)的數(shù)值。網絡管理員把這兩個值進行比較,就可以判斷碎片對路由器性能的影響。這主要是把路由器的可用內存與最大可用快的大小進行比較。如果路由器的可用內存與最大的可用快大小比較接近時,表示雖然路由器存在碎片但是影響不大。但是若最大可用的塊很小,如只有最大可以用內存的幾十分之一,那么就說明路由器內存碎片問題比較嚴重了。
如路由器的可用內存為20M, 而最大可用塊的大小為15M的話,則表示路由器內存中是有一定的碎塊,但是這點碎塊不影響路由器的正常運行。如果可用內存為20M,而最大可用塊為0.8M的話,則說明路由器內存中存在比較多的碎塊。連續(xù)連續(xù)內存中沒有足夠大的可用快,這有可能導致嚴重的內存分配問題,如導致一個或者多個接口間歇性的丟失報文。在路由器內存中,允許存在一定的內存碎片。到現(xiàn)在為止,還沒有哪一種內存管理技術說可以完全避免產生內存碎片。只是這個碎片要保證一個合理的值。具體這個值是多少,也沒有人可以給出一個具體的標準。不過根據(jù)筆者的經驗,最好能夠保證可用塊的大小在可用內存的二分之一到三分之一之間。當然可用塊大小跟可用內存越接近越好。
其實這個可用塊與可用內存之間的關系我們可以利用柜子中的抽屜來表示。如一個柜子可用容量雖然比較大,但是里面劃分了大小不等的1000多個格子。每個格子的空間容量有限。當有大的數(shù)據(jù)需要存儲時,整的容量是夠的,但是小格子的容量不夠。此時,就會發(fā)生報文丟失的問題。此時看起來內存足夠用,可是此時內存中已經沒有連續(xù)的空間用來存儲數(shù)據(jù)。所以這些看起來比較大的可用內存,其實保存不了多少數(shù)據(jù)。
遇到這種情況該如何解決呢?一個最簡單的方法就是重新啟動路由器。路由器重新啟動時,路由器IOS系統(tǒng)會重新分配內存和緩存空間。重新啟動后,網絡管理員再查看一下內存分配的過程。通常情況下,過多的碎片是由于路由器長時間超負荷運行所造成的。只需要重新啟動一下,就可以解決內存碎片的問題。
二、判斷CPU是否過載
如果確定路由器內存中沒有過多的碎片,則網絡管理員就要考慮是否是因為CPU過載所導致報文丟失的。要查看CPU的使用率,可以利用SHOW PROCESS命令來查看路由器的CPU使用情況。
通過這條命令,可以顯示出路由器CPU最近5秒、最近1分鐘、以及最近5分鐘的CPU使用率。由于CPU的使用率一直在變化,故網絡管理員主要關系的是5分鐘之內的CPU平均使用率。通常情況下,如果5分鐘之內的CPU使用率能夠保持在60%以下,最多不能夠超過70%,則說明路由器的CPU工作還是正常的。但是如果其CPU使用率達到了70%以上,則說明路由器的CPU使用過度了。此時可以說明路由器接口報文丟失很可能是CPU過載所造成的。不過網絡管理員不能夠憑一次分析就判斷路由器的CPU超載了。如企業(yè)有會議視頻應用的話,則在開啟這個視頻期間路由器CPU的使用率往往會居高不下。故網絡管理員要在不同的時段多次測試。多次測試的結果如果表明最近5分鐘的CPU使用率都達到70%以上的話,那路由器CPU過載就確認無疑了。
如果確認路由器CPU過載,那么網絡管員需要確認到底是哪一個進程占用了大量的內存。只有把這個罪魁禍首找出來,網絡管理員才能夠對癥下藥,解決問題。如網絡管理員經過查詢發(fā)現(xiàn)是SRB BACKGROUND進程占用了大量的CPU,則就說明發(fā)生了網橋風暴。故要解決CPU過載問題,網絡管理員首先要找到是誰在消耗CPU的資源。
要達到這個目的,網絡管理員可以通過SHOW PROCESS MEMORY命令查詢路由器的內存分配信息。通過執(zhí)行這個命令,系統(tǒng)會反饋當前路由器內存的可用量、以使用量等信息。還會反映每個進程所占用的內存空間。如果某個進程所占用的內存與上面顯示的所占用的CPU都很大的話,則說明這個進程很有問題。網絡管理員要逐一排查這些可以的進程。路由器CPU過載往往是有這些進程所造成的。如有時候網絡管理員可以強制把某些耗用CPU資源大的進程關閉掉,然后測試一下報文丟失的情況是否有所改善。如果有明顯改善的話,那么就找到問題的原因了。此時網絡管理員就可以對癥下藥,分析一下到底這個進程多對應的服務是什么,為什么會占用這么多的CPU資源與內存資源。如果可以的話,可以先把這個服務關閉掉,以減少報文丟失現(xiàn)象,保障其他服務的正常運作。等到查明問題的原因,修復好后再重新啟動。
不同類型的協(xié)議適用不同類型的交換。在思科路由器中采用了很多交換技術,如過程交換、快速交換、自治交換、硅交換等等,但是他們都依賴于報文。如果報文丟失的話,再怎么高級的交換技術都將不起作用。所以說,如何防止報文丟失就至關重要。當網絡管理員發(fā)現(xiàn)有報文丟失的情況,馬上要采取以上等措施找到報文丟失發(fā)生的原因,并積極采取措施盡早恢復故障。
關鍵詞標簽:路由器
相關閱讀
熱門文章 路由器地址大全-各品牌路由設置地址 各品牌的ADSL與路由器出廠默認IP、帳號、密碼 Nslookup命令詳解-域名DNS診斷 站長裝備:十大網站管理員服務器工具軟件
人氣排行 各品牌的ADSL與路由器出廠默認IP、帳號、密碼 路由器地址大全-各品牌路由設置地址 騰達路由器怎么設置?騰達路由器設置教程 ADSL雙線負載均衡設置詳細圖文教程 路由表說明(詳解route print) Nslookup命令詳解-域名DNS診斷 網管員實際工作的一天 網管必會!了解交換機控制端口流量