本發(fā)明涉及通信領域,尤其涉及一種二層隧道協(xié)議L2TP報文傳輸方法及隧道端點設備。
背景技術:
目前,用戶終端若想要訪問私用的局域網(wǎng)(例如,企業(yè)駐外機構或出差人員想要訪問企業(yè)內(nèi)部通信網(wǎng)絡),則會建立當?shù)氐腖AC(英文:L2TP Access Concentrator,中文:L2TP訪問集中器)與遠端局域網(wǎng)系統(tǒng)的LNS(英文:L2TP Network Server,中文:L2TP網(wǎng)絡服務器)間的L2TP(英文:Layer 2 Tunneling Protocol,中文:二層隧道協(xié)議)通道,并通過該L2TP通道發(fā)送乘客報文,即通過在公共網(wǎng)絡上建立點到點的L2TP隧道,并基于該L2TP通道協(xié)議將PPP(英文:Point-to-Point Protocol,中文:點對點協(xié)議)數(shù)據(jù)封裝為L2TP報文發(fā)送至私用局域網(wǎng),從而使得用戶終端能夠訪問企業(yè)內(nèi)部網(wǎng)絡資源。
具體的,上述L2TP協(xié)議格式為:IP(英文:Internet Protocol,中文:網(wǎng)絡協(xié)議)頭+L2TP頭+L2TP乘客報文。其中,上述的L2TP乘客報文中封裝有需要傳輸?shù)臄?shù)據(jù)報文以及該數(shù)據(jù)報文的源地址和目的地址;上述的IP頭包括隧道源端設備的IP地址和隧道終端設備的IP地址;上述的L2TP頭是采用UDP(英文:User Datagram Protocol,中文:用戶數(shù)據(jù)報協(xié)議)協(xié)議對乘客報文進行封裝所添加的報文頭,包括:隧道源端口號、隧道目的端口號、校驗和、報文長度。因此,封裝后的L2TP報文實際上為UDP報文,而UDP報文對應的L2TP隧道的隧道目的端口號為1701,對應的隧道源端口號通常也為1701,即L2TP報文通常會通過同一源端口進入L2TP隧道。
因此,當大量不同的乘客報文都以1701對應的源端口進入L2TP隧道進行報文傳輸時,便會導致L2TP隧道的報文流量負載過重,影響報文傳輸?shù)男省?/p>
技術實現(xiàn)要素:
本發(fā)明的實施例提供一種L2TP報文傳輸方法及隧道端點設備,解決了現(xiàn)有的隧道源端設備由于將大量的L2TP乘客報文通過同一隧道源端口進入L2TP隧道進行傳輸,所導致的L2TP隧道負載過重的問題。
為達到上述目的,本發(fā)明的實施例采用如下技術方案:
第一方面,提供一種二層隧道協(xié)議L2TP報文傳輸方法,包括:
隧道源端設備獲取待發(fā)送乘客報文的L2TP封裝信息,所述L2TP封裝信息包含隧道源端口號;
修改所述待發(fā)送乘客報文的L2TP封裝信息中的隧道源端口號;
根據(jù)修改后的所述待發(fā)送乘客報文的L2TP封裝信息以及L2TP協(xié)議對所述待發(fā)送乘客報文進行封裝,得到L2TP報文;
發(fā)送所述L2TP報文至隧道終端設備。
第二方面,提供一種隧道端點設備,包括:
獲取模塊,獲取待發(fā)送乘客報文的L2TP封裝信息,所述L2TP封裝信息包含隧道源端口號;
修改模塊,修改所述獲取模塊獲取的所述待發(fā)送乘客報文的L2TP封裝信息中的隧道源端口號;
封裝模塊,根據(jù)所述修改模塊修改后的所述待發(fā)送乘客報文的L2TP封裝信息以及L2TP協(xié)議對所述待發(fā)送乘客報文進行封裝,得到L2TP報文;
發(fā)送模塊,發(fā)送所述封裝模塊封裝的所述L2TP報文至隧道終端設備。
本發(fā)明實施例提供的L2TP報文傳輸方法及隧道端點設備,由于隧道源端設備在發(fā)送L2TP報文時的隧道源端口號可以隨機選擇,不同的隧道源端口號對應不同的L2TP隧道,因此,本方案通過獲取待發(fā)送乘客報文的L2TP封裝信息,然后修改待發(fā)送乘客報文的L2TP封裝信息中的隧道源端口號,使得隧道源端設備與隧道終端設備之間建立新的L2TP隧道,隧道源端設備將修改后的L2TP封裝信息封裝為L2TP報文,將該L2TP報文通過新的L2TP隧道發(fā)送到隧道終端設備,從而降低了原始L2TP隧道的負載,進而實現(xiàn)了負載均衡,同時,由于無需通過修改整體的網(wǎng)絡部署來建立新的L2TP隧道,使得降低負載的成本大大降低。
附圖說明
為了更清楚地說明本發(fā)明實施例的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的一種L2TP隧道應用組網(wǎng)架構圖;
圖2為本發(fā)明實施例提供的一種L2TP報文傳輸方法示意圖;
圖3為本發(fā)明實施例提供的另一種L2TP報文傳輸方法示意圖;
圖4為本發(fā)明實施例提供的一種隧道端點設備的結構示意圖。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
為了使本領域的技術人員更好的理解本發(fā)明的技術方案,下面結合附圖和具體實施例對本發(fā)明作進一步的詳細說明。
圖1為本發(fā)明實施例提供的L2TP(英文:Layer 2 Tunneling Protocol,中文:二層隧道協(xié)議)報文傳輸方法所應用的L2TP隧道應用組網(wǎng)架構圖,如圖1所示,該組網(wǎng)架構包括:遠端用戶終端11、LAC12(英文:L2TP Access Concentrator,中文:L2TP訪問集中器)、LNS(英文:L2TP Network Server,中文:L2TP網(wǎng)絡服務器)13、私用的局域網(wǎng)以及用于對接入LAC12的接入終端進行認證的認證服務器A14和用于對接入LNS13的接入終端進行認證的認證服務器B15,其中:
上述的遠端用戶終端11可以為個人計算機(英文:personal computer,簡稱PC)、服務器、智能手機、平板電腦以及個人數(shù)字助理等設備。
上述的LAC12為L2TP隧道的端點之一,而LNS13作為L2TP隧道的另一端點,與LAC12相對應。具體的,上述的LAC12通常是一個當?shù)豂SP(英文:Internet Service Provider,中文:互聯(lián)網(wǎng)服務提供商)的NAS(Network Access Server,網(wǎng)絡接入服務器),由于LAC12與遠端用戶終端11之間通常采用本地連接或PPP(英文:Point-to-Point Protocol,中文:點對點協(xié)議)鏈路,因此,LAC12主要用于為PPP類型的用戶終端提供接入服務,即在PPP類型的遠端用戶終端11和LNS13之間負責L2TP報文的封裝和解封裝。而LNS13作為L2TP隧道另一端點,通常位于私用的局域網(wǎng)的邊緣,是LAC12通過L2TP隧道傳輸?shù)腜PP協(xié)議報文的邏輯終點。
而LNS13和LAC12之間建立的L2TP隧道可以將遠端用戶終端11的PPP連接由原來的NAS延伸到了私有局域網(wǎng)內(nèi)部的LNS13設備,通常是由兩者共同維護。其中,L2TP是目前使用最為廣泛的VPDN(Virtual Private Dial-up Network,虛擬專用撥號網(wǎng)絡)隧道協(xié)議,通常能夠使用多隧道。
需要說明的是,由于L2TP隧道兩端的LAC12和LNS13均可進行L2TP報文的封裝和解封裝。因此,當本發(fā)明實施例中的隧道源端設備為LAC12時,對應的隧道終端設備為LNS12,或者,當本發(fā)明實施例中的隧道源端設備為LNS12時,對應的隧道終端設備為LAC13。
進一步需要說明的是,上述的L2TP報文可以表示為:IP頭+L2TP頭+L2TP乘客報文。其中,IP頭包括:隧道源端設備的IP地址和隧道終端設備的IP地址。L2TP頭是采用UDP協(xié)議對乘客報文進行封裝所添加的報文頭,因此該L2TP頭包括:隧道源端口號、隧道目的端口號、校驗和、報文長度。L2TP乘客報文中封裝有需要傳輸?shù)臄?shù)據(jù)報文以及該數(shù)據(jù)報文的源地址和目的地址。
基于圖1對應的組網(wǎng)架構以及上述內(nèi)容,本發(fā)明實施例提供一種二層隧道協(xié)議L2TP報文傳輸方法,如圖2所示,該方法包括如下步驟:
101、隧道源端設備獲取待發(fā)送乘客報文的L2TP封裝信息。
其中,上述的待發(fā)送乘客報文的L2TP封裝信息為待發(fā)送乘客報文的五元組信息或七元組信息,該L2TP封裝信息包括L2TP隧道源端設備的IP地址、隧道終端設備的IP地址、隧道源端口號、隧道目的端口號。示例性的,該L2TP封裝信息中的隧道源端口可以是將乘客報文五元組做哈希后的得到的值,也可以是將乘客報文的七元組做哈希后得到的值,這里不做限定。
102、隧道源端設備修改待發(fā)送乘客報文的L2TP封裝信息中的隧道源端口號。
具體的,本實施例中的隧道源端設備在對待發(fā)送乘客報文的L2TP封裝信息中的隧道源端口號進行修改時,可以通過對L2TP乘客報文的五元組信息或七元組信息進行哈希運算來對隧道源端口號進行修改,也可以在隧道源端設備中預配置預定閾值,并根據(jù)該預定閾值來對原隧道源端口號進行修改。
示例性的,當隧道源端設備通過對乘客報文的五元組信息或七元組信息進行哈希運算來對隧道源端口號進行修改時,上述的步驟102具體包括如下步驟:
102a、隧道源端設備對待發(fā)送乘客報文的五元組信息或七元組信息進行哈希運算,將運算出的哈希值設置在待發(fā)送乘客報文的隧道源端口號中。
示例性的,為了計算方便,隧道源端設備在對待發(fā)送乘客報文的L2TP封裝信息進行哈希運算時,可以直接對待發(fā)送乘客報文的五元組信息或七元組信息進行哈希運算。此外,本發(fā)明實施例中提及的哈希運算過程可以參照現(xiàn)有的哈希運算方法,這里不再贅述。
103、根據(jù)修改后的待發(fā)送乘客報文的L2TP封裝信息以及L2TP協(xié)議對待發(fā)送乘客報文進行封裝,得到L2TP報文。
104、隧道源端設備發(fā)送L2TP報文至隧道終端設備。
示例性的,由于步驟103所生成的L2TP報文的隧道源端口號已更改,因此,本發(fā)明實施例中的隧道源端設備與隧道終端設備之間會建立一條新的L2TP隧道,且新建立的L2TP隧道與該待發(fā)送乘客報文的原始隧道源端口號對應的L2TP隧道的目的端口號相同,因此,步驟103所生成的L2TP報文可以通過新的L2TP隧道路徑進行傳輸,從而到達隧道終端設備,降低原L2TP隧道路徑的負載。
可選的,步驟104還可以通過如下步驟來實現(xiàn):
104a、隧道源端設備通過待發(fā)送乘客報文的原隧道源端口號對應的L2TP隧道路徑或待發(fā)送乘客報文的修改后的隧道源端口號對應的L2TP隧道路徑發(fā)送L2TP報文至隧道終端設備。
示例性的,由于此時隧道源端設備與隧道終端設備之間至少存在待發(fā)送乘客報文的原隧道源端口號對應的L2TP隧道路徑和待發(fā)送乘客報文的修改后的隧道源端口號對應的L2TP隧道路徑這兩條L2TP隧道路徑。為了使得隧道源端設備與隧道終端設備之間的多條L2TP隧道的負載均衡,因此,本發(fā)明實施例會對預定時間內(nèi)該隧道源端設備與隧道終端設備之間的多條L2TP隧道的負載進行統(tǒng)計,然后根據(jù)當前封裝好的L2TP報文的隧道源端設備的IP地址、隧道終端設備的IP地址、隧道源端口號、隧道目的端口號對該L2TP報文進行分流算法,從隧道源端設備與隧道終端設備之間的多條L2TP隧道路徑中選擇一條L2TP隧道路徑進行傳輸。后續(xù)再有L2TP報文需要進入L2TP隧道,按照上述方式進行處理,從而使得隧道源端設備與隧道終端設備間的L2TP隧道負載均衡。
進一步的,隧道終端設備在接收到隧道源端設備發(fā)送的L2TP報文后,可執(zhí)行下述步驟:
A1、隧道終端設備接收到隧道源端設備發(fā)送的L2TP報文后,對L2TP報文進行解封裝。解封裝過程為隧道終端設備去掉L2TP頭和外層的IP頭,得到乘客報文。這樣就可以將該乘客報文轉發(fā)給私用局域網(wǎng)。
示例性的,參照圖3所示的L2TP報文傳輸示意圖可知,假設遠端用戶終端PC1想要訪問私有局域網(wǎng)的用戶終端PC2時,則用戶終端PC1發(fā)出的乘客報文需要通過L2TP隧道源端設備GW1發(fā)往L2TP隧道終端設備GW2,然后通過GW2轉發(fā)給用戶終端PC2。其中,用戶終端PC1的IP地址為IP_PC1,GW1的IP地址為IP1,GW2的IP地址為IP2,網(wǎng)關設備PC2的地址為IP_PC2。GW1與GW2之間存在兩條L2TP隧道路徑Route(Route1和Route2)。
首先,GW1收到PC1要發(fā)往PC2的L2TP乘客報文后,獲取該L2TP乘客報文的五元組信息,GW1將該L2TP乘客報文的五元組信息進行哈希運算,將得到的HASH哈希運算結果值設置在隧道源端口號,此時L2TP乘客報文的隧道五元組信息中的隧道源端口號被修改為HASH1。GW1根據(jù)修改后的待發(fā)送乘客報文的L2TP五元組信息以及L2TP協(xié)議對待發(fā)送乘客報文進行封裝,得到L2TP報文。
其次,GW1在封裝得到L2TP報文后,GW1會分別對歷史中發(fā)往Route1和Route2的大量乘客報文負載進行統(tǒng)計,然后根據(jù)GW1封裝好的L2TP報文中的IP1(GW1的IP地址)、IP2(GW2的IP地址)、隧道源端口號HASH1以及隧道目的端口號1701對該L2TP報文進行分流算法(此分流算法過程可以參照現(xiàn)有的分流運算方法,這里不再贅述),從Route1和Route2(其中Route1對應的GW1源端口號為HASH1,Route2對應的GW2源端口號為1701)中選擇一條L2TP隧道路徑進行傳輸(例如,選擇Route1作為傳輸路徑),從而將L2TP報文發(fā)送到GW2。GW2收到該L2TP報文后,對該報文進行解封裝,即去掉L2TP頭和外層IP頭,從而得到乘客報文,這樣就把該乘客報文轉發(fā)給PC2。
本發(fā)明實施例提供的L2TP報文傳輸方法,由于隧道源端設備在發(fā)送L2TP報文時的隧道源端口號可以隨機選擇,不同的隧道源端口號對應不同的隧道,因此,本方案通過獲取待發(fā)送乘客報文的L2TP封裝信息,然后修改待發(fā)送乘客報文的L2TP封裝信息中的隧道源端口號,使得隧道源端設備與隧道終端設備之間建立新的L2TP隧道,隧道源端設備將修改后的L2TP封裝信息封裝為L2TP報文,將該L2TP報文通過新的L2TP隧道發(fā)送到隧道終端設備,從而降低了原始L2TP隧道的負載,進而實現(xiàn)了負載均衡,同時,由于無需通過修改整體的網(wǎng)絡部署來建立新的L2TP隧道,使得降低負載的成本大大降低。
本發(fā)明的實施例提供一種隧道端點設備,如圖4所示,該隧道端點設備2包括:獲取模塊21、修改模塊22、封裝模塊23和發(fā)送模塊24,其中:
獲取模塊21,獲取待發(fā)送乘客報文的L2TP封裝信息,L2TP封裝信息包含隧道源端口號。
修改模塊22,修改獲取模塊21獲取的待發(fā)送乘客報文的L2TP封裝信息中的隧道源端口號。
封裝模塊23,根據(jù)修改模塊22修改后的待發(fā)送乘客報文的L2TP封裝信息以及L2TP協(xié)議對待發(fā)送乘客報文進行封裝,得到L2TP報文。
發(fā)送模塊24,發(fā)送封裝模塊23封裝的L2TP報文至隧道終端設備。
示例性的,上述獲取模塊21獲取的待發(fā)送乘客報文的L2TP封裝信息為待發(fā)送乘客報文的五元組信息或七元組信息,該L2TP封裝信息包括L2TP隧道源端設備的IP地址、隧道終端設備的IP地址、隧道源端口號、隧道目的端口號。示例性的,該L2TP封裝信息中的隧道源端口號可以是將乘客報文五元組做哈希后的得到的值,也可以是將乘客報文七元組做哈希后的得到的值,這里不做限定。
可選的,上述的修改模塊22具體用于:
對待發(fā)送乘客報文的L2TP封裝信息進行哈希運算,將運算出的哈希值設置在待發(fā)送乘客報文的隧道源端口號中。
可選的,上述的發(fā)送模塊24具體用于:
通過待發(fā)送乘客報文的原隧道源端口號對應的L2TP隧道路徑或該待發(fā)送乘客報文的修改后的隧道源端口號對應的L2TP隧道路徑發(fā)送該L2TP報文至隧道終端設備。
本發(fā)明實施例提供的隧道端點設備,由于隧道源端設備在發(fā)送L2TP報文時的隧道源端口號可以隨機選擇,不同的隧道源端口號對應不同的隧道,因此,本方案通過獲取待發(fā)送乘客報文的L2TP封裝信息,然后修改待發(fā)送乘客報文的L2TP封裝信息中的隧道源端口號,使得隧道源端設備與隧道終端設備之間建立新的L2TP隧道,隧道源端設備將修改后的L2TP封裝信息封裝為L2TP報文,將該L2TP報文通過新的L2TP隧道發(fā)送到隧道終端設備,從而降低了原始L2TP隧道的負載,進而實現(xiàn)了負載均衡,同時,由于無需通過修改整體的網(wǎng)絡部署來建立新的L2TP隧道,使得降低負載的成本大大降低。
需要說明的是,在具體實現(xiàn)過程中,上述如圖2所示的方法流程中隧道端點設備所執(zhí)行的各步驟均可以通過硬件形式的處理器執(zhí)行存儲器中存儲的軟件形式的計算機執(zhí)行指令實現(xiàn),為避免重復,此處不再贅述。而上述隧道端點設備所執(zhí)行的動作所對應的程序均可以以軟件形式存儲于該隧道端點設備的存儲器中,以便于處理器調用執(zhí)行以上各個模塊對應的操作。
上文中的存儲器可以包括易失性存儲器(volatile memory),例如隨機存取存儲器(random-access memory,RAM);也可以包括非易失性存儲器(non-volatile memory),例如只讀存儲器(read-only memory,ROM),快閃存儲器(flash memory),硬盤(hard disk drive,HDD)或固態(tài)硬盤(solid-state drive,SSD);還可以包括上述種類的存儲器的組合。
上文所提供的設備中的處理器可以是一個處理器,也可以是多個處理元件的統(tǒng)稱。例如,處理器可以為中央處理器(central processing unit,CPU;也可以為其他通用處理器、數(shù)字信號處理器(digital signal processing,DSP)、專用集成電路(application specific integrated circuit,ASIC)、現(xiàn)場可編程門陣列(field-programmable gate array,F(xiàn)PGA)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件等。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等;還可以為專用處理器,該專用處理器可以包括基帶處理芯片、射頻處理芯片等中的至少一個。
所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的設備和模塊的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
在本申請所提供的幾個實施例中,應該理解到,所揭露的方法和設備,可以通過其它的方式實現(xiàn)。例如,以上所描述的實施例僅僅是示意性的,例如,所述模塊的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個模塊或組件可以結合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
所述作為分離部件說明的模塊可以是或者也可以不是物理上分開的,作為模塊顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理包括,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用硬件加軟件功能單元的形式實現(xiàn)。
最后應說明的是:以上實施例僅用以說明本發(fā)明的技術方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發(fā)明各實施例技術方案的精神和范圍。