專利名稱:分布式設備中地址解析協議數據同步的方法
技術領域:
本發明涉及數據同步技術領域,特別是一種分布式設備中地址解析協議(ARP)數據同步的方法。
背景技術:
目前,隨著網絡技術的迅速發展,用戶對網絡帶寬等性能提出了越來越高的要求。為了滿足網絡接入設備的性能需求,除了提高設備的硬件性能之外,還可以改善設備的處理流程,因此分布式處理技術成為了滿足性能需求的熱點技術。
為了實現在分布式設備上的數據轉發,需要在分布式設備上存在相應的路由信息。ARP作為直接主機路由,是數據轉發不可缺少的協議。
參照圖1,分布式設備一般由主控模塊和多個分布式模塊組成。一般來說,主控模塊的中央處理器(CPU)、內存等硬件資源比分布式模塊高,所以通常由主控模塊處理協議報文,由分布式模塊負責轉發報文。
在分布式設備中,為了減輕主控模塊的負擔,將ARP等部分協議放到分布式模塊中處理。當分布式模塊學習到ARP時,將產生的路由表項通過同步消息同步給主控模塊和其它的分布式模塊,以保證ARP數據全局一致。在實際的應用中,可能出現丟失同步消息的情況或者軟件添加ARP表項失敗的情況,從而造成主控模塊和分布式模塊中的ARP數據不一致。
現有技術的一種解決辦法是心跳檢測機制。心跳檢測機制是以主控模塊上的數據為準,通過主控模塊定期輪詢分布式模塊上的數據來檢查該分布式模塊的ARP數據是否和主控模塊一致,如果出現不一致,則將主控模塊上的ARP數據同步給分布式模塊,從而期望主控模塊和分布式模塊上的ARP數據一致。
但是,主控模塊上的ARP數據是從各個分布式模塊上獲得的,在主控模塊輪詢檢查的過程中,可能會出現其他的分布式模塊發生ARP的學習、老化、刪除等事件,而這些事件依靠模塊之間的消息通知給主控模塊,主控模塊隨后才能感知這些事件,但是已經先將主控模塊上的ARP數據同步給分布式模塊了。所以,使用心跳檢測機制并不準確,還容易出錯。
現有技術中的另一種方案是定期同步技術。定期同步技術是主控模塊以自己的ARP數據為準,定期向分布式模塊同步主控模塊上的ARP數據,以期望主控模塊和分布式模塊上的ARP數據一致。
定期同步技術雖然克服了心跳檢測技術的缺點,但是,主控模塊定期同步自身的ARP數據到分布式模塊是很浪費資源的,而且由于是定期同步,還不能實時保證主控模塊和分布式模塊上的ARP數據一致。不管是心跳檢測技術還是定期同步技術,都不能保證分布式設備的ARP數據在轉發報文時是一致的,從而會引起分布式設備不能轉發報文的問題。
發明內容
有鑒于此,本發明提出了一種分布式設備中ARP數據同步的方法,用以保證主控模塊和分布式模塊中的ARP數據一致。
根據上述目的,本發明提供了一種分布式設備中ARP數據同步的方法,所述分布式設備包括主控模塊和分布式模塊,該方法包括A.分布式模塊將自身不能路由的報文上報給主控模塊;B.主控模塊根據所述報文查找ARP表,如果查找到相關ARP表項,則向分布式模塊同步ARP數據。
優選地,步驟B中進一步包括主控模塊根據查找到的ARP表項轉發所述報文的步驟。
優選地,步驟B中進一步包括主控模塊在沒有查找到相關ARP表項時,發送ARP請求,在得到回應后獲得相關ARP表項,保存該ARP表項并向分布式模塊同步ARP數據。
在上述技術方案中,步驟B中進一步包括主控模塊根據所獲得的ARP表項轉發所述報文的步驟。
步驟B之前進一步包括B0.主控模塊根據所述報文查找路由表,并在查找到相關表項時,執行步驟B。
可選地,步驟B0中進一步包括主控模塊在沒有查找到相關表項時,丟棄所述報文。
從上述方案中可以看出,由于本發明將分布式模塊不能轉發的報文上報給主控模塊,主控模塊查找到相關ARP時,向分布式模塊同步自身的ARP數據,從而保證了分布式設備中ARP數據的全局一致性。另外,由于本發明是根據報文轉發的情況確定主控模塊和分布式模塊的ARP數據是否一致,并在不一致的情況下同步ARP數據,因此可以避免現有技術中由于同步消息丟失或者軟件添加ARP表項失敗引起的同步失敗的問題,使得本發明的同步比較準確,并且根據轉發報文的需要隨時同步ARP數據,能夠實時地保證ARP數據的全局一致性。并且,本發明利用分布式模塊不能轉發的報文作為數據同步的判斷條件,進一步能夠避免由于分布式設備中ARP數據不一致而不能轉發報文的問題。另外,本發明不需要定期同步ARP數據,因此本發明還具有占用資源少的優點。
圖1為分布式設備的結構示意圖。
圖2為本發明實施例的流程示意圖。
具體實施例方式
為使本發明的目的、技術方案和優點更加清楚,以下舉實施例對本發明進一步詳細說明。
本發明的核心思想是,拋棄傳統的數據同步方式,將進行數據同步的條件放在了不能路由的報文上,即分布式模塊將不能轉發的數據報文上報給主控模塊,再由主控模塊根據情況進行ARP數據的同步,從而解決ARP數據全局不一致的問題,保證分布式設備中ARP數據的一致性,并且能夠解決分布式設備中由于ARP數據不一致而不能轉發數據報文的問題。
圖2為本發明實施例的流程示意圖。參見圖2,本發明實施例的流程包括以下步驟步驟101,分布式模塊將自身不能路由的報文上報給主控模塊。
分布式模塊不能路由報文,與本發明相關的原因通常有如下兩種1)該分布式模塊上沒有對應的ARP表項,主控模塊和其它分布式模塊都沒有對應的ARP表項;2)該分布式模塊上沒有對應的ARP表項,而主控模塊上和其它分布式模塊上有的存在對應的ARP表項,有的不存在對應的ARP表項,即主控模塊和分布式模塊上的ARP數據不一致。第一種情況可以采用分布式設備正常的ARP學習過程來解決,由主控模塊主動發出ARP請求進行ARP學習過程。對于第二種情況,如果主控模塊上存在對應的ARP表項,則將主控模塊上的ARP數據向各分布式模塊同步,從而保證了分布式設備中ARP數據的全局一致性;如果主控模塊上不存在對應的ARP表項,則發出ARP請求,進行ARP學習過程。
步驟102,主控模塊收到分布式模塊不能路由的報文后,根據該報文的目的地址查找主控模塊上的路由表,如果查找到對應的路由,則執行步驟103及其后續步驟;否則執行步驟104,即丟棄該報文,并結束流程。
步驟103,主控模塊根據該報文路由中的下一跳地址查找主控模塊上的ARP表,如果查找到對應的ARP表項,則執行步驟105,否則執行步驟106。
步驟105,主控模塊向各分布式模塊同步ARP數據,以實現ARP數據的全局一致性,并根據所查找到ARP表項轉發報文,流程結束。
步驟106,主控模塊執行ARP學習過程,即主控模塊發出ARP請求,主控模塊得到其它設備的回應后,獲得ARP表項并保存所獲得的ARP表項,然后向各分布式模塊同步ARP數據,以實現ARP數據的全局一致性,并根據所獲得的ARP表項轉發報文。
以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。
權利要求
1.一種分布式設備中地址解析協議ARP數據同步的方法,所述分布式設備包括主控模塊和分布式模塊,其特征在于,該方法包括A.分布式模塊將自身不能路由的報文上報給主控模塊;B.主控模塊根據所述報文查找ARP表,如果查找到相關ARP表項,則向分布式模塊同步ARP數據。
2.根據權利要求1所述的方法,其特征在于,步驟B中進一步包括主控模塊根據查找到的ARP表項轉發所述報文的步驟。
3.根據權利要求1所述的方法,其特征在于,步驟B中進一步包括主控模塊在沒有查找到相關ARP表項時,發送ARP請求,在得到回應后獲得相關ARP表項,保存該ARP表項并向分布式模塊同步ARP數據。
4.根據權利要求3所述的方法,其特征在于,步驟B中進一步包括主控模塊根據所獲得的ARP表項轉發所述報文的步驟。
5.根據權利要求1所述的方法,其特征在于,步驟B之前進一步包括B0.主控模塊根據所述報文查找路由表,并在查找到相關表項時,執行步驟B。
6.根據權利要求5所述的方法,其特征在于,步驟B0中進一步包括主控模塊在沒有查找到相關表項時,丟棄所述報文。
全文摘要
本發明公開了一種分布式設備中ARP數據同步的方法,所述分布式設備包括主控模塊和分布式模塊,該方法包括A.分布式模塊將自身不能路由的報文上報給主控模塊;B.主控模塊根據所述報文查找ARP表,如果查找到相關ARP表項,則向分布式模塊同步ARP數據。本發明保證了分布式設備中ARP數據的全局一致性。另外,由于本發明是根據報文轉發的情況確定主控模塊和分布式模塊的ARP數據是否一致,并在不一致的情況下同步ARP數據,因此可以避免現有技術中由于同步消息丟失或者軟件添加ARP表項失敗引起的同步失敗的問題,使得本發明的同步比較準確,并且根據轉發報文的需要隨時同步ARP數據,能夠實時地保證ARP數據的全局一致性。
文檔編號H04L12/56GK1874310SQ20061008373
公開日2006年12月6日 申請日期2006年6月1日 優先權日2006年6月1日
發明者李海軍, 孫強, 馬國強, 杜澎 申請人:杭州華為三康技術有限公司