CN115442366A - 报文转发方法、装置、设备及介质 - Google Patents

报文转发方法、装置、设备及介质 Download PDF

Info

Publication number
CN115442366A
CN115442366A CN202210917328.4A CN202210917328A CN115442366A CN 115442366 A CN115442366 A CN 115442366A CN 202210917328 A CN202210917328 A CN 202210917328A CN 115442366 A CN115442366 A CN 115442366A
Authority
CN
China
Prior art keywords
message
forwarded
forwarding
network card
intelligent network
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
CN202210917328.4A
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.)
Yusur Technology Co ltd
Original Assignee
Yusur Technology Co 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 Yusur Technology Co ltd filed Critical Yusur Technology Co ltd
Priority to CN202210917328.4A priority Critical patent/CN115442366A/zh
Publication of CN115442366A publication Critical patent/CN115442366A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • 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

报文转发方法、装置、设备及介质
技术领域
本公开涉及分布式网关技术领域,尤其涉及一种报文转发方法、装置、设备及介质。
背景技术
分布式云网关是指分布式云中两个云之间的网关。其中,分布式云网关包括中心云和边缘云之间的网关以及边缘云之间的网关。
随着社会数字化转型、智能化升级,业务流量需求越来越大,受限物理资源的限制,单机纯软的分布式云网关性能已经满足不了需求,通过水平横向扩展云网关能够满足部分需求,但是硬件成本较高且可操作性较差。因此,亟需一种可靠性较高并且降低成本的报文转发方法。
发明内容
为了解决或者部分解决上述技术问题,本公开提供了一种报文转发方法、装置、设备及介质。
第一方面,本公开提供了一种报文转发方法,应用于分布式云网关,该方法包括:
通过预先配置的智能网卡接收报文发送端发送的待转发报文;
通过智能网卡基于预先获取的多级匹配表,对待转发报文进行处理,得到处理后的待转发报文,其中,多级匹配表是由分布式云网关中的数据平面开发套件基于硬件匹配流表确定的,硬件匹配流表通过编译器对自定义程序翻译得到;
通过智能网卡,将处理后的待转发报文转发至报文接收端。
在一种可选的实施例中,通过智能网卡基于预先获取的多级匹配表,对待转发报文进行处理,得到处理后的待转发报文,包括:
解析待转发报文的目标类型;
从多级匹配表中查找目标类型对应的流表条目;
基于流表条目,对待转发报文进行处理,得到处理后的待转发报文。
在一种可选的实施例中,解析待转发报文的目标类型,包括:
通过智能网卡中的报文解析模块,解析待转发报文的协议头类型,得到待转发报文的目标类型。
在一种可选的实施例中,流表条目包括解封装流表条目;
相应的,基于流表条目,对待转发报文进行处理,得到处理后的待转发报文,包括:
基于解封装流表条目,对待转发报文进行端口匹配,得到端口匹配结果;
根据端口匹配结果,对待转发报文进行解封装处理,得到处理后的待转发报文。
在一种可选的实施例中,流表条目包括加封装流表条目;
相应的,基于流表条目,对待转发报文进行处理,得到处理后的待转发报文,包括:
基于加封装流表条目,对待转发报文添加协议头;
将添加协议头的待转发报文进行表项匹配,完成对待转发报文进行加封装处理,得到处理后的待转发报文。
在一种可选的实施例中,通过智能网卡,将处理后的待转发报文转发至报文接收端,包括:
通过智能网卡中的转发模块,对处理后的待转发报文进行整合,并将整合后的待转发报文转发至报文接收端。
在一种可选的实施例中,该方法还包括:
若智能网卡未成功对待转发报文进行处理,则通过软转发平台对待转发报文进行处理;
通过软转发平台将处理后的待转发报文发送至报文接收端。
第二方面,本公开提供了一种报文转发装置,配置于分布式云网关,该装置包括:
待转发报文接收模块,用于通过预先配置的智能网卡接收报文发送端发送的待转发报文;
报文处理模块,用于通过智能网卡基于预先获取的多级匹配表,对待转发报文进行处理,得到处理后的待转发报文,其中,多级匹配表是由分布式云网关中的数据平面开发套件基于硬件匹配流表确定的,硬件匹配流表通过编译器对自定义程序翻译得到;
报文转发模块,用于通过智能网卡,将处理后的待转发报文转发至报文接收端。
第三方面,本公开提供了一种计算机可读存储介质,计算机可读存储介质中存储指令,当指令在终端设备上运行时,使得终端设备实现上述的方法。
第四方面,本公开提供了一种设备,包括:存储器,处理器,及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,实现上述的方法。
第五方面,本公开提供了一种计算机程序产品,计算机程序产品包括计算机程序/指令,计算机程序/指令被处理器执行时实现上述的方法。
本公开实施例提供的技术方案与现有技术相比至少具有如下优点:
本公开实施例提供了一种报文转发方法、装置、设备及介质,通过预先配置的智能网卡接收报文发送端发送的待转发报文;通过智能网卡基于预先获取的多级匹配表,对待转发报文进行处理,得到处理后的待转发报文,其中,多级匹配表是由分布式云网关中的数据平面开发套件基于硬件匹配流表确定的,硬件匹配流表通过编译器对自定义程序翻译得到;通过智能网卡,将处理后的待转发报文转发至报文接收端。通过上述方式,自定义程序可以由用户灵活定义,并利用智能网卡实现硬件转发,提高了报文转发的可操作性和灵活性,并且节约了资源成本,因此,在资源有限的情况下能够实现转发性能加速的效果。
附图说明
此处的附图被并入说明书中,构成本说明书的一部分,表示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性地劳动的前提下,还可以根据这些附图获得其他的附图。
图1为相关技术提供的一种分布式云的系统架构图;
图2为相关技术提供的软转发组件架构图;
图3为相关技术提供的一种软转发方法的流程示意图;
图4为本公开实施例提供的一种报文转发方法的流程示意图;
图5为本公开实施例提供的一种分布式云网关的转发组件图;
图6为本公开实施例提供的另一种报文转发方法的流程示意图;
图7为本公开实施例提供的报文头解析过程以及报文解析过程的逻辑示意图;
图8为本公开实施例提供的隧道流量的解封装过程的逻辑示意图;
图9为本公开实施例提供的隧道流量的加封装过程的逻辑示意图;
图10为本公开实施例提供的一种报文转发装置的结构示意图;
图11为本公开实施例提供的一种报文转发设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分,而不是全部。
为了便于理解分布式云的结构,图1示出了相关技术提供的一种分布式云的系统架构图。如图1所示,分布式云包括中心云10、边缘云11以及边缘云12。其中,中心云10包括网关101和私有网络(Virtual Private Cloud,VPC)102,边缘云11包括网关111和VPC112,边缘云12包括网关121和VPC122。上述各个VPC内部可以包括虚拟交换机(Virtual Switch,VSWITCH)和虚拟路由器(VROUTER)。
具体的,上述VPC的内部实例可以内网互访。中心云10与边缘云11可以依次通过网关101和网关111进行通信,中心云10与边缘云12可以依次通过网关101和网关121进行通信,并且,边缘云11与边缘云12可以依次通过网关111和网关121进行通信。
需要说明的是,网关101、网关111和网关121之间可以建立叠加网络(OVERLAY)隧道,OVERLAY隧道能够支持多租户且承载高品质客户端流量,因此对于分布式云网关的带宽要求高。
目前的分布式云网关采用单机纯软方式,但是单机纯软的分布式云网关性能已经满足不了需求。
为了便于理解分布式云网关的软转发,图2示出了相关技术提供的软转发组件架构图。
如图2所示,软转发组件架构图包括:控制器210、用户态220和内核态230。其中,控制器210包括远程存取(Remote Access),用户态220包括:配置代理(Configure Agent)、可扩展框架(Vector Packet Processing,VPP)、数据平面开发套件(Data PlaneDevelopment Kit,DPDK)、路由协议套件(FRRouting,FRR)以及操作系统内核(LinuxKernel)。
具体的,远端管控系统能够提前纳管和读取网元的拓扑信息,通过自动化编排方式下发配置,包括虚拟路由转发(Virtual Routing Forward,VRF)以及网络虚拟化(Virtual eXtensible Local Area Network,VXLAN)的动态路由配置;网关与路由反射器建立边界网关协议(Border Gateway Protocol,BGP),通过路由反射器(Route Reflector,RR)反射,网关之间互相学习VPC侧私网路由;云网关内部FRR进程把学习到的VPC路由同步到VPP,生成L3转发信息表(Forwarding infornatuib base,FIB)表项。
进一步,图3示出了相关技术提供的一种软转发方法的流程示意图。
如图3所示,报文可以通过驱动Dpdk-input接收,经过三层转发进入Ip4-input,然后查找L3 FIB表,如果匹配到三层表项,上送本地且进行Ip4-lookup,随后进行VXLAN报文的解封装,后面再次进入二层L2-input,再走后续流程过三层,整个报文节点跳转经过了17个节点。
通过分析上述软转发流程,软转发过程存在以下缺点:
1、如果支持同样带宽的吞吐能力,软转发过程硬件成本较高且可操作性较差;
2、报文转发过程的时间延迟较高,难以解决大象流问题;
3、软转发过程完全依赖控制器,如果需要升级软转发过程,控制器以及软转发逻辑需要做全面升级,整体升级成本较高,因此,灵活性较差。
为了解决上述问题,本公开实施例提供了一种可以由用户灵活定义转发逻辑,并利用智能网卡实现的报文转发方法、装置、设备及介质。其中,该报文转发方法可以应用于分布式云网关。其中,分布式云网关可以是中心云与边缘云之间的网关,也可以是边缘云与边缘云之间的网关。
图4示出了本公开实施例提供的一种报文转发方法的流程示意图。如图4所示,该报文转发方法包括如下步骤。
S410、通过预先配置的智能网卡接收报文发送端发送的待转发报文。
实际应用时,当分布式网关实现在不同客户端传输报文时,分布式网关可以通过预先配置的智能网卡接收任意客户端发送的报文,并对报文进行处理以及转发。
在本公开实施例中,智能网卡可以是一种以数据为中心构造的专用处理器(DataProcessing Unit,DPU),并且采用软件定义技术路线支撑基础设施层资源虚拟化,支持存储、安全、服务质量管理等基础设施层服务。
在本公开实施例中,报文发送端是指报文发送端,可以通过分布式云与其他客户端通信,并将报文传输至其他客户端。
可选的,报文发送端可以是手机、台式计算机、笔记本、可穿戴设备等设备。
在本公开实施例中,待转发报文可以是需要转发的报文。
可选的,待转发报文可以是大象流,大象流是指导致网络拥塞的流量。
S420、通过智能网卡基于预先获取的多级匹配表,对待转发报文进行处理,得到处理后的待转发报文,其中,多级匹配表是由分布式云网关中的数据平面开发套件基于硬件匹配流表确定的,硬件匹配流表通过编译器对自定义程序翻译得到。
实际应用时,智能网卡预先存储多级匹配表,并且,在获取到待转发报文之后,可以通过多级匹配表指导处理报文以及转发报文,得到处理后的待转发报文。
在本公开实施例中,多级匹配表是用于指导处理报文以及转发报文的流表条目。
在本公开实施例中,硬件匹配流表是指通过智能网格进行硬件转发的流表条目。
在本公开实施例中,编译器可以是P4编译器,用于将自定义程序翻译成硬件匹配流表。
在本公开实施例中,自定义程序可以是基于分布式云的场景需要,设计自定义表项之后编写的P4程序。
具体的,待转发报文的处理过程可以包括报文解析、解封装、加封装以及整合处理。
为了便于理解多级匹配表的确定过程,图5示出了一种分布式云网关的转发组件图。
结合图5,具体的,可以由用户基于分布式云的场景需要,设计自定义表项,基于自定义表项编写自定义程序,该自定义表项可以是Match-Action table,是P4程序员用于规定包处理的主要部分,则自定义程序可以是P4程序;接着,可以通过P4编译器将P4程序翻译成自定义流表,自定义流表可以是DPDK的RUNTIME,并且生成DPDK的FLOW表项;进一步的,数据平面开发套件(Data Plane Development Kit,DPDK)将对应表项中的硬件匹配流表(RTE_FLOW)下发到智能网卡的P4数据平面,并生成多级匹配表,由此可以得到多级匹配表。
需要说明的是,若多级匹配表没有配置某些报文的转发逻辑,则智能网卡无法对此类报文进行处理以及转发,需要继续通过软转发对此类报文进行处理以及转发。
相应的,在S420之后,该方法还包括:
若智能网卡未成功对待转发报文进行处理,则通过软转发平台对待转发报文进行处理;
通过软转发平台将处理后的待转发报文发送至报文接收端。
可以理解的是,待转发报文可以是异常报文或者老鼠流,若智能网卡只能对大象流进行处理以及转发,则无法处理及转发异常报文或者老鼠流,因此,需要软转发对异常报文或者老鼠流进行处理以及转发。其中,老鼠流是指不会导致网络堵塞的流量。需要说明的是,软转发过程具体可以参见图3所示的软转发流程,在此不做赘述。
继续参见图5所示的转发组件图实现软转发,可以通过控制器对于边缘云场景的网关下发具体的业务配置,在VPP、DPDK生成具体的转发表项,或者FRR学习到私网路由后同步给VPP生成转发表项,对于异常报文或者老鼠流,可以基于转发表项进行处理及转发,从而基于转发表项实现软转发。
由此,在本公开实施例中,自定义程序可以由用户灵活定义,并实现利用智能网卡对大象流进行处理,对于老鼠流和异常报文,可以通过软转发方式进行报文处理。因此,结合两种转发方式,能够对任意报文进行灵活转发,节约硬件资源。
S430、通过智能网卡,将处理后的待转发报文转发至报文接收端。
实际应用时,分布式网关利用智能网卡处理完待转发报文之后,利用智能网卡将处理后的待转发报文转发至报文接收端,实现利用智能网卡对报文进行硬件转发。
在本公开实施例中,报文接收端可以是指报文接收端,可以通过分布式云与报文发送端通信。
可选的,报文接收端可以是手机、台式计算机、笔记本、可穿戴设备等设备。
本公开实施例提供了一种报文转发方法,通过预先配置的智能网卡接收报文发送端发送的待转发报文;通过智能网卡基于预先获取的多级匹配表,对待转发报文进行处理,得到处理后的待转发报文,其中,多级匹配表是由分布式云网关中的数据平面开发套件基于硬件匹配流表确定的,硬件匹配流表通过编译器对自定义程序翻译得到;通过智能网卡,将处理后的待转发报文转发至报文接收端。通过上述方式,自定义程序可以由用户灵活定义,并利用智能网卡实现硬件转发,提高了报文转发的可操作性和灵活性,并且节约了资源成本,因此,在资源有限的情况下能够实现转发性能加速的效果。
在本公开另一种实施方式中,先解析待转发报文的目标类型,并基于目标类型对应的解封装流表条目和/或加封装流表条目,处理待转发报文。
图6示出了本公开实施例提供的另一种报文转发方法的流程示意图。如图6所示,该报文转发方法包括如下步骤。
S610、通过预先配置的智能网卡接收报文发送端发送的待转发报文。
其中,S610与S410相似,在此不做赘述。
S620、解析待转发报文的目标类型。
在本公开实施例中,可选的,S620具体包括如下步骤:
通过智能网卡中的报文解析模块,解析待转发报文的协议头类型,得到待转发报文的目标类型。
其中,报文解析模块可以是图5中的解析器(Parser),能够用于从待转发报文中提取协议头并解析协议头类型。
可选的,待转发报文的目标类型可以是虚拟局域网(Virtual Local AreaNetwork,VLAN)类型、网际协议版本4(Internet Protocol version4,IPv4)或者网际协议版本6(Internet Protocol version 6,IPv6)。
进一步,可以根据目标类型对应的报文解析逻辑,解析待转发报文,并根据待转发报文的解析结果进行后续处理。
继续参见图5,智能网卡包括Parser。具体的,智能网卡接收到待转发报文之后,进入Parser阶段,并在Parser进行报文头解析以及报文解析。图7示出了报文头解析过程以及报文解析过程的逻辑示意图。
如图7所示,解析过程包括如下步骤:
S71、通过解析Ether_type,判断Ether_type的类型是IPv4还是VLAN。
具体的,若Ether_type的类型是VLAN,则执行S72,若Ether_type的类型是IPv4,则执行S73。
S72、查找VLAN的ether_type。
S73、进入IPv4解析阶段。
具体的,若解析结果是VLAN,则多次解析,直到解析到是IPv4报文。其中,IPv6逻辑跟IPv4类似,此处只以IPv4为例。
S74、解析IPv4的协议类型为17,则开始解析udp报文。
S75、解析udp报文的目的端口,如果其目的端口为4789,则认为是隧道VXLAN报文。
S76、继续解析内层以太报文和VLAN以及IPv4。
S630、从多级匹配表中查找目标类型对应的流表条目。
实际应用时,多级匹配表包括多种类型的流表条目,并从多级匹配表中查找目标类型对应的流表条目。
在本公开实施例中,流表条目能够用于指导处理报文。具体的,流表条目包括多种类型的报文的解封装流表条目以及加封装流表条目。
S640、基于流表条目,对待转发报文进行处理,得到处理后的待转发报文。
在一些实施例中,流表条目包括解封装流表条目;
相应的,S640具体包括如下步骤:
基于解封装流表条目,对待转发报文进行端口匹配,得到端口匹配结果;
根据端口匹配结果,对待转发报文进行解封装处理,得到处理后的待转发报文。
继续参见图5,具体的,可以通过智能网卡中的MAU模块,基于每个类型端口的匹配逻辑对待转发报文进行端口匹配,得到端口匹配结果,进一步基于端口匹配结果解封装待转发报文。
其中,解封装流表条目具有VLAN、IPv6以及IPv4等端口的匹配逻辑。
为了便于理解上述解封装过程,以待转发报文是隧道(OVERLAY)流量为例进行具体的解释。图8示出了隧道流量的解封装过程的逻辑示意图。
如图8所示,隧道流量的解封装过程包括如下步骤:
S81、先匹配pkt-type表,匹配完成后记录到元数据配置(ingress_metadata)里,用于后续处理。
S82、匹配端口介质访问控制(Media Access Control,MAC)表,用VLAN_id和入端口映射上具体客户端的虚拟路由转发(Virtual Routing Forwarding,vrf),并且记录到ingress metadata。
S83、匹配端口MAC表,如果匹配上,检查报文IPv4域是否有效。
具体的,若有效,则执行S84,否则,执行S90之后结束。
S84、匹配端口互联网协议地址(Internet Protocol Address,IP)表,通过入端口,检查目的地址和VLANID是否精确匹配。
具体的,若匹配成功,则执行S85,否则,执行S91之后结束。
S85、匹配vni_vrf的映射表,通过vni查找到对应的vrf,并且记录到metadata里面。
S86、通过外层src_ip,dst_ip和vni查找vxlan的接口索引。
S87、匹配smac表,进行源mac学习。
S88、如果是三层报文,匹配host主机路由表,如果匹配上,进行解封装,如果匹配不上,则匹配lpm表,如匹配上且需要解封装,则进行vxlan解封装。
S89、执行三层转发,判断是否匹配到三层路由表。若是,则执行S90进入二层转发,否则,直接结束。
S90、匹配l2_encap表,用于交换二层头,查询dmac表项,执行二层转发。
由此,在本公开实施例中,能够通过智能网卡,实现对报文进行解封装处理,从而关联所属租户的属性。
在另一些实施例中,流表条目包括加封装流表条目;
相应的,S640具体包括如下步骤:
基于加封装流表条目,对待转发报文添加协议头;
将添加协议头的待转发报文进行表项匹配,完成对待转发报文进行加封装处理,得到处理后的待转发报文。
继续参见图5,具体的,可以通过智能网卡中的MAU模块对待转发报文添加协议头,然后基于加封装流表条目中的表项匹配逻辑对上述报文进行表项匹配,从而实现对上述报文的加封装处理。
其中,加封装流表条目具有VLAN、IPv6以及IPv4等端口的加封装逻辑。
为了便于理解上述解封装过程,继续以待转发报文是隧道(OVERLAY)流量为例进行具体的解释。图9示出了隧道流量的加封装过程的逻辑示意图。
如图9所示,隧道流量的加封装过程包括如下步骤:
S91、通过metadata携带的信息判断是否加过封装。
具体的,若未加过封装,则执行S92,否则,执行S97。
S92、添加vxlan头,填入vni。
S93、添加udp头,填入目的端口4789,计算四层checksum。
S94、匹配next_hop表,添加源目的ip,添加外层源目的mac。
S95、匹配二层封装表,二层交换。
S96、匹配meter表,进行客户端限速。
由此,在本公开实施例中,能够通过智能网卡,实现对报文进行加封装处理。
综上,对于隧道流量,通过在分布式云网关插入智能网卡,在满足低成本转发的同时,也能实现对隧道流量进行加速。
进一步需要说明的是,由于多级匹配表中的流表条目是基于自定义程序转换得到的,则多级匹配表可以基于不同的场景需求灵活设置,当需要小范围的更新流表条目以更新报文处理逻辑时,可以通过人工方式修改自定义程序实现更新智能网卡的硬转发逻辑,无需完全依赖控制器,使得在不影响全局业务的情况下,实现报文转发过程的快速迭代功能,简化升级流程。
S650、通过智能网卡,将处理后的待转发报文转发至报文接收端。
在本公开实施例中,可选的,S650具体可以包括如下步骤:
通过智能网卡中的转发模块,对处理后的待转发报文进行整合,并将整合后的待转发报文转发至报文接收端。
其中,报文解析模块可以是图5中的逆解析器(Deparser),能够用于整合处理后的待转发报文。
由此,在本公开实施例中,在对待处理报文进行加封装处理和解封装处理之后,通过智能网卡的转发模块直接转发处理后的待转发报文。
与上述方法实施例基于同一个发明构思,本公开还提供了一种报文转发装置,参考图10,为本公开实施例提供的一种报文转发装置1000的结构示意图,装置包括:
待转发报文接收模块1001,用于通过预先配置的智能网卡接收报文发送端发送的待转发报文;
报文处理模块1002,用于通过智能网卡基于预先获取的多级匹配表,对待转发报文进行处理,得到处理后的待转发报文,其中,多级匹配表是由分布式云网关中的数据平面开发套件基于硬件匹配流表确定的,硬件匹配流表通过编译器对自定义程序翻译得到;
报文转发模块1003,用于通过智能网卡,将处理后的待转发报文转发至报文接收端。
本公开实施例提供了一种报文转发装置,通过预先配置的智能网卡接收报文发送端发送的待转发报文;通过智能网卡基于预先获取的多级匹配表,对待转发报文进行处理,得到处理后的待转发报文,其中,多级匹配表是由分布式云网关中的数据平面开发套件基于硬件匹配流表确定的,硬件匹配流表通过编译器对自定义程序翻译得到;通过智能网卡,将处理后的待转发报文转发至报文接收端。通过上述方式,自定义程序可以由用户灵活定义,并利用智能网卡实现硬件转发,提高了报文转发的可操作性和灵活性,并且节约了资源成本,因此,在资源有限的情况下能够实现转发性能加速的效果。
一种可选的实施方式中,报文处理模块1002,包括:
解析单元,用于解析待转发报文的目标类型;
查找单元,用于从多级匹配表中查找目标类型对应的流表条目;
报文处理单元,用于基于流表条目,对待转发报文进行处理,得到处理后的待转发报文。
一种可选的实施方式中,解析单元具体用于,通过智能网卡中的报文解析模块,解析待转发报文的协议头类型,得到待转发报文的目标类型。
一种可选的实施方式中,流表条目包括解封装流表条目;
相应的,报文处理单元具体用于,基于解封装流表条目,对待转发报文进行端口匹配,得到端口匹配结果;
根据端口匹配结果,对待转发报文进行解封装处理,得到处理后的待转发报文。
一种可选的实施方式中,流表条目包括加封装流表条目;
相应的,报文处理单元具体用于,基于加封装流表条目,对待转发报文添加协议头;
将添加协议头的待转发报文进行表项匹配,完成对待转发报文进行加封装处理,得到处理后的待转发报文。
一种可选的实施方式中,报文转发模块1003具体用于,通过智能网卡中的转发模块,对处理后的待转发报文进行整合,并将整合后的待转发报文转发至报文接收端。
一种可选的实施方式中,该装置还包括:
软转发处理模块,用于若智能网卡未成功对待转发报文进行处理,则通过软转发平台对待转发报文进行处理;
软转发模块,用于通过软转发平台将处理后的待转发报文发送至报文接收端。
除了上述方法和装置以外,本公开实施例还提供了一种计算机可读存储介质,计算机可读存储介质中存储指令,当指令在终端设备上运行时,使得终端设备实现本公开实施例的报文转发方法。
本公开实施例还提供了一种计算机程序产品,计算机程序产品包括计算机程序/指令,计算机程序/指令被处理器执行时实现本公开实施例的报文转发方法。
另外,本公开实施例还提供了一种报文转发设备,参见图11所示,可以包括:
处理器1101、存储器1102、收发器1103和总线1104。报文转发设备中的处理器1101的数量可以一个或多个,图11中以一个处理器为例。在本公开的一些实施例中,处理器1101、存储器1102、收发器1103和总线1104可通过总线或其它方式连接,其中,图11中以通过总线连接为例。
存储器1102可用于存储软件程序以及模块,处理器1101通过运行存储在存储器1102的软件程序以及模块,从而执行报文转发设备的各种功能应用以及数据处理。存储器1102可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等。此外,存储器1102可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。收发器1103可用于接收输入的数字或字符信息,以及产生与报文转发设备的用户设置以及功能控制有关的信号输入。
具体在本实施例中,处理器1101会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器1102中,并由处理器1101来运行存储在存储器1102中的应用程序,从而实现上述报文转发设备的各种功能。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种报文转发方法,其特征在于,应用于分布式云网关,所述方法包括:
通过预先配置的智能网卡接收报文发送端发送的待转发报文;
通过所述智能网卡基于预先获取的多级匹配表,对所述待转发报文进行处理,得到处理后的待转发报文,其中,所述多级匹配表是由所述分布式云网关中的数据平面开发套件基于硬件匹配流表确定的,所述硬件匹配流表通过编译器对自定义程序翻译得到;
通过所述智能网卡,将所述处理后的待转发报文转发至报文接收端。
2.根据权利要求1所述的方法,其特征在于,所述通过所述智能网卡基于预先获取的多级匹配表,对所述待转发报文进行处理,得到处理后的待转发报文,包括:
解析所述待转发报文的目标类型;
从所述多级匹配表中查找所述目标类型对应的流表条目;
基于所述流表条目,对所述待转发报文进行处理,得到所述处理后的待转发报文。
3.根据权利要求2所述的方法,其特征在于,所述解析所述待转发报文的目标类型,包括:
通过所述智能网卡中的报文解析模块,解析所述待转发报文的协议头类型,得到所述待转发报文的目标类型。
4.根据权利要求2所述的方法,其特征在于,所述流表条目包括解封装流表条目;
相应的,所述基于所述流表条目,对所述待转发报文进行处理,得到所述处理后的待转发报文,包括:
基于所述解封装流表条目,对所述待转发报文进行端口匹配,得到端口匹配结果;
根据所述端口匹配结果,对所述待转发报文进行解封装处理,得到所述处理后的待转发报文。
5.根据权利要求2所述的方法,其特征在于,所述流表条目包括加封装流表条目;
相应的,所述基于所述流表条目,对所述待转发报文进行处理,得到所述处理后的待转发报文,包括:
基于所述加封装流表条目,对所述待转发报文添加协议头;
将添加协议头的待转发报文进行表项匹配,完成对所述待转发报文进行加封装处理,得到所述处理后的待转发报文。
6.根据权利要求1~5任一项所述的方法,其特征在于,所述通过所述智能网卡,将所述处理后的待转发报文转发至报文接收端,包括:
通过所述智能网卡中的转发模块,对所述处理后的待转发报文进行整合,并将整合后的待转发报文转发至所述报文接收端。
7.根据权利要求1所述的方法,其特征在于,在所述通过预先配置的智能网卡接收报文发送端发送的待转发报文之后,所述方法还包括:
若所述智能网卡未成功对所述待转发报文进行处理,则通过软转发平台对所述待转发报文进行处理;
通过所述软转发平台将处理后的待转发报文发送至所述报文接收端。
8.一种报文转发装置,其特征在于,所述装置配置于分布式云网关,所述装置包括:
待转发报文接收模块,用于通过预先配置的智能网卡接收报文发送端发送的待转发报文;
报文处理模块,用于通过所述智能网卡基于预先获取的多级匹配表,对所述待转发报文进行处理,得到处理后的待转发报文,其中,所述多级匹配表是由所述分布式云网关中的数据平面开发套件基于硬件匹配流表确定的,所述硬件匹配流表通过编译器对自定义程序翻译得到;
报文转发模块,用于通过所述智能网卡,将所述处理后的待转发报文转发至报文接收端。
9.一种设备,其特征在于,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备实现如权利要求1-7任一项所述的方法。
CN202210917328.4A 2022-08-01 2022-08-01 报文转发方法、装置、设备及介质 Pending CN115442366A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210917328.4A CN115442366A (zh) 2022-08-01 2022-08-01 报文转发方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210917328.4A CN115442366A (zh) 2022-08-01 2022-08-01 报文转发方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN115442366A true CN115442366A (zh) 2022-12-06

Family

ID=84242838

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210917328.4A Pending CN115442366A (zh) 2022-08-01 2022-08-01 报文转发方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN115442366A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116170404A (zh) * 2023-02-17 2023-05-26 通明智云(北京)科技有限公司 一种基于dpdk的数据转发方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116170404A (zh) * 2023-02-17 2023-05-26 通明智云(北京)科技有限公司 一种基于dpdk的数据转发方法及装置
CN116170404B (zh) * 2023-02-17 2023-09-29 通明智云(北京)科技有限公司 一种基于dpdk的数据转发方法及装置

Similar Documents

Publication Publication Date Title
US10541836B2 (en) Virtual gateways and implicit routing in distributed overlay virtual environments
CN111131037B (zh) 基于虚拟网关的数据传输方法、装置、介质与电子设备
US9787503B2 (en) Utilizing proxy internet protocol addressing in a gateway for communicating with multiple service provider networks
CN105453492A (zh) 具有第三层分布式路由器功能的交换机集群
CN111010329B (zh) 一种报文传输方法及装置
US10616105B1 (en) Extending virtual routing and forwarding using source identifiers
CN104168223A (zh) 用于确定分组优先级的方法和系统
WO2016177145A1 (zh) 报文发送方法及装置
WO2020073908A1 (zh) 一种发送路由信息的方法和装置
CN105553851A (zh) 基于sdn的网络处理器微码和流表实现装置及方法
CN115442366A (zh) 报文转发方法、装置、设备及介质
CN117041205A (zh) 地址转换方法、装置、宿主机及计算机可读存储介质
CN111756629B (zh) 设备接入overlay网络及通信的方法、装置、设备、网络及介质
CN109246016B (zh) 跨vxlan的报文处理方法和装置
CN116248595B (zh) 一种云内网与物理网通信的方法、装置、设备以及介质
CN114760165A (zh) 报文传输方法、设备及系统
CN116566897A (zh) 一种寻址路由方法、装置、设备及介质
CN115834472A (zh) 一种报文处理方法、转发策略获取方法及装置
EP3913865B1 (en) Message decapsulation method and device, message encapsulation method and device, electronic device, and storage medium
CN111865801B (zh) 一种基于Virtio端口传输数据的方法和系统
US11909641B2 (en) Forwarding table validation
US20230421499A1 (en) Packet transmission method and apparatus
CN114430393B (zh) 报文处理方法、装置及存储介质
US10601649B1 (en) Stack switching detection and provisioning
US11836382B2 (en) Data read method, data storage method, electronic device, and computer program product

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