一种二层隧道协议L2TP报文传输方法及隧道端点设备与流程

文档序号:11960198阅读:431来源:国知局
一种二层隧道协议L2TP报文传输方法及隧道端点设备与流程

本发明涉及通信领域,尤其涉及一种二层隧道协议L2TP报文传输方法及隧道端点设备。



背景技术:

目前,用户终端若想要访问私用的局域网(例如,企业驻外机构或出差人员想要访问企业内部通信网络),则会建立当地的LAC(英文:L2TP Access Concentrator,中文:L2TP访问集中器)与远端局域网系统的LNS(英文:L2TP Network Server,中文:L2TP网络服务器)间的L2TP(英文:Layer 2 Tunneling Protocol,中文:二层隧道协议)通道,并通过该L2TP通道发送乘客报文,即通过在公共网络上建立点到点的L2TP隧道,并基于该L2TP通道协议将PPP(英文:Point-to-Point Protocol,中文:点对点协议)数据封装为L2TP报文发送至私用局域网,从而使得用户终端能够访问企业内部网络资源。

具体的,上述L2TP协议格式为:IP(英文:Internet Protocol,中文:网络协议)头+L2TP头+L2TP乘客报文。其中,上述的L2TP乘客报文中封装有需要传输的数据报文以及该数据报文的源地址和目的地址;上述的IP头包括隧道源端设备的IP地址和隧道终端设备的IP地址;上述的L2TP头是采用UDP(英文:User Datagram Protocol,中文:用户数据报协议)协议对乘客报文进行封装所添加的报文头,包括:隧道源端口号、隧道目的端口号、校验和、报文长度。因此,封装后的L2TP报文实际上为UDP报文,而UDP报文对应的L2TP隧道的隧道目的端口号为1701,对应的隧道源端口号通常也为1701,即L2TP报文通常会通过同一源端口进入L2TP隧道。

因此,当大量不同的乘客报文都以1701对应的源端口进入L2TP隧道进行报文传输时,便会导致L2TP隧道的报文流量负载过重,影响报文传输的效率。



技术实现要素:

本发明的实施例提供一种L2TP报文传输方法及隧道端点设备,解决了现有的隧道源端设备由于将大量的L2TP乘客报文通过同一隧道源端口进入L2TP隧道进行传输,所导致的L2TP隧道负载过重的问题。

为达到上述目的,本发明的实施例采用如下技术方案:

第一方面,提供一种二层隧道协议L2TP报文传输方法,包括:

隧道源端设备获取待发送乘客报文的L2TP封装信息,所述L2TP封装信息包含隧道源端口号;

修改所述待发送乘客报文的L2TP封装信息中的隧道源端口号;

根据修改后的所述待发送乘客报文的L2TP封装信息以及L2TP协议对所述待发送乘客报文进行封装,得到L2TP报文;

发送所述L2TP报文至隧道终端设备。

第二方面,提供一种隧道端点设备,包括:

获取模块,获取待发送乘客报文的L2TP封装信息,所述L2TP封装信息包含隧道源端口号;

修改模块,修改所述获取模块获取的所述待发送乘客报文的L2TP封装信息中的隧道源端口号;

封装模块,根据所述修改模块修改后的所述待发送乘客报文的L2TP封装信息以及L2TP协议对所述待发送乘客报文进行封装,得到L2TP报文;

发送模块,发送所述封装模块封装的所述L2TP报文至隧道终端设备。

本发明实施例提供的L2TP报文传输方法及隧道端点设备,由于隧道源端设备在发送L2TP报文时的隧道源端口号可以随机选择,不同的隧道源端口号对应不同的L2TP隧道,因此,本方案通过获取待发送乘客报文的L2TP封装信息,然后修改待发送乘客报文的L2TP封装信息中的隧道源端口号,使得隧道源端设备与隧道终端设备之间建立新的L2TP隧道,隧道源端设备将修改后的L2TP封装信息封装为L2TP报文,将该L2TP报文通过新的L2TP隧道发送到隧道终端设备,从而降低了原始L2TP隧道的负载,进而实现了负载均衡,同时,由于无需通过修改整体的网络部署来建立新的L2TP隧道,使得降低负载的成本大大降低。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种L2TP隧道应用组网架构图;

图2为本发明实施例提供的一种L2TP报文传输方法示意图;

图3为本发明实施例提供的另一种L2TP报文传输方法示意图;

图4为本发明实施例提供的一种隧道端点设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了使本领域的技术人员更好的理解本发明的技术方案,下面结合附图和具体实施例对本发明作进一步的详细说明。

图1为本发明实施例提供的L2TP(英文:Layer 2 Tunneling Protocol,中文:二层隧道协议)报文传输方法所应用的L2TP隧道应用组网架构图,如图1所示,该组网架构包括:远端用户终端11、LAC12(英文:L2TP Access Concentrator,中文:L2TP访问集中器)、LNS(英文:L2TP Network Server,中文:L2TP网络服务器)13、私用的局域网以及用于对接入LAC12的接入终端进行认证的认证服务器A14和用于对接入LNS13的接入终端进行认证的认证服务器B15,其中:

上述的远端用户终端11可以为个人计算机(英文:personal computer,简称PC)、服务器、智能手机、平板电脑以及个人数字助理等设备。

上述的LAC12为L2TP隧道的端点之一,而LNS13作为L2TP隧道的另一端点,与LAC12相对应。具体的,上述的LAC12通常是一个当地ISP(英文:Internet Service Provider,中文:互联网服务提供商)的NAS(Network Access Server,网络接入服务器),由于LAC12与远端用户终端11之间通常采用本地连接或PPP(英文:Point-to-Point Protocol,中文:点对点协议)链路,因此,LAC12主要用于为PPP类型的用户终端提供接入服务,即在PPP类型的远端用户终端11和LNS13之间负责L2TP报文的封装和解封装。而LNS13作为L2TP隧道另一端点,通常位于私用的局域网的边缘,是LAC12通过L2TP隧道传输的PPP协议报文的逻辑终点。

而LNS13和LAC12之间建立的L2TP隧道可以将远端用户终端11的PPP连接由原来的NAS延伸到了私有局域网内部的LNS13设备,通常是由两者共同维护。其中,L2TP是目前使用最为广泛的VPDN(Virtual Private Dial-up Network,虚拟专用拨号网络)隧道协议,通常能够使用多隧道。

需要说明的是,由于L2TP隧道两端的LAC12和LNS13均可进行L2TP报文的封装和解封装。因此,当本发明实施例中的隧道源端设备为LAC12时,对应的隧道终端设备为LNS12,或者,当本发明实施例中的隧道源端设备为LNS12时,对应的隧道终端设备为LAC13。

进一步需要说明的是,上述的L2TP报文可以表示为:IP头+L2TP头+L2TP乘客报文。其中,IP头包括:隧道源端设备的IP地址和隧道终端设备的IP地址。L2TP头是采用UDP协议对乘客报文进行封装所添加的报文头,因此该L2TP头包括:隧道源端口号、隧道目的端口号、校验和、报文长度。L2TP乘客报文中封装有需要传输的数据报文以及该数据报文的源地址和目的地址。

基于图1对应的组网架构以及上述内容,本发明实施例提供一种二层隧道协议L2TP报文传输方法,如图2所示,该方法包括如下步骤:

101、隧道源端设备获取待发送乘客报文的L2TP封装信息。

其中,上述的待发送乘客报文的L2TP封装信息为待发送乘客报文的五元组信息或七元组信息,该L2TP封装信息包括L2TP隧道源端设备的IP地址、隧道终端设备的IP地址、隧道源端口号、隧道目的端口号。示例性的,该L2TP封装信息中的隧道源端口可以是将乘客报文五元组做哈希后的得到的值,也可以是将乘客报文的七元组做哈希后得到的值,这里不做限定。

102、隧道源端设备修改待发送乘客报文的L2TP封装信息中的隧道源端口号。

具体的,本实施例中的隧道源端设备在对待发送乘客报文的L2TP封装信息中的隧道源端口号进行修改时,可以通过对L2TP乘客报文的五元组信息或七元组信息进行哈希运算来对隧道源端口号进行修改,也可以在隧道源端设备中预配置预定阈值,并根据该预定阈值来对原隧道源端口号进行修改。

示例性的,当隧道源端设备通过对乘客报文的五元组信息或七元组信息进行哈希运算来对隧道源端口号进行修改时,上述的步骤102具体包括如下步骤:

102a、隧道源端设备对待发送乘客报文的五元组信息或七元组信息进行哈希运算,将运算出的哈希值设置在待发送乘客报文的隧道源端口号中。

示例性的,为了计算方便,隧道源端设备在对待发送乘客报文的L2TP封装信息进行哈希运算时,可以直接对待发送乘客报文的五元组信息或七元组信息进行哈希运算。此外,本发明实施例中提及的哈希运算过程可以参照现有的哈希运算方法,这里不再赘述。

103、根据修改后的待发送乘客报文的L2TP封装信息以及L2TP协议对待发送乘客报文进行封装,得到L2TP报文。

104、隧道源端设备发送L2TP报文至隧道终端设备。

示例性的,由于步骤103所生成的L2TP报文的隧道源端口号已更改,因此,本发明实施例中的隧道源端设备与隧道终端设备之间会建立一条新的L2TP隧道,且新建立的L2TP隧道与该待发送乘客报文的原始隧道源端口号对应的L2TP隧道的目的端口号相同,因此,步骤103所生成的L2TP报文可以通过新的L2TP隧道路径进行传输,从而到达隧道终端设备,降低原L2TP隧道路径的负载。

可选的,步骤104还可以通过如下步骤来实现:

104a、隧道源端设备通过待发送乘客报文的原隧道源端口号对应的L2TP隧道路径或待发送乘客报文的修改后的隧道源端口号对应的L2TP隧道路径发送L2TP报文至隧道终端设备。

示例性的,由于此时隧道源端设备与隧道终端设备之间至少存在待发送乘客报文的原隧道源端口号对应的L2TP隧道路径和待发送乘客报文的修改后的隧道源端口号对应的L2TP隧道路径这两条L2TP隧道路径。为了使得隧道源端设备与隧道终端设备之间的多条L2TP隧道的负载均衡,因此,本发明实施例会对预定时间内该隧道源端设备与隧道终端设备之间的多条L2TP隧道的负载进行统计,然后根据当前封装好的L2TP报文的隧道源端设备的IP地址、隧道终端设备的IP地址、隧道源端口号、隧道目的端口号对该L2TP报文进行分流算法,从隧道源端设备与隧道终端设备之间的多条L2TP隧道路径中选择一条L2TP隧道路径进行传输。后续再有L2TP报文需要进入L2TP隧道,按照上述方式进行处理,从而使得隧道源端设备与隧道终端设备间的L2TP隧道负载均衡。

进一步的,隧道终端设备在接收到隧道源端设备发送的L2TP报文后,可执行下述步骤:

A1、隧道终端设备接收到隧道源端设备发送的L2TP报文后,对L2TP报文进行解封装。解封装过程为隧道终端设备去掉L2TP头和外层的IP头,得到乘客报文。这样就可以将该乘客报文转发给私用局域网。

示例性的,参照图3所示的L2TP报文传输示意图可知,假设远端用户终端PC1想要访问私有局域网的用户终端PC2时,则用户终端PC1发出的乘客报文需要通过L2TP隧道源端设备GW1发往L2TP隧道终端设备GW2,然后通过GW2转发给用户终端PC2。其中,用户终端PC1的IP地址为IP_PC1,GW1的IP地址为IP1,GW2的IP地址为IP2,网关设备PC2的地址为IP_PC2。GW1与GW2之间存在两条L2TP隧道路径Route(Route1和Route2)。

首先,GW1收到PC1要发往PC2的L2TP乘客报文后,获取该L2TP乘客报文的五元组信息,GW1将该L2TP乘客报文的五元组信息进行哈希运算,将得到的HASH哈希运算结果值设置在隧道源端口号,此时L2TP乘客报文的隧道五元组信息中的隧道源端口号被修改为HASH1。GW1根据修改后的待发送乘客报文的L2TP五元组信息以及L2TP协议对待发送乘客报文进行封装,得到L2TP报文。

其次,GW1在封装得到L2TP报文后,GW1会分别对历史中发往Route1和Route2的大量乘客报文负载进行统计,然后根据GW1封装好的L2TP报文中的IP1(GW1的IP地址)、IP2(GW2的IP地址)、隧道源端口号HASH1以及隧道目的端口号1701对该L2TP报文进行分流算法(此分流算法过程可以参照现有的分流运算方法,这里不再赘述),从Route1和Route2(其中Route1对应的GW1源端口号为HASH1,Route2对应的GW2源端口号为1701)中选择一条L2TP隧道路径进行传输(例如,选择Route1作为传输路径),从而将L2TP报文发送到GW2。GW2收到该L2TP报文后,对该报文进行解封装,即去掉L2TP头和外层IP头,从而得到乘客报文,这样就把该乘客报文转发给PC2。

本发明实施例提供的L2TP报文传输方法,由于隧道源端设备在发送L2TP报文时的隧道源端口号可以随机选择,不同的隧道源端口号对应不同的隧道,因此,本方案通过获取待发送乘客报文的L2TP封装信息,然后修改待发送乘客报文的L2TP封装信息中的隧道源端口号,使得隧道源端设备与隧道终端设备之间建立新的L2TP隧道,隧道源端设备将修改后的L2TP封装信息封装为L2TP报文,将该L2TP报文通过新的L2TP隧道发送到隧道终端设备,从而降低了原始L2TP隧道的负载,进而实现了负载均衡,同时,由于无需通过修改整体的网络部署来建立新的L2TP隧道,使得降低负载的成本大大降低。

本发明的实施例提供一种隧道端点设备,如图4所示,该隧道端点设备2包括:获取模块21、修改模块22、封装模块23和发送模块24,其中:

获取模块21,获取待发送乘客报文的L2TP封装信息,L2TP封装信息包含隧道源端口号。

修改模块22,修改获取模块21获取的待发送乘客报文的L2TP封装信息中的隧道源端口号。

封装模块23,根据修改模块22修改后的待发送乘客报文的L2TP封装信息以及L2TP协议对待发送乘客报文进行封装,得到L2TP报文。

发送模块24,发送封装模块23封装的L2TP报文至隧道终端设备。

示例性的,上述获取模块21获取的待发送乘客报文的L2TP封装信息为待发送乘客报文的五元组信息或七元组信息,该L2TP封装信息包括L2TP隧道源端设备的IP地址、隧道终端设备的IP地址、隧道源端口号、隧道目的端口号。示例性的,该L2TP封装信息中的隧道源端口号可以是将乘客报文五元组做哈希后的得到的值,也可以是将乘客报文七元组做哈希后的得到的值,这里不做限定。

可选的,上述的修改模块22具体用于:

对待发送乘客报文的L2TP封装信息进行哈希运算,将运算出的哈希值设置在待发送乘客报文的隧道源端口号中。

可选的,上述的发送模块24具体用于:

通过待发送乘客报文的原隧道源端口号对应的L2TP隧道路径或该待发送乘客报文的修改后的隧道源端口号对应的L2TP隧道路径发送该L2TP报文至隧道终端设备。

本发明实施例提供的隧道端点设备,由于隧道源端设备在发送L2TP报文时的隧道源端口号可以随机选择,不同的隧道源端口号对应不同的隧道,因此,本方案通过获取待发送乘客报文的L2TP封装信息,然后修改待发送乘客报文的L2TP封装信息中的隧道源端口号,使得隧道源端设备与隧道终端设备之间建立新的L2TP隧道,隧道源端设备将修改后的L2TP封装信息封装为L2TP报文,将该L2TP报文通过新的L2TP隧道发送到隧道终端设备,从而降低了原始L2TP隧道的负载,进而实现了负载均衡,同时,由于无需通过修改整体的网络部署来建立新的L2TP隧道,使得降低负载的成本大大降低。

需要说明的是,在具体实现过程中,上述如图2所示的方法流程中隧道端点设备所执行的各步骤均可以通过硬件形式的处理器执行存储器中存储的软件形式的计算机执行指令实现,为避免重复,此处不再赘述。而上述隧道端点设备所执行的动作所对应的程序均可以以软件形式存储于该隧道端点设备的存储器中,以便于处理器调用执行以上各个模块对应的操作。

上文中的存储器可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);也可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);还可以包括上述种类的存储器的组合。

上文所提供的设备中的处理器可以是一个处理器,也可以是多个处理元件的统称。例如,处理器可以为中央处理器(central processing unit,CPU;也可以为其他通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等;还可以为专用处理器,该专用处理器可以包括基带处理芯片、射频处理芯片等中的至少一个。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的方法和设备,可以通过其它的方式实现。例如,以上所描述的实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1