CN108063718B - 报文处理方法、装置及电子设备 - Google Patents
报文处理方法、装置及电子设备 Download PDFInfo
- Publication number
- CN108063718B CN108063718B CN201711371509.7A CN201711371509A CN108063718B CN 108063718 B CN108063718 B CN 108063718B CN 201711371509 A CN201711371509 A CN 201711371509A CN 108063718 B CN108063718 B CN 108063718B
- Authority
- CN
- China
- Prior art keywords
- message
- decapsulated
- label
- packet
- acl
- 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.)
- Active
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/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- 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/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- 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/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
- H04L12/4645—Details on frame tagging
- H04L12/465—Details on frame tagging wherein a single frame includes a plurality of VLAN tags
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/354—Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]
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
本申请实施例提供一种报文处理方法、装置及电子设备,属于网络通信领域。该方法包括:对获得的封装报文进行解封装,获得解封装报文;对满足同一报文匹配规则的解封装报文标记相同的报文标签;当标记报文标签的解封装报文与ACL表项中的报文特征信息及对应报文标签相匹配时,对所述解封装报文执行所述ACL表项中的对应操作。本方法中通过对满足同一报文匹配规则的每个解封装的报文均标记相同的报文标签,进而通过下发1条ACL表项对标有相同的报文标签的报文进行统一操作,从而可以节约交换设备的ACL资源,使交换设备中有尽量多的ACL资源给其他业务使用,提高了ACL资源的利用率。
Description
技术领域
本发明涉及网络通信领域,具体而言,涉及一种报文处理方法、装置及电子设备。
背景技术
VXLAN(Virtual Extensible LAN),是一种网络虚似化技术,是对VLAN的一种扩展,是由IETF定义的NVO3(Network Virtualization over Layer 3)标准技术之一,采用L2over L4(MAC-in-UDP)的报文封装模式,将二层报文用三层协议进行封装,可实现二层网络在三层范围内的扩展,同时满足数据中心大二层虚拟迁移和多租户的需求。
发明内容
有鉴于此,本申请实施例的目的在于提供一种报文处理方法、装置及电子设备。
第一方面,本申请实施例提供了一种报文处理方法,应用于VXLAN中的交换设备,所述方法包括:对获得的封装报文进行解封装,获得解封装报文;对满足同一报文匹配规则的解封装报文标记相同的报文标签;当标记报文标签的解封装报文与ACL表项中的报文特征信息及对应报文标签相匹配时,对所述解封装报文执行所述ACL表项中的对应操作。在第一方面提供的实施例中通过对满足同一报文匹配规则的解封装的报文均标记相同的报文标签,进而通过下发的1条ACL表项对标有相同的报文标签的报文进行统一操作,从而可以节约交换设备的ACL资源,使交换设备中有尽量多的ACL资源给其他业务使用,提高了ACL资源的利用率。
进一步地,结合上述第一方面提供的实施例,所述对获得的封装报文进行解封装,获得解封装报文,包括:对获得的每个VXLAN封装的BPDU报文进行头部解封装,获得解封装BPDU报文;所述对所述解封装报文执行所述ACL表项中的对应操作,包括:对每个解封装BPDU报文执行丢弃操作。即,在本申请中,通过对每个解封装的BPDU报文标记相同的报文标签,从而可以通过下发1条ACL表项统一对多个解封装BPDU报文执行丢弃操作,进而提高了ACL表项资源的利用率。
进一步地,结合上述第一方面提供的实施例,所述对获得的封装报文进行解封装,获得解封装报文,包括:对获得的每个VXLAN封装的DHCP报文进行头部解封装,获得解封装DHCP报文;所述对所述解封装报文执行所述ACL表项中的对应操作,具体包括:对每个解封装DHCP报文执行转发至CPU的操作。即,在本申请中,通过对多个解封装的DHCP报文标记相同的报文标签,从而可以通过下发1条ACL表项统一对多个解封装DHCP报文执行丢弃操作,进而提高了ACL表项资源的利用率。
进一步地,结合上述第一方面提供的实施例,所述对满足同一报文匹配规则的解封装报文标记相同的报文标签,包括:对于满足执行相同操作的不同VNI域的每个解封装报文标记相同的报文标签。即在本申请中,对满足执行相同操作的不同VNI域的每个解封装报文均标记相同的报文标签,从而可对该解封装报文统一执行相同的操作,进而有效提高对每个解封装报文的操作效率。
进一步地,结合上述第一方面提供的实施例,所述当标记报文标签的解封装报文与ACL表项中的报文特征信息及对应报文标签相匹配时,对所述解封装报文执行所述ACL表项中的对应操作,具体包括:将所述解封装报文的特征信息与ACL表项中的报文特征信息进行比对;将所述解封装报文的报文标签与ACL表项中的对应报文标签进行比对;在所述解封装报文的特征信息与所述ACL表项中的报文特征信息一致,并且所述解封装报文的报文标签与所述ACL表项中的对应报文标签一致时,执行步骤:对所述解封装报文执行所述ACL表项中的对应操作,进而有效防止对每个解封装报文实现误操作。
第二方面,本申请实施例提供了一种报文处理装置,运行于VXLAN中的交换设备,所述装置包括:解封装模块,用于对获得的封装报文进行解封装,获得解封装报文;标记模块,用于对满足同一报文匹配规则的解封装报文标记相同的报文标签;报文处理模块,用于当标记报文标签的解封装报文与ACL表项中的报文特征信息及对应报文标签相匹配时,对所述解封装报文执行所述ACL表项中的对应操作。在第二方面提供的实施例中通过对满足同一报文匹配规则的解封装的报文均标记相同的报文标签,进而通过下发的1条ACL表项对标有相同的报文标签的报文进行统一操作,从而可以节约交换设备的ACL资源,使交换设备中有尽量多的ACL资源给其他业务使用,提高了ACL资源的利用率。
进一步地,结合上述第二方面提供的实施例,所述解封装模块,具体用于对获得的每个VXLAN封装的BPDU报文进行头部解封装,获得解封装BPDU报文;所述报文处理模块,具体用于对每个解封装BPDU报文执行丢弃操作,即,在本申请中,通过对每个解封装的BPDU报文标记相同的报文标签,从而可以通过下发1条ACL表项统一对多个解封装BPDU报文执行丢弃操作,进而提高了ACL表项资源的利用率。
或者,进一步地,结合上述第二方面提供的实施例,所述解封装模块,具体用于对获得的每个VXLAN封装的DHCP报文进行头部解封装,获得解封装DHCP报文;所述报文处理模块,具体用于对每个解封装DHCP报文执行转发至CPU的操作。即,在本申请中,通过对多个解封装的DHCP报文标记相同的报文标签,从而可以通过下发1条ACL表项统一对多个解封装DHCP报文执行丢弃操作,进而提高了ACL表项资源的利用率。
进一步地,结合上述第二方面提供的实施例,所述标记模块,具体用于对于满足执行相同操作的不同VNI域的每个解封装报文标记相同的报文标签。即在本申请中,对满足执行相同操作的不同VNI域的每个解封装报文均标记相同的报文标签,从而可对该解封装报文统一执行相同的操作,进而有效提高对每个解封装报文的操作效率。
进一步地,结合上述第二方面提供的实施例,所述报文处理模块,包括:信息比对单元,用于将所述解封装报文的特征信息与ACL表项中的报文特征信息进行比对;标签比对单元,用于将所述解封装报文的报文标签与ACL表项中的对应报文标签进行比对;报文处理单元,用于在所述解封装报文的特征信息与所述ACL表项中的报文特征信息一致,并且所述解封装报文的报文标签与所述ACL表项中的对应报文标签一致时,对所述解封装报文执行所述ACL表项中的对应操作。上述方案所起效果为:有效防止对每个解封装报文实现误转发操作。
第三方面,本申请实施例提供一种电子设备,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如上述第一方面提供的方法。
本发明的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种VXLAN网络结构示意图;
图2为本申请实施例提供的一种报文处理方法的流程图;
图3为本申请实施例提供的一种VXLAN报文格式示意图;
图4为本申请实施例提供的一种ACL表项实现示意图;
图5为本申请实施例提供的一种报文处理方法的应用示意图;
图6为本申请实施例提供的一种报文处理装置的结构框图;
图7为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在VXLAN网络中通过交换设备对数据以VXLAN报文形式进行转发,而当交换设备需要处理大量VXLAN报文时,则需下发多条ACL表项来分别对不同VNID域的VXLAN报文进行处理,本申请发明人在实现本申请实施例的技术方案过程中,发现由于交换设备上需要使用ACL资源的业务非常多,而有些交换设备的交换芯片上ACL硬件表项资源又相当有限,当其他业务将ACL硬件表项资源几乎占满时,会导致交换设备的交换芯片ACL表项资源无法满足VXLAN丢弃BPDU报文的需求,最终影响VXLAN的功能。
以上现有技术中的方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本发明实施例针对上述问题所提出的解决方案,都应该是发明人在本发明过程中对本发明做出的贡献。
为了节省交换设备中的ACL资源,提高交换设备中ACL资源的利用率及交换设备的性能,本申请实施例提供了一种报文处理方法、装置及电子设备。
请参照图1,图1为本申请实施例提供的一种VXLAN网络结构示意图,图1中的NVE(Network Virtrualization Edge网络虚拟化边缘节点)是实现网络虚拟化的功能实体,VM(Virtual Machine,虚拟机)里的报文经过NVE封装后,NVE之间就可以在基于三层的网络基础上建立起二层虚拟网络。在实际中,本领域技术人员可以将网络设备实体以及服务器实体上的VSwitch作为NVE。
VTEP(VXLAN Tunnel Endpoints,VXLAN隧道端点)为VXLAN隧道的端点,用于VXLAN报文的封装和解封装。VTEP与物理网络相连,分配的地址为物理网络的IP地址。VXLAN报文中源IP地址可以为本节点的VTEP地址,VXLAN报文中目的IP地址可以为对端节点的VTEP地址,一对VTEP地址就对应着一个VXLAN隧道。
VNI(VXLAN Network Identifier):VXLAN网络标识,VNI类似VLAN ID,用于区分VXLAN段,不同VXLAN段的虚拟机通常来讲不能直接二层相互通信。一个VNI表示一个租户,在实际中可以是一个终端用户属于一个VNI,也可是多个终端用户属于同一个VNI。在实际中,VNI可以由24比特位组成,支持多达(224-1)个租户。
VAP(Virtual Access Point):虚拟接入点VAP统一为二层子接口,用于接入数据报文。作用是为二层子接口配置不同的流封装,可实现不同的数据报文接入不同的二层子接口。
VXLAN网络中的网关设备(Gateway),也就是交换设备,用于实现对VXLAN报文的转发。
VTEP是VXLAN网络的边缘设备,是VXLAN隧道的起点和终点,VXLAN报文的相关处理均在VXLAN隧道进行。在实际中,VTEP既可以是一台独立的网络设备,也可以是虚拟机所在的服务器。VTEP是交换设备承担的一个角色,是交换设备功能的一部分。
在本申请实施例中,VXLAN隧道是一个逻辑上的概念,作用是对原始报文进行“包装”,可以让报文在承载网络(比如IP网络)上传输,从主机的角度看,就好像原始报文的起点和终点之间,有一条直通的链路一样,而这个链路就是隧道,“VXLAN隧道”就是用来传输经过VXLAN封装的报文的,它是建立在两个VTEP之间的一条虚拟通道。
请参照图2,图2为本申请实施例提供的一种报文处理方法的流程图,所述方法应用于上述VXLAN网络中的交换设备,所述方法包括如下步骤:
步骤S110:对获得的封装报文进行解封装,获得解封装报文。
在本申请实施例的VXLAN网络中,把可以封装和解封装VXLAN报文的设备称为VTEP,VTEP可以是虚拟交换设备也可以是物理交换设备。VXLAN报文是在原始报文前面再封装一个新的VXLAN报文头部,新的VXLAN报文头部和传统的以太网报文类似,拥有源MAC地址、源IP地址等信息。当原始报文来到交换设备的VTEP节点后会被封装为VXLAN报文(加上VXLAN报文头部),打上VXLAN报文头部的VXLAN报文报文到了目标的VTEP后会将VXLAN报文头部解封装,并获取原始报文。本申请实施例中的解封装是指去掉报文的外层以太头部、外层IP头部、外层UDP头部、VXLAN封装头部,解析外层IP头中的目的IP,根据目的IP查找ARP表项,确认DMAC(报文的目的MAC地址)、VXLAN隧道出接口以及VNI等信息。
其中,VXLAN报文格式请参照图3,图3为本申请实施例提供的一种VXLAN报文的结构示意图,VXLAN报文结构中的相关定义如下:
VXLAN Header:是指VXLAN头部(8字节),其中包含24比特的VNI字段,用来定义VXLAN网络中不同的租户,此外,还包含VXLAN Flags(8比特,取值为00001000)和两个保留字段(分别为24比特和8比特)。
UDP Header:VXLAN头和原始以太帧一起作为UDP的数据,UDP头中,目的端口号(VXLAN Port)固定为4789,源端口号(UDP Src.Port)是原始以太帧通过哈希算法计算后的值。
Outer IP Header:外层IP头部。其中,源IP地址(Outer Src.IP)为源VM所属VTEP的IP地址,目的IP地址(Outer Dst.IP)为目的VM所属VTEP的IP地址。
Outer MAC Header:外层以太头。其中,源MAC地址(Src.MAC Addr.)为源VM所属VTEP的MAC地址,目的MAC地址(Dst.MAC Addr.)为到达目的VTEP的路径上下一跳设备的MAC地址。
以一个实际例子为例对VXLAN报文的封装和解封装过程进行说明:如主机A向主机B发送数据时,主机B的MAC和IP作为报文(数据包)的目标MAC和IP,主机A的MAC作为报文的源MAC和IP,然后通过交换设备1将报文转发出去。交换设备1的VTEP1(VXLAN隧道端点)从自己维护的映射表中找到MAC-B对应的VTEP2(VXLAN隧道终点),然后执行VXLAN封装,加上VXLAN头、外层UDP头、以及外层IP头和外层MAC头,此时的外层IP头,目标地址为VTEP2的IP,源地址为VTEP1的IP,VTEP2负责解封装报文,依次去掉外层MAC头、外层IP头、外层UDP头和VXLAN头。
而对于VXLAN封装的BPDU(Bridge Protocol Data Unit,网桥协议数据单元)报文、DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)报文、VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)报文等都可以采用上述方法进行报文的封装和解封装。对于BPDU报文,当多个封装报文为VXLAN封装的多个BPDU报文时,对每个BPDU报文的封装头进行解封装,获得多个解封装BPDU报文,即去掉BPDU报文的VXLAN封装头、外层UDP头、外层IP头、外层以太头,并解析目的IP、根据目的IP查找ARP表项、确认DMAC(报文的目的MAC地址)、VXLAN隧道出接口以及VNI等信息。
对于DHCP报文,当所述多个封装报文为VXLAN封装的DHCP报文时,对每个DHCP报文的封装头进行解封,获得多个解封装DHCP报文,即去掉报文的VXLAN封装头、外层UDP头、外层IP头、外层以太头,并解析目的IP、根据目的IP查找ARP表项、确认DMAC(报文的目的MAC地址)、VXLAN隧道出接口以及VNI等信息。
步骤S120:对满足同一报文匹配规则的解封装报文标记相同的报文标签。
交换设备在对获得的封装报文进行解封装后,为了对解封装报文进行后续的统一操作,还需对满足同一报文匹配规则的解封装报文均标记相同的报文标签。
其中,同一报文匹配规则可以理解为多个解封装报文属于同一类报文,即该类报文具有相同的报文标识,以此可对属于同一类解封装报文均标记相同的报文标签。
例如,对于多个解封装的BPDU报文,对每个BPDU报文均标记tcam-label为3的标记(报文标签)。其中,报文标签可以根据用户需求自行设置。
步骤S130:当标记报文标签的解封装报文与ACL表项中的报文特征信息及对应报文标签相匹配时,对所述解封装报文执行所述ACL表项中的对应操作。
目前的ACL表对应的功能表至少分为图4所示的以下四个表:报文匹配信息表(FP_TCAM)、动作策略表(FP_POLICT_TABLE)、度量表(FP_METER_TABLE)和统计表(FP_COUNTER_TABLE),其分别由内容分析查找引擎(ContentAware lookup engine)、策略引擎(policyengine)、度量引擎(metering engine)、统计引擎(statistics engine)管理。
其中,查找引擎的个数为多个,这些查找引擎相互并行独立工作,在硬件上,可根据这些引擎的个数将FP_TCAM分成若干报文匹配信息片(slice),slice的个数与查找引擎的个数相同,两者一一对应。其中,不同的slice对应不同的应用,其记录的ACL表项与其对应的应用对应,具体为:驱动在下发ACL表项时,根据ACL表项的类型下发到对应的slice,例如,用于认证安全的ACL表项下发到slice 0,用于模块化质量控制(MQC)的ACL表项下发到slice 1,用于FCoE转发的ACL表项(记为FCoE转发表项)下发至slice2等等。
每个slice都有自己对应的搜索机制(按照用户设定的掩码匹配查找)和对应的动作策略表。当报文进入交换设备中的交换芯片后,各个slice对应的查找引擎同时在本slice内的ACL表项查找并匹配对应的动作策略表中的动作策略(policy)表项,一旦匹配,就依据匹配的policy表项执行对应的动作。
而ACL表项可以根据用户需求在终端设备自行编辑后下发至交换设备中,所述ACL表项中包括有报文特征信息、对应报文标签以及对应报文需执行的对应操作,报文特征信息和对应报文标签存储在报文匹配信息表(FP_TCAM)中,对应报文需执行的对应的操作存储在动作策略表(FP_POLICT_TABLE)中,进而通过将多个解封装报文与下发的ACL表项的相关信息进行匹配,进而可以对标有相同的报文标签的报文进行统一操作,从而可以节约交换设备的ACL资源,使交换设备中有尽量多的ACL资源给其他业务使用,提高了ACL资源的利用率。
在对上述标记有报文标签的每个解封装报文后,为了将每个解封装报文与ACL表项中的报文特征信息进行匹配,以对每个解封装报文执行相应的操作,即将所述解封装报文的特征信息与ACL表项中的报文特征信息进行比对,同时将所述解封装报文的报文标签与ACL表项中的对应报文标签进行比对,在所述解封装报文的特征信息与所述ACL表项中的报文特征信息一致,并且所述解封装报文的报文标签与所述ACL表项中的对应报文标签一致时,执行步骤:对所述解封装报文执行所述ACL表项中的对应操作,所以,只有在所述解封装报文的特征信息与所述ACL表项中的报文特征信息一致,并且所述解封装报文的报文标签与所述ACL表项中的对应报文标签一致时,才对所述多个解封装报文执行与所述ACL表项中对应报文需执行的对应的操作,进而有效防止对每个解封装报文实现误操作。
其中,报文的报文特征信息为报文的标识信息。
例如,当所述多个封装报文为不同VNI域的VXLAN封装的多个BPDU报文时,首先,对获得的每个VXLAN封装的BPDU报文进行头部解封装,获得解封装BPDU报文,将每个解封装BPDU报文的报文特征信息与ACL表项中的报文特征信息进行比对,以及将每个解封装BPDU报文的报文标签与ACL表项中的对应报文标签比对,从而可以有效防止对每个解封装BPDU报文实现误丢弃操作,在每个解封装BPDU报文的报文特征信息与ACL表项中的报文特征信息比对一致,以及每个解封装BPDU报文的报文标签与ACL表项中的对应报文标签比对一致时,对每个解封装BPDU报文执行丢弃操作,进而有效防止对每个解封装报文实现误丢弃操作。
当所述多个封装报文为不同VNI域的VXLAN封装的多个DHCP报文时,交换设备可以首先对获得的每个VXLAN封装的DHCP报文进行头部解封装,获得解封装DHCP报文,将每个解封装DHCP报文的报文特征信息与ACL表项中的报文特征信息进行比对,以及将每个解封装DHCP报文的报文标签与ACL表项中的对应报文标签比对,从而可以有效防止对每个解封装DHCP报文实现误丢弃操作,在每个解封装DHCP报文的报文特征信息与ACL表项中的报文特征信息比对一致,以及每个解封装DHCP报文的报文标签与ACL表项中的对应报文标签比对一致时,对每个解封装DHCP报文执行转发至CPU的操作,进而有效防止对每个解封装DHCP报文实现误转发操作。
当然,ACL表项还可以包括其他报文特征信息以及该报文需执行的操作,如VRRP报文的丢弃动作、BFD报文的丢弃动作、OSPF报文的丢弃动作等,其交换设备对于获取的上述多个报文执行的相同的动作均可通过上述方法进行实现,即为每个报文标记相同的报文标签,下发一条ACL表项,通过与ACL表项进行匹配即可统一对多个不同VNI域的VXLAN报文执行相同的动作,如丢弃或者通过等,从而可以节省ACL的表项资源。
下面以一个具体的例子对本申请实施例提供的报文处理方法进行说明。
例如,在STP网络接入VXLAN网络时,在VXLAN网络的接入侧端口配置BPDU DROP后,BPDU报文就无法穿越VXLAN网络,也就不会与连接的VXLAN网络另一侧的STP网络互通。如果在VXLAN网络的两边各连接一个STP网络,STP网络1和STP网络2本来各自都有1个根节点和1棵生成树,当STP网络1的BPDU报文通过VXLAN网络转发到STP网络2,而且STP网络1和STP网络2的domain域相同,此时STP网络1和STP网络2会整合在一起,生成1个新的根节点和1棵生成树(假如均在STP网络1中),此时本来STP网络2中的节点之间的报文转发可以在STP网络2内部进行,但是经过整合之后,报文需要经过STP网络1中的新的根节点进行转发,导致最短路径变长,所以经过交换设备转发的BPDU报文则不再需要了,交换设备则需把获取到的BPDU报文丢弃。
所以按照上述描述,在VXLAN业务中有需要丢弃VXLAN封装的BPDU报文的需求,当1台交换设备上配置了大量VNI时,每个VNI域都需要丢弃BPDU报文,目前的处理方法是需要针对每个VNI域都下发1条或多条ACL表项丢弃相应VNI域中的VXLAN封装的BPDU报文。但是这种方式对于交换设备上配置了大量的VNI(例如N条),同时又要求这些VNI域的BPDU报文丢弃,最少需要占用N条ACL表项,由于交换设备上需要使用ACL硬件表项资源的业务非常多,而有些交换设备的交换芯片上ACL硬件表项资源又相当有限,当其他业务将ACL硬件表项资源几乎占满时,会导致部分VNI域的丢弃BPDU报文的需求无法实现,最终影响VXLAN的功能。
所以为了解决VXLAN中丢弃封装BPDU报文需求占用大量ACL资源的问题,提升ACL资源的使用率,以最少的ACL资源满足需求,则对封装BPDU报文可使用本申请实施例提供的报文处理方法进行处理。
首先在VXLAN交换设备上创建各VNI的解封装隧道,再对所有需要丢弃VXLAN封装的BPDU报文的VNI域,更新相应VNI域的解封装隧道动作,即产生同一个tcam-label的标记(即报文标签),然后下发一条ACL表项,匹配tcam-label标记+DMAC(报文的目的MAC)(0180.C200.0000)(即报文特征信息),动作为drop(丢弃),由此,VXLAN封装的BPDU报文经过解封装隧道后会打上tcam-label标记,然后经过交换芯片的ACL流程,匹配ACL后被丢弃,不再转发出去。
其中,DMAC(0180.C200.0000)为BPDU报文标识,也就是BPDU报文特征信息。
具体地,请参照图5,对于VXLAN封装的BPDU报文,以三条解封装隧道为例,对应3个不同的VNI域。
例如,当交换设备上创建对应VNI域为1的解封装隧道,交换设备(SWITCH)从外部设备(VtepA)接收到的VNI为1的报文时,则报文进入对应VNI为1的解封装隧道模块,获得该BPDU报文的源IP(SIP)为1.1.1.1,目的IP(DIP)是2.2.2.2,接着报文从逻辑口400中转发出去,并将VXLAN头剥掉。
当交换设备上创建对应VNI为2的解封装隧道,获得该BPDU报文的源IP为1.1.1.1,目的IP是2.2.2.2,报文从逻辑口500中转发,并将VXLAN头剥掉。
当交换设备上创建对应VNI为3的解封装隧道,获得该BPDU报文的源IP为5.5.5.5,目的IP是6.6.6.6,报文从逻辑口600中转发出去,并将VXLAN头剥掉。
当VNI域的VXLAN封装的BPDU报文需要被丢弃时,需要更新VXLAN解封装隧道的动作,即对封装的BPDU报文进行解封装的同时还增加产生tcam-label标记(标记报文的报文标签)的动作,并且tcam-label的值是相同的。
例如,更新VNI1的解封装隧道的动作,增加产生tcam-label为3的标记。当交换设备收到的报文中VXLAN封装头中VNI为1,源IP为1.1.1.1,目的IP是2.2.2.2,报文从逻辑口400中转发出去前会匹配解封装隧道,将VXLAN头剥掉,同时给报文打上tcam-label为3的标记。更新VNI2的解封装隧道的动作,增加产生tcam-label为3的标记。当交换设备收到的报文中VXLAN封装头中VNI为2,源IP为1.1.1.1,目的IP是2.2.2.2,报文从逻辑口500中转发出去前会匹配解封装隧道,将VXLAN头剥掉,同时给报文打上tcam-label为3的标记。更新VNI3的解封装隧道的动作,增加产生tcam-label为3的标记。当交换设备收到的报文中VXLAN封装头中VNI为3,源IP为5.5.5.5,目的IP是6.6.6.6,报文从逻辑口600中转发出去前会匹配解封装隧道,将VXLAN头剥掉,同时给报文打上tcam-label为3的标记。
然后,根据预先下发的一条ACL表项,1条ACL表项可以将这一类的解封装的BPDU报文丢弃,匹配tcam-label(3)+DMAC(0180.C200.0000),动作为drop(丢弃)。例如,BPDU报文的报文标识为DMAC(0180.C200.0000),其报文标签为3,在ACL表项中的报文特征信息也为BPDU报文特征信息,则ACL表项中特征信息也为DMAC(0180.C200.0000),其对应的报文标签也为3,需执行的操作为丢弃动作,则在将BPDU报文的特征信息与ACL表项中的报文特征信息进行匹配后,则可对这BPDU报文统一执行丢弃动作,进行丢弃,如向交换设备发送VXLAN封装的BPDU报文,VNI为1,源IP为1.1.1.1,目的IP是2.2.2.2,解封装后的BPDU报文没有转发出去。
所以,不同VNI域的VXLAN封装的BPDU报文经过交换设备的解封装流程,通过匹配解封装隧道中VNI、源IP、目的IP、目的逻辑口等匹配项,执行解封装隧道动作,包括剥掉VXLAN封装头和打上相同的tcam-label标记,解封装后的BPDU报文经过交换设备的ACL表项匹配,通过匹配同1条acl表项中的tcam-label标记、特征目的MAC等匹配项,执行ACL的动作,最终被丢弃。
由上述可知,1条ACL表项可以处理不同VNI域的BPDU报文,当需要处理的VNI域越多,尤其在某些交换设备上ACL资源相当有限的情况下,通过本方法可以节约交换设备的ACL资源,使交换设备省出更多的ACL资源给其他业务使用,提高了ACL资源的利用率。
请参照图6,图6为本申请实施例提供的一种报文处理装置200的结构框图,该装置运行于VXLAN中的交换设备,所述装置包括:
解封装模块210,用于对获得的封装报文进行解封装,获得解封装报文。
标记模块220,用于对满足同一报文匹配规则的解封装报文标记相同的报文标签。
报文处理模块230,用于当标记报文标签的解封装报文与ACL表项中的报文特征信息及对应报文标签相匹配时,对所述解封装报文执行所述ACL表项中的对应操作。
作为一种方式,当所述多个封装报文为不同VNI域的VXLAN封装的多个BPDU报文时,所述解封装模块210,具体用于对获得的每个VXLAN封装的BPDU报文进行头部解封装,获得解封装BPDU报文;所述报文处理模块230,具体用于对每个解封装BPDU报文执行丢弃操作;或者当所述多个封装报文为不同VNI域的VXLAN封装的多个DHCP报文时,所述解封装模块210,具体用于对获得的每个VXLAN封装的DHCP报文进行头部解封装,获得解封装DHCP报文;所述报文处理模块230,具体用于对每个解封装DHCP报文执行转发至CPU的操作。
作为一种方式,所述装置还包括:
所述标记模块220,具体用于对于满足执行相同操作的不同VNI域的每个解封装报文标记相同的报文标签。
作为一种方式,所述报文处理模块230,包括:
信息比对单元,用于将所述解封装报文的特征信息与ACL表项中的报文特征信息进行比对。
标签比对单元,用于将所述解封装报文的报文标签与ACL表项中的对应报文标签进行比对。
报文处理单元,用于在所述解封装报文的特征信息与所述ACL表项中的报文特征信息一致,并且所述解封装报文的报文标签与所述ACL表项中的对应报文标签一致时,对所述解封装报文执行所述ACL表项中的对应操作。
请参照图7,图7为本申请实施例提供的一种电子设备的结构示意图,所述电子设备可以包括:至少一个处理器110,例如CPU,至少一个通信接口120,至少一个存储器130和至少一个通信总线140。其中,通信总线140用于实现这些组件直接的连接通信。其中,本申请实施例中设备的通信接口120用于与其他节点设备进行信令或数据的通信。存储器130可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器130可选的还可以是至少一个位于远离前述处理器的存储装置。存储器130中存储有计算机可读取指令,当所述计算机可读取指令由所述处理器110执行时,电子设备执行上述报文处理方法过程。
本申请实施例提供一种可读取存储介质,所述可读存储介质内存储有多条指令,当所述多条指令在计算机上运行时,使得计算机执行如图2所示方法实施例中电子设备所执行的方法过程。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。
综上所述,本申请实施例提供一种报文处理方法、装置及电子设备,该方法首先通过对获得的封装报文进行解封装,获得解封装报文,然后对满足同一报文匹配规则的解封装报文均标记相同的报文标签,当标记报文标签的解封装报文与ACL表项中的报文特征信息及对应报文标签相匹配时,对所述解封装报文执行所述ACL表项中的对应操作,本方法中通过对满足同一报文匹配规则的解封装的报文均标记相同的报文标签,进而通过下发的1条ACL表项对标有相同的报文标签的报文进行统一操作,从而可以节约交换设备的ACL资源,使交换设备中有尽量多的ACL资源给其他业务使用,提高了ACL资源的利用率。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种报文处理方法,其特征在于,应用于VXLAN中的交换设备,所述方法包括:
对获得的封装报文进行解封装,获得解封装报文;
对满足同一报文匹配规则的解封装报文标记相同的报文标签;
当标记报文标签的解封装报文与ACL表项中的报文特征信息及对应报文标签相匹配时,对所述解封装报文执行所述ACL表项中的对应操作。
2.根据权利要求1所述的方法,其特征在于,
所述对获得的封装报文进行解封装,获得解封装报文,包括:对获得的每个VXLAN封装的BPDU报文进行头部解封装,获得解封装BPDU报文;
所述对所述解封装报文执行所述ACL表项中的对应操作,包括:对每个解封装BPDU报文执行丢弃操作。
3.根据权利要求1所述的方法,其特征在于,
所述对获得的封装报文进行解封装,获得解封装报文,包括:对获得的每个VXLAN封装的DHCP报文进行头部解封装,获得解封装DHCP报文;
所述对所述解封装报文执行所述ACL表项中的对应操作,具体包括:对每个解封装DHCP报文执行转发至CPU的操作。
4.根据权利要求1-3中任一权项所述的方法,其特征在于,所述对满足同一报文匹配规则的解封装报文标记相同的报文标签,包括:
对于满足执行相同操作的不同VNI域的每个解封装报文标记相同的报文标签。
5.根据权利要求4所述的方法,其特征在于,所述当标记报文标签的解封装报文与ACL表项中的报文特征信息及对应报文标签相匹配时,对所述解封装报文执行所述ACL表项中的对应操作,具体包括:
将所述解封装报文的特征信息与ACL表项中的报文特征信息进行比对;
将所述解封装报文的报文标签与ACL表项中的对应报文标签进行比对;
在所述解封装报文的特征信息与所述ACL表项中的报文特征信息一致,并且所述解封装报文的报文标签与所述ACL表项中的对应报文标签一致时,执行步骤:对所述解封装报文执行所述ACL表项中的对应操作。
6.一种报文处理装置,其特征在于,运行于VXLAN中的交换设备,所述装置包括:
解封装模块,用于对获得的封装报文进行解封装,获得解封装报文;
标记模块,用于对满足同一报文匹配规则的解封装报文标记相同的报文标签;
报文处理模块,用于当标记报文标签的解封装报文与ACL表项中的报文特征信息及对应报文标签相匹配时,对所述解封装报文执行所述ACL表项中的对应操作。
7.根据权利要求6所述的装置,其特征在于,所述解封装模块,具体用于对获得的每个VXLAN封装的BPDU报文进行头部解封装,获得解封装BPDU报文;所述报文处理模块,具体用于对每个解封装BPDU报文执行丢弃操作;或者
所述解封装模块,具体用于对获得的每个VXLAN封装的DHCP报文进行头部解封装,获得解封装DHCP报文;所述报文处理模块,具体用于对每个解封装DHCP报文执行转发至CPU的操作。
8.根据权利要求6-7中任一权项所述的装置,其特征在于,所述标记模块,具体用于对于满足执行相同操作的不同VNI域的每个解封装报文标记相同的报文标签。
9.根据权利要求8所述的装置,其特征在于,所述报文处理模块,包括:
信息比对单元,用于将所述解封装报文的特征信息与ACL表项中的报文特征信息进行比对;
标签比对单元,用于将所述解封装报文的报文标签与ACL表项中的对应报文标签进行比对;
报文处理单元,用于在所述解封装报文的特征信息与所述ACL表项中的报文特征信息一致,并且所述解封装报文的报文标签与所述ACL表项中的对应报文标签一致时,对所述解封装报文执行所述ACL表项中的对应操作。
10.一种电子设备,其特征在于,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如权利要求1-5中任一权项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711371509.7A CN108063718B (zh) | 2017-12-18 | 2017-12-18 | 报文处理方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711371509.7A CN108063718B (zh) | 2017-12-18 | 2017-12-18 | 报文处理方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108063718A CN108063718A (zh) | 2018-05-22 |
CN108063718B true CN108063718B (zh) | 2021-02-05 |
Family
ID=62139180
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711371509.7A Active CN108063718B (zh) | 2017-12-18 | 2017-12-18 | 报文处理方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108063718B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110086787B (zh) * | 2019-04-15 | 2021-11-02 | 杭州迪普信息技术有限公司 | 报文识别方法、装置、电子设备及机器可读存储介质 |
CN111917624B (zh) * | 2020-07-13 | 2022-02-01 | 烽火通信科技股份有限公司 | 一种在vxlan传输中控制信息的传送方法及系统 |
CN112702254B (zh) * | 2020-12-18 | 2022-05-17 | 迈普通信技术股份有限公司 | 报文处理方法、装置及电子设备 |
CN112866208B (zh) * | 2020-12-31 | 2022-11-08 | 迈普通信技术股份有限公司 | 表项配置方法、报文处理方法、装置、设备及存储介质 |
CN115567439B (zh) * | 2021-06-30 | 2024-06-21 | 中国电信股份有限公司 | 报文转发方法、节点、系统以及网络节点和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104734986A (zh) * | 2013-12-19 | 2015-06-24 | 华为技术有限公司 | 一种报文转发方法和装置 |
CN106059923A (zh) * | 2016-05-30 | 2016-10-26 | 杭州华三通信技术有限公司 | 一种报文转发方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9729578B2 (en) * | 2014-01-10 | 2017-08-08 | Arista Networks, Inc. | Method and system for implementing a network policy using a VXLAN network identifier |
-
2017
- 2017-12-18 CN CN201711371509.7A patent/CN108063718B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104734986A (zh) * | 2013-12-19 | 2015-06-24 | 华为技术有限公司 | 一种报文转发方法和装置 |
CN106059923A (zh) * | 2016-05-30 | 2016-10-26 | 杭州华三通信技术有限公司 | 一种报文转发方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108063718A (zh) | 2018-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108063718B (zh) | 报文处理方法、装置及电子设备 | |
US11374862B2 (en) | Packet sending and processing method and apparatus, PE node, and node | |
US10826829B2 (en) | Scalable handling of BGP route information in VXLAN with EVPN control plane | |
CN109861924B (zh) | 报文的发送、处理方法及装置,pe节点,节点 | |
CN109218178B (zh) | 一种报文处理方法及网络设备 | |
CN109756425B (zh) | 组播转发方法、装置以及bfr | |
US11979322B2 (en) | Method and apparatus for providing service for traffic flow | |
EP3896923A1 (en) | Bier packet sending method and apparatus | |
US10320664B2 (en) | Cloud overlay for operations administration and management | |
CN106936777B (zh) | 基于OpenFlow的云计算分布式网络实现方法、系统 | |
CN114189473B (zh) | 一种报文的发送方法和装置 | |
EP3139560B1 (en) | Packet processing method, device and computer storage medium | |
US20160261496A1 (en) | Packet forwarding in data center network | |
WO2016192686A1 (zh) | 数据报文转发 | |
CN111937358B (zh) | 用于结构边缘设备的多vrf通用设备互联网协议地址 | |
WO2014176740A1 (zh) | 流分类器、业务路由触发器、报文处理的方法和系统 | |
KR20230101903A (ko) | Bier 패킷 포워딩 방법, 디바이스 및 시스템 | |
US10454882B2 (en) | DHCP in layer-3 overlay with anycast address support and network address transparency | |
US11855888B2 (en) | Packet verification method, device, and system | |
CN112737954A (zh) | 报文处理方法、装置、系统、设备及存储介质 | |
US20220200820A1 (en) | Packet Sending Method and Apparatus | |
CN112702254A (zh) | 报文处理方法、装置及电子设备 | |
CN113765809A (zh) | Bier组播流量的统计方法、设备以及系统 | |
CN111770049B (zh) | 全局缓存变量及报文信息存储方法及装置 | |
WO2023125774A1 (zh) | 一种vxlan报文传输方法、网络设备及系统 |
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 |