專利名稱:信息轉發方法及網關的制作方法
技術領域:
本發明涉及到通信技術領域,特別涉及到一種信息轉發方法及網關。
背景技術:
隨著互聯網用戶的不斷增加,原有的互聯網協議第4版(Internet Protocon v4, IPv4)的地址資源逐漸減少,為滿足未來發展,IPv6將逐漸普及并替代IPv4。鄰居發現協議 是互聯網協議第6版(Internet Protocon v6, IPv6)協議的一個基本的組成部分,它實現 了 IPv4 中的地址解析協議(Address Resolution Protocol,ARP)、控制報文協議(Internet Control Message Protocol, I CMP)中的路由器發現部分、重定向協議的所有功能,并具有 鄰居不可達檢測機制。鄰居發現協議采用5種類型的IPv6控制信息報文(ICMPv6)來實現鄰居發現協議 的各種功能。這5種類型消息如下(1)、路由器請求(Router Solicitation)當接口工作時,主機發送路由器請求消 息,要求路由器立即產生路由器通告消息,而不必等待下一個預定時間。(2)、路由器通告(Router Advertisement)路由器周期性地通告它的存在以及 配置的鏈路和網絡參數,或者對路由器請求消息作出響應。路由器通告消息包含在連接 (on-link)確定、地址配置的前綴和跳數限制值等。(3)、鄰居請求(Neighbor Solicitation)節點發送鄰居請求消息來請求鄰居的 鏈路層地址,以驗證它先前所獲得并保存在緩存中的鄰居鏈路層地址的可達性,或者驗證 自身的地址在本地鏈路上是否是惟一的。(4)、鄰居通告(Neighbor Advertisement)鄰居請求消息的響應。節點也可以發 送非請求鄰居通告來指示鏈路層地址的變化。(5)、重定向(Redirect)路由器通過重定向消息通知主機。對于特定的目的地 址,如果不是最佳的路由,則通知主機到達目的地的最佳下一跳。在虛擬局域網(VirtualBridged Local Area Networks, VLAN)技術的應用 場景中,100個用戶群可以使用100個不同的VLAN進行二層隔離,該100個VLAN聚 合成一個超級VLAN。所有用戶共享一個IPv4網關10.85.4. 1和IPv6默認路由器 2001:lda8:2C10:1001::l。這樣同一用戶群內部可以直接通信,而不同用戶群之間的通信 必須經過網關轉發,需要開啟ARP代理和ND代理功能。當用戶群1中的終端需要與其它群的用戶通信時,終端發出的ARP/ND報文被網關 接收,然后網關需要向其他的99個子VLAN發送ARP/ND報文來獲取目的終端的鏈路由層地 址;另一種情況,當外部網絡的一個終端的報文來到網關設備時,如果目的地址的鏈路層地 址還沒有解析,網關必須向100個子VLAN發送ARP/鄰居發現協議(Neighbor Discovery Protocol, ND)報文來獲取目的IP的鏈路層地址。在具體實施過程中,本發明的發明人發現,在一個通信量較大的網絡中,網關需要 向其他所有VLAN發送報文,對網關的中央處理器(Central Pocessing Unit, CPU)資源的利用是巨大的。如果某個用戶群中的一個用戶已經離線,而遠程的點對點業務應用會不停 探測該地址是否可達,網關設備會不斷向各個VLAN發送ARP/ND報文,網關設備的CPU承受 很大壓力。
發明內容
本發明的主要目的為提供一種可以有效減小網關CPU壓力的信息轉發方法及網關。本發明提出一種信息轉發方法,包括獲取第一終端向第二終端發送的信息;解析所述信息獲取第二終端地址信息;根據所述第二終端地址信息查詢預置端口地址緩存表中對應的局域網端口 ;根據所述局域網端口轉發所述信息。進一步,所述獲取第一終端向第二終端發送的信息前包括獲取第一終端首次向第二終端發送的信息;解析所述信息;將解析后的信息轉發到所有局域網端口 ;獲取第二終端返回的響應信息;解析所述響應信息,獲取所述第二終端所屬局域網的端口 ;將所述第二終端與所述局域網的端口對應記錄入端口地址緩存表。進一步,所述根據第二終端地址信息查詢預置端口地址緩存表中對應的局域網端 口后包括當根據第二終端地址信息未查詢預置端口地址緩存表中對應的局域網端口時,向 所有局域網端口轉發信息。進一步,所述當根據第二終端地址信息未查詢預置端口地址緩存表中對應的局域 網端口時,向所有局域網端口轉發信息后包括獲取第二終端返回的響應信息;解析所述響應信息,獲取所述第二終端所屬局域網的端口 ;將所述第二終端與所述局域網的端口對應記錄入端口地址緩存表。進一步,所述根據所述局域網端口轉發所述信息后包括預定時間內未收到響應信息時,開啟計時器;當所述計時器超時前,停止轉發向第二終端的信息。本發明還提出一種網關,包括信息獲取模塊,用于獲取第一終端向第二終端發送的信息;解析模塊,用于解析所述信息獲取第二終端地址信息;查找模塊,用于根據所述第二終端地址信息查詢預置端口地址緩存表中對應的局 域網端口 ;發送模塊,用于根據所述局域網端口轉發所述信息。進一步,所述信息獲取模塊還用于獲取第一終端首次向第二終端發送的信息;解析模塊還用于解析所述信息;
發送模塊還用于將解析后的信息轉發到所有局域網端口 ;所述網關還包括第一接收模塊,用于獲取第二終端返回的響應信息;第一響應信息解析模塊,用于解析所述響應信息,獲取所述第二終端所屬局域網 的端口 ;第一記錄模塊,用于將所述第二終端與所述局域網的端口對應記錄入端口地址緩 存表。進一步,所述發送模塊還用于當根據第二終端地址信息未查詢預置端口地址緩存 表中對應的局域網端口時,向所有局域網端口轉發信息。進一步,所述網關還包括第二接收模塊,用于獲取第二終端返回的響應信息;第二響應信息解析模塊,用于解析所述響應信息,獲取所述第二終端所屬局域網 的端口 ;第二記錄模塊,用于將所述第二終端與所述局域網的端口對應記錄入端口地址緩 存表。進一步,所述網關還包括計時模塊,用于預定時間內未收到響應信息時,開啟計時器;所述發送模塊還用于當所述計時器超時前,停止轉發向第二終端的信息。本發明通過在IPv6網關設備上學習、記錄、并維護一個IPv6用戶地址和其子VLAN 的IPv6地址池;網關在請求地址池中IPv6地址的鏈路層地址時,只向相應的子VLAN上發 送ND報文,從而有效減輕網關設備的CPU負荷。
圖1為本發明一種信息轉發方法一實施例的流程圖;圖2為本發明一種信息轉發方法另一具體實施例的流程圖;圖3為本發明一種網關一實施例的結構示意圖。本發明目的的實現、功能特點及優點將結合實施例,參照附圖做進一步說明。
具體實施例方式應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。參照圖1,為本發明一種信息轉發方法一實施例的流程圖;本發明實施例中根據鄰居發現協議只需要在有限的時間內發起基于全子VLAN上 的鄰居地址解析,大部分情況下,鄰居請求報文只需要在指定的VLAN發送。本發明實施例需要根據鄰居緩存表,如下表所示 表 1本發明實施例預置的端口地址緩存表記錄了某一個用戶子VLAN上的所有用戶地 址信息,根據此信息進行有的放矢的鄰居地址解析,可有效減輕網關設備CPU處理負擔 ’另 外,該端口地址緩存表還記錄了近期解析失敗的用戶信息,通過該信息可以抑制網關向一 些當前并不可達的目標主機發起鄰居地址解析,抵制時間可以根據不同的網絡進行設置, 對于鄰居發現攻擊的情況可以設置為無限長。本發明實施例提出的端口地址緩存表如下表 所示 表 2步驟S101、獲取第一終端向第二終端發送的信息;在本發明實施例中一第一終端和第二終端不屬于同一 VLAN為例進行說明。步驟S102、網關解析信息獲取第二終端地址信息;網關解析第一終端發送的信息,獲取目的終端即第二終端的地址信息。步驟S103、網關查詢預置端口地址緩存表;網關根據第二終端地址信息查詢預置端口地址緩存表中對應的局域網端口。具體 的網關解析信息得到第二終端地址信息后,查詢預置的端口地址緩存表,試圖獲取第二終 端所屬VLAN端口信息。步驟S104、網關根據局域網端口轉發信息。當網關在預置端口地址緩存表中查詢到第二終端所屬VLAN的端口后,網關將只 向端口轉發信息。進一步的,當網關未能在端口地址緩存表中查詢到第二終端所屬VLAN端口時或 步驟S104后網關未收到第二終端返回的響應信息時,采用如下步驟步驟A、網關向下層所有VLAN轉發信息;步驟B、第二終端在線且接收到信息后向網關返回一響應信息;步驟C、網關解析響應信息,獲取第二終端所屬VLAN的端口 ;步驟D、網關將第二終端與局域網的端口對應記錄入端口地址緩存表。
當網關第一次向第二終端發送信息時或第二終端漂移到其他VLAN時,通過步驟 A-步驟D可以根據第二終端的響應信息獲知第二終端所屬的VLAN端口,并將第二終端與所 屬VLAN端口對應關系記錄如端口地址緩存表;當下次有信息需要轉發到該第二終端時,網 關可以采用步驟SlOl-步驟S104進行轉發,以降低網關CPU功耗。更進一步的,當第二終端離線時,即步驟A后網關在預設時間段內未能接收到第 二終端返回的響應信息,采用如下步驟步驟E、網關在預設時間段內未接收到第二終端返回的響應信息,開啟計時器;步驟F、當計時器超時前,停止轉發向第二終端的信息。當第二終端離線時,第一終端可能會不斷發送指向第二終端的信息,未避免在信 息不能送達的時候占用網關CPU資源,網關開啟一個計時器,在計時器超時前,所有指向第 二終端的信息均不予轉發。本發明通過在IPv6網關設備上學習、記錄、并維護一個IPv6用戶地址和其子VLAN 的IPv6地址池;網關在請求地址池中IPv6地址的鏈路層地址時,只向相應的子VLAN上發 送ND報文,從而有效減輕網關設備的CPU負荷。參照圖2,為本發明一種信息轉發方法另一具體實施例的流程圖;步驟201 網關接收報文;網關收到報文,或者IPv6在轉發報文時,查找鄰居緩存失敗,需要對目標IPv6地 址進行鄰居地址解析,交步驟202進一步處理;步驟202 判斷報文是輸出還是輸入;根據網關內置鄰居發現擴展模塊的處理,判斷所述報文是鄰居通告報文輸入還是 鄰居請求報文輸出,如果是鄰居通告報文輸入,即針對某個目標IPv6地址的解析,對方回 復了鄰居通告報文,需要進行地址池學習,繼續步驟203;如果是鄰居請求報文輸出,網關 需要對鄰居地址進行解析,繼續步驟211 ;步驟203 解析鄰居通告報文;對鄰居通告報文進行解析,獲取該報文的目標IPv6地址,并根據該報文的TAG信 息,獲取該鄰居通告報文的接收VLAN端口信息,繼續步驟204。步驟204 添加端口信息到端口地址緩存表;把鄰居通告報文的接收VLAN可用地址信息和相應子VLAN信息添加到端口地址緩 存表中。步驟211 查找端口地址緩存表;在鄰居請求報文輸出的過程,需要首先決定是否發送報文和發送的VLAN范圍,需 要首先調用端口地址緩存表獲取相關的信息,繼續步驟212。步驟212 判斷地址是否存在;根據端口地址緩存表查找的結果進行判斷,如果該目標地址查找失敗,則直接進 行步驟213 ;如果該目標地址查找成功,則進行步驟221。步驟213 基于全子VLAN轉發;目標地址在端口地址緩存表中查找失敗,說明該地址不在抑制范圍,并且該地址 用戶所在VLAN信息不明,需要向所有子VLAN范圍的鄰居地址轉發請求,繼續步驟214。步驟214 判斷轉發是否成功;
在所有子VLAN上發送鄰居請求報文后,如果收到鄰居通告響應報文則走步驟203 的處理流程,如果不能收到鄰居通告報文,則由步驟215處理;步驟215 添加地址信息到端口地址緩存表;將目標VLAN的IPv6地址信息添加到端口地址緩存表,并置狀態為抑制,在一個老 化計時器內不再對該目標地址發起鄰居地址解析;步驟221 判斷該目標IPv6地址的查找結果中的狀態是否可用;如果是可用狀態,則根據可用的VLAN端口繼續步驟222 ;若狀態為抑制,則繼續步 驟231的處理流程。步驟222 發送鄰居請求報文;根據查找的VLAN端口,在指定VLAN上發送鄰居請求報文,然后交步驟223處理;步驟223 判斷是否發送成功;如果能夠接收到該VLAN發送的鄰居通告報文,則走步驟203的處理流程,如果不 能夠在該VLAN上收到該鄰居通告報文,說明明該用戶已經離線或者漂移,需要步驟213處 理;步驟231 不予轉發報文。對于抑制期內的目標IPv6地址,不對其進行鄰居地址解析,不能在任何VLAN上發 送鄰居請求報文。參照圖3,為本發明一種網關一實施例的結構示意圖;本發明實施例是采用圖1對應實施例方法的網關,本發明實施例提供的網關包 括信息獲取模塊301,用于獲取第一終端向第二終端發送的信息;解析模塊302,用于解析所述信息獲取第二終端地址信息;查找模塊303,用于根據所述第二終端地址信息查詢預置端口地址緩存表中對應 的局域網端口;發送模塊304,用于根據所述局域網端口轉發所述信息。進一步,所述信息獲取模塊301還用于獲取第一終端首次向第二終端發送的信 息;發送模塊304還用于向所有局域網端口轉發所述信息;所述網關還包括第一記錄模塊305,用于獲取第二終端響應信息后,根據所述響 應信息將所述第二終端與所述局域網的端口對應記錄入端口地址緩存表。進一步,所述信息獲取模塊301還用于獲取第一終端首次向第二終端發送的信 息;解析模塊302還用于解析所述信息;發送模塊304還用于將解析后的信息轉發到所有局域網端口 ;上述網關還包括第一接收模塊305,用于獲取第二終端返回的響應信息;第一響應信息解析模塊306,用于解析響應信息,獲取第二終端所屬局域網的端 Π ;第一記錄模塊307,用于將所述第二終端與所述局域網的端口對應記錄入端口地址緩存表。進一步,發送模塊304還用于當根據第二終端地址信息未查詢預置端口地址緩存 表中對應的局域網端口時,向所有局域網端口轉發信息。進一步,上述網關還包括第二接收模塊308,用于獲取第二終端返回的響應信息;第二響應信息解析模塊309,用于解析響應信息,獲取第二終端所屬局域網的端 Π ;第二記錄模塊310,用于將第二終端與局域網的端口對應記錄入端口地址緩存表。進一步,上述網關還包括計時模塊311,用于預定時間內未收到響應信息時,開啟計時器;發送模塊304還用于當所述計時器超時前,停止轉發向第二終端的信息。具體的第一接收模塊305和第二接收模塊308可以為同一模塊;第一響應信息解 析模塊306、第二響應信息解析模塊309和解析模塊302可以為同一模塊;第一記錄模塊 307和第二記錄模塊310可以為同一模塊。本發明通過在IPv6網關設備上學習、記錄、并維護一個IPv6用戶地址和其子VLAN 的IPv6地址池;網關在請求地址池中IPv6地址的鏈路層地址時,只向相應的子VLAN上發 送ND報文,從而有效減輕網關設備的CPU負荷。以上所述僅為本發明的優選實施例,并非因此限制本發明的專利范圍,凡是利用 本發明說明書及附圖內容所作的等效結構或等效流程變換,或直接或間接運用在其他相關 的技術領域,均同理包括在本發明的專利保護范圍內。
權利要求
一種信息轉發方法,其特征在于,包括獲取第一終端向第二終端發送的信息;解析所述信息獲取第二終端地址信息;根據所述第二終端地址信息查詢預置端口地址緩存表中對應的局域網端口;根據所述局域網端口轉發所述信息。
2.根據權利要求1所述的方法,其特征在于,所述獲取第一終端向第二終端發送的信 息前包括獲取第一終端首次向第二終端發送的信息; 解析所述信息;將解析后的信息轉發到所有局域網端口; 獲取第二終端返回的響應信息;解析所述響應信息,獲取所述第二終端所屬局域網的端口 ; 將所述第二終端與所述局域網的端口對應記錄入端口地址緩存表。
3.根據權利要求1所述的方法,其特征在于,所述根據第二終端地址信息查詢預置端 口地址緩存表中對應的局域網端口后包括當根據第二終端地址信息未查詢預置端口地址緩存表中對應的局域網端口時,向所有 局域網端口轉發信息。
4.根據權利要求3所述的方法,其特征在于,所述當根據第二終端地址信息未查詢預 置端口地址緩存表中對應的局域網端口時,向所有局域網端口轉發信息后包括獲取第二終端返回的響應信息;解析所述響應信息,獲取所述第二終端所屬局域網的端口 ; 將所述第二終端與所述局域網的端口對應記錄入端口地址緩存表。
5.根據權利要求1或3所述的方法,其特征在于,所述根據所述局域網端口轉發所述信 息后包括預定時間內未收到響應信息時,開啟計時器; 當所述計時器超時前,停止轉發向第二終端的信息。
6.一種網關,其特征在于,包括信息獲取模塊,用于獲取第一終端向第二終端發送的信息; 解析模塊,用于解析所述信息獲取第二終端地址信息;查找模塊,用于根據所述第二終端地址信息查詢預置端口地址緩存表中對應的局域網 端□;發送模塊,用于根據所述局域網端口轉發所述信息。
7.根據權利要求6所述的網關,其特征在于,所述信息獲取模塊還用于獲取第一終端 首次向第二終端發送的信息;解析模塊還用于解析所述信息;發送模塊還用于將解析后的信息轉發到所有局域網端口;所述網關還包括第一接收模塊,用于獲取第二終端返回的響應信息;第一響應信息解析模塊,用于解析所述響應信息,獲取所述第二終端所屬局域網的端Π ;第一記錄模塊,用于將所述第二終端與所述局域網的端口對應記錄入端口地址緩存表。
8.根據權利要求6所述的網關,其特征在于,所述發送模塊還用于當根據第二終端地 址信息未查詢預置端口地址緩存表中對應的局域網端口時,向所有局域網端口轉發信息。
9.根據權利要求8所述的網關,其特征在于,所述網關還包括 第二接收模塊,用于獲取第二終端返回的響應信息;第二響應信息解析模塊,用于解析所述響應信息,獲取所述第二終端所屬局域網的端Π ;第二記錄模塊,用于將所述第二終端與所述局域網的端口對應記錄入端口地址緩存表。
10.根據權利要求6或8所述的方法,其特征在于,所述網關還包括 計時模塊,用于預定時間內未收到響應信息時,開啟計時器;所述發送模塊還用于當所述計時器超時前,停止轉發向第二終端的信息。
全文摘要
本發明揭示了一種信息轉發方法,包括獲取第一終端向第二終端發送的信息;解析信息獲取第二終端地址信息;根據第二終端地址信息查詢預置端口地址緩存表中對應的局域網端口;根據局域網端口轉發信息。本發明還提供了相應的網關。本發明通過在IPv6網關設備上學習、記錄、并維護一個IPv6用戶地址和其子VLAN的IPv6地址池;網關在請求地址池中IPv6地址的鏈路層地址時,只向相應的子VLAN上發送ND報文,從而有效減輕網關設備的CPU負荷。
文檔編號H04L12/56GK101888338SQ20101022353
公開日2010年11月17日 申請日期2010年7月1日 優先權日2010年7月1日
發明者劉曉東 申請人:中興通訊股份有限公司