CN111935330A - 一种ppp报文穿越l2tp的方法及装置 - Google Patents
一种ppp报文穿越l2tp的方法及装置 Download PDFInfo
- Publication number
- CN111935330A CN111935330A CN202010696200.0A CN202010696200A CN111935330A CN 111935330 A CN111935330 A CN 111935330A CN 202010696200 A CN202010696200 A CN 202010696200A CN 111935330 A CN111935330 A CN 111935330A
- Authority
- CN
- China
- Prior art keywords
- ppp
- l2tp
- module
- message
- session
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2592—Translation of Internet protocol [IP] addresses using tunnelling or encapsulation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种PPP报文穿越L2TP的方法及装置,涉及L2TP隧道传输技术领域,该方法包括:L2TP协议模块在建立L2TP会话通道后,告知SFWD模块L2TP与PPP会话映射表;当PPP模块发送PPP控制报文时,将PPP控制报文发送至SFWD模块,SFWD模块查询所述会话映射表中的L2TP与PPP会话映射关系,并根据所述映射关系直接封装L2TP数据报文头;有L2TP数据包或PPP控制报文需要发送时,SFWD模块通过L2TP与PPP会话映射关系,剥离L2TP报文头并填充PPP实例ID、PPP会话ID后,上送PPP模块处理。本发明的PPP报文穿越L2TP的方法及装置,可在L2TP隧道建立成功后,实现PPP报文的较高性能传输。
Description
技术领域
本发明涉及L2TP隧道传输技术领域,具体涉及一种PPP报文穿越L2TP的方法及装置。
背景技术
隧道技术(Tunneling)是一种通过使用互联网的基础设施在网络之间传递数据的方式。使用隧道传递的数据(或负载)可以是不同协议的数据帧或报文。隧道协议将其它协议的数据帧或报文重新封装然后通过隧道发送。
目前L2TP协议(Layer Two Tunneling Protocol,第二层隧道协议)主要用于企业驻外机构和出差人员可从远程经由公共网络,通过虚拟隧道实现和企业总部之间的网络连接。
在L2TP的实现中,当L2TP隧道建立成功后,设备还需要启用PPP协议(Point toPoint Protocol,点对点协议),用于为用户分配IP地址以及二次协商等。PPP的报文为点到点的二层报文,无法在公网上进行传输,L2TP通过在公共网络里建立隧道,在隧道里传输私有数据而解决了PPP报文传输的局限性。
L2TP分为LAC(L2TP Access Concentrator,L2TP访问集中器)侧和LNS(L2TPNetwork Server,L2TP网络服务器)侧,无论是哪一侧,都需要接收、处理、发送PPP报文,并且PPP报文需要承载在L2TP报文中作为L2TP的数据报文,也就是说无论LAC还是LNS侧都需要加载L2TP模块和PPP模块,并且能处理这两个模块的报文交互。
如图1,在L2TP隧道建立成功后,PPPoE Client(PPPoE客户端)会向LNS发送IPCPConfig Request(ICPC配置请求报文)来请求给自己分配IP,LNS会向PPPoE Client发送IPCP Config NAK(ICPC应答报文)进行应答;同样LNS也会向PPPoE Client发送IPCPConfig Request通告自己的IP地址,PPPoE Client会向LNS发送IPCP Config ACK以示确认。
如上所述,PPPoE Client和LNS之间传输报文方法如下:L2TP隧道建立成功后,L2TP会创建一份与PPP Session匹配的隧道表和会话表,PPP模块将PPP报文封装好后先发送给L2TP模块,L2TP模块会根据已经生成的Tunnel ID(L2TP隧道ID)和Session ID(L2TP会话ID)添加L2TP头,然后通过socket(套接字)发送给对端的L2TP模块,对端的L2TP模块收到L2TP报文后,同样根据已经生成的Tunnel ID和Session ID剥除L2TP头,再将此报文传递给PPP模块进行处理。
简而言之,现有技术中在L2TP隧道中传输PPP报文的一般流程如下:
(1)PPP通告协议报文发包:PPP将报文通告给L2TP,L2TP通过PPP Instance ID、PPP Session ID获取L2tp会话后重新封装成L2TP报文/L2TP数据包/PPP控制报文,并通过socket发包;
(2)PPP通告控制报文收包:通告L2TP收包,L2TP判断为数据包后剥去L2TP头后通告PPP。
由于上述过程中LAC、LNS发包都通过多次进程间调度最终调取SFWD,导致效率低下,所耗的时间会比较长,会存在延时风险。当用户较多时,会出现报文重传,严重时影响上线流程,同时还会增加设备负担,上线速率慢,状态不稳定等问题。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种PPP报文穿越L2TP的方法及装置,可在L2TP隧道建立成功后,实现PPP报文的较高性能传输。
为达到以上目的,本发明采取的技术方案是:
一种PPP报文穿越L2TP的方法,包括:
L2TP协议模块在建立L2TP会话通道后,告知SFWD模块L2TP与PPP会话映射表;当PPP模块发送PPP控制报文时,将PPP控制报文发送至SFWD模块,SFWD模块查询所述会话映射表中的L2TP与PPP会话映射关系,并根据所述映射关系直接封装L2TP数据报文头;有L2TP数据包或PPP控制报文需要发送时,SFWD模块通过L2TP与PPP会话映射关系,剥离L2TP报文头并填充PPP实例ID、PPP会话ID后,上送PPP模块处理。
在上述技术方案的基础上,所述L2TP与PPP会话映射表中,将PPP实例ID与L2TP隧道ID对应,将PPP会话ID与L2TP会话ID对应。
在上述技术方案的基础上,所述SFWD模块查询所述会话映射表中的L2TP与PPP会话映射关系,并根据所述映射关系直接封装L2TP数据报文头步骤具体包括:
SFWD模块收到PPP控制报文时,查询从报文首部开始偏移6个字节位置;当查找到字节为0XFF03时,从报文首部开始取报文中的前6个字节,解析出PPP实例ID和PPP会话ID;SFWD模块查找PPP与L2TP用户关系映射表,获取L2TP转发表;SFWD模块根据L2TP转发表封装L2TP数据报文头。
在上述技术方案的基础上,所述SFWD模块通过L2TP与PPP会话映射关系,剥离L2TP报文头并填充PPP实例ID、PPP会话ID后,上送PPP模块处理具体包括:
有L2TP数据包需要发送时,查询L2TP的用户表,根据表中L2TP隧道ID\L2TP会话ID获取PPP协议的PPP实例ID\PPP会话ID;剥离L2TP数据报文中的二层头、IP头、UDP头,保留PPP头;SFWD模块在PPP头之前添加6个字节,包括4个字节的PPP实例ID和2个字节的PPP会话ID,进行封装;SFWD模块将封装的报文上送至PPP模块;PPP模块根据PPP协议的PPP实例ID和PPP会话ID为PPP报文添加PPPoE头。
在上述技术方案的基础上,所述SFWD模块通过L2TP与PPP会话映射关系,剥离L2TP报文头并填充PPP实例ID、PPP会话ID后,上送PPP模块处理具体包括:
有PPP控制报文需要发送时,SFWD模块剥离L2TP数据报文中的二层头、IP头、UDP头,保留PPP头;SFWD模块在PPP头之前添加6个字节,包括4个字节的PPP实例ID和2个字节的PPP会话ID,进行封装;SFWD模块将封装的报文上送至PPP模块。
在上述技术方案的基础上,所述L2TP协议模块在建立L2TP会话通道后,告知SFWD模块L2TP与PPP会话映射表步骤具体包括:
建立L2TP会话通道后,L2TP模块向SFWD模块下发L2TP转发表;L2TP模块向PPP模块下发隧道建立成功的消息和角色信息;PPP模块收到隧道建立成功的消息后即启动PPP协议,进行PPP报文封装以及调用SFWD发送PPP报文的准备。
本发明还提供一种PPP报文穿越L2TP的装置,包括:
LAC侧装置,包括第一L2TP协议模块、第一PPP模块和第一SFWD模块;LNS侧装置,包括第二L2TP协议模块、第二PPP模块和第二SFWD模块;其中,所述第一L2TP协议模块和第二L2TP协议模块均用于在建立L2TP会话通道后,告知SFWD模块L2TP与PPP会话映射表;所述第一PPP模块和第二PPP模块均用于在发送PPP控制报文时,将PPP控制报文发送至SFWD模块;所述第一SFWD模块和第二SFWD模块用于通过套接字信息进行相互间数据传输。
在上述技术方案的基础上,所述SFWD模块还用于:
在收到PPP控制报文时,查询所述会话映射表中的L2TP与PPP会话映射关系,并根据所述映射关系直接封装L2TP数据报文头,通过套接字信息进行相互间数据传输;在有L2TP数据包或PPP控制报文需要发送时,SFWD模块通过L2TP与PPP会话映射关系,剥离L2TP报文头并填充PPP实例ID、PPP会话ID后,上送PPP模块处理。
在上述技术方案的基础上,所述L2TP协议模块还用于在建立L2TP会话通道后,向SFWD模块下发L2TP转发表,以及向PPP模块下发隧道建立成功的消息和角色信息;PPP模块还用于在收到隧道建立成功的消息后启动PPP协议,进行PPP报文封装以及调用SFWD发送PPP报文的准备。
在上述技术方案的基础上,SFWD模块还用于在收到PPP控制报文时,查询从报文首部开始偏移6个字节位置;并在查找到字节为0XFF03时,从报文首部开始取报文中的前6个字节,解析出PPP实例ID和PPP会话ID;以及查找PPP与L2TP用户关系映射表,获取L2TP转发表,并根据L2TP转发表封装L2TP数据报文头。
与现有技术相比,本发明的优点在于:
(1)本发明的PPP报文穿越L2TP的方法仅依靠L2TP打通隧道会话通道,后续PPP报文不再经过L2TP模块,而是转发直接将报文上送给PPP模块,PPP模块需要发送的报文也是直接通过SFWD进行传输,可提升PPP报文的穿透效率,解决了包延时、拨号慢等问题。
(2)本发明的PPP报文穿越L2TP的方法省略了PPP报文穿越L2TP隧道过程中LAC、LNS侧发包的多次进程间反复调度过程,可以将PPP的传输缩短至秒级,提升报文传输性能,缩短拨号时间,极大的避免了PPP报文在隧道内重传。
(3)本发明的PPP报文穿越L2TP的装置包括专门设置的SFWD模块,通过套接字进行LAS侧和LNS侧间的数据包转发和交互操作,相较于传统方法中,PPP将报文发送至L2TP模块进行隧道头的封装,L2TP模块封装完成后调用SFWD发送报文的做法,省略了PPP与L2TP的交互过程,提升了报文传输性能。
附图说明
图1是本发明实施例中在L2TP隧道中传输的PPP报文交互消息图;
图2是本发明实施例中L2TP隧道LAC和LNS侧间的模块关系图;
图3是本发明实施例中LAC侧和LNS侧L2TP与PPP对应的用户关系表;
图4是本发明实施例中L2TP模块向SFWD下发的L2TP转发表;
图5是本发明实施例中SFWD与PPP模块交互的报文格式;
图6是本发明实施例中SFWD收到来自隧道的报文处理流程图;
图7是本发明实施例中LAC侧收到来自UNI接口的PPP报文处理流程图;
图8是本发明实施例中PPP模块上送报文给SFWD后的处理流程。
具体实施方式
以下结合附图及实施例对本发明作进一步详细说明。
本发明中的SFWD(Soft Forward,数据软件转发模块)为实现本发明方案的重要中心模块,从软件架构的层次看,SFWD模块属于硬件驱动层和上层应用(上层应用包括所有协议模块,本专利中的上层应用就是L2TP协议模块)的中间层次,用于完成各种报文的收集和分发,在LAC侧和LNS侧的SFWD模块之间可通过套接字进行数据的互通。
下面就本发明中所使用的表项和报文格式进行介绍:
本发明实施例中L2TP的用户表和PPP的用户表的映射关系如图3所示,在LAC侧,因为是先建立PPP用户,先生成PPP Instance ID(PPP实例ID)和PPP Session ID(PPP会话ID),因此可以让L2TP的Tunnel ID(隧道ID)使用PPP的Instance ID,L2TP的Session ID(会话ID)使用PPP的Session ID;在LNS侧,因为是先建立L2TP隧道,先生成L2TP Tunnel ID和L2TP Session ID,因此可以让PPP的Instance ID使用L2TP的Tunnel ID,PPP的Session ID使用L2TP的Session ID。那么就可以唯一确定PPP与L2TP的用户映射关系,可以通过PPP的[Instance ID,Session ID]表获取L2TP的[Tunnel ID\Session ID]表,也可以通过L2TP的[Tunnel ID\Session ID]表获取PPP的[Instance ID,Session ID]表。
本发明中L2TP模块下给SFWD的L2TP转发表项如图4所示,该表中集合了两个映射关系:
一是本端L2TP模块与对端L2TP模块分别协商出来的tunnel ID和session ID映射关系,SFWD模块需要根据对端的tunnel ID和session ID确定L2TP报文的出接口,因此将本端的L2TP tunnel ID和session ID前面添加Local,对端的L2TP tunnel ID和L2TPsession ID前面添加Peer,以便SFWD模块区分本端与对端信息;
二是本端L2TP模块与本端PPP模块交互时生成的映射关系,在SFWD模块为PPP报文添加或剥离正确的L2TP头时使用,由于此时SFWD模块无需关注对端PPP的信息,因此PPP的实例和会话信息取名为PPP Instance ID和PPP Session ID。
本发明的PPP与SFWD模块构建的私有报文格式如图5所示,PPP模块和SFWD交互的报文格式是在PPP报文前面加上4个字节的PPP Instance ID(其内容同L2TP中的LocalTunnel ID)和2个字节的PPP Session ID,再加上PPP的报文标志两个字节0XFF 03。SFWD将收到的L2TP报文的L2TP头剥掉,封装成图5的格式上送给PPP协议;同样,PPP将报文封装成图5的格式下送给SFWD,SFWD再根据PPP的[Instance ID\Session ID]表获取L2TP的[Tunnel ID\Session ID]表,继而根据L2TP的[Tunnel ID\Session ID]表即可查找到L2TP模块下给SFWD的L2TP转发表项(图4所示),根据L2TP转发表项添加好L2TP头进行传输。
此部分的设计主要是为了解决SFWD对PPP和L2TP对应关系的缺失,一旦SFWD拥有了PPP和L2TP的对应关系,即可根据这种对应关系直接与PPP进行报文转发。
本发明提供一种PPP报文穿越L2TP的方法,包括:
L2TP协议模块在建立L2TP会话通道后,告知SFWD模块L2TP与PPP会话映射表;当PPP模块发送PPP控制报文时,将PPP控制报文发送至SFWD模块,SFWD模块查询所述会话映射表中的L2TP与PPP会话映射关系,并根据所述映射关系直接封装L2TP数据报文头;有L2TP数据包或PPP控制报文需要发送时,SFWD模块通过L2TP与PPP会话映射关系,剥离L2TP报文头并填充PPP实例ID、PPP会话ID后,上送PPP模块处理。
在一个优选的实施例中,L2TP与PPP会话映射表中将PPP实例ID与L2TP隧道ID对应,将PPP会话ID与L2TP会话ID对应。
在一个优选的实施例中,所述SFWD模块查询所述会话映射表中的L2TP与PPP会话映射关系,并根据所述映射关系直接封装L2TP数据报文头步骤具体包括:SFWD模块收到PPP控制报文时,查询从报文首部开始偏移6个字节位置;当查找到字节为0XFF03时,从报文首部开始取报文中的前6个字节,解析出PPP实例ID和PPP会话ID;SFWD模块查找PPP与L2TP用户关系映射表,获取L2TP转发表;SFWD模块根据L2TP转发表封装L2TP数据报文头。
在一个优选的实施例中,所述SFWD模块通过L2TP与PPP会话映射关系,剥离L2TP报文头并填充PPP实例ID、PPP会话ID后,上送PPP模块处理具体包括:
有L2TP数据包需要发送时,查询L2TP的用户表,根据表中L2TP隧道ID\L2TP会话ID获取PPP协议的PPP实例ID\PPP会话ID;剥离L2TP数据报文中的二层头、IP头、UDP头,保留PPP头;SFWD模块在PPP头之前添加6个字节,包括4个字节的PPP实例ID和2个字节的PPP会话ID,进行封装;SFWD模块将封装的报文上送至PPP模块;PPP模块根据PPP协议的PPP实例ID和PPP会话ID为PPP报文添加PPPoE头。
在一个优选的实施例中,所述SFWD模块通过L2TP与PPP会话映射关系,剥离L2TP报文头并填充PPP实例ID、PPP会话ID后,上送PPP模块处理具体包括:
有PPP控制报文需要发送时,SFWD模块剥离L2TP数据报文中的二层头、IP头、UDP头,保留PPP头;SFWD模块在PPP头之前添加6个字节,包括4个字节的PPP实例ID和2个字节的PPP会话ID,进行封装;SFWD模块将封装的报文上送至PPP模块。
在上述技术方案的基础上,为了优化L2TP协议与PPP协议的兼容流程,在L2TP协议模块在建立L2TP会话通道后,告知SFWD模块L2TP与PPP会话映射表步骤具体包括:
建立L2TP会话通道后,L2TP模块向SFWD模块下发L2TP转发表;L2TP模块向PPP模块下发隧道建立成功的消息和角色信息;PPP模块收到隧道建立成功的消息后即启动PPP协议,进行PPP报文封装以及调用SFWD发送PPP报文的准备。
如图2所示,本发明还提供一种PPP报文穿越L2TP的装置,其包括:
LAC侧,包括第一L2TP协议模块、第一PPP模块和第一SFWD模块;LNS侧,包括第二L2TP协议模块、第二PPP模块和第二SFWD模块;其中,第一L2TP协议模块和第二L2TP协议模块均用于在建立L2TP会话通道后,告知SFWD模块L2TP与PPP会话映射表;所述第一PPP模块和第二PPP模块均用于在发送PPP控制报文时,将PPP控制报文发送至SFWD模块;所述第一SFWD模块和第二SFWD模块用于通过套接字信息进行相互间数据传输。
在一个优选的实施例中,所述SFWD模块还用于:
在收到PPP控制报文时,查询所述会话映射表中的L2TP与PPP会话映射关系,并根据所述映射关系直接封装L2TP数据报文头,通过套接字信息进行相互间数据传输;在有L2TP数据包或PPP控制报文需要发送时,SFWD模块通过L2TP与PPP会话映射关系,剥离L2TP报文头并填充PPP实例ID、PPP会话ID后,上送PPP模块处理。
在一个优选的实施例中,所述L2TP协议模块还用于在建立L2TP会话通道后,向SFWD模块下发L2TP转发表,以及向PPP模块下发隧道建立成功的消息和角色信息;
PPP模块还用于在收到隧道建立成功的消息后启动PPP协议,进行PPP报文封装以及调用SFWD发送PPP报文的准备。
在一个优选的实施例中,SFWD模块还用于在收到PPP控制报文时,查询从报文首部开始偏移6个字节位置;并在查找到字节为0XFF03时,从报文首部开始取报文中的前6个字节,解析出PPP实例ID和PPP会话ID;
以及查找PPP与L2TP用户关系映射表,获取L2TP转发表,并根据L2TP转发表封装L2TP数据报文头。
下面就一个本发明实施例的具体技术方案说明,该实施例为以LNS侧的PPP首先发起PPP的IPCP Config Request(IPCP配置请求报文),LAC使用IPCP Config Ack(IPCP应答报文)应答为例介绍SFWD模块在本发明实施方式中运行的具体流程。
首先如图2所示和上文所述,在LAC和LNS隧道建立成功后,完成L2TP模块、PPP模块和SFWD模块间的调用准备。
当进行由LNS向LAC方向的数据传输时,LNS侧的SFWD开始处理收到的PPP报文(本实施例中为IPCP Config Request),其处理流程如图8所示:
(1)SFWD模块判断设备类型是否为LNS设备,如果是则执行下一步骤,如果不是则进入其他流程;
(2)SFWD模块查看从报文首部开始偏移6个字节内容,判断是否为0XFF 03,如果是则执行下一步骤,如果不是则按其他流程处理;
(3)SFWD模块从报文首部开始取报文中的前6个字节,解析出PPP实例ID和PPP会话ID;
(4)SFWD模块查找LNS侧的PPP与L2TP用户关系映射表,获取L2TP隧道信息(图4所示的L2TP转发表);
(5)SFWD模块根据L2TP转发表封装L2TP头部信息;
(6)SFWD模块查找IPV4的路由并且发送报文。
第三步,当LAC侧收到来自隧道的L2TP数据报文,需要将此报文中承载的PPP报文转给PPP模块,LAC侧的SFWD模块的具体流程如图6所示,包括:
(1)判断收包的UDP端口是否为L2TP端口1701,如果是则执行下一步骤,如果不是则进入一般流程处理;
(2)查找IPV4路由,如果是本地路由则执行下一步骤,如果不是本地路由则进入一般流程处理;
(3)判断报文是否为L2TP协议报文,如果是L2TP协议报文则直接送给L2TP模块,如果是L2TP数据报文,则执行下一步骤;
(4)判断是否为PPP的协议报文类型:0XC021\0X8021\0XC021\0XC223,如果是则执行下一步骤,如果不是则进入其他流程;
(5)判断设备类型是LAC还是LNS,如果为LAC则执行下一步骤,如果是LNS按照后述由LAC向LNS方向流程进行报文处理;
(6)查L2TP协议的用户表,根据L2TP的[L2TP Tunnel ID\L2TP Session ID]表获取PPP的[PPP实例ID\PPP会话ID]表;
(7)剥离L2TP数据报文中的二层头、IP头、UDP头,保留PPP头;
(8)根据步骤6中获取的PPP表在PPP头之前添加6个字节,并进行封装,包括4个字节的PPP实例ID和2个字节的PPP会话ID,如图5所示;
(9)SFWD模块将步骤8中封装的报文上送给PPP模块;
(10)PPP模块根据PPP的PPP实例ID和PPP会话ID为PPP报文添加PPPoE头;
(11)将步骤10中封装的报文发送给PPPoE客户端。
上述过程完成了从LNS侧向PPPoE客户端发送报文的流程,PPPoE客户端收到PPP报文(比如IPCP Config Request)则会发送应答报文(比如IPCP Config Ack),PPPoE客户端发送的应答报文还是先到LAC侧,添加好L2TP头后再经过隧道发送给LNS侧。
当进行由LAC向LNS方向的数据传输时,PPPoE客户端将报文发送给LAC侧,LAC侧要将此报文穿越隧道发送给LNS,LAC侧的SFWD模块的具体流程如图7所示,包括:
(1)LAC的UNI口收到的报文是否为PPPoE标识,如果是0X8863,SFWD模块则将此报文直接上送给PPP模块,如果是0X8864,则执行步骤2;
(2)SFWD模块检查PPP的协议字段是否为0XC021\0X8021\0XC023\0XC223,如果是则执行下一步骤,如果不是则进入其他处理流程;
(3)SFWD模块判断L2TP模块是否已下发角色信息,如果角色有下发,则执行步骤4,如果角色没有下发则直接上送给PPP模块;
(4)SFWD模块查询L2TP与PPP的用户关系映射表;
(5)SFWD模块根据用户关系映射表获得L2TP隧道信息(如图4的L2TP转发表);
(6)SFWD模块封装UDP、L2TP、PPP、IPV4头;
(7)SFWD模块查路由进行发送给LNS侧。
随后,LNS侧收到来自隧道的L2TP数据报文,需要将此报文中承载的PPP报文转给PPP模块,LNS侧SFWD模块的具体处理流程如下,如图6所示:
(1)SFWD模块判断收包的UDP端口是否为L2TP端口1701,如果不是则进入一般流程处理,如果是则执行下一步骤;
(2)SFWD模块查找IPV4路由,如果不是本地路由则进入一般流程处理,如果是本地路由则执行下一步骤;
(3)SFWD模块判断报文是否为L2TP协议报文,如果是L2TP协议报文则直接送给L2TP模块,如果是L2TP数据报文,则执行步骤4;
(4)SFWD模块判断是否为PPP的协议报文类型:0XC021\0X8021\0XC021\0XC223,如果不是则进入其他流程,如果是则执行下一步骤;
(5)SFWD判断设备类型是LAC还是LNS,如果是LNS执行下一步骤,如果是LAC按照前述由LNS向LAC方向的报文处理;
(6)在LNS侧L2TP的[L2TP隧道ID/L2TP会话ID]即为PPP的[PPP实例ID/PPP会话ID];
(7)SFWD模块剥离L2TP数据报文中的二层头、IP头、UDP头,保留PPP头;
(8)SFWD模块根据步骤6在PPP头之前添加6个字节,其中包括4个字节的PPP实例ID和2个字节的PPP会话ID,相关报文结构如图5所示;
(9)SFWD模块将步骤8中封装的报文上送给PPP模块;
(10)PPP模块处理协议报文。
在上述介绍的实施方式中仅介绍了IPCP Config Request报文两个方向的处理,对于其他报文(比如:IPCP Config Nak、IPCP Config Ack、IPCP Config Reject)与此相同,在此不再赘述。
本发明适用范围不局限于数据通信领域,所处理的消息也不局限于PPP在L2TP隧道中的穿越,也可以推广到类似的消息承载的应用中,比如在单盘间用PPP报文承载LLDP报文进行通信,通告本盘信息的流程中。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (10)
1.一种PPP报文穿越L2TP的方法,其特征在于,包括:
L2TP协议模块在建立L2TP会话通道后,告知SFWD模块L2TP与PPP会话映射表;
当PPP模块发送PPP控制报文时,将PPP控制报文发送至SFWD模块,SFWD模块查询所述会话映射表中的L2TP与PPP会话映射关系,并根据所述映射关系直接封装L2TP数据报文头;
有L2TP数据包或PPP控制报文需要发送时,SFWD模块通过L2TP与PPP会话映射关系,剥离L2TP报文头并填充PPP实例ID、PPP会话ID后,上送PPP模块处理。
2.如权利要求1所述的PPP报文穿越L2TP的方法,其特征在于:所述L2TP与PPP会话映射表中,将PPP实例ID与L2TP隧道ID对应,将PPP会话ID与L2TP会话ID对应。
3.如权利要求2所述的PPP报文穿越L2TP的方法,其特征在于,所述SFWD模块查询所述会话映射表中的L2TP与PPP会话映射关系,并根据所述映射关系直接封装L2TP数据报文头步骤具体包括:
SFWD模块收到PPP控制报文时,查询从报文首部开始偏移6个字节位置;
当查找到字节为0XFF03时,从报文首部开始取报文中的前6个字节,解析出PPP实例ID和PPP会话ID;
SFWD模块查找PPP与L2TP用户关系映射表,获取L2TP转发表;
SFWD模块根据L2TP转发表封装L2TP数据报文头。
4.如权利要求2所述的PPP报文穿越L2TP的方法,其特征在于,所述SFWD模块通过L2TP与PPP会话映射关系,剥离L2TP报文头并填充PPP实例ID、PPP会话ID后,上送PPP模块处理具体包括:
有L2TP数据包需要发送时,查询L2TP的用户表,根据表中L2TP隧道ID\L2TP会话ID获取PPP协议的PPP实例ID\PPP会话ID;
剥离L2TP数据报文中的二层头、IP头、UDP头,保留PPP头;
SFWD模块在PPP头之前添加6个字节,包括4个字节的PPP实例ID和2个字节的PPP会话ID,进行封装;
SFWD模块将封装的报文上送至PPP模块;
PPP模块根据PPP协议的PPP实例ID和PPP会话ID为PPP报文添加PPPoE头。
5.如权利要求2所述的PPP报文穿越L2TP的方法,其特征在于,所述SFWD模块通过L2TP与PPP会话映射关系,剥离L2TP报文头并填充PPP实例ID、PPP会话ID后,上送PPP模块处理具体包括:
有PPP控制报文需要发送时,SFWD模块剥离L2TP数据报文中的二层头、IP头、UDP头,保留PPP头;
SFWD模块在PPP头之前添加6个字节,包括4个字节的PPP实例ID和2个字节的PPP会话ID,进行封装;
SFWD模块将封装的报文上送至PPP模块。
6.如权利要求1-5任意一项所述的PPP报文穿越L2TP的方法,其特征在于:所述L2TP协议模块在建立L2TP会话通道后,告知SFWD模块L2TP与PPP会话映射表步骤具体包括:
建立L2TP会话通道后,L2TP模块向SFWD模块下发L2TP转发表;
L2TP模块向PPP模块下发隧道建立成功的消息和角色信息;
PPP模块收到隧道建立成功的消息后即启动PPP协议,进行PPP报文封装以及调用SFWD发送PPP报文的准备。
7.一种PPP报文穿越L2TP的装置,其特征在于,包括:
LAC侧装置,包括第一L2TP协议模块、第一PPP模块和第一SFWD模块;
LNS侧装置,包括第二L2TP协议模块、第二PPP模块和第二SFWD模块;
其中,所述第一L2TP协议模块和第二L2TP协议模块均用于在建立L2TP会话通道后,告知SFWD模块L2TP与PPP会话映射表;
所述第一PPP模块和第二PPP模块均用于在发送PPP控制报文时,将PPP控制报文发送至SFWD模块;
所述第一SFWD模块和第二SFWD模块用于通过套接字信息进行相互间数据传输。
8.如权利要求7所述的PPP报文穿越L2TP的装置,其特征在于,所述SFWD模块还用于:
在收到PPP控制报文时,查询所述会话映射表中的L2TP与PPP会话映射关系,并根据所述映射关系直接封装L2TP数据报文头,通过套接字信息进行相互间数据传输;在有L2TP数据包或PPP控制报文需要发送时,SFWD模块通过L2TP与PPP会话映射关系,剥离L2TP报文头并填充PPP实例ID、PPP会话ID后,上送PPP模块处理。
9.如权利要求7所述的PPP报文穿越L2TP的装置,其特征在于:
所述L2TP协议模块还用于在建立L2TP会话通道后,向SFWD模块下发L2TP转发表,以及向PPP模块下发隧道建立成功的消息和角色信息;
PPP模块还用于在收到隧道建立成功的消息后启动PPP协议,进行PPP报文封装以及调用SFWD发送PPP报文的准备。
10.如权利要求7所述的PPP报文穿越L2TP的装置,其特征在于:
SFWD模块还用于在收到PPP控制报文时,查询从报文首部开始偏移6个字节位置;并在查找到字节为0XFF03时,从报文首部开始取报文中的前6个字节,解析出PPP实例ID和PPP会话ID;
以及查找PPP与L2TP用户关系映射表,获取L2TP转发表,并根据L2TP转发表封装L2TP数据报文头。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010696200.0A CN111935330B (zh) | 2020-07-20 | 2020-07-20 | 一种ppp报文穿越l2tp的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010696200.0A CN111935330B (zh) | 2020-07-20 | 2020-07-20 | 一种ppp报文穿越l2tp的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111935330A true CN111935330A (zh) | 2020-11-13 |
CN111935330B CN111935330B (zh) | 2022-04-29 |
Family
ID=73313704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010696200.0A Active CN111935330B (zh) | 2020-07-20 | 2020-07-20 | 一种ppp报文穿越l2tp的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111935330B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003244188A (ja) * | 2002-02-21 | 2003-08-29 | Nippon Telegr & Teleph Corp <Ntt> | トンネル通信方法 |
US20060120374A1 (en) * | 2004-12-08 | 2006-06-08 | Hitachi Communication Technologies, Ltd. | Packet forwarding apparatus and communication network suitable for wide area ethernet service |
CN101753525A (zh) * | 2008-12-17 | 2010-06-23 | 华为技术有限公司 | 实现dhcp用户业务批发的方法、系统和设备 |
CN101764757A (zh) * | 2010-01-20 | 2010-06-30 | 华为技术有限公司 | 内容访问方法、装置和系统 |
CN108833232A (zh) * | 2018-06-27 | 2018-11-16 | 烽火通信科技股份有限公司 | 一种基于VPP的PPPoE客户端实现方法及PPPoE客户端 |
-
2020
- 2020-07-20 CN CN202010696200.0A patent/CN111935330B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003244188A (ja) * | 2002-02-21 | 2003-08-29 | Nippon Telegr & Teleph Corp <Ntt> | トンネル通信方法 |
US20060120374A1 (en) * | 2004-12-08 | 2006-06-08 | Hitachi Communication Technologies, Ltd. | Packet forwarding apparatus and communication network suitable for wide area ethernet service |
CN101753525A (zh) * | 2008-12-17 | 2010-06-23 | 华为技术有限公司 | 实现dhcp用户业务批发的方法、系统和设备 |
CN101764757A (zh) * | 2010-01-20 | 2010-06-30 | 华为技术有限公司 | 内容访问方法、装置和系统 |
CN108833232A (zh) * | 2018-06-27 | 2018-11-16 | 烽火通信科技股份有限公司 | 一种基于VPP的PPPoE客户端实现方法及PPPoE客户端 |
Also Published As
Publication number | Publication date |
---|---|
CN111935330B (zh) | 2022-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10122574B2 (en) | Methods and apparatus for a common control protocol for wired and wireless nodes | |
CN107786613B (zh) | 宽带远程接入服务器bras转发实现方法和装置 | |
EP1844402B1 (en) | Techniques for migrating a point to point protocol to a protocol for an access network | |
WO2019007209A1 (zh) | 一种多路径数据传输处理方法及网络设备 | |
Valencia et al. | Cisco Layer Two Forwarding (Protocol)" L2F" | |
US20070195804A1 (en) | Ppp gateway apparatus for connecting ppp clients to l2sw | |
US9172554B2 (en) | Method and network access device for enabling data forwarding between different physical mediums | |
US20210409288A1 (en) | Packet Transmission Method, Apparatus, and System | |
CN111865940B (zh) | 一种传输优化的方法及装置 | |
CN101304387A (zh) | 一种实现二层隧道协议隧道转换的方法 | |
CN105897665B (zh) | 一种卫星网络环境下实现tcp传输的方法及相应的网关 | |
US7054321B1 (en) | Tunneling ethernet | |
WO1996000468A1 (en) | Method for using point-to-point protocol over an imperfect mesh network | |
CN111935330B (zh) | 一种ppp报文穿越l2tp的方法及装置 | |
WO2006081776A1 (fr) | Méthode de communication et dispositif de protocole de liaison local différent | |
WO2019041332A1 (zh) | 一种加速网络传输优化方法以及系统 | |
JP4817797B2 (ja) | PPPoEブリッジ装置及びPPPoEセッション切断方法 | |
CN113542395B (zh) | 报文处理方法和报文处理系统 | |
CN113794715B (zh) | 一种虚拟点对点网络数据发送方法及其系统 | |
Cisco | IBM Network Media Translation Commands | |
CN115550288B (zh) | 一种以太网数据流转发的方法及系统 | |
CN110474830B (zh) | 一种基于端口转发的p2p隧道通信方法 | |
CN113300959A (zh) | 一种在5g网络中应用的mpls-vpn通信方法 | |
JPH10327152A (ja) | ネットワーク管理方法と管理方式 | |
CN117527875A (zh) | 会话转发方法、装置、计算机可读介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |