PPPoE数据报文传输方法、装置、设备及存储介质与流程

文档序号:20211195发布日期:2020-03-31 11:03阅读:327来源:国知局
PPPoE数据报文传输方法、装置、设备及存储介质与流程

本发明涉及通讯技术领域,特别涉及一种pppoe数据报文传输方法、装置、设备及存储介质。



背景技术:

pppoe(point-to-pointprotocoloverethernet,以太网上的点对点协议)是bras(broadbandremoteaccessserver,传统宽带远程接入服务器)中的一种重要用户上网接入协议。

在多个pppoe用户进行通信时,由于bras系统无法获取到用户端口的信息,因此一般需要构建二层协议栈,利用二层交换机学习端口信息,学习到端口信息后才能将pppoe数据报文发送至相应的客户端,导致bras在传输pppoe数据报文时资源消耗大,效率较低。



技术实现要素:

本发明实施方式的目的在于提供一种pppoe数据报文传输方法、装置、设备及存储介质,使得bras传输pppoe数据报文的效率提高。

为解决上述技术问题,本发明的实施方式提供了一种pppoe数据报文传输方法,包含以下步骤:获取各pppoe客户端的端口信息;将端口信息上报至sdn控制器;接收ip报文和sdn控制器根据端口信息下发的流表;根据流表将ip报文进行流表匹配;若匹配成功,则根据流表将ip报文转换为pppoe数据报文,并将pppoe数据报文发送至与流表中的端口信息对应的目标pppoe客户端。

本发明的实施方式还提供了一种pppoe数据报文传输装置,包含:端口信息获取模块,用于获取各pppoe客户端的端口信息;端口信息上报模块,用于将端口信息上报至sdn控制器;下发流表接收模块,用于ip报文和接收sdn控制器根据端口信息下发的流表;接收报文匹配模块,用于根据流表将ip报文进行流表匹配;数据报文发送模块,用于若匹配成功,则根据流表将ip报文转换为pppoe数据报文,并将pppoe数据报文发送至与流表中的端口信息对应的目标pppoe客户端。

本发明的实施方式还提供了一种网络设备,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述的pppoe数据报文传输方法。

本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现上述的pppoe数据报文传输方法。

本发明实施方式相对于现有技术而言,通过交换机将获取的端口信息上报至sdn控制器,使sdn控制器可以根据端口信息下发流表,从而交换机可以根据流表中的端口信息将接收到的ip报文转换为pppoe数据报文,并将pppoe数据报文转发至正确的pppoe客户端。由于可以实现交换机直接根据sdn控制器下发的流表进行pppoe数据报文传输的处理,不需要构建厚重的二层协议栈,使得bras系统比较轻量化,资源消耗少,效率提高。

另外,将端口信息上报至sdn控制器,包括:将pppoe客户端的端口信息按照预设格式存储于用户数据报协议的有效负载中;将用户数据报协议上报至sdn控制器。交换机通过用户数据报协议来上报pppoe客户端的端口信息,只需在pppoe客户端发起拨号认证时发送一次即可,不需要交换机定时上报或者sdn控制器主动查询,比较轻量级,可以提高交换机的处理效率。

另外,将pppoe数据报文发送至与流表中的端口信息对应的目标pppoe客户端,包括:获取pppoe数据报文在流表中端口信息对应的出端口;根据出端口将pppoe数据报文发送至目标pppoe客户端。通过获取pppoe数据报文在流表中端口信息对应的出端口,可以根据获取的出端口将pppoe数据报文转发至正确的pppoe客户端。

另外,流表包括目标pppoe客户端的ip地址;根据流表将ip报文进行流表匹配,包括:获取ip报文中的目的ip地址;将目的ip地址与流表中的目标pppoe客户端的ip地址进行匹配。通过获取ip报文中的目的ip地址,可以根据目的ip地址实现匹配,从而判断ip报文是否为需要转发至pppoe客户端的pppoe数据报文。

另外,流表包括目标pppoe客户端的介质访问控制地址;将pppoe数据报文发送至与流表中的端口信息对应的目标pppoe客户端,包括:根据流表将pppoe数据报文的目的介质访问控制地址修改为流表中的目标pppoe客户端的介质访问控制地址;将修改介质访问控制地址后的pppoe数据报文发送至与流表中的端口信息对应的目标pppoe客户端。根据流表将pppoe数据报文的目的介质访问地址修改为流表中的目标pppoe客户端的介质访问控制地址,可以保证交换机与目标pppoe客户端的正确数据传输。

另外,根据流表将ip报文转换为pppoe数据报文,包括:根据流表对ip报文进行加封装,获得pppoe数据报文。通过流表对匹配成功的ip报文进行加封装,可以将ip报文转换为pppoe数据报文,从而可以将转换后的报文发送至pppoe客户端,实现pppoe数据报文的转发。

另外,获取各pppoe客户端的端口信息,包括:根据各pppoe客户端的拨号信息获取各pppoe客户端的端口信息和介质访问控制地址;将端口信息上报至sdn控制器,包括:通过用户数据报协议将各pppoe客户端的端口信息和介质访问控制地址上报至sdn控制器。通过获取各pppoe客户端的端口信息和介质访问控制地址,并通过用户数据报协议上报给sdn控制器,这样sdn控制器可根据端口信息获取至对应介质访问控制地址,从而sdn控制器可根据pppoe客户端的介质访问控制地址和端口信息下发流表,保证交换机将pppoe数据报文正确传输至目标pppoe客户端。

附图说明

一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定。

图1是现有技术中pppoe通信的示意图;

图2是本发明第一实施方式中的pppoe数据报文传输方法的流程示意图;

图3是本发明第一实施方式中的pppoe数据报文传输方法的另一流程示意图;

图4是将pppoe客户端的端口信息存储于udp的payload中的示意图;

图5是本发明第二实施方式中的pppoe数据报文传输装置的模块结构图;

图6是本发明第三实施方式中的网络设备的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。

本发明的第一实施方式涉及一种pppoe数据报文传输方法,通过获取各pppoe客户端的端口信息;将端口信息上报至sdn控制器;接收ip报文和sdn控制器根据端口信息下发的流表;根据流表将ip报文进行流表匹配;若匹配成功,则根据流表将ip报文转换为pppoe数据报文,并将pppoe数据报文发送至与流表中的端口信息对应的目标pppoe客户端。通过交换机将获取的端口信息上报给sdn控制器,使sdn控制器可以根据端口信息下发流表,从而交换机可以根据流表中的端口信息将接收到的ip报文转换为pppoe数据报文,并将pppoe数据报文转发至正确的pppoe客户端。由于交换机是根据流表进行pppoe数据报文的传输处理,不需要构建厚重的二层协议栈,使得bras系统的资源消耗少,效率提高。

应当说明的是,本发明实施方式提供的pppoe数据报文传输方法的执行主体可以但不限于bras系统中的交换机,可选地,交换机为支持openflow协议的交换机。其中,openflow为一种网络通信协议。以下以交换机为例进行说明。

请参考图1,其为现有技术中pppoe通信的示意图。标号为1的虚线路径表示从pppoe客户端2发送至pppoe客户端1的报文,标号为2的虚线路径表示从网络返回给pppoe客户端1的下行报文。对于交换机来说,需要知道pppoe客户端的端口信息才能这两种报文转发给正确的pppoe客户端。传统的做法是使用二三层交换机,利用二三层交换机学习pppoe客户端的端口信息,但这种方案需要构建二层协议栈,会使bras系统变得比较厚重,资源消耗大。

本发明实施方式提供的pppoe数据报文传输方法的流程示意图如图2所示,包括以下步骤:

s101:获取各pppoe客户端的端口信息。

其中,pppoe客户端的端口信息是指pppoe客户端的入端口的信息。可选地,pppoe客户端的端口信息可以通过pppoe客户端拨号的过程来获取。

例如,pppoe客户端向交换机发起拨号,当pppoe客户端发送pppoe控制报文到交换机时,bras系统会记录pppoe客户端的入端口信息,交换机再获取bras系统记录的pppoe客户端的入端口信息即可。

可选地,交换机可通过查询流表的方式来获取pppoe客户端的入端口的信息。例如,当交换机接收到报文时,判断报文的以太类型是否为0x8863,若是,则判定接收到的报文为pppoe控制报文,再提取pppoe客户端的入端口的信息。

由于每个pppoe客户端发起通信时都需要有一个向交换机拨号的过程,因此交换机可获取到各pppoe客户端的端口信息。

s102:将端口信息上报至sdn控制器。

其中,sdn控制器是指bras系统中控制器,主要用于管理控制业务及流表设计下发。可选地,bras系统为基于软件定义网络(softwaredefinednetwork,sdn)的bras系统。

具体地,交换机将获取的各pppoe客户端的端口信息上报给sdn控制器。可选地,交换机将各pppoe客户端的端口信息上报给sdn控制器时,可以采用与sdn控制器约定好的预设格式的消息上报给sdn控制器,使sdn控制器接收到预设格式的消息时,可以相应提取到各pppoe客户端的端口信息。其中,预设格式的消息可以根据实际需要进行具体设置,这里不做具体限制。

s103:接收ip报文和sdn控制器根据端口信息下发的流表。

应当理解的是,ip报文包括普通的ip报文和由pppoe数据报文转换的ip报文。

可选地,sdn控制器在获取到交换机上报的各pppoe客户端的端口信息后,根据pppoe客户端的端口信息形成流表下发至交换机。其中,流表中除了pppoe客户端的端口信息外,还包括其它可以与ip报文进行匹配的信息,从而使交换机可以根据下发的流表判断接收到的ip报文是否为需要转发至pppoe客户端的由pppoe数据报文转换的ip报文。其中,与ip报文进行匹配的信息例如可以为报文的目的ip地址。

s104:根据流表将接收到的ip报文进行流表匹配。

具体地,交换机根据流表中与ip报文进行匹配的信息对接收到的ip报文进行流表匹配,判断ip报文是否为pppoe数据报文转换的ip报文。

在一个具体的例子中,流表包括目标pppoe客户端的ip地址,其中,目标pppoe客户端是指接收到的ip报文指向的pppoe客户端。s104中,根据流表将接收到的ip报文进行流表匹配,具体可以包括:获取ip报文中的目的ip地址,将目的ip地址与流表中目标客户端的ip地址进行匹配。

具体地,交换机提取ip报文中的目的ip地址,然后将提取的目的ip地址与目标客户端的ip地址进行匹配,判断两者是否一致。若提取的目的ip地址与目标客户端的ip地址一致,则表明接收到的ip报文为由pppoe数据报文转换的ip报文;若不一致,则表明接收到的ip报文为普通的ip报文。

通过获取ip报文中的目的ip地址,可以根据目的ip地址实现匹配,从而判断ip报文是否为需要转发至pppoe客户端的pppoe数据报文。

s105:若匹配成功,则根据流表将接收到ip报文转换为pppoe数据报文,并将pppoe数据报文发送至与流表中的端口信息对应的目标pppoe客户端。

具体地,若匹配成功,则表明接收到的ip报文为由pppoe数据报文转换的ip报文,交换机根据流表将接收到的ip报文转换为pppoe数据报文,并根据流表中的端口信息将转换的pppoe数据报文发送至目标pppoe客户端。

在一个具体的例子中,s105中,将pppoe数据报文发送至流表中的端口信息对应的目标pppoe客户端,可以包括:获取pppoe数据报文在流表中端口信息对应的出端口;根据出端口将pppoe数据报文发送至目标pppoe客户端。

可选地,端口信息对应的出端口位于流表的动作域中,交换机可根据流表的动作域中端口信息获取到pppoe数据报文对应的出端口,再根据获取的出端口将pppoe数据报文进行转发至正确的pppoe客户端,亦即目标pppoe客户端。

由于交换机接收的流表中包括了pppoe客户端的端口信息,而流表中的匹配信息可以与ip报文匹配的信息一一对应,因此,在匹配成功之后,交换机一方面将ip报文转化成pppoe报文,另一方面根据匹配的流表中的端口信息获取到pppoe数据报文对应的出端口,再根据该出端口将pppoe数据报文发送给目标pppoe客户端。

通过获取pppoe数据报文在流表中端口信息对应的出端口,可以根据获取的出端口将pppoe数据报文转发至正确的pppoe客户端。

在一个具体的例子中,流表包括目标pppoe客户端的mac地址;s105中,将pppoe数据报文发送至与流表中的端口信息对应的目标pppoe客户端,可以包括:根据流表将pppoe数据报文的目的mac地址修改为流表中的目标pppoe客户端的mac地址,将修改mac地址后的pppoe数据报文发送至与流表中的端口信息对应的目标pppoe客户端。

其中,流表中的目标pppoe客户端的mac地址可由sdn控制器从证服务器中获取,认证服务器可以通过pppoe客户端向认证服务器发起认证的过程中获取。流表中的目标pppoe客户端的mac地址的获取途径也可以是其它的获取途径,这里不做具体限制。

可选地,修改pppoe数据报文的目的mac地址也可以设置流表中的动作域来实现,交换机根据流表中的动作域可以将pppoe数据报文的目的mac地址修改为流表中的目标pppoe客户端的mac地址。

具体地,交换机根据接收到的流表中的动作域将匹配成功的pppoe数据报文的目的mac地址修改为流表中目标pppoe客户端的mac地址,再将修改mac地址后的pppoe数据报文发送至与流表中端口信息对应的目标pppoe客户端。

应当理解的是,由于在交换机接收到ip报文时,ip报文的目的mac地址为虚拟的mac地址,因此,根据流表将pppoe数据报文的目的mac地址修改为流表中的目标pppoe客户端的mac地址,可以保证交换机与目标pppoe客户端的正确数据传输。

与现有技术相比,本发明实施方式提供的pppoe数据报文传输方法,通过交换机将获取的端口信息上报至sdn控制器,使sdn控制器可以根据端口信息下发流表,从而交换机可以根据流表将接收到的ip报文转换为pppoe数据报文,并将pppoe数据报文按流表中的端口信息转发至正确的pppoe客户端。由于可以实现交换机直接根据sdn控制器下发的流表进行pppoe数据报文传输的处理,不需要构建厚重的二层协议栈,使得bras系统比较轻量化,资源消耗少,效率提高。

在一个具体的例子中,在s105中,根据流表将ip报文转换为pppoe数据报文,可以包括:根据流表对ip报文进行加封装,获得pppoe数据报文。

应当理解的是,ip报文与pppoe数据报文的区别在于pppoe数据报文比ip多了一个报文头,其中,报文头包括pppoe客户端的会话id(sessionid)、代码类型和协议类型。可选地,报文头的信息可以从认证服务器中获取,认证服务器可在pppoe客户端向认证服务器发起认证时获取到报文头的信息。

可选地,pppoe数据报文从pppoe客户端发送至网络时,包括一个解封装的过程,即将pppoe数据报文的报文头进行去除,从而将pppoe数据报文转换为ip报文,再转发至网络。

通过流表对匹配成功的ip报文进行加封装,可以将ip报文转换为pppoe数据报文,从而可以将转换后的报文发送至pppoe客户端,实现pppoe数据报文的转发。

在一个具体的例子中,如图3所示,其为本发明实施方式提供的pppoe数据报文传输方法的另一流程示意图,具体包括以下步骤:

s201:获取各pppoe客户端的端口信息。

s202:将pppoe客户端的端口信息按照预设格式存储于用户数据报协议的有效负载中。

s203:将用户数据报协议上报至sdn控制器。

s204:接收ip报文和sdn控制器根据端口信息下发的流表。

s205:根据流表将接收到的ip报文进行流表匹配。

s206:若匹配成功,则根据流表将接收到的ip报文转换为pppoe数据报文,并将pppoe数据报文发送至与流表中的端口信息对应的目标pppoe客户端。

其中,s201、s204、s205和s206与上述相同,这里不再赘述。

s202中,预设格式可以根据实际需要进行设置,这里不做具体限制。预设格式为交换机和sdn控制器约定好的格式。可选地,预设格式可以包括厂商类型、端口信息及其它信息。其中,厂商类型例如是中国移动、中国电信或中国联通的标识,例如,中国移动的厂商类型为cmhi。

用户数据报协议(userdatagramprotocol,udp)是一个简单的面向无连接的数据报的传输层协议,交换机将获取的各pppoe客户端的端口信息存储于udp的有效负载(payload)中。请参考图4,其为将pppoe客户端的端口信息存储于udp的payload中的示意图。其中,vendor为厂商类型,port为pppoe客户端的端口信息。vendor与port之间可为其它需要的信息,例如为pppoe客户端的mac地址。

具体地,交换机将获取的pppoe客户端的端口信息存储于udp的payload中,再通过udp上报至sdn控制器。可选地,sdn控制器根据预设格式中的厂商类型进行判断,若厂商类型与预先约定的一致,例如为cmhi,则提取udp中pppoe客户端的端口信息,再根据pppoe客户端的端口信息下发流表。

应当说明的是,也可以通过设置交换机定时上报或者sdn控制器主动查询的方式来获取pppoe客户端的端口信息,但是定时上报或者bras控制主动查询都会消耗较多的系统和带宽资源。而通过udp来上报pppoe客户端的端口信息,只需要在pppoe客户端发起拨号认证时发送一次即可,比较轻量级,可以提高交换机的处理效率。

在一个具体的例子中,在s101中,获取各pppoe客户端的端口信息,可以包括:根据各pppoe客户端的拨号信息获取各pppoe客户端的端口信息和mac地址;在s102中,将端口信息上报至sdn控制器,可以包括:通过用户数据报协议将各pppoe客户端的端口信息和mac地址上报至sdn控制器。

在各pppoe客户端向交换机发起拨号时,交换机可获取到各pppoe客户端的端口信息,同时也可以获取到pppoe客户端的mac地址,因此,交换机可将各pppoe客户端的端口信息和mac地址同时上报至sdn控制器,在上报时,可将各pppoe客户端的端口信息和mac地址同时存储于用户数据报协议(udp)中。可选地,可存储于udp的payload中。在交换机上报后,sdn控制器可获取到各pppoe客户端的端口信息和mac地址。

可选地,sdn控制器可将每一pppoe客户端的端口信息和mac地址对应存储于bras系统中数据库的hash(哈希)表中,以mac地址作为key(键),以端口信息作为value(值)。这样,sdn控制器从认证服务器获取到pppoe客户端的mac地址和ip地址之后,即可根据mac地址去查询hash表,得到相应的端口信息,再根据ip地址、端口信息和mac地址下发流表,使交换机可根据流表将pppoe数据报文转发至正确的pppoe客户端。

通过获取各pppoe客户端的端口信息和mac地址,并通过用户数据报协议上报给sdn控制器,这样sdn控制器可根据端口信息获取至对应mac地址,从而sdn控制器可根据pppoe客户端的mac地址和端口信息下发流表,保证交换机将pppoe数据报文正确传输至目标pppoe客户端。

上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包含相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。

本发明第二实施方式涉及一种pppoe数据报文传输装置,如图5所示,包含:端口信息获取模块301、端口信息上报模块302、下发流表接收模块303、接收报文匹配模块304和数据报文发送模块305。

端口信息获取模块301,用于获取各pppoe客户端的端口信息;

端口信息上报模块302,用于将端口信息上报至sdn控制器;

下发流表接收模块303,用于ip报文和接收sdn控制器根据端口信息下发的流表;

接收报文匹配模块304,用于根据流表将ip报文进行流表匹配;

数据报文发送模块305,用于若匹配成功,则根据流表将ip报文转换为pppoe数据报文,并将pppoe数据报文发送至与流表中的端口信息对应的目标pppoe客户端。

进一步地,端口信息上报模块302还用于:

将pppoe客户端的端口信息按照预设格式存储于用户数据报协议的有效负载中;

将用户数据报协议上报至sdn控制器。

进一步地,数据报文发送模块305还用于:

根据流表将pppoe数据报文的出端口修改为端口信息对应的端口;

根据修改后的出端口将pppoe数据报文发送至目标pppoe客户端。

进一步地,流表包括目标pppoe客户端的ip地址,接收报文匹配模块304还用于:

获取ip报文中的目的ip地址;

将目的ip地址与流表中的目标pppoe客户端的ip地址进行匹配。

进一步地,流表包括目标pppoe客户端的介质访问控制地址;数据报文发送模块305还用于:

根据流表将pppoe数据报文的目的介质访问控制地址修改为流表中的目标pppoe客户端的介质访问控制地址;

将修改介质访问控制地址后的pppoe数据报文发送至与流表中的端口信息对应的目标pppoe客户端。

进一步地,数据报文发送模块305还用于:

根据流表对ip报文进行加封装,获得pppoe数据报文。

进一步地,端口信息获取模块301还用于:根据各pppoe客户端的拨号信息获取各pppoe客户端的端口信息和介质访问控制地址;端口信息上报模块302还用于:通过用户数据报协议将各pppoe客户端的端口信息和介质访问控制地址上报至sdn控制器。

不难发现,本实施方式为与第一实施方式相对应的装置实施例,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。

值得一提的是,本实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。

本发明第三实施方式涉及一种网络设备,如图6所示,包括至少一个处理器401;以及,与至少一个处理器401通信连接的存储器402;其中,存储器402存储有可被至少一个处理器401执行的指令,指令被至少一个处理器401执行,以使至少一个处理器401能够执行上述的pppoe数据报文传输方法。

其中,存储器402和处理器401采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器401和存储器402的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器401处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器401。

处理器401负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器402可以被用于存储处理器401在执行操作时所使用的数据。

本发明第四实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。

即,本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

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