CN116545921A - 基于ecmp的报文转发方法、装置、设备及存储介质 - Google Patents
基于ecmp的报文转发方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116545921A CN116545921A CN202310635027.7A CN202310635027A CN116545921A CN 116545921 A CN116545921 A CN 116545921A CN 202310635027 A CN202310635027 A CN 202310635027A CN 116545921 A CN116545921 A CN 116545921A
- Authority
- CN
- China
- Prior art keywords
- forwarding
- message
- routing
- original message
- ecmp
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012545 processing Methods 0.000 abstract description 11
- 238000010586 diagram Methods 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 239000012141 concentrate Substances 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Abstract
本发明公开了一种基于ECMP的报文转发方法、装置、设备及存储介质;在本方法中,主要通过硬件实现该报文转发方法,该硬件接收原始报文后,需要判断是否存在与原始报文匹配的目标选路流表;若存在,则直接利用目标选路流表直接执行ECMP选路转发动作;若不存在,则将原始报文发送至软件,以便软件对原始报文进行ECMP选路转发,并将生成的选路流表卸载至硬件。可见,本方案通过软件对原始报文进行ECMP选路转发后,需要将生成的选路流表卸载至硬件,后续硬件接收到与选路流表相匹配的报文后,便可直接通过硬件执行ECMP选路转发动作,避免通过软件实现ECMP时占用大量资源,减轻软件的数据处理负担。
Description
技术领域
本发明涉及通信技术领域,更具体地说,涉及一种基于ECMP的报文转发方法、装置、设备及存储介质。
背景技术
等价成本多路径(Equal Cost Multi Path,ECMP)技术,是指在具备多个等效路径的情况下,将流量分担到多个路径上,从而达到负载均衡和提高网络性能的目的。ECMP可以实现在一个网络中,通过将数据包同时发送到多个相同的下一跳路由器,来实现网络流量的均衡和冗余。在ECMP中,当有多个等价的路径可供选择时,路由器可以根据规则将数据包分发到这些路径之一,从而实现多路径负载均衡。如:在一个网络拓扑中,如果某个目标主机有两条等效路径可供选择,那么路由器可以根据其内部算法将数据包均匀地分发到这些路径上,从而达到负载均衡的目的。ECMP技术广泛应用于各种网络环境中,包括企业内部网络、ISP网络以及云计算平台等。通过使用ECMP技术,网络管理员可以有效地管理网络流量,并提高网络带宽的利用率。
当前云计算网络大量使用SDN(Software Defined Network,软件定义网络)来管理网络,其中OpenvSwitch(OVS,虚拟交换机)就是其中的佼佼者。OVS同样支持ECMP,但是OVS是靠软件处理来实现ECMP,而ECMP的选路涉及选路流表的匹配、选路算法的计算、以及选路完成后的流量编辑与转发等一系列耗费软件性能的操作,在大流量情况下,势必会对OVS核心业务造成很大冲击。因此,如何避免OVS实现ECMP时占用大量资源,是本领域技术人员需要解决的问题。
发明内容
本发明的目的在于提供一种基于ECMP的报文转发方法、装置、设备及存储介质,以避免OVS实现ECMP时占用大量资源。
为实现上述目的,本发明提供一种基于ECMP的报文转发方法,所述报文转发方法应用于硬件,所述报文转发包括:
接收原始报文;
判断是否存在与所述原始报文匹配的目标选路流表;
若存在,则利用所述目标选路流表直接执行ECMP选路转发动作;
若不存在,则将所述原始报文发送至软件,以便所述软件对所述原始报文进行ECMP选路转发,并将生成的选路流表卸载至所述硬件。
优选地,所述判断是否存在与所述原始报文匹配的目标选路流表,包括:
确定所述原始报文的目标IP地址;
根据所述目标IP地址查找是否存在匹配的第一级选路流表;
若存在,则判定存在与所述原始报文匹配的目标选路流表;若不存在,则判定不存在与所述原始报文匹配的目标选路流表。
优选地,利用所述目标选路流表直接执行ECMP选路转发动作,包括:
从所述第一级选路流表中确定选路成员个数及关联ID;
利用所述原始报文的五元组计算哈希值;
根据所述选路成员个数对所述哈希值进行取模,得到取模值;
通过所述关联ID及所述取模值查找相匹配的第二级选路流表,并根据所述第二级选路流表确定成员出口信息;
利用所述成员出口信息将原始报文转发至对应设备。
优选地,根据所述第二级选路流表确定成员出口信息之后,还包括:
根据相匹配的第二级选路流表判断所述原始报文是否需要编辑;
若是,则对所述原始报文编辑后,利用所述成员出口信息将编辑后的原始报文转发至对应设备;
若否,则直接利用所述成员出口信息将原始报文转发至对应设备。
优选地,所述判断所述原始报文是否需要编辑,包括:
判断所述原始报文的源IP地址及源MAC地址是否需要编辑。
优选地,所述硬件为ASIC芯片,所述软件为虚拟交换机。
优选地,所述将所述原始报文发送至软件之后,包括:
接收所述软件通过offload接口下发的选路流表。
为实现上述目的,本发明进一步提供一种基于ECMP的报文转发装置,所述报文转发装置应用于硬件,所述报文转发装置包括:
报文接收模块,用于接收原始报文;
判断模块,用于判断是否存在与所述原始报文匹配的目标选路流表;
转发模块,用于存在与所述原始报文匹配的目标选路流表时,利用所述目标选路流表直接执行ECMP选路转发动作;
发送模块,用于不存在与所述原始报文匹配的目标选路流表时,将所述原始报文发送至软件,以便所述软件对所述原始报文进行ECMP选路转发,并将生成的选路流表卸载至所述硬件。
为实现上述目的,本发明进一步提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述任意方法实施例所述的基于ECMP的报文转发方法的步骤。
为实现上述目的,本发明进一步提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意方法实施例所述的基于ECMP的报文转发方法的步骤。
通过以上方案可知,本发明实施例提供的一种基于ECMP的报文转发方法、装置、设备及存储介质;在本方法中,主要通过硬件实现该报文转发方法,该硬件接收原始报文后,需要判断是否存在与原始报文匹配的目标选路流表;若存在,则直接利用目标选路流表直接执行ECMP选路转发动作;若不存在,则将原始报文发送至软件,以便软件对原始报文进行ECMP选路转发,并将生成的选路流表卸载至硬件。可见,本方案通过软件对原始报文进行ECMP选路转发后,需要将生成的选路流表卸载至硬件,后续硬件接收到与选路流表相匹配的报文后,便可直接通过硬件执行ECMP选路转发动作,避免通过软件实现ECMP时占用大量资源。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为传统方案中ECMP选路流程图;
图2为本发明实施例公开的一种基于ECMP的报文转发方法流程示意图;
图3为本发明实施例公开的一种ECMP选路整体流程图;
图4为本发明实施例公开的另一种基于ECMP的报文转发方法流程示意图;
图5为本发明实施例公开的ECMP选路卸载主要流程示意图;
图6为本发明实施例公开的硬件执行ECMP选路转发动作的整体流程图;
图7为本发明实施例公开的一种基于ECMP的报文转发装置结构示意图;
图8为本发明实施例公开的一种电子设备结构示意图。
具体实施方式
在传统方案中,均依靠软件来完成ECMP选路功能,参见图1,为传统方案中ECMP选路流程图,图中的DPU(Data Processing Unit)为数据处理器,eth为以太网接口,OVS(Openvswitch)为虚拟交换机,DPDK(Data Plane Development Kit)为数据平面开发套件,eth-rep为以太网接口代表,dp-process为软件处理进程,vnet0~vnet2为三个虚拟网卡,vnet0-rep~vnet2-rep为三个虚拟网卡代表口。结合图1可以看出,传统方案中的ECMP选路流程如下:
1)DPU在eth口收到上行流量后,会上送到eth-rep口;
2)通过dp_process进行报文内容的多级流表匹配,确定ECMP选路的路由组,如图1所示,该组有三个成员:vnet0~vnet2;根据DPHASH算法(哈希算法)计算出hash_val,然后对路由组成员个数取模,得到最后选路mod_val(2),该值对应的就是vnet2;
3)将流量发送至vnet2-rep;
4)通过vnet2-rep将流量发送至vnet2,以便vnet2对应的设备收到经过ECMP选路后到达的流量。
通过上述内容可以看出,传统方案进行ECMP的选路,需要多级流表配合,多级流表匹配流程复杂且漫长,会影响OVS性能;并且,ECMP依赖DPHASH算法算出一个DPHASH值,该算法同样会影响OVS性能;ECMP选路完成后依赖软件来对流量做转发,同样会耗费软件CPU(Central Processing Unit,中央处理器)资源;对于选路完成后,有可能还需要对原始报文的port(端口)/ip(Internet Protocol Address,互联网协议地址)/mac(Media AccessControl Address,局域网地址)等字段做编辑动作,报文的编辑处理也会耗费大量的软件资源。因此,由于传统方案中,ECMP复杂的流程在软件完成,在大流量情况下,对OVS核心业务造成很大冲击。
因此在本方案中,公开了一种基于ECMP的报文转发方法、装置、设备及存储介质,本方案可通过OVS的硬件offload功能,将本来由软件处理的ECMP选路功能卸载到硬件去处理,释放软件压力,避免被单一业务占据大量资源,让OVS专注于流量转发的控制与其他核心业务。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图2,本发明实施例提供的一种基于ECMP的报文转发方法流程示意图,该报文转发方法应用于硬件,具体包括如下步骤:
S101、接收原始报文;
在本方案中,该原始报文可以为向目标IP地址发送的首包流量,也可以为向目标IP地址发送的非首包流量。本方案所述的报文转发方法是基于硬件的角度进行描述的,硬件接收到原始报文后,可通过确定原始报文是否与选路流表匹配的方式确定报文类型,进而确定具体需要通过硬件还是软件来实现原始报文的ECMP选路转发功能。
S102、判断是否存在与原始报文匹配的目标选路流表;
若存在,则执行S103;若不存在,则执行S104;
在本实施例中,硬件中存储的选路流表为软件通过offload接口下发的选路流表,为了进行区分,本方案将与原始报文匹配的选路流表称为目标选路流表;本方案在确定是否存在与原始报文匹配的目标选路流表时,可根据原始报文中的目标IP地址查找是否存在匹配的目标选路流表,匹配是指:目标选路流表中记录的目标IP地址与原始报文的目标IP地址相同。如果硬件中存在与原始报文匹配的目标选路流表,则说明软件已经针对目标IP地址生成选路流表并卸载至硬件,则该原始报文即为非首包流量;如果硬件中不存在与原始报文匹配的目标选路流表,则说明软件还没有生成针对目标IP地址的选路流表,该原始报文即为非首包流量;需要说明的是,本方案在判断是否存在与原始报文匹配的目标选路流表时,不仅可通过目标IP地址查找,还可以通过tcp(Transmission Control Protocol,传输控制协议)、udp(User Datagram Protocol,用户数据报协议)、源ip、端口等字段进行查找,在此并不具体限定。
S103、利用目标选路流表直接执行ECMP选路转发动作;
在本实施例中,若硬件中存在与原始报文匹配的目标选路流表,则硬件可直接根据该目标选路流表执行ECMP选路转发动作。具体来说,目标选路流表中会记载ECMP选路的所有成员,然后通过流表匹配的方式确定需要转发报文的成员,并将该原始报文通过该成员转发至对应网络设备。
S104、将原始报文发送至软件,以便软件对原始报文进行ECMP选路转发,并将生成的选路流表卸载至硬件。
在本实施例中,若硬件中不存在与原始报文匹配的目标选路流表,则说明该原始报文为非首包流量,此时需要将原始报文发送至软件,软件接收到原始报文后,会进行ECMP选路转发,并将生成的选路流表卸载至硬件,通过该方式,硬件接收到与该选路流表匹配的报文后,即可直接执行ECMP选路转发动作。参见图3,本发明实施例提供的一种ECMP选路整体流程图,图3中的ASIC芯片(Application Specific Integrated Circuit,专用集成电路)即为本实施例中的硬件,OVS-DPDK即为本实施例中的软件,结合图3可见,该ECMP选路流程包括如下步骤:
1)DPU中的ASIC芯片收到eth发送的原始报文,将该原始报文与流表匹配,若未命中,则将原始报文转发至OVS-DPDK软件,走首包上送流程;
2)OVS-DPDK软件的dp_process通过eth-rep口收到原始报文后,进行流表查询,并执ECMP选路动作,同时生成ECMP选路的精确流表;该精确流表即为卸载至硬件的选路流表;
3)dp_process将原始报文发送至vnet2-rep;
4)在OVS-DPDK软件执行动作时如果开启卸载,则将ECMP选路的精确流表卸载到ASIC芯片中,其中流表的action中包括ECMP选路的组所有成员dport:vnet0、vnet1、vnet2;
5)通过vnet2-rep将原始报文发送至vnet2,以便vnet2对应的设备收到经过ECMP选路后到达的原始报文;
6)ASIC芯片后续收到报文后,若查询流表命中,则直接通过ASIC芯片进行处理,执行ECMP选路转发动作;
7)ASIC芯片将报文转发至vnet2,以便vnet2对应的设备收到经过ECMP选路后到达的原始报文。
通过上述过程可以看出,若报文为首包流量,则执行流程
1->2->3->4->5,若为非首包流量,则执行流程6->7。
需要说明的是,本实施例仅以硬件为ASIC芯片、软件为虚拟交换机为例进行说明,在实际应用时可根据实际情况进行选择,在此并不具体限定。
通过上述过程可以看出,方案通过将选路流表卸载至硬件的方式,可将硬件接收到与选路流表相匹配的报文后,直接执行ECMP选路转发动作,避免通过软件实现ECMP时占用大量资源,在一定程度上大大为软件减负,让软件专注于核心业务的处理,该方案对比现有的软件方案可以提供更好的复制性能,为软件减少更多的CPU消耗。
参见图4,本发明实施例提供的另一种基于ECMP的报文转发方法流程示意图,该报文转发方法应用于硬件,具体包括如下步骤:
S201、接收原始报文;
S202、确定原始报文的目标IP地址;
S203、根据目标IP地址查找是否存在匹配的第一级选路流表;
若不存在,则判定不存在与原始报文匹配的目标选路流表,并执行S204。
若存在,则判定存在与原始报文匹配的目标选路流表,并执行S205;
S204、将原始报文发送至软件,以便软件对原始报文进行ECMP选路转发,并将生成的选路流表卸载至硬件;
S205、从第一级选路流表中确定选路成员个数及关联ID;
S206、利用原始报文的五元组计算哈希值,根据选路成员个数对哈希值进行取模,得到取模值;
S207、通过关联ID及取模值查找相匹配的第二级选路流表,并根据第二级选路流表确定成员出口信息;
S208、利用所述成员出口信息将原始报文转发至对应设备。
需要说明的是,硬件中的选路流表为二级流表,该二级流标包括:第一级流表和第二级流表,且每个流表中均包括key(匹配项)和action(操作集),其中:第一级流表的key为目的IP地址、tcp、udp、源ip等,在本方案中,仅以key为目的IP地址为例进行说明,第一级流表的action包括:ECMP选路动作+选路成员的个数+一级流表的关联ID(Identitydocument,标识号),该ECMP选路动作用于指示报文是否需要ECMP选路,该关联ID用于区分不同ECMP选路的两级流表,如:目的IP地址1对应的关联ID为1,目的IP地址2对应的关联ID为2;第二级流表的key为一级流表的关联id+成员组编号,第二级流表的action包括:对应成员编号的出口信息dport与报文编辑相关信息。并且,第二级流表的个数根据ECMP成员组数量而定,有几个成员,软件就需要向硬件下发几个第二级流表,如关联ID为1,有3个选路成员,编号从0到2,则第二级流表包括三个,key分别为:1-0、1-1、1-2。
本方案在判断是否存在与原始报文匹配的目标选路流表时,具体是将原始报文的目标IP地址与第一级路流表的key进行匹配,若存在第一级路流表的key与目标IP地址相同,则判定存在相匹配的目标选路流表。
参见图5,本发明实施例提供的ECMP选路卸载主要流程示意图,通过该图可以看出,软件执行S204的过程包括如下步骤:
S301、软件收到硬件发送的报文,进行ECMP选路,生成选路流表;
S302、判断是否开启流表卸载功能;
若是,则执行S303;若否,则结束流程;
S303、判断第一级流表的action是否包括ECMP选路动作;
若是,则执行S304;若否,则结束流程;
S304、将生成的选路流表通过offload接口下发到硬件。
通过上述过程将选路流表卸载至硬件后,对于向同一目标IP地址发送的流量,硬件可直接通过相同的选路流表进行选路转发。
具体来说,硬件收到原始报文后,将原始报文与第一级选路流表的key匹配,如果命中,则进行硬件ECMP选路转发;硬件在进行ECMP选路转发时,会从匹配的第一级选路流表中获取action,得到ECMP组成员个数及流表关联ID;进而,硬件会提取原始报文的五元组,通过DPHASH算法计算出哈希值,然后对ECMP组成员个数取模,得到选路的索引mod_val;然后将关联ID+mod_val组成key匹配第二级选路流表,并获取相匹配的第二级选路流表的action,得到最终选路的成员出口信息dport,并完成流量转发。
可以理解的是,本方案根据第二级选路流表确定成员出口信息之后,还可以根据相匹配的第二级选路流表判断原始报文是否需要编辑;若是,则对原始报文编辑后,利用所述成员出口信息将编辑后的原始报文转发至对应设备;若否,则直接利用成员出口信息将原始报文转发至对应设备。其中,本实施例在判断原始报文是否需要编辑时,主要判断原始报文的源IP地址及源MAC地址是否需要编辑。但在实际应用中,也可根据实际情况修改和增加其他需要编辑的内容,本方案对此并不具体限定。
为了对本方案进行清楚说明,在此结合ASIC芯片中的各模块对硬件执行ECMP选路转发动作的过程进行详细说明,参见图6,本发明实施例提供的硬件执行ECMP选路转发动作的整体流程图,在此通过表1对图6中的各模块的功能进行说明:
表1
硬件执行ECMP选路转发动作的过程具体包括如下步骤:
1)RX接收原始报文,解析报文的METADATA(元数据),供L1 Process做流表查找处理。
2)L1 Process到L1 Flow Table匹配流表,如果存在相匹配的第一级选路流表,则打上命中的第一级选路流表的action信息:ECMP成员个数(3)+多级流表的关联id(1);
3)原始报文到L2 Process,根据第一级选路流表的action信息,填充DPHASH模板:MOD_EN(1)+MOD(3)+五元组。进行DPHASH计算,会得到一个取模后的值mod_val(1)。
4)原始报文到L3 Process,根据步骤2和步骤3中获取的信息组成key:多级流表的关联id(1)+mod_val(1),到L3 flow table匹配第二级选路流表,得到相匹配的第二级选路流表的action信息;如图6所示,key为1-1对应的action包括:dport:1、set_sip:1、sip_idx:2、set_smac:1、smac_idx:2。
5)原始报文到Pkt Edit,根据相匹配的第二级选路流表的action信息,确定需要编辑报文,由于sip_idx和smac_idx均为2,则将原始报文中的ip与mac修改成Edit Table中索引值为2的对应值,即:报文的源ip会被修改成1.1.1.2,源mac会被修改成02:03:04:05:06:07。
6)修改后的报文到TX,根据dport信息,将报文转发到对应设备。
通过上述流程可以看出,本方案提出了一种将ECMP选路过程卸载到硬件的技术方案。通过利用OVS-DPDK支持的OFFLOAD标准接口,将ECMP选路业务卸载到硬件,实现对软件的减负,让软件可专注于核心业务的处理,该方案对比现有的软件方案,可以提供更好的复制性能,让硬件使用软件所生成的选路流表进行ECMP选路,为软件减少更多的CPU消耗。
下面对本发明实施例提供的报文转发装置、设备及存储介质进行介绍,下文描述的报文转发装置、设备及存储介质与上文描述的报文转发方法可以相互参照。
参见图7,本发明实施例提供的一种基于ECMP的报文转发装置结构示意图,该报文转发装置应用于硬件,所述报文转发硬件包括:
报文接收模块11,用于接收原始报文;
判断模块12,用于判断是否存在与所述原始报文匹配的目标选路流表;
转发模块13,用于存在与所述原始报文匹配的目标选路流表时,利用所述目标选路流表直接执行ECMP选路转发动作;
发送模块14,用于不存在与所述原始报文匹配的目标选路流表时,将所述原始报文发送至软件,以便所述软件对所述原始报文进行ECMP选路转发,并将生成的选路流表卸载至所述硬件。
其中,判断模块包括:
第一确定单元,用于确定所述原始报文的目标IP地址;
第一查找单元,用于根据所述目标IP地址查找是否存在匹配的第一级选路流表;若存在,则判定存在与所述原始报文匹配的目标选路流表;若不存在,则判定不存在与所述原始报文匹配的目标选路流表。
其中,转发模块包括:
第二确定单元,用于从所述第一级选路流表中确定选路成员个数及关联ID;
计算单元,用于利用所述原始报文的五元组计算哈希值,并根据所述选路成员个数对所述哈希值进行取模,得到取模值;
第二查找单元,用于通过所述关联ID及所述取模值查找相匹配的第二级选路流表,并根据所述第二级选路流表确定成员出口信息;
转发单元,用于利用所述成员出口信息将原始报文转发至对应设备。
其中,判断模块还包括:
判断单元,用于根据相匹配的第二级选路流表判断所述原始报文是否需要编辑;若是,则触发编辑单元;
编辑单元,用于对所述原始报文编辑后;
所述转发单元用于在原始报文需要编辑时,利用所述成员出口信息将编辑后的原始报文转发至对应设备;在原始报文不需要编辑时,直接利用所述成员出口信息将原始报文转发至对应设备。
其中,所述判断单元具体用于:判断所述原始报文的源IP地址及源MAC地址是否需要编辑。
其中,所述硬件为ASIC芯片,所述软件为虚拟交换机。
其中,所述装置还包括:
流表接收模块,用于接收所述软件通过offload接口下发的选路流表。
参见图8,本发明实施例提供的一种电子设备结构示意图,包括:
存储器21,用于存储计算机程序;
处理器22,用于执行所述计算机程序时实现上述任意方法实施例所述的基于ECMP的报文转发方法的步骤。
在本实施例中,该设备包括上述任意实施例中的硬件及软件,该设备可以具体PC(Personal Computer,个人电脑),也可以是智能手机、平板电脑、掌上电脑、便携计算机等终端设备。
该设备可以包括存储器21、处理器22和总线23。
其中,存储器21至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器21在一些实施例中可以是设备的内部存储单元,例如该设备的硬盘。存储器21在另一些实施例中也可以是设备的外部存储设备,例如设备上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器21还可以既包括设备的内部存储单元也包括外部存储设备。存储器21不仅可以用于存储安装于设备的应用软件及各类数据,例如执行报文转发方法的程序代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器22在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器21中存储的程序代码或处理数据,例如执行报文转发方法的程序代码等。
该总线23可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
进一步地,设备还可以包括网络接口24,网络接口24可选的可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该设备与其他电子设备之间建立通信连接。
可选地,该设备还可以包括用户接口25,用户接口25可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口25还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在设备中处理的信息以及用于显示可视化的用户界面。
图8仅示出了具有组件21-25的设备,本领域技术人员可以理解的是,图8示出的结构并不构成对设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意方法实施例所述的基于ECMP的报文转发方法的步骤。
其中,该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种基于ECMP的报文转发方法,其特征在于,所述报文转发方法应用于硬件,所述报文转发包括:
接收原始报文;
判断是否存在与所述原始报文匹配的目标选路流表;
若存在,则利用所述目标选路流表直接执行ECMP选路转发动作;
若不存在,则将所述原始报文发送至软件,以便所述软件对所述原始报文进行ECMP选路转发,并将生成的选路流表卸载至所述硬件。
2.根据权利要求1所述的报文转发方法,其特征在于,所述判断是否存在与所述原始报文匹配的目标选路流表,包括:
确定所述原始报文的目标IP地址;
根据所述目标IP地址查找是否存在匹配的第一级选路流表;
若存在,则判定存在与所述原始报文匹配的目标选路流表;若不存在,则判定不存在与所述原始报文匹配的目标选路流表。
3.根据权利要求2所述的报文转发方法,其特征在于,利用所述目标选路流表直接执行ECMP选路转发动作,包括:
从所述第一级选路流表中确定选路成员个数及关联ID;
利用所述原始报文的五元组计算哈希值;
根据所述选路成员个数对所述哈希值进行取模,得到取模值;
通过所述关联ID及所述取模值查找相匹配的第二级选路流表,并根据所述第二级选路流表确定成员出口信息;
利用所述成员出口信息将原始报文转发至对应设备。
4.根据权利要求3所述的报文转发方法,其特征在于,根据所述第二级选路流表确定成员出口信息之后,还包括:
根据相匹配的第二级选路流表判断所述原始报文是否需要编辑;
若是,则对所述原始报文编辑后,利用所述成员出口信息将编辑后的原始报文转发至对应设备;
若否,则直接利用所述成员出口信息将原始报文转发至对应设备。
5.根据权利要求3所述的报文转发方法,其特征在于,所述判断所述原始报文是否需要编辑,包括:
判断所述原始报文的源IP地址及源MAC地址是否需要编辑。
6.根据权利要求1所述的报文转发方法,其特征在于,所述硬件为ASIC芯片,所述软件为虚拟交换机。
7.根据权利要求1至6中任意一项所述的报文转发方法,其特征在于,所述将所述原始报文发送至软件之后,包括:
接收所述软件通过offload接口下发的选路流表。
8.一种基于ECMP的报文转发装置,其特征在于,所述报文转发装置应用于硬件,所述报文转发装置包括:
报文接收模块,用于接收原始报文;
判断模块,用于判断是否存在与所述原始报文匹配的目标选路流表;
转发模块,用于存在与所述原始报文匹配的目标选路流表时,利用所述目标选路流表直接执行ECMP选路转发动作;
发送模块,用于不存在与所述原始报文匹配的目标选路流表时,将所述原始报文发送至软件,以便所述软件对所述原始报文进行ECMP选路转发,并将生成的选路流表卸载至所述硬件。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的基于ECMP的报文转发方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的基于ECMP的报文转发方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310635027.7A CN116545921A (zh) | 2023-05-31 | 2023-05-31 | 基于ecmp的报文转发方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310635027.7A CN116545921A (zh) | 2023-05-31 | 2023-05-31 | 基于ecmp的报文转发方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116545921A true CN116545921A (zh) | 2023-08-04 |
Family
ID=87456037
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310635027.7A Pending CN116545921A (zh) | 2023-05-31 | 2023-05-31 | 基于ecmp的报文转发方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116545921A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116886621A (zh) * | 2023-09-07 | 2023-10-13 | 珠海星云智联科技有限公司 | 报文转发控制方法、dpu及相关设备 |
CN117439953A (zh) * | 2023-12-20 | 2024-01-23 | 珠海星云智联科技有限公司 | 等价成本多路径选择系统、方法、设备、集群以及介质 |
-
2023
- 2023-05-31 CN CN202310635027.7A patent/CN116545921A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116886621A (zh) * | 2023-09-07 | 2023-10-13 | 珠海星云智联科技有限公司 | 报文转发控制方法、dpu及相关设备 |
CN116886621B (zh) * | 2023-09-07 | 2023-12-19 | 珠海星云智联科技有限公司 | 报文转发控制方法、dpu及相关设备 |
CN117439953A (zh) * | 2023-12-20 | 2024-01-23 | 珠海星云智联科技有限公司 | 等价成本多路径选择系统、方法、设备、集群以及介质 |
CN117439953B (zh) * | 2023-12-20 | 2024-03-26 | 珠海星云智联科技有限公司 | 等价成本多路径选择系统、方法、设备、集群以及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10623308B2 (en) | Flow routing system | |
US10742722B2 (en) | Server load balancing | |
CN116545921A (zh) | 基于ecmp的报文转发方法、装置、设备及存储介质 | |
US8290934B2 (en) | Method and system for processing access control lists using a hashing scheme | |
CN108667853B (zh) | 恶意攻击的检测方法和装置 | |
US9742667B2 (en) | Packet processing method, device and system | |
US9602428B2 (en) | Method and apparatus for locality sensitive hash-based load balancing | |
US11212216B2 (en) | Border gateway protocol (BGP) security measures along autonomous system (AS) paths | |
CN106878194B (zh) | 一种报文处理方法和装置 | |
KR20160045010A (ko) | 캐시에서 데이터 이름 기반 네트워킹 객체들에 순위를 매기기 위한 시스템 및 방법 | |
US10348603B1 (en) | Adaptive forwarding tables | |
CN103220255B (zh) | 一种实现单播反向路径转发urpf检查的方法及装置 | |
US8938579B2 (en) | Method and system for using range bitmaps in TCAM access | |
US9135833B2 (en) | Process for selecting compressed key bits for collision resolution in hash lookup table | |
CN110278152B (zh) | 一种建立快速转发表的方法及装置 | |
CN107147581B (zh) | 路由表项的维护方法和装置 | |
CN110768917B (zh) | 一种报文传输方法及装置 | |
CN110971391B (zh) | 报文转发方法及网络设备 | |
CN108111422B (zh) | 一种基于dpdk的数据高速多路转发方法及装置 | |
KR100456671B1 (ko) | 네트워크 라우터의 고속 패킷 전달을 위한 병렬 룩업 엔진및 그 방법 | |
CN112311672B (zh) | 一种路由表项获得方法、装置及设备 | |
CN108777654B (zh) | 报文转发方法及路由设备 | |
CN116015796A (zh) | 一种流表更新方法、装置、防火墙设备及存储介质 | |
CN109861908B (zh) | 一种路由转发方法及设备 | |
US20230254240A1 (en) | Prefix compression routes in exact match using redirection and mirroring fecs in hardware |
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 |