CN117478458A - 一种报文处理方法、装置及网络设备 - Google Patents

一种报文处理方法、装置及网络设备 Download PDF

Info

Publication number
CN117478458A
CN117478458A CN202311421918.9A CN202311421918A CN117478458A CN 117478458 A CN117478458 A CN 117478458A CN 202311421918 A CN202311421918 A CN 202311421918A CN 117478458 A CN117478458 A CN 117478458A
Authority
CN
China
Prior art keywords
message
tunnel endpoint
transmitted
virtual tunnel
data
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.)
Pending
Application number
CN202311421918.9A
Other languages
English (en)
Inventor
黎阳
王永功
蒋超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN202311421918.9A priority Critical patent/CN117478458A/zh
Publication of CN117478458A publication Critical patent/CN117478458A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing 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

本申请公开了一种报文处理方法、装置及网络设备,包括:响应于当前虚拟隧道端点接收到待传输报文,获取待传输报文的外层报文数据;其中,待传输报文为将虚拟网路中的数据帧封装在物理网络中进行传输的报文,待传输报文通过目标隧道进行传输,目标隧道包括至少一个虚拟隧道端点;待传输报文包括外层报文数据和内层报文数据,外层报文数据表征虚拟网络层数据,内层报文数据表征物理网络层数据;对外层报文数据进行解析,获得外层报文数据解析结果;若外层报文数据解析结果表征当前虚拟隧道端点不是虚拟隧道终点,将待传输报文传输至与当前虚拟隧道端点对应的下一虚拟隧道端点。

Description

一种报文处理方法、装置及网络设备
技术领域
本申请涉及信息处理技术领域,更具体的说是涉及一种报文处理方法、装置及网络设备。
背景技术
目前,针对智能网卡(SmartNIC)中针对虚拟交换机(如OvS:Open vSwitch)的数据平面进行卸载,减少网络处理对CPU(中央处理器)资源消耗,释放CPU核给云业务,并且可以降低虚拟交换机快路径处理时延,在云计算中有广泛的应用场景。为了满足云计算的虚拟化需求,可以通过特定网络构建云网络的网络协议,例如,通过VXLAN网络构建云网络是当前最主流的协议方案。
但是,目前虚拟交换机数据平面卸载解决方案在分组处理和转发前,需要对报文进行进行串行解析,时延较大,会影响基于智能网卡的虚拟交换机卸载方案。
发明内容
有鉴于此,本申请提供如下技术方案:
一种报文处理方法,包括:
响应于当前虚拟隧道端点接收到待传输报文,获取所述待传输报文的外层报文数据;其中,所述待传输报文为将虚拟网络中的数据帧封装在物理网络中进行传输的报文,所述待传输报文通过目标隧道进行传输,所述目标隧道包括至少一个虚拟隧道端点;所述待传输报文包括外层报文数据和内层报文数据,所述外层报文数据表征虚拟网络层数据,所述内层报文数据表征物理网络层数据;
对所述外层报文数据进行解析,获得外层报文数据解析结果;
若所述外层报文数据解析结果表征所述当前虚拟隧道端点不是虚拟隧道终点,将所述待传输报文传输至与所述当前虚拟隧道端点对应的下一虚拟隧道端点。
可选地,还包括:
若所述外层报文数据解析结果表征所述当前虚拟隧道端点是虚拟隧道终点,获得所述待传输报文的内层报文数据;
对所述内层报文数据进行解析,获得内层报文数据解析结果;
基于所述内层报文数据解析结果,确定物理网络的目的端点;
将所述待传输报文传输至所述物理网络的目的端点。
可选地,所述外层报文数据解析结果表征所述当前虚拟隧道端点不是虚拟隧道终点,包括:
若所述外层报文数据解析结果中获得的用户数据包协议头端口号与目标端口号不相等,确定所述当前虚拟隧道端点不是虚拟隧道终点;
或者,
若所述外层报文数据解析结果中的虚拟隧道终点网络地址与当前虚拟隧道端点的网络地址不同,确定所述当前虚拟隧道端点不是虚拟隧道终点。
可选地,所述将所述待传输报文传输至与所述当前虚拟隧道端点对应的下一虚拟隧道端点,包括:
若所述外层报文数据解析结果中获得目的用户数据包协议头端口号与目标端口号不相等,确定所述待传输报文与所述目标隧道传输的报文类型不同;
基于所述目标端口号对所述待传输报文进行重封装;
将重封装的待传输报文传输至与所述当前虚拟隧道端点对应的下一虚拟隧道端点。
可选地,若所述外层报文数据解析结果中的虚拟隧道终点网络地址与当前虚拟隧道端点的网络地址不同,所述方法还包括:
响应于将所述待传输报文传输至与所述当前虚拟隧道端点对应的下一虚拟隧道端点,获得所述下一虚拟隧道端点的网络地址;
若所述虚拟隧道终点网络地址与所述下一虚拟隧道端点的网络地址不同,将所述待传输报文传输至与所述下一虚拟隧道端点对应的下一虚拟隧道端点。
可选地,所述获取所述待传输报文的外层报文数据,包括:
对所述待传输报文进行解封装,获得所述待传输报文的外层报文数据;
其中,所述将所述待传输报文传输至与所述当前虚拟隧道端点对应的下一虚拟隧道端点,包括:
将解封装后的待传输报文进行封装,并将封装后的待传输报文传输至与所述当前虚拟隧道端点对应的下一虚拟隧道端点。
可选地,所述基于所述内层报文数据解析结果,确定物理网络的目的端点,包括:
基于所述外层报文数据解析结果中的外层头数据对所述内层报文数据进行解析,获得内层目的MAC地址;
根据内层报文的二层转发表信息和内层目的MAC地址进行二层转发表查找,获得物理网络的目的端点。
一种报文处理装置,包括:
获取单元,用于响应于当前虚拟隧道端点接收到待传输报文,获取所述待传输报文的外层报文数据;其中,所述待传输报文为将虚拟网路中的数据帧封装在物理网络中进行传输的报文,所述待传输报文通过目标隧道进行传输,所述目标隧道包括至少一个虚拟隧道端点;所述待传输报文包括外层报文数据和内层报文数据,所述外层报文数据表征虚拟网络层数据,所述内层报文数据表征物理网络层数据;
解析单元,用于对所述外层报文数据进行解析,获得外层报文数据解析结果;
传输单元,用于若所述外层报文数据解析结果表征所述当前虚拟隧道端点不是虚拟隧道终点,将所述待传输报文传输至与所述当前虚拟隧道端点对应的下一虚拟隧道端点。
一种网络设备,包括:
存储器,用于存储应用程序和所述应用程序运行所产生的数据;
处理器,用于执行所述应用程序,以实现如上述中任一项所述的报文处理方法。
一种存储介质,包括计算机指令,当所述计算机指令在网络设备上运行时,使得所述网络设备执行如上述中任一项所述的报文处理方法。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种报文处理方法的流程示意图;
图2为本申请实施例提供的一种分组头解析器的示意图;
图3为本申请实施例提供的一种内层解析判定模块处理流程图;
图4为本申请实施例提供的一种内层解析判定模块硬件实现示意图;
图5为本申请实施例提供的一种报文处理装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书、权利要求书以及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或者描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本申请实施例提供了一种报文处理方法,可以应用于网络设备中,可以通过网络设备中的报文处理芯片实现对待传输报文的处理。在对报文处理的过程中可以分层处理,对于不需要解析的数据可以先跳过,有效降低解析时延。
参见图1,为本申请实施例提供的一种报文处理方法的流程示意图,该方法可以包括以下步骤:
S101、响应于当前虚拟隧道端点接收到待传输报文,获取所述待传输报文的外层报文数据。
S102、对外层报文数据进行解析,获得外层报文数据解析结果。
S103、若外层报文数据解析结果表征当前虚拟隧道端点不是虚拟隧道终点,将待传输报文传输至当前虚拟隧道端点对应的下一虚拟隧道端点。
在本申请实施例中,待传输报文为将虚拟网路中的数据帧封装在物理网络中进行传输的报文,待传输报文通过目标隧道进行传输,目标隧道包括至少一个虚拟隧道端点。所述待传输报文包括外层报文数据和内层报文数据,外层报文数据表征虚拟网络层数据,内层报文数据表征物理网络层数据。该待传输报文可以是分组数据,网络设备的转发芯片对到达的分组数据进行数据处理和分组转发时,可以利用转发芯片内的分组头解析器对转发数据的分组头各个字段的类型和长度进行解析,实现通过分组头解析来完成本申请实施例中的报文解析。
该待传输报文可以是通过隧道封装技术实现传输的报文,例如通过VXLAN(Virtual eXtensible Local AreaNetwork,虚拟扩展局域网)隧道技术实现的报文,即VXLAN组播报文,其通过将虚拟网络中的数据帧封装在实际物理网络中的报文中进行传输,也即将虚拟网络的数据帧添加VXLAN首部后封装在物理网络中的UDP(User DatagramProtocol,用户数据报协议)报文,当报文到达目的主机后,去掉物理网络报文的头部信息以及VXLAN首部,将报文交付给目的终端,而整个通信过程目的终端不会感知物理网络的存在。VXLAN组播报文的转发过程,其中,当虚拟隧道端点(也称为网络边缘节点)从VXLAN隧道侧接收到VXLAN组播报文时,会对该报文进行解析,以基于解析结果对该报文进行分组和转发。
待传输报文包括外层报文数据和内层报文数据。报文转发按照外层报文数据封装的IP地址和MAC地址指导转发。能够封装和解封装的设备称为VTEP(Vxlan Tunnel EndPoint),VTEP设备是VXLAN隧道的端点。VXLAN报文转发至VTEP时,VTEP将报文解封装,若VTEP是隧道终点时,然后按照内层IP和内层MAC指导转发。VNI(VXLAN NetworkIdentifier)是VXLAN网络标识符,类似VLAN tag,VXLAN使用VNI标识不同的网段。
因此,在本申请实施例中可以先对外层报文数据进行解析,获得外层报文数据解析结果。基于外层报文数据解析结果确定当前虚拟隧道端点是不是虚拟隧道终点,若不是则会对待传输报文继续进行传输。只有在当到达隧道终点时才会利用内层报文数据中的物理网的目的端点技术将报文转发至目的端。若所述外层报文数据解析结果表征所述当前虚拟隧道端点不是虚拟隧道终点,则无需对内层报文数据进行解析,降低了解析时延。
对应的,在本申请实施例的一种实施方式中,还包括:
若所述外层报文数据解析结果表征当前虚拟隧道端点是虚拟隧道终点,获得所述待传输报文的内层报文数据;对所述内层报文数据进行解析,获得内层报文数据解析结果;基于所述内层报文数据解析结果,确定物理网络的目的端点;将所述待传输报文传输至所述物理网络的目的端点。
即若所述外层报文数据解析结果表征当前虚拟隧道端点是虚拟隧道终点,需要进行内层报文数据解析,解析的目的是确定物理网络的目的端,然后对该待传输报文进行传输。
具体的,外层报文数据中可以包括不同层级的分组头信息,内层报文数据中也可以包括不同层级的分组头信息,对外层报文数据和内层报文数据进行解析时,是对外层分组头和内层分组头进行解析。如下表所示,为外层和内层分组头相关信息。
分组头解析层级表
分组头层级 分组头定义
外层分组头L1 源Eth端口,源VF端口
外层分组头L2 目的MAC地址,源MAC地址,EtherType,VLAN
外层分组头L3 目的IP地址(IPv4/IPv6),源IP地址(IPv4/IPv6),协议类型
外层分组头L4 目的端口,源端口,TCPFlags
内层分组头L1 VXLANVNI
内层分组头L2 目的MAC地址,源MAC地址,EtherType,VLAN
内层分组头L3 目的IP地址(IPv4/IPv6),源IP地址(IPv4/IPv6),协议类型
内层分组头L4 目的端口,源端口,TCPFlags
在本申请实施例中获得外层报文数据的解析结果之后,可以通过外层报文数据解析结果中不同的外层分组头数据,来确定当前虚拟隧道端点是不是虚拟隧道终点。在一种实施方式中,若所述外层报文数据解析结果中获得目的用户数据包协议头端口号与目标端口号不相等,确定所述当前虚拟隧道端点不是虚拟隧道终点;或者,若所述外层报文数据解析结果中的虚拟隧道终点网络地址与当前虚拟隧道端点的网络地址不同,确定所述当前虚拟隧道端点不是虚拟隧道终点。
具体的,仍以上表中示出的外层分组头和内层分组头为例,在获得了外层报文数据解析结果,即获得外层分组头中各个字段以及字段内容后,可以将外层分组头L4-目的端口或者外层分组头L3-目的IP地址作为判断依据。首先基于外层分组头L4-目的端口与端口号4789(即目的端口号)比较,如果相等,则进一步进行判定,如果不相等,则直接跳转到不解析内层分组头。下一步判定基于外层分组头L3-目的IP地址组Key,查找隧道终点IP表。隧道终点IP表存放了VXLAN隧道终点IP地址,可以采用精确匹配查找表实现。如果查找表命中,则跳转到解析内层分组头状态;如果不命中,则跳转到不解析内层分组头状态。
其中,若若所述外层报文数据解析结果中获得目的用户数据包协议头端口号与目标端口号不相等,则表征该待传输报文不符合当前隧道传输的报文类型,例如不是VXLAN类型报文,再次传输的时候可以通过正确的目的端口号进行重封装。因此,在本申请实施例的一种实施方式中,所述将所述待传输报文传输至与所述当前虚拟隧道端点对应的下一虚拟隧道端点,包括:
若所述外层报文数据解析结果中获得目的用户数据包协议头端口号与目标端口号不相等,确定所述待传输报文与所述目标隧道传输的报文类型不同;
基于所述目标端口号对所述待传输报文进行重封装;
将重封装的待传输报文传输至与所述当前虚拟隧道端点对应的下一虚拟隧道端点。
当待传输报文传输到每一虚拟隧道端点的时候,该端点都会对待传输报文进行解封装,然后获得外层报文数据解析结果,然后再重封装传输到下一端点。因此,在本申请实施例中,若所述外层报文数据解析结果中的虚拟隧道终点网络地址与当前虚拟隧道端点的网络地址不同,所述方法还包括:
响应于将所述待传输报文传输至与所述当前虚拟隧道端点对应的下一虚拟隧道端点,获得所述下一虚拟隧道端点的网络地址;
若所述虚拟隧道终点网络地址与所述下一虚拟隧道端点的网络地址不同,将所述待传输报文传输至与所述下一虚拟隧道端点对应的下一虚拟隧道端点。
具体的,所述获取所述待传输报文的外层报文数据,包括:
对所述待传输报文进行解封装,获得所述待传输报文的外层报文数据;
其中,所述将所述待传输报文传输至与所述当前虚拟隧道端点对应的下一虚拟隧道端点,包括:
将解封装后的待传输报文进行封装,并将封装后的待传输报文传输至与所述当前虚拟隧道端点对应的下一虚拟隧道端点。
若当前虚拟隧道端点为隧道终点时,需要对内层报文数据进行解析,并基于内层报文数据解析结果,确定物理网络的目的端点。在本申请实施例的一种实施方式中,所述基于所述内层报文数据解析结果,确定物理网络的目的端点,包括:基于所述外层报文数据解析结果中的外层头数据对所述内层报文数据进行解析,获得内层目的MAC地址;根据内层报文的二层转发表信息和内层目的MAC地址进行二层转发表查找,获得物理网络的目的端点。
下面以具体的应用场景对本申请实施例的报文处理方法进行说明,在该应用场景中是将报文处理方法应用解决OvS数据平面卸载解决方案在分组(packet)处理和转发前,需要对多层分组头进行串行解析,时延较大的问题中。其中,外层报文数据指外层分组头,内层报文数据指内层分组头。
参见图2,为本申请实施例提供的一种分组头解析器的示意图,该分组头解析器用于实现对待传输报文进行解析,即可以实现对外层分组头以及内层分组头的解析。其中,该分组头解析器包括外层分组头解析、内层解析判定模块以及内层分组头解析。内层解析判定模块基于外层分组头解析结果确定是否进行内层分组头解析,如果是,通过内层分组头解析模块进行解析,如果否,解析完成传输至下一端点。
同时参见图3和图4,其中,图3为内层解析判定模块处理流程图,图4为内层解析判定模块硬件实现示意图。
内层解析判定模块的输入1为外层分组头L4-目的端口,输入2为外层分组头L3-目的IP地址。首先基于外层分组头L4-目的端口与端口号4789比较,如果相等,则进一步进行判定,如果不相等,则直接跳转到不解析内层分组头。下一步判定基于外层分组头L3-目的IP地址组Key,查找隧道终点IP表。隧道终点IP表存放了VXLAN隧道终点IP地址,可以采用精确匹配查找表实现。如果查找表命中,则跳转到解析内层分组头状态;如果不命中,则跳转到不解析内层分组头状态。
在图4所示的硬件实现方式中,隧道终点IP表的查找(判断是否命中)和目的端口号的相等判断可以并行完成,由是否解析内层判定电路模块决定是否解析内层分组头。是否解析内层判定电路模块仅在隧道终点IP表命中且目的端口号与4789相等时才会判定为解析内层分组头。其余状态均判定为不解析内层分组头。
在该应用场景中,针对不需要进行内层分组头解析的网络分组,跳过内层分组的解析,可以降低解析时延;针对不需要内层分组头解析的网络分组,后续流水线处理中所需缓存的分组头字段向量(PHV:PacketHeaderVector)减小。
在本申请实施例中还提供了一种报文处理装置,参见图5,该装置可以包括:
获取单元201,用于响应于当前虚拟隧道端点接收到所述待传输报文,获取所述待传输报文的外层报文数据;其中,所述待传输报文为将虚拟网路中的数据帧封装在物理网络中进行传输的报文,所述待传输报文通过目标隧道进行传输,所述目标隧道包括至少一个虚拟隧道端点;所述待传输报文包括外层报文数据和内层报文数据,所述外层报文数据表征虚拟网络层数据,所述内层报文数据包括物理网络层数据;
解析单元202,用于对所述外层报文数据进行解析,获得外层报文数据解析结果;
传输单元203,用于若所述外层报文数据解析结果表征所述当前虚拟隧道端点不是虚拟隧道终点,将所述待传输报文传输至与所述当前虚拟隧道端点对应的下一虚拟隧道端点。
可选地,还包括:
所述获取单元,还用于若所述外层报文数据解析结果表征当前虚拟隧道端点是虚拟隧道终点,获得所述待传输报文的内层报文数据;
所述解析单元,还用于对所述内层报文数据进行解析,获得内层报文数据解析结果;
第一确定单元,用于基于所述内层报文数据解析结果,确定物理网络的目的端点;
所述传输单元,还用于将所述待传输报文传输至所述物理网络的目的端点。
可选地,所述外层报文数据解析结果表征所述当前虚拟隧道端点不是虚拟隧道终点,包括:
若所述外层报文数据解析结果中获得目的用户数据包协议头端口号与目标端口号不相等,确定所述当前虚拟隧道端点不是虚拟隧道终点;
或者,
若所述外层报文数据解析结果中的虚拟隧道终点网络地址与当前虚拟隧道端点的网络地址不同,确定所述当前虚拟隧道端点不是虚拟隧道终点。
在一种实施方式中,所述传输单元包括:
第一确定子单元,用于若所述外层报文数据解析结果中获得目的用户数据包协议头端口号与目标端口号不相等,确定所述待传输报文与所述目标隧道传输的报文类型不同;
重封装子单元,用于基于所述目标端口号对所述待传输报文进行重封装;
传输子单元,用于将重封装的待传输报文传输至与所述当前虚拟隧道端点对应的下一虚拟隧道端点。
可选地,若所述外层报文数据解析结果中的虚拟隧道终点网络地址与当前虚拟隧道端点的网络地址不同,所述装置还包括:
地址获取单元,用于响应于将所述待传输报文传输至与所述当前虚拟隧道端点对应的下一虚拟隧道端点,获得所述下一虚拟隧道端点的网络地址;
报文传输单元,用于若所述虚拟隧道终点网络地址与所述下一虚拟隧道端点的网络地址不同,将所述待传输报文传输至与所述下一虚拟隧道端点对应的下一虚拟隧道端点。
可选地,所述获取单元包括:
解封装子单元,用于对所述待传输报文进行解封装,获得所述待传输报文的外层报文数据;
其中,所述传输单元具体用于:
将解封装后的待传输报文进行封装,并将封装后的待传输报文传输至与所述当前虚拟隧道端点对应的下一虚拟隧道端点。
可选地,所述解析单元具体用于:
基于所述外层报文数据解析结果中的外层头数据对所述内层报文数据进行解析,获得内层目的MAC地址;
根据内层报文的二层转发表信息和内层目的MAC地址进行二层转发表查找,获得物理网络的目的端点。
需要说明的是,本实施例中各个单元以及子单元的具体实现可以参考前文中的相应内容,此处不再详述。
在本申请的另一实施例中,还提供一种存储介质,包括计算机指令,当所述计算机指令在网络设备上运行时,使得所述网络设备执行如上述所述的报文处理方法。
在本申请的另一实施例中,还提供了一种网络设备,该网络设备包括:
存储器,用于存储应用程序和所述应用程序运行所产生的数据;
处理器,用于执行所述应用程序,以实现如上述中任一项所述的报文处理方法。
需要说明的是,本实施例中处理器的具体实现可以参考前文中的相应内容,此处不再详述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种报文处理方法,包括:
响应于当前虚拟隧道端点接收到待传输报文,获取所述待传输报文的外层报文数据;其中,所述待传输报文为将虚拟网路中的数据帧封装在物理网络中进行传输的报文,所述待传输报文通过目标隧道进行传输,所述目标隧道包括至少一个虚拟隧道端点;所述待传输报文包括外层报文数据和内层报文数据,所述外层报文数据表征虚拟网络层数据,所述内层报文数据表征物理网络层数据;
对所述外层报文数据进行解析,获得外层报文数据解析结果;
若所述外层报文数据解析结果表征所述当前虚拟隧道端点不是虚拟隧道终点,将所述待传输报文传输至与所述当前虚拟隧道端点对应的下一虚拟隧道端点。
2.根据权利要求1所述的方法,还包括:
若所述外层报文数据解析结果表征当前虚拟隧道端点是虚拟隧道终点,获得所述待传输报文的内层报文数据;
对所述内层报文数据进行解析,获得内层报文数据解析结果;
基于所述内层报文数据解析结果,确定物理网络的目的端点;
将所述待传输报文传输至所述物理网络的目的端点。
3.根据权利要求1所述的方法,所述外层报文数据解析结果表征所述当前虚拟隧道端点不是虚拟隧道终点,包括:
若所述外层报文数据解析结果中获得目的用户数据包协议头端口号与目标端口号不相等,确定所述当前虚拟隧道端点不是虚拟隧道终点;
或者,
若所述外层报文数据解析结果中的虚拟隧道终点网络地址与当前虚拟隧道端点的网络地址不同,确定所述当前虚拟隧道端点不是虚拟隧道终点。
4.根据权利要求3所述的方法,所述将所述待传输报文传输至与所述当前虚拟隧道端点对应的下一虚拟隧道端点,包括:
若所述外层报文数据解析结果中获得目的用户数据包协议头端口号与目标端口号不相等,确定所述待传输报文与所述目标隧道传输的报文类型不同;
基于所述目标端口号对所述待传输报文进行重封装;
将重封装的待传输报文传输至与所述当前虚拟隧道端点对应的下一虚拟隧道端点。
5.根据权利要求3所述的方法,若所述外层报文数据解析结果中的虚拟隧道终点网络地址与当前虚拟隧道端点的网络地址不同,所述方法还包括:
响应于将所述待传输报文传输至与所述当前虚拟隧道端点对应的下一虚拟隧道端点,获得所述下一虚拟隧道端点的网络地址;
若所述虚拟隧道终点网络地址与所述下一虚拟隧道端点的网络地址不同,将所述待传输报文传输至与所述下一虚拟隧道端点对应的下一虚拟隧道端点。
6.根据权利要求1所述的方法,所述获取所述待传输报文的外层报文数据,包括:
对所述待传输报文进行解封装,获得所述待传输报文的外层报文数据;
其中,所述将所述待传输报文传输至与所述当前虚拟隧道端点对应的下一虚拟隧道端点,包括:
将解封装后的待传输报文进行封装,并将封装后的待传输报文传输至与所述当前虚拟隧道端点对应的下一虚拟隧道端点。
7.根据权利要求2所述的方法,所述基于所述内层报文数据解析结果,确定物理网络的目的端点,包括:
基于所述外层报文数据解析结果中的外层头数据对所述内层报文数据进行解析,获得内层目的MAC地址;
根据内层报文的二层转发表信息和内层目的MAC地址进行二层转发表查找,获得物理网络的目的端点。
8.一种报文处理装置,包括:
获取单元,用于响应于当前虚拟隧道端点接收到所述待传输报文,获取所述待传输报文的外层报文数据;其中,所述待传输报文为将虚拟网路中的数据帧封装在物理网络中进行传输的报文,所述待传输报文通过目标隧道进行传输,所述目标隧道包括至少一个虚拟隧道端点;所述待传输报文包括外层报文数据和内层报文数据,所述外层报文数据表征虚拟网络层数据,所述内层报文数据包括物理网络层数据;
解析单元,用于对所述外层报文数据进行解析,获得外层报文数据解析结果;
传输单元,用于若所述外层报文数据解析结果表征所述当前虚拟隧道端点不是虚拟隧道终点,将所述待传输报文传输至与所述当前虚拟隧道端点对应的下一虚拟隧道端点。
9.一种网络设备,包括:
存储器,用于存储应用程序和所述应用程序运行所产生的数据;
处理器,用于执行所述应用程序,以实现如权利要求1至7中任一项所述的报文处理方法。
10.一种存储介质,包括计算机指令,当所述计算机指令在网络设备上运行时,使得所述网络设备执行如权利要求1至7中任一项所述的报文处理方法。
CN202311421918.9A 2023-10-30 2023-10-30 一种报文处理方法、装置及网络设备 Pending CN117478458A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311421918.9A CN117478458A (zh) 2023-10-30 2023-10-30 一种报文处理方法、装置及网络设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311421918.9A CN117478458A (zh) 2023-10-30 2023-10-30 一种报文处理方法、装置及网络设备

Publications (1)

Publication Number Publication Date
CN117478458A true CN117478458A (zh) 2024-01-30

Family

ID=89630567

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311421918.9A Pending CN117478458A (zh) 2023-10-30 2023-10-30 一种报文处理方法、装置及网络设备

Country Status (1)

Country Link
CN (1) CN117478458A (zh)

Similar Documents

Publication Publication Date Title
US11979322B2 (en) Method and apparatus for providing service for traffic flow
US10097402B2 (en) Filter tables for management functions
CN108259291B (zh) Vxlan报文处理方法、设备及系统
CN113326228B (zh) 基于远程直接数据存储的报文转发方法、装置及设备
US11496393B2 (en) Method and apparatus for forwarding packet based on integrated flow table
US11729300B2 (en) Generating programmatically defined fields of metadata for network packets
US20220255772A1 (en) Packet sending method, apparatus, and system
WO2015056095A1 (en) Packet parsing and key generation in a network device
US12074729B2 (en) Message encapsulation method and apparatus, and message decapsulation method and apparatus
EP3820094A1 (en) Vxlan message encapsulation method, device and system, and strategy execution method, device and system
CN110311860B (zh) Vxlan下多链路负载均衡方法及装置
JP2016522627A (ja) パケット処理方法および装置
WO2016131422A1 (en) Flow entry generating and packet processing based on flow entry
US20240106751A1 (en) Method and apparatus for processing detnet data packet
CN108737239B (zh) 一种报文转发方法及装置
JP6222505B2 (ja) 入力パラメータを生成するための方法および装置
CN105763659B (zh) 一种IPv6隧道报文封装方法及系统
US20160212045A1 (en) Method and system for using extension headers to support protocol stack migration
CN108848202B (zh) 电子装置、数据传输方法及相关产品
CN104348821B (zh) 管理IPv4/IPv6业务的方法、设备和系统
CN117478458A (zh) 一种报文处理方法、装置及网络设备
EP3913865A1 (en) Message decapsulation method and device, message encapsulation method and device, electronic device, and storage medium
US10917502B2 (en) Method for using metadata in internet protocol packets
CN113055268A (zh) 隧道流量负载均衡的方法、装置、设备及介质
CN116668375B (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