CN110943896A - PPPoE数据报文传输方法、装置、设备及存储介质 - Google Patents
PPPoE数据报文传输方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN110943896A CN110943896A CN201910950468.XA CN201910950468A CN110943896A CN 110943896 A CN110943896 A CN 110943896A CN 201910950468 A CN201910950468 A CN 201910950468A CN 110943896 A CN110943896 A CN 110943896A
- Authority
- CN
- China
- Prior art keywords
- message
- pppoe
- uplink
- flow table
- downlink
- 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
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2854—Wide area networks, e.g. public data networks
- H04L12/2856—Access arrangements, e.g. Internet access
- H04L12/2869—Operational details of access network equipments
- H04L12/287—Remote access server, e.g. BRAS
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及通信技术领域,公开了一种PPPoE数据报文传输方法、装置、设备及存储介质。该PPPoE数据报文传输方法包括:根据第一流表中扩展的匹配域获取上行PPPoE数据报文;根据所述第一流表中扩展的动作域将所述上行PPPoE数据报文转换为上行IP报文后转发至网络;当接收到所述上行IP报文返回的下行IP报文时,根据第二流表扩展的动作域将所述下行IP报文转换为下行PPPoE数据报文;将所述下行PPPoE数据报文发送至客户端。本发明实施方式提供的PPPoE数据报文传输方法、装置、网络设备及存储介质,可以提高PPPoE数据报文的转发效率。
Description
技术领域
本发明涉及通信技术领域,特别涉及PPPoE数据报文传输方法、装置、设备及存储介质。
背景技术
以太网上的点对点协议(Point-to-Point Protocol Over Ethernet,简称PPPoE)是传统宽带远程接入服务器(Broadband Remote Access Server,简称BRAS)中的一种重要用户上网接入协议。其中,BRAS是面向宽带网络应用的新型接入网关,具有终结用户的PPPoE连接的功能。
vBRAS是指BRAS的虚拟化,vBRAS系统主要基于SDN/NFV为依托,使用南向标准协议openflow进行的传统BRAS系统软件化设计。其中,vBRAS系统包括控制面和转发面,当转发面为Open vSwitch软件和x86服务器硬件的型态时,控制面包括openflow控制器和BRAS子系统。
然而目前PPPoE报文中,无论是协议报文还是数据报文,都上送给vBRAS系统的控制面中的BRAS子系统,由控制面做转发,转发面Open vSwitch无法发挥作用,转发的效率较低。
发明内容
本发明实施方式的目的在于提供一种PPPoE数据报文传输方法、装置、设备及存储介质,使得PPPoE数据报文的转发效率提升。
为解决上述技术问题,本发明的实施方式提供了一种PPPoE数据报文传输方法,包含以下步骤:根据第一流表中扩展的匹配域获取上行PPPoE数据报文;根据所述第一流表中扩展的动作域将所述上行PPPoE数据报文转换为上行IP报文后转发至网络;当接收到所述上行IP报文返回的下行IP报文时,根据第二流表扩展的动作域将所述下行IP报文转换为下行PPPoE数据报文;将所述下行PPPoE数据报文发送至客户端。
本发明的实施方式还提供了一种PPPoE报文传输装置,包含:上行报文获取模块,用于根据第一流表中扩展的匹配域获取上行PPPoE数据报文;上行报文转发模块,用于根据第一流表中扩展的动作域将获取的上行PPPoE数据报文转换为上行IP报文后转发至网络;下行报文获取模块,用于当接收到上行IP报文返回的下行IP报文时,根据第二流表扩展的动作域将下行IP报文转换为下行PPPoE数据报文;下行报文发送模块,用于将下行PPPoE数据报文发送至客户端。
本发明的实施方式还提供了一种网络设备,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述的PPPoE数据报文传输方法。
本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现上述的PPPoE数据报文传输方法。
本发明实施方式相对于现有技术而言,通过对流表中的匹配域和动作域进行扩展,使上行PPPoE数据报文转换成上行IP报文进行转发,获取到上行IP报文返回的下行IP报文时,将下行IP报文转换为PPPoE报文,由于vBRAS的转发面可以根据流表扩展的匹配域和动作域对PPPoE数据报文进行识别和处理,因此可以实现了PPPoE数据报文在vBRAS的转发面进行传输,不用将PPPoE数据报文上传vBRAS的控制面进行转发,实现了vBRAS的转发和控制的分离,提高了PPPoE数据报文的转发效率。
另外,根据第一流表中扩展的动作域将上行PPPoE数据报文转换为上行IP报文后转发至网络,包括:根据第一流表中解封装动作将上行PPPoE数据报文转换为上行IP报文;根据第三流表对上行IP报文进行匹配;若匹配成功,则根据第三流表中的扩展的动作域将上行IP报文转发至网络。通过将上行PPPoE数据报文进行解封装动作,可以将上行PPPoE数据报文转换为上行IP报文,从而可以使上行PPPoE数据报文以IP报文的形式在vBRAS的转发面进行转发,实现vBRAS的转发面和控制面的分离,提高PPPoE报文转发的效率。
另外,当接收到上行IP报文返回的下行IP报文时,根据第二流表扩展的动作域将下行IP报文转换为下行PPPoE数据报文,包括:根据第二流表对接收的IP报文进行匹配;若匹配成功,则接收的IP报文为上行IP报文返回的下行IP报文;根据第二流表中加封装动作将下行IP报文转换为下行PPPoE数据报文。通过对接收到的下行IP报文进行加封装动作,可以将下行IP报文转换为下行PPPoE报文,从而将下行PPPoE报文发送至PPPoE客户端,完成PPPoE报文的传输。
另外,根据第三流表中的扩展的动作域将上行IP报文转发至网络,包括:根据第三流表中扩展的动作域修改上行IP报文的目的介质访问控制地址;根据修改后的目的介质访问控制地址将上行IP报文发送至出端口。通过流表中扩展的动作域对上行IP报文转发的介质访问控制地址进行修改,可以实现将上行IP报文进行路由转发,从而将上行IP报文转发至网络。
另外,将下行PPPoE数据报文发送至客户端,包括:根据第二流表中扩展的动作域将下行PPPoE数据报文的介质访问控制地址修改为客户端的介质访问控制地址;根据客户端的介质访问控制地址输出下行PPPoE数据报文。通过将下行PPPoE报文的介质访问控制地址修改为PPPoE客户端的介质访问控制地址,可以实现将PPPoE数据报文发送至PPPoE客户端,完成PPPoE数据报文的传输。
另外,根据第一流表中扩展的匹配域获取上行PPPoE数据报文,包括:根据第一流表中扩展的匹配域对接收的PPPoE报文进行匹配;若匹配成功,则将PPPoE报文作为上行PPPoE数据报文。
另外,扩展的匹配域包括:扩展的PPPoE代码字段、扩展的PPPoE会话标识字段和扩展的PPPoE协议字段。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定。
图1是第一实施方式中PPPoE数据报文传输方法的流程示意图;
图2是现有的PPPoE数据报文转发的方案的示意图;
图3是PPPoE数据报文的格式示意图;
图4是OXM的匹配域的示意图;
图5是第一实施方式提供的PPPoE数据报文转发的方案的示意图;
图6是ofpat_vendor的结构示意图;
图7是第一实施方式中PPPoE数据报文传输方法中步骤102细化的流程示意图;
图8是解封装动作中openflow协议扩展报文的示意图;
图9是第一实施方式中PPPoE数据报文传输方法中步骤1023细化的流程示意图;
图10是第一实施方式中PPPoE数据报文传输方法中步骤103细化的流程示意图;
图11是加封装动作中openflow协议扩展报文的示意图;
图12是第一实施方式中PPPoE数据报文传输方法中步骤104细化的流程示意图;
图13是第二实施方式中PPPoE数据报文传输装置的一模块结构示意图;
图14是第三实施方式中网络设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
本发明的第一实施方式涉及一种PPPoE报文传输方法。在本实施方式中,根据第一流表中扩展的匹配域获取上行PPPoE数据报文,根据第一流表中扩展的动作域将上行PPPoE数据报文转换为上行IP报文后转发至网络;当接收到上行IP报文返回的下行IP报文时,根据第二流表扩展的动作域将下行IP报文转换为下行PPPoE数据报文;将下行PPPoE数据报文发送至客户端。通过流表中扩展的匹配域获取上行PPPoE数据报文,再通过流表中动作域将上行PPPoE数据报文转换成上行IP报文转发至网络,将下行的IP报文转换为下行PPPoE数据报文,使PPPoE数据报文可以在vBRAS的转发面进行传输,实现了vBRAS的转发和控制的分离,提高了Open vSwitch的使用效率。
下面对本实施方式的PPPoE报文传输方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。
需要说明的是,本发明部分实施方式中的PPPoE报文传输方法可应用于vBRAS中的转发面Open vSwitch中,也可应用于其它对PPPoE报文进行处理的系统中。下面以OpenvSwitch为例进行说明。
本实施方式中的PPPoE报文传输方法的流程示意图如图1所示,包括以下步骤:
步骤101:根据第一流表中扩展的匹配域获取上行PPPoE数据报文。
步骤102:根据第一流表中扩展的动作域将上行PPPoE数据报文转换为上行IP报文后转发至网络。
步骤103:当接收到上行IP报文返回的下行IP报文时,根据第二流表扩展的动作域将下行IP报文转换为下行PPPoE数据报文。
步骤104:将下行PPPoE数据报文发送至客户端。
其中,上行是指将数据从客户端发送至网络,下行是指数据从网络返回客户端。
其中,Open vSwitch对报文进行处理时,是根据流表来执行的。例如,比如一条流表项为:icmp,in_port=1,nw_dst=10.0.0.5/32,actions=output:2。如果一个目的IP为10.0.0.5的控制报文从端口1进来,则命中此条流表项,进而执行动作为:从端口2发送出去。Open vSwitch支持openflow协议,可选地,第一流表和第二流表及后续的第三流表可以为但不限于openflow流表,以下以openflow流表进行说明。
应当理解的是,Open vSwitch是使用openflow协议的,但openflow协议本身不支持PPPoE报文的识别和处理;因此,PPPoE报文中,无论是协议报文还是数据报文,只能上送给控制面中的BRAS子系统来转发,效率较低。在进行数据的转发时,Open vSwitch是按照openflow流表进行转发,流表中最重要的为两个部分:匹配域和动作域。为了实现PPPoE报文通过转发面Open vSwitch来转发,需要openflow流表支持PPPoE报文的识别和处理,则需要对openflow流表的匹配域和动作域进行扩展。
请参考图2,其为现有的PPPoE数据报文转发的方案。具体地,由于Open vSwitch和openflow协议不支持PPPoE报文的识别和处理,所以无法对PPPoE的数据报文和控制报文进行区分;于是将PPPoE的数据报文和控制报文全部上送vBRAS控制面,由BRAS业务子系统(可以是专门做BRAS业务的软件如accel-ppp)处理PPPoE控制报文认证,以及PPPoE的数据报文终结。从图中可以看出PPPoE报文从PPPoE客户端发出,在Open vSwitch上面增加隧道封装,然后在BRAS业务子系统做PPPoE数据报文的终结,然后发送到出口网关,送到Internet。转发面的Open vSwitch只负责普通二三层流量的转发,对于PPPoE数据报文的所有流量,其无法处理,只能全部上送BRAS业务子系统,无法做到转发与控制分离。
若需要Open vSwitch对PPPoE的数据报文做终结,则需要识别PPPoE的数据报文的头部信息,因为头部信息可以区分出此报文是数据报文还是控制报文。其中,数据报文的以太类型为0x8864,并且PPPoE头中的protocol(协议)字段为0x21;控制报文的种类较多,除了以太类型为0x8863的报文之外,还有多个以太类型为0x8864,但是protocol不等于0x21的报文。
为了在Open vSwitch转发过程中更为精确的区分PPPoE的报文,Open vSwitch需要匹配PPPoE的头部,用来判断是协议报文还是数据报文。PPPoE报文的格式就是在以太网帧中携带PPP报文,请参考图3,其中PPPoE数据报文的格式示意图。其中Code表示PPPoE的报文类型,Code域为0x00,表示会话数据;Session_ID,表示不同的PPP会话;Protocol表示PPP数据报携带的报文类型(IP、LCP等等)。
从OpenFlow1.2开始,一种新的匹配结构被定义出来,这种结构被称作OpenFlowExtensible Match,简称OXM。OXM采用Type-length-value结构,所以也被称作OXM TLV。从1.2版本开始,匹配域由一组OXM TLV构成的,可能是0个,也可能是多个。每一个OXM TLV都一定包含一个4字节的头。请参考图4,其为OXM的匹配域的示意图。包括type、length和oxmTLV。其中Oxm TLV包括oxm header和value,oxm header包括:oxm_class、oxm_field、M、oxm_length;pppoe_code、pppoe_session、pppoe_protocol的oxm header分别为0xffff0205、0xffff0406、0xffff0606。Value的前4个字节为厂商ID,整体长度需要满足8的倍数。对于OpenFlow定义的标准匹配项,其oxm_class字段的值固定为0x8000,如果是其它厂商或组织定义的匹配项,则可以使用0xFFFF这个值;oxm_field用来标识type,pppoe_code、pppoe_session和pppoe_protocol的type取值分别为1、2、3;M标识是否采用掩码,这里均不采用掩码,所以取值为0;oxm_length标识value的长度(byte数),pppoe_code、pppoe_session和pppoe_protocol的长度分别为1bytes、2bytes、2bytes。综上所述,加上4字节头,pppoe_code、pppoe_session和pppoe_protocol的长度分别为5bytes、6bytes、6bytes,oxm头分别是:0xffff0205、0xffff0406、0xffff0606。
在一个具体的例子中,在步骤101中,根据第一流表中扩展的匹配域获取上行PPPoE数据报文,包括:根据第一流表中扩展的匹配域对接收的PPPoE报文进行匹配;若匹配成功,则将PPPoE报文作为上行PPPoE数据报文。
具体地,Open vSwitch可根据上述的匹配结构设置第一流表中扩展的匹配域,根据第一流表中扩展的匹配域对Open vSwitch接收到的PPPoE报文进行匹配,若匹配成功,则表示接收到的PPPoE报文为上行PPPoE数据报文。
在一个具体的例子中,第一流表中扩展的匹配域包括:扩展的PPPoE代码字段、扩展的PPPoE会话标识字段和扩展的PPPoE协议字段,即code、protocol和session字段。其中,session字段是指PPPoE用户的会话标识字段,也即会话id。
通过对流表中协议字段、会话标识字段和代码字段进行扩展,可以使流表能够匹配PPPoE数据报文,再在此基础上实现PPPoE数据报文的转发。
上行PPPoE数据报文与IP报文的区别在于上行PPPoE数据报文比IP报文多了一个头部,在匹配成功以后,还需要对openflow流表的动作域进行扩展,在动作域中加入对上行PPPoE数据报文的报文头进行去除的动作,使上行PPPoE数据报文转换为上行IP报文转发至网络;在下行IP报文转换为下行PPPoE数据报文发送至客户端时,则需要在动作域中加入对接收到的下下行IP报文增加PPPoE报文的报文头的动作。
具体地,Open vSwitch在接收到报文时,根据第一流表中扩展的匹配域进行匹配,若匹配成功,表示接收到的报文为上行PPPoE数据报文;执行第一流表中扩展的动作域,将上行PPPoE报文的报文头转换为上行IP报文后转发至网络。当接收到上行IP报文返回的下行IP报文时,根据第二流表扩展的动作域将下行IP报文转换为下行PPPoE数据报文。可选地,上行IP报文返回的下行IP报文可通过IP报文的目的IP进行判断,判断目的IP是否为上行IP报文对应的PPPoE客户端的IP,若是,则表示IP报文为上行IP报文返回的下行IP报文。
请参考图5,其为本实施方式提供的PPPoE数据报文转发的方案。具体地,主要分为vBRAS转发面、vBRAS控制面、PPPoE客户端。转发面使用Open vSwitch,依靠控制器下发的openflow流表进行流量转发。控制面有openflow控制器和BRAS业务子系统。控制器负责下发openflow流表给Open vSwitch,指导Open vSwitch做流量转发。从图中可以看到,OpenvSwitch支持了PPPoE之后,用户的PPPoE数据报文的流量可以在Open vSwitch上做终结,终结后,直接将IP报文发送到出口网关,送到Internet,不需要再上送控制面的BRAS业务子系统了,真正做到了转控分离。
与现有技术相比,本实施方式通过对流表中的匹配域和动作域进行扩展,使上行PPPoE数据报文转换成上行IP报文进行转发,获取到上行IP报文返回的下行IP报文时,将下行IP报文转换为下行PPPoE报文,由于vBRAS的转发面可以根据流表扩展的匹配域和动作域对PPPoE数据报文进行识别和处理,因此可以实现了PPPoE数据报文在vBRAS的转发面进行传输,不用将PPPoE数据报文上传vBRAS的控制面进行转发,实现了vBRAS的转发和控制的分离,提高了PPPoE数据报文的转发效率。
可选地,在上述例子中,扩展的动作域包括解封装和加封装的动作,在openflow流表中,解封装和加封装的动作可以分别定义为pop_pppoe和push_pppoe。可选地,解封装和加封装的动作需要扩展在ofpat_vendor里面,其中,ofpat_vendor的结构如图6所示。其中type的值是0xffff(OFPAT_VENDOR);length值不固定,为ofpat_vendor字段的总byte数,最小值为8;vendorID可以定义为厂商的ID号;subAction中的subType标识具体扩展的action的type,pop_pppoe和push_pppoe分别为0x0001和0x0002;value为具体的值(pop_pppoe和push_pppoe的value长度都是2bytes)。
可选地,在push pppoe时,需要在OpenFlow流表中指定封装的Code、Session_ID和protocol的值,故需要扩展OpenFlow协议中的set_field字段,例如,set_field:0x0-\>pppoe_code,set_field:0x21-\>pppoe_protocol,set_field:0x0a-\>pppoe_session。
在一个具体的例子中,在步骤102中,根据所述第一流表中扩展的动作域将所述上行PPPoE数据报文转换为上行IP报文后转发至网络,如图7所示,包括以下步骤:
步骤1021:根据第一流表中解封装动作将上行PPPoE数据报文转换为上行IP报文。
步骤1022:根据第三流表对上行IP报文进行匹配。
步骤1023:若匹配成功,则根据第三流表中的扩展的动作域将上行IP报文转发至网络。
其中,请参考图8,其为解封装动作中openflow协议扩展报文的示意图。其中,openflow协议扩展报文的构成为type、length、vendor id、subtype、value、pad。其中,type的值是0xffff,长度为2字节;lentgh为0x10,长度为2字节;vendor id为厂商标识,长度为4字节;subtype为0x0001,长度为2字节,表示pop_pppoe的动作子类型;value为0x0800,2字节,代表以太类型修改为0x0800也就是IP。
具体地,Open vSwitch根据第一流表中解封装动作将上行PPPoE数据报文转换为上行IP报文,然后转至第三流表,根据第三流表对上行IP报文进行匹配;若匹配成功,则根据第三流表中的扩展的动作域将上行IP报文转发至网络。可选地,第三流表可根据上行IP报文的目的IP进行匹配,若匹配成功,则根据第三流表中的发送端口将上行IP报文转发至网络。
通过将上行PPPoE数据报文进行解封装动作,可以将上行PPPoE数据报文转换为上行IP报文,从而可以使上行PPPoE数据报文以IP报文的形式在vBRAS的转发面进行转发,实现vBRAS的转发面和控制面的分离,提高PPPoE报文转发的效率。
在一个具体的例子中,在步骤1023中,根据第三流表中的扩展的动作域将上行IP报文转发至网络,如图9所示,具体包括以下步骤:
步骤10231:根据第三流表中扩展的动作域修改上行IP报文的目的介质访问控制地址。
步骤10232:根据修改后的目的介质访问控制地址将上行IP报文发送至出端口。
应当理解的是,当上行PPPoE数据报文转换为上行IP报文转发至网络时,需要进行路由转发,因此需要修改上行IP报文的目的介质访问控制(Media Access Control,简称MAC)地址。其中,上行IP报文的目的MAC地址根据实际转换的路由设置而定,这里不做具体限制。第三流表中扩展的动作域是指修改上行IP报文的MAC地址。
具体地,Open vSwitch根据第三流表对上行IP报文的协议类型和目的IP进行匹配,若协议类型匹配为IP协议,目的IP与第三流表中的IP匹配,则表示匹配成功,则根据第三流表中扩展的动作域将上行IP报文的目的MAC地址修改为下一跳的出口网关的MAC地址,再根据修改后的MAC地址将上行IP报文发送至与出口网关相连的地址。可选地,上行IP报文的源MAC可以改为Open vSwitch虚拟网关的MAC地址。其中,目的IP是指IP为客户端的IP。
通过流表中扩展的动作域对上行IP报文转发的MAC地址进行修改,可以实现将由上行PPPoE数据报文转换的上行IP报文进行路由转发,从而将上行IP报文转发至网络。
在一个具体的例子中,在步骤103中,当接收到上行IP报文返回的下行IP报文时,根据第二流表扩展的动作域将下行IP报文转换为下行PPPoE数据报文,如图10所示,具体包括以下步骤:
步骤1031:根据第二流表对接收的IP报文进行匹配。
步骤1032:若匹配成功,则判定接收的IP报文为上行IP报文返回的下行IP报文。
步骤1033:根据第二流表中加封装动作将下行IP报文转换为下行PPPoE数据报文。
应当说明的是,Open vSwitch在接收到IP报文时,先根据第二流表进行判断,若匹配成功,则执行第二流表对应的动作域;若匹配不成功,再进行第三流表的匹配。第二流表和第三流表的匹配顺序可以通过设置不同的优先级来实现。
其中,IP报文是指Open vSwitch接收到的任一IP报文,可选地,Open vSwitch可根据第二流表中的目的IP对接收到的IP报文进行匹配,若接收到的IP报文的目的IP为上行IP报文对应的客户端的IP,则判定该IP报文为上行报文返回的下行IP报文。
其中,请参考图11,其为加封装动作中openflow协议扩展报文的示意图。其中,openflow协议扩展报文的构成为type、length、vendor id、subtype、value、pad。其中,type的值是0xffff,2字节;lentgh为0x10,长度为2字节;vendor id为厂商标识,长度为4字节;subtype为0x0002,2字节,表示push_pppoe的动作子类型,value为0x8864,2字节,表示将以太类型修改为0x8864。
具体地,Open vSwitch根据第二流表对接收到的IP报文进行匹配,若匹配成功,则判定接收到的IP报文为上行IP报文返回的下行IP报文,再根据第二流表中加封装动作将下行IP报文转换为下行PPPoE数据报文。
通过对接收到的下行IP报文进行加封装动作,可以将下行IP报文转换为下行PPPoE报文,从而将下行PPPoE报文发送至PPPoE客户端,完成PPPoE报文的传输。
在一个具体的例子中,在步骤104中,将下行PPPoE数据报文发送至客户端,如图12所示,具体包括以下步骤:
步骤1041:根据第二流表中扩展的动作域将下行PPPoE数据报文的介质访问控制地址修改为客户端的介质访问控制地址。
步骤1042:根据客户端的介质访问控制地址输出下行PPPoE数据报文。
其中,客户端是指PPPoE客户端。具体地,Open vSwitch根据第二流表中的扩展的动作域将下行IP报文转换为下行PPPoE报文后,再根据第二流表中的扩展的动作域将下行IP报文的目的MAC地址修改为PPPoE客户端的地址;根据PPPoE客户端的MAC地址将PPPoE报文发送至PPPoE客户端。应当理解的是,在这个例子中,第二流表中的扩展的动作域除了包括将下行IP报文增加PPPoE报文的报文头转换为下行PPPoE报文外,还包括MAC地址的修改。
通过将下行PPPoE报文的MAC地址修改为PPPoE客户端的MAC地址,可以实现将下行PPPoE报文发送至PPPoE客户端,完成PPPoE报文的传输。
下面通过一个具体的例子来说明PPPoE报文传输方法的具体过程:
1.PPPoE解封装流表:
"table=0,in_port=dpdk0,dl_type=0x8864,pppoe_code=0,pppoe_session=0xa,pppoe_protocol=0x21,actions=pop_pppoe:0x0800,goto_table:1"。
"table=1,priority=500,ip,in_port=dpdk0,nw_dst=x.x.x.x/32.,actions=mod_dl_src:00:00:00:00:00:02,mod_dl_dst:00:00:00:00:00:01,output:dpdk1"。
其中,流表中的in_port的入端口值、pppoe_session的会话值、nw_dst的目的IP值、mod_dl_src及mod_dl_dst中修改的源和目的MAC值亦均是举例,具体的数值情况根据具体环境而定。
流表详解:
Table0(第一流表)中对dl_type、in_port以及pppoe头中的三个关键字段:pppoe_code、pppoe_session、pppoe_protocol做匹配,匹配成功,则做pop_pppoe:0x0800的动作,去掉PPPoE头封装,将以太类型,也即是报文的dl_type修改为0x0800,表示IP协议类型,然后转向table1中第三流表处理。
Table1中的第二流表匹配协议类型为IP,以及报文的目的IP,匹配成功则做修改报文源和目的MAC的动作,发到出端口。
以上PPPoE解封装的完整流程为:
PPPoE数据报文(dl_type=0x8864,pppoe_code=0,pppoe_protocol=0x21)从in_port(假设为dpdk0)进入Open vSwitch,Open vSwitch提取PPPoE数据报文中的dl_type、pppoe_hdr(包括pppoe_code、pppoe_session、pppoe_protocol等)信息,从table0开始读取流表进行匹配,匹配到dl_type为0x8864,pppoe_code为0,pppoe_protocol为0x21,命中table0;actions为:去掉pppoe封装,将dl_type设置为0x0800,然后转向table1,OpenvSwitch转向table1,开始对table1进行查询。
此时PPPoE数据报文已经被修改为IP报文,命中table1中的(第三流表)dl_type=0x0800,nw_dst目的IP选项,动作为:修改转换的IP报文的源和目的MAC地址,目的MAC地址修改为下一跳的出口网关的MAC地址,然后从Open vSwitch与出口网关相连的端口(假设为dpdk1)发出。
2.PPPoE加封装流表:
"table=1,priority=1000,ip,in_port=dpdk0,nw_dst=192.168.213.126/32,actions=push_pppoe:0x8864,set_field:0x0-\>pppoe_code,set_field:0x21-\>pppoe_protocol,set_field:0x0a-\>pppoe_session,mod_dl_dst:00:00:00:00:00:03,mod_dl_src:00:00:00:00:00:04,output:dpdk1"。
Table1中第二流表匹配报文类型为ip,目的IP。动作为:增加PPPoE头封装,修改以太类型为0x8864,也就是PPPoE数据报文应有的以太类型,设置PPPoE头中的三个字段值:pppoe_session、pppoe_protocol、pppoe_code,修改报文的源和目的MAC,然后从端口发出至PPPoE客户端。
以上PPPoE加封装的完整流程为:
IP报文(dl_type=0x0800,nw_dst=PPPoE客户端的IP)从dpdk1端口进入到OpenvSwitch,Open vSwitch提取报文中的以太类型、目的IP等信息,从table1中第二流表开始匹配;流表里的dl_type、nw_dst字段与从报文中提取出的以太类型、目的IP一致,匹配成功,命中table1中的第二流表;动作为:增加pppoe头封装,将dl_type修改为0x8864,然后设置pppoe_code=0,pppoe_session=PPPoE客户端的session id,pppoe_protocol=0x21,这样PPPoE头部信息已经封装完成;之后修改目的MAC地址为PPPoE客户端的MAC地址,最后从dpdk0端口发出。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包含相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明第二实施方式涉及一种PPPoE数据报文传输装置,如图13所示,包含:上行报文获取模块301、上行报文转发模块302、下行报文获取模块303和下行报文发送模块304。
上行报文获取模块301,用于根据第一流表中扩展的匹配域获取上行PPPoE数据报文;
上行报文转发模块302,用于根据第一流表中扩展的动作域将获取的上行PPPoE数据报文转换为上行IP报文后转发至网络;
下行报文获取模块303,用于当接收到上行IP报文返回的下行IP报文时,根据第二流表扩展的动作域将下行IP报文转换为下行PPPoE数据报文;
下行报文发送模块304,用于将下行PPPoE数据报文发送至客户端。
可选地,上行报文转发模块302还用于:
根据第一流表中解封装动作将上行PPPoE数据报文转换为上行IP报文;
根据第三流表对上行IP报文进行匹配;
若匹配成功,则根据第三流表中的扩展的动作域将上行IP报文转发至网络。
可选地,下行报文获取模块303还用于:
根据第二流表对接收到的IP报文进行匹配;
若匹配成功,则判定接收到的IP报文为上行IP报文返回的下行IP报文;
根据第二流表中加封装动作将下行IP报文转换为下行PPPoE数据报文。
可选地,上行报文转发模块302还用于:
根据第三流表中扩展的动作域修改上行IP报文的目的介质访问控制地址;
根据修改后的目的介质访问控制地址将上行IP报文发送至出端口。
可选地,下行报文发送模块304还用于:
根据第二流表中扩展的动作域将下行PPPoE数据报文的介质访问控制地址修改为客户端的介质访问控制地址;
根据客户端的介质访问控制地址输出下行PPPoE数据报文。
可选地,上行报文获取模块301还用于:
根据第一流表中扩展的匹配域对接收的PPPoE报文进行匹配;
若匹配成功,则将PPPoE报文作为上行PPPoE数据报文。
可选地,第一流表中扩展的匹配域包括:扩展的PPPoE代码字段、扩展的PPPoE会话标识字段和扩展的PPPoE协议字段。
不难发现,本实施方式为与第一实施方式相对应的装置实施例,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。
值得一提的是,本实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。
本发明第三实施方式涉及一种网络设备。一种网络设备,如图14所示,包括至少一个处理器401;以及,与至少一个处理器401通信连接的存储器402;其中,存储器402存储有可被至少一个处理器401执行的指令,指令被至少一个处理器401执行,以使至少一个处理器401能够执行上述的PPPoE数据报文传输方法。
其中,存储器402和处理器401采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器401和存储器402的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器401处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器401。
处理器401负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器402可以被用于存储处理器401在执行操作时所使用的数据。
本发明第四实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (10)
1.一种PPPoE数据报文传输方法,其特征在于,包括:
根据第一流表中扩展的匹配域获取上行PPPoE数据报文;
根据所述第一流表中扩展的动作域将所述上行PPPoE数据报文转换为上行IP报文后转发至网络;
当接收到所述上行IP报文返回的下行IP报文时,根据第二流表扩展的动作域将所述下行IP报文转换为下行PPPoE数据报文;
将所述下行PPPoE数据报文发送至客户端。
2.根据权利要求1所述的PPPoE数据报文传输方法,其特征在于,所述根据所述第一流表中扩展的动作域将所述上行PPPoE数据报文转换为上行IP报文后转发至网络,包括:
根据所述第一流表中解封装动作将所述上行PPPoE数据报文转换为上行IP报文;
根据第三流表对所述上行IP报文进行匹配;
若匹配成功,则根据所述第三流表中的扩展的动作域将所述上行IP报文转发至网络。
3.根据权利要求1所述的PPPoE数据报文传输方法,其特征在于,所述当接收到所述上行IP报文返回的下行IP报文时,根据第二流表扩展的动作域将所述下行IP报文转换为下行PPPoE数据报文,包括:
根据所述第二流表对接收的IP报文进行匹配;
若匹配成功,则判定所述接收到的IP报文为所述上行IP报文返回的下行IP报文;
根据所述第二流表中加封装动作将所述下行IP报文转换为下行PPPoE数据报文。
4.根据权利要求2所述的PPPoE数据报文传输方法,其特征在于,所述根据所述第三流表中的扩展的动作域将所述上行IP报文转发至网络,包括:
根据所述第三流表中扩展的动作域修改所述上行IP报文的目的介质访问控制地址;
根据所述修改后的目的介质访问控制地址将所述上行IP报文发送至出端口。
5.根据权利要求1所述的PPPoE数据报文传输方法,其特征在于,所述将所述下行PPPoE数据报文发送至客户端,包括:
根据所述第二流表中扩展的动作域将所述下行PPPoE数据报文的介质访问控制地址修改为客户端的介质访问控制地址;
根据所述客户端的介质访问控制地址输出所述下行PPPoE数据报文。
6.根据权利要求1-5任一项所述的数据报文传输方法,其特征在于,所述根据第一流表中扩展的匹配域获取上行PPPoE数据报文,包括:
根据所述第一流表中扩展的匹配域对接收的PPPoE报文进行匹配;
若匹配成功,则将所述PPPoE报文作为所述上行PPPoE数据报文。
7.根据权利要求6所述的PPPoE数据报文传输方法,其特征在于,所述扩展的匹配域包括:扩展的PPPoE代码字段、扩展的PPPoE会话标识字段和扩展的PPPoE协议字段。
8.一种PPPoE数据报文传输装置,包括:
上行报文获取模块,用于根据第一流表中扩展的匹配域获取上行PPPoE数据报文;
上行报文转发模块,用于根据第一流表中扩展的动作域将获取的上行PPPoE数据报文转换为上行IP报文后转发至网络;
下行报文获取模块,用于当接收到所述上行IP报文返回的下行IP报文时,根据第二流表扩展的动作域将所述下行IP报文转换为下行PPPoE数据报文;
下行报文发送模块,用于将所述下行PPPoE数据报文发送至客户端。
9.一种网络设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至7中任一项所述的PPPoE数据报文传输方法。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的PPPoE数据报文传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910950468.XA CN110943896B (zh) | 2019-10-08 | 2019-10-08 | PPPoE数据报文传输方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910950468.XA CN110943896B (zh) | 2019-10-08 | 2019-10-08 | PPPoE数据报文传输方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110943896A true CN110943896A (zh) | 2020-03-31 |
CN110943896B CN110943896B (zh) | 2022-12-23 |
Family
ID=69906106
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910950468.XA Active CN110943896B (zh) | 2019-10-08 | 2019-10-08 | PPPoE数据报文传输方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110943896B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105515965A (zh) * | 2014-09-25 | 2016-04-20 | 杭州华为数字技术有限公司 | 一种传输数据的方法及传输设备 |
CN107786613A (zh) * | 2016-08-30 | 2018-03-09 | 新华三技术有限公司 | 宽带远程接入服务器bras转发实现方法和装置 |
CN108199945A (zh) * | 2017-12-23 | 2018-06-22 | 华为技术有限公司 | 报文传输方法、运营商边缘设备及系统 |
CN108259453A (zh) * | 2017-05-31 | 2018-07-06 | 新华三技术有限公司 | 一种报文转发方法及装置 |
EP3407553A1 (en) * | 2017-03-30 | 2018-11-28 | Wangsu Science & Technology Co., Ltd. | Pppoe message transmission method and pppoe server |
CN110062060A (zh) * | 2013-06-26 | 2019-07-26 | 华为技术有限公司 | 一种ip地址分配的系统和方法 |
-
2019
- 2019-10-08 CN CN201910950468.XA patent/CN110943896B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110062060A (zh) * | 2013-06-26 | 2019-07-26 | 华为技术有限公司 | 一种ip地址分配的系统和方法 |
CN105515965A (zh) * | 2014-09-25 | 2016-04-20 | 杭州华为数字技术有限公司 | 一种传输数据的方法及传输设备 |
CN107786613A (zh) * | 2016-08-30 | 2018-03-09 | 新华三技术有限公司 | 宽带远程接入服务器bras转发实现方法和装置 |
EP3407553A1 (en) * | 2017-03-30 | 2018-11-28 | Wangsu Science & Technology Co., Ltd. | Pppoe message transmission method and pppoe server |
CN108259453A (zh) * | 2017-05-31 | 2018-07-06 | 新华三技术有限公司 | 一种报文转发方法及装置 |
CN108199945A (zh) * | 2017-12-23 | 2018-06-22 | 华为技术有限公司 | 报文传输方法、运营商边缘设备及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110943896B (zh) | 2022-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2014339535C1 (en) | Method for acquiring, by sdn switch, exact flow entry, and sdn switch, controller, and system | |
US8908704B2 (en) | Switch with dual-function management port | |
US9894003B2 (en) | Method, apparatus and system for processing data packet | |
US11909551B2 (en) | Broadband remote access server (BRAS) system-based packet encapsulation | |
US9154586B2 (en) | Method for parsing network packets having future defined tags | |
WO2014101394A1 (zh) | 可扩展虚拟局域网报文的传输方法及装置、系统 | |
WO2016107122A1 (zh) | RapidIO报文和以太网报文之间的转换方法和设备 | |
WO2016086670A1 (zh) | Vxlan报文传输方法及装置、存储介质 | |
EP4189925A1 (en) | Normalized lookup and forwarding for diverse virtual private networks | |
US20230370899A1 (en) | Packet forwarding method, packet processing method, and device | |
JP2005012381A (ja) | データ転送装置及びその方法並びにそれを用いたデータ通信システム及びプログラム | |
CN108075991B (zh) | 报文转发方法及装置 | |
JP2020522203A (ja) | パケット転送 | |
EP2071808B1 (en) | Methods and a system and devices for ipv6 datagram transmission in the ethernet | |
JP2022516355A (ja) | データ送信方法及び機器 | |
CN110235417B (zh) | 一种sdn及其报文转发的方法和装置 | |
CN110943896B (zh) | PPPoE数据报文传输方法、装置、设备及存储介质 | |
WO2015006901A1 (zh) | 一种数据流处理方法、设备和系统 | |
US8583822B2 (en) | Method and system for minimum frame size support for a communication protocol encapsulated over Ethernet | |
TW201947889A (zh) | 功能擴展式有線網路裝置 | |
CN110505137B (zh) | 功能扩展式有线网络装置 | |
EP4254880A1 (en) | Hardware ethernet header verification | |
EP4175261A1 (en) | Parsing component, packet parsing method, forwarding chip, and network device | |
EP4287567A1 (en) | Data processing method, apparatus and chip | |
CN109672593B (zh) | PPPoE报文处理方法、装置及宽带远程接入服务器 |
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 |