一種防止由於地址老化時間不一致導致網絡中斷的方法
2023-06-18 12:47:56
專利名稱:一種防止由於地址老化時間不一致導致網絡中斷的方法
技術領域:
本發明涉及一種防止由於埠MAC(媒體訪問層地址)地址和ARP老化時間不一致導致網絡管理中斷的方法,尤其涉及的是一種通訊領域中網絡交換設備在級聯組網時解決由於埠MAC地址和ARP老化時間不一致導致網絡中斷的方法。
背景技術:
以下關於現有技術中的相關背景知識進行說明一、ARP緩存表和ARP老化時間ARP協議是「Address ResolutionProtocol」(地址解析協議)的縮寫,所謂「地址解析」就是主機在發送幀前將目標IP位址轉換成目標MAC地址的過程。ARP協議的基本功能就是通過目標設備的IP位址,查詢目標設備的MAC地址,以保證通信的順利進行。
在每臺安裝有TCP/IP協議的電腦裡都有一個ARP緩存表,表裡的IP位址與MAC地址是一一對應的。
ARP緩存表採用了老化機制,在一段時間內如果表中的某一項沒有使用,就會被刪除,這樣可以大大減少ARP緩存表的長度,並加快查詢速度。如果沒有老化機制,則在ARP緩存表中的表項會越來越多,而ARP緩存表的容量是有限的。這樣如果存在很多已經不處於激活狀態的項,會導致後來學到的項無法保存在該表中,影響系統的正常運行。另外,ARP緩存表中無用項太多也會影響查詢效率,因此一般的ARP老化時間為20分鐘。
二、埠MAC地址的學習和老化時間網絡設備中各埠具有自動學習MAC地址的功能,通過埠發送和接收的幀的源地址,包括源MAC地址、網絡設備埠號,存儲到MAC地址表中。
老化時間是一個影響網絡設備學習進程的參數,從一個地址記錄加入地址表以後開始計時,如果在老化時間內各埠未收到源地址為該MAC地址的幀,那麼,這些地址將從動態轉發地址表(即包括源MAC地址、目的MAC地址和它們相對應的網絡設備的埠號)中被刪除。該老化機制的形成和ARP緩存表老化機制的原因是相同的,都是為了能夠使系統在功能和性能上得到提升。
三、二層交換的「未知單播包轉發」功能當網絡設備從某個埠收到一個數據包,它讀取包頭中的目的MAC地址,並在MAC地址表中查找相應的埠;如果表中有與這目的MAC地址對應的埠,把數據包直接複製到這埠上;如果表中找不到相應的埠,則把數據包廣播到所有埠上,當目的機器對源機器回應時,網絡設備又可以學習一目的MAC地址與哪個埠對應,並在下次傳送數據時就不再需要對所有埠進行廣播了。這就是「未知單播包轉發(forward unknow)」功能。
該功能提高了網絡設備轉發數據包的能力,能夠盡最大可能的轉發數據包。但這個功能也帶來了一個問題,如果網絡設備所處的網絡中出現環路,則會導致數據包的「洪泛」,會造成網絡的阻塞和對網絡設備造成衝擊。因此在很多網絡設備中,該功能是被關閉的。
四、當埠MAC地址和ARP老化時間不同時,就會存在以下問題在一個區域網中,典型的組網拓撲中可能會存在多個網絡設備級聯的組網情況,如圖1所示。而在網絡設備中,ARP老化時間和埠MAC地址老化時間並不相同,通常ARP老化時間會大於埠MAC地址的老化時間。PC機上ARP老化時間也會長於網絡設備埠MAC地址老化時間。
由於ARP老化時間大於埠MAC地址老化時間,這樣便出現了一個問題當PC機要向網絡設備2發送一個單播包時,單播包中目的MAC地址填充的是網絡設備2的MAC地址,當該單播包發送到網絡設備1時,網絡設備1如果學習的網絡設備2的MAC地址老化了,並且網絡設備1又沒有打開「轉發未知單播包」功能,則會將該單播包丟棄,從而該單播包就不會到達網絡設備2。
這種情況的實際應用是在通訊業務提供者的網絡管理人員在對網絡設備進行管理時,在pc機運行網管軟體,此時網絡設備2是需要管理的網絡設備。如果出現了上述的原因,直接的體現就是網管軟體和網絡設備的連接中斷,無法管理該網絡設備。
由於ARP老化時間會長於埠MAC地址的老化時間,因此會導致上述的問題。
目前的解決方法是將網絡中的各種設備的ARP老化時間和埠MAC地址老化時間修改為相同值。但這種解決方法有以下幾個缺點如果延長埠MAC地址的老化時間和ARP老化時間相同,則會導致網絡設備交換性能的降低;而如果要把ARP老化時間減小到和埠MAC地址老化時間相同,則會導致網絡中地址解析協議請求包ARP Req廣播包太多,會影響整個網絡的性能。很多網絡設備並不允許把埠MAC地址老化時間設置太長時間;很多網絡設備或者網絡設備並不支持ARP老化時間的修改功能;或即使支持修改ARP老化時間,在網絡中網絡設備和計算機數量太多時,並且很多計算機是屬於客戶使用的計算機,也不能保證所有的網絡設備和計算機都能進行修改,保證一致。
正由於這種方法存在現有的缺點,因此需要考慮採取一種更容易實現的方法來解決這個問題。
發明內容
本發明的目的是為了解決目前組網中由於ARP地址老化時間和埠地址老化時間不一致時,導致網管連接中斷的問題,而提出的一種解決由於地址老化時間不一致導致網絡中斷的方法。
本發明的技術方案如下
一種解決由於地址老化時間不一致導致網絡中斷的方法,其包括步驟A、在網絡設備中增加一個功能模塊,周期性獲取該網絡設備中路由表中的所有下一跳網關的信息,並主動向這些下一跳網關發送地址解析協議請求包報文,這些報文中攜帶本網絡設備的MAC地址;B、所述地址解析協議請求包報文發送給和該網絡設備相連的其他網絡設備,以使其他網絡設備學習到本網絡設備的MAC地址,所述發送地址解析協議請求包報文的時間間隔短於該網絡設備埠MAC地址的老化時間。
所述的方法,其中,還具體包括步驟A1、獲取本網絡設備路由表中下一跳網關的地址列表;B1、判斷是否獲取到下一跳網關地址,如果沒有獲取到,則等待一預定時間後重複步驟A1;C1、如果獲取到下一跳網關地址,則按照順序對每一個地址進行下面的處理。
所述的方法,其中,所述步驟C1還包括C11、對下一跳網關的IP位址,創建地址解析協議請求包報文,目的IP位址填入該下一跳網關的IP位址;源IP位址和源MAC地址填入本系統的IP位址和MAC地址;目的MAC地址填入廣播MAC地址;C12、將該地址解析協議請求包報文在本網絡設備的物理埠發送到網絡上。
所述的方法,其中,所述等待一預定時間的選擇策略為預定時間×本系統中能夠容納的最多的下一跳網關個數<MAC地址老化時間。
本發明所提供的一種解決由於地址老化時間不一致導致網絡中斷的方法,由於採用能夠使得網絡設備避免和網管計算機連接中斷故障的方案,並且不修改ARP老化時間,也不修改埠MAC地址老化時間,僅僅定期發送ARP Req(地址解析協議請求)數據包,通過選擇合適的時間間隔,對網絡的性能,功能等幾乎沒有影響,並使得網絡設備在實際的組網應用中更加靈活,增加了網絡設備的適應性和靈活性,降低了網絡管理和故障處理的複雜性。
圖1為現有技術的網絡組網拓撲示意圖;圖2為本發明方法的處理流程圖。
具體實施例方式
以下結合附圖,將對本發明的各較佳實施例進行較為詳細的說明。
在本發明方法中,使用的是網絡設備路由表中包含的下一跳網關信息,以用來解決ARP老化時間和埠MAC地址老化時間不同時,導致的網管連接中斷的問題。
本發明方法須在網絡設備中增加一個功能模塊,以能夠周期性的獲取網絡設備中路由表中的所有下一跳網關的信息,並主動向這些下一跳網關發送ARP Req報文,這些報文中會攜帶本網絡設備的MAC地址,發送給和網絡設備相連的其他網絡設備,從而可以使得其他網絡設備學習到本網絡設備的MAC地址。如果發送ARP Req的時間間隔短於埠MAC地址老化時間,則能夠保證其他網絡設備不會老化本網絡設備的MAC地址,這樣就可以保證其他的網絡設備能夠把應該發送給本網絡設備的數據包正確的轉發給本網絡設備。
本發明方法的處理流程如圖2所示的,具體描述如下首先,獲取本網絡設備路由表中下一跳網關的地址列表。定期獲取是為了保證在網絡設備更新了路由表信息後,能夠採用新的信息。定期獲取還為了防止頻繁獲取下一跳信息導致對系統性能的影響。
其次,判斷是否獲取到下一跳網關地址如果沒有獲取到,則說明本系統中尚未配置下一跳信息,獲知動態路由協議尚未獲取到動態的路由信息,等待一段時間,例如5秒,再次重複前一步驟。等待一段時間的目的是,防止在系統沒有路由信息時,不停進行前一步驟,導致佔用太多系統資源的問題。
再次,如果獲取到下一跳網關地址,則按照順序對每一個地址進行下面的處理。
對下一跳網關的IP位址,創建ARP Req數據包,目的IP位址填入下一跳網關的IP位址;源IP位址和源MAC地址填入本系統的IP位址和MAC地址;目的MAC地址填入廣播MAC地址。
將ARP Req在本網絡設備適當的物理埠發送到網絡上,選擇適當的物理埠是網絡設備所固有的功能,也是網絡設備的基本功能,此不在本方法描述之列,已為現有技術所公知。而創建ARP Req數據包在所有支持TCP/IP協議棧的系統中也都有現成的函數可以調用,實現方法也不在本方法的描述之列。
等待一段時間等待一段時間的目的是為了在每次發送ARP Req消息之間能夠使系統處理其他的任務。也防止短時間大量發送ARPReq消息對網絡造成衝擊。該時間的選擇策略為時間(t)×本系統中能夠容納的最多的下一跳網關個數<MAC地址老化時間。一般系統的老化時間為120秒左右。因此,如果系統中容納的最大下一跳網關個數為20,則推薦的t為5秒。這樣的時間,可以保證每一個下一跳網關都能夠在最長100秒時間內收到本系統發送的ARP Req消息,從而更新這些設備的Mac地址表。
雖然上述描述了本發明方法的具體實施例,然而本領域的技術人員會理解,在不偏離本發明宗旨和範圍的前提下可以進行各種形式和細節的修改和改進,而所有這些修改和改進都應屬於本發明的專利保護範圍。
權利要求
1.一種解決由於地址老化時間不一致導致網絡中斷的方法,其包括步驟A、在網絡設備中增加一個功能模塊,周期性獲取該網絡設備中路由表中的所有下一跳網關的信息,並主動向這些下一跳網關發送地址解析協議請求包報文,這些報文中攜帶本網絡設備的媒體訪問層地址;B、所述地址解析協議請求包報文發送給和該網絡設備相連的其他網絡設備,以使其他網絡設備學習到本網絡設備的媒體訪問層地址,所述發送地址解析協議請求包報文的時間間隔短於該網絡設備埠媒體訪問層地址的老化時間。
2.根據權利要求1所述的方法,其特徵在於,還具體包括步驟A1、獲取本網絡設備路由表中下一跳網關的地址列表;B1、判斷是否獲取到下一跳網關地址,如果沒有獲取到,則等待一預定時間後重複步驟A1;C1、如果獲取到下一跳網關地址,則按照順序對每一個地址進行下面的處理。
3.根據權利要求2所述的方法,其特徵在於,所述步驟C1還包括C11、對下一跳網關的IP位址,創建地址解析協議請求包報文,目的IP位址填入該下一跳網關的IP位址;源IP位址和源媒體訪問層地址填入本系統的IP位址和媒體訪問層地址;目的媒體訪問層地址填入廣播媒體訪問層地址;C12、將該地址解析協議請求包報文在本網絡設備的物理埠發送到網絡上。
4.根據權利要求3所述的方法,其特徵在於,所述等待一預定時間的選擇策略為預定時間×本系統中能夠容納的最多的下一跳網關個數<媒體訪問層地址老化時間。
全文摘要
本發明公開了一種防止由於地址老化時間不一致導致網絡中斷的方法,其包括步驟在網絡設備中增加一個功能模塊,周期性獲取該網絡設備中路由表中的所有下一跳網關的信息,並主動向這些下一跳網關發送地址解析協議請求包報文,這些報文中攜帶本網絡設備的MAC地址;所述地址解析協議請求包報文發送給和該網絡設備相連的其他網絡設備,以使其他網絡設備學習到本網絡設備的MAC地址,所述發送地址解析協議請求包報文的時間間隔短於該網絡設備埠MAC地址的老化時間。本發明方法通過選擇合適的時間間隔,對網絡的性能,功能等幾乎沒有影響,並使得網絡設備在實際的組網應用中更加靈活,降低了網絡管理和故障處理的複雜性。
文檔編號H04L29/06GK1992672SQ20051012137
公開日2007年7月4日 申請日期2005年12月27日 優先權日2005年12月27日
發明者王峰 申請人:中興通訊股份有限公司