CN117294619A - 流表审计方法、装置、系统及相关设备 - Google Patents
流表审计方法、装置、系统及相关设备 Download PDFInfo
- Publication number
- CN117294619A CN117294619A CN202210688092.1A CN202210688092A CN117294619A CN 117294619 A CN117294619 A CN 117294619A CN 202210688092 A CN202210688092 A CN 202210688092A CN 117294619 A CN117294619 A CN 117294619A
- Authority
- CN
- China
- Prior art keywords
- flow table
- hardware
- software
- auditing
- virtual switch
- 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 55
- 230000002159 abnormal effect Effects 0.000 claims abstract description 21
- 230000006870 function Effects 0.000 claims description 18
- 238000012790 confirmation Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 4
- 238000012550 audit Methods 0.000 abstract description 22
- 238000012423 maintenance Methods 0.000 abstract description 4
- 230000005856 abnormality Effects 0.000 description 24
- 238000004891 communication Methods 0.000 description 12
- 238000001514 detection method Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 238000012937 correction Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0631—Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种流表审计方法,包括:流表审计装置获取虚拟交换机存储的软件流表,该软件流表用于指导卸载卡转发不同虚拟机之间通信的数据包,还获取卸载卡存储的硬件流表,该硬件流表是由卸载卡通过对虚拟交换机发送的软件流表进行保存得到,该硬件流表用于实现虚拟交换机的数据转发功能卸载至卸载卡;从而流表审计装置审计硬件流表与软件流表是否匹配,以便检测出卸载卡中的硬件流表是否存在异常。如此,流表审计装置能够及时检测出卸载卡中的流表存在异常,从而能够检测出卸载卡转发不同虚拟机之间通信的数据包时所存在的错误。这样,通过对卸载卡进行相应的运维,可以尽可能避免卸载卡转发数据包发生错误,从而可以避免影响虚拟机上的业务运行。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种流表审计方法、装置、系统及相关设备。
背景技术
随着虚拟技术的发展,越来越多的用户的选择在物理设备或者物理平台上创建虚拟机(virtual machine,VM),并利用虚拟机处理相应的业务。其中,不同虚拟机之间在进行通信时,可以由虚拟交换机(virtual switch,vSwitch)负责对通信的数据包进行转发,该虚拟交换机,通常为允许虚拟机之间通信的软件应用程序,其不仅可以转发数据包,还可以在数据包移动到目的地之前对数据包进行检查以确定数据包的传输路径。
通常情况下,虚拟交换机会将转发数据包所依据的流表(flow table)下发给硬件的卸载卡(如网卡等),以借助硬件的处理速度来提高数据转发效率。但是,实际应用场景中,虚拟交换机基于卸载卡转发不同虚拟机之间进行通信的数据包时容易出错,从而会影响虚拟机上的业务运行。
因此,如何检测出卸载卡转发数据包时是否存在错误,成为亟需解决的重要问题。
发明内容
本申请提供了一种流表审计方法,以检测出卸载卡转发数据包时是否存在错误,从而尽可能避免虚拟交换机基于硬件转发不同虚拟机之间进行通信的数据包时容易出错。此外,本申请还提供了对应的流表审计装置、流表审计设备、流表审计系统、计算机可读存储介质以及计算机程序产品。
第一方面,本申请提供一种流表审计方法,该方法可以由流表审计装置执行,具体的,流表审计装置获取虚拟交换机存储的软件流表,该软件流表用于指导卸载卡转发不同虚拟机之间通信的数据包,实际应用时,软件流表中包括一条或者多条规则,以便基于该规则指导卸载卡转发数据包;并且,流表审计装置还获取卸载卡存储的硬件流表,该硬件流表是由卸载卡通过对虚拟交换机发送的软件流表进行保存得到,该硬件流表用于实现虚拟交换机的数据转发功能卸载至卸载卡;从而流表审计装置基于软件流表审计硬件流表与软件流表是否匹配,以此检测出卸载卡中的硬件流表是否存在异常。具体的,当硬件流表与软件流表不匹配时,流表审计装置可以确定卸载卡中的硬件流表存在异常,而当硬件流表与软件流表匹配时,流表审计装置可以确定卸载卡中的硬件流表不存在异常。
如此,流表审计装置能够及时检测出卸载卡中的流表存在异常,从而能够检测出卸载卡转发不同虚拟机之间通信的数据包时所存在的错误。这样,通过根据检测出的异常对卸载卡进行相应的运维,可以尽可能避免卸载卡转发数据包发生错误,从而可以避免影响虚拟机上的业务运行。
在一种可能的实施方式中,当硬件流表与软件流表不匹配时,流表审计装置还可以利用软件流表更新硬件流表。如此,流表审计装置能够对卸载卡中存在异常的硬件流表进行自动检测和更新,而无需对卸载卡中的硬件流表进行人工检测和更新,这不仅可以降低流表审计与更新的成本,而且也能提高错误处理的及时性以及实时性。
在一种可能的实施方式中,虚拟交换机包括第一驱动接口以及第二驱动接口,其中,软件流表通过第一驱动接口获取,硬件流表通过第二驱动接口获取,该第一驱动接口与该第二驱动接口为不同的接口。如此,通过在虚拟交换机中定义不同的驱动接口,可以使得流表审计装置基于不同的驱动接口分别获得软件流表与硬件流表。
在一种可能的实施方式中,流表审计装置在基于软件流表审计硬件流表与软件流表是否匹配时,具体可以是比对软件流表中的规则与硬件流表中的规则,例如可以是逐项比对两个流表中的规则等,其中,每个规则包括匹配域和动作,该匹配域包括至少一个匹配项,如互联网协议、媒体接入控制、虚拟局域网、虚拟扩展局域网标识中的至少一种,动作用于指示匹配域中所包括的匹配项关联的操作类型,如丢弃、修改、排队、转发等操作类型;并且,当硬件流表与软件流表中存在至少一条规则不匹配时,流表审计装置可以确定硬件流表与软件流表不匹配,也即确定硬件流表存在异常。如此,流表审计装置可以通过规则比对的方式,检测出硬件流表中存在异常的规则,从而实现在规则粒度上的流表审计。
可选地,规则还可以包括匹配项、动作、计数器中至少一个。流表审计装置可基于上述规则实现审计功能。
进一步地,针对硬件流表中存在异常的规则,流表审计装置可以利用软件流表中相应的规则对硬件流表中的异常规则进行替换,或者根据软件流表中的规则对硬件流表进行规则填充,或者根据软件流表删除硬件流表中多余的规则等。
在一种可能的实施方式中,流表审计装置在审计硬件流表与软件流表是否匹配时,具体可以是检测软件流表所包括的匹配项的数量与硬件流表所包括的匹配项的数量是否相同,并且,当软件流表所包括的匹配项的数量与硬件流表所包括的匹配项的数量不相同时,确定硬件流表与软件流表不匹配,也即确定硬件流表存在异常;或者,当软件流表中所包括的匹配项关联的动作与硬件流表中所包括的匹配项关联的动作不相同时,确定硬件流表与软件流表不匹配。如此,可以提高流表审计装置针对硬件流表的审计效率。
进一步地,当基于规则数量确定硬件流表存在异常时,流表审计装置可以通过向卸载卡发送软件流表的方式实现对硬件流表的更新,或者指示虚拟交换机重新向卸载卡下发软件流表等。
在一种可能的实施方式中,虚拟交换机通过处理器运行,并且,处理器位于卸载卡内部。此时,卸载卡例如可以是智能网卡、数据处理器或者基础设施处理器等。或者,处理器位于卸载卡外部,如为卸载卡外的其他器件。此时,卸载卡例如可以是网卡,而虚拟交换机可以运行在与该网卡连接的计算设备上。
在一种可能的实施方式中,当硬件流表与软件流表不匹配时,流表审计装置可以生成告警界面,该告警界面用于向用户提示硬件流表存在异常,例如可以通过流表审计装置对外提供的客户端或者用户侧的终端将其呈现给用户等。如此,可以方便用户获知硬件流表存在异常,以此可以提高用户体验。
在一种可能的实施方式中,流表审计装置还可以响应于用户在告警界面针对更新硬件流表的确认操作,利用软件流表更新硬件流表。如此,可以在用户的确认下,完成对硬件流表的自动更新,提高更新硬件流表的准确性。
在一种可能的实施方式中,流表审计装置部署于虚拟交换机内部,或者,流表审计装置独立于虚拟交换机部署。
在一种可能的实施方式中,流表审计装置通过软件实现,或者,流表审计装置通过硬件实现。
第二方面,本申请提供一种流表审计装置,所述流表审计装置包括用于执行第一方面或第一方面任一种可能实现方式中的流表审计方法的各个模块。
第三方面,本申请提供一种流表审计设备,所述流表审计设备包括处理器、存储器和显示器。所述处理器、所述存储器进行相互的通信。所述处理器用于执行存储器中存储的指令,以使得流表审计设备执行如第一方面或第一方面的任一种实现方式中的流表审计方法。需要说明的是,该存储器可以集成于处理器中,也可以是独立于处理器之外。计算设备还可以包括总线。其中,处理器通过总线连接存储器。其中,存储器可以包括可读存储器以及随机存取存储器。
第四方面,本申请提供一种流表审计系统,该流表审计系统包括用于执行第一方面或者第一方面任一种可能实现方式中的流表审计方法的流表审计装置,并且,该流表审计系统还包括第一方面或者第一方面任一种可能实现方式中的虚拟交换机以及卸载卡。
第五方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算设备上运行时,使得计算设备执行上述第一方面或第一方面的任一种实现方式所述流表审计方法的操作步骤。
第六方面,本申请提供了一种包含指令的计算机程序产品,当其在计算设备上运行时,使得计算设备执行上述第一方面或第一方面的任一种实现方式所述流表审计方法的操作步骤。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图1为本申请提供的一示例性应用场景示意图;
图2为本申请提供的一种流表审计方法的流程示意图;
图3为本申请提供的流表中的转发规则的结构示意图;
图4为本申请提供的一种告警界面的示意图;
图5为本申请提供的一种流表审计装置的结构示意图;
图6为本申请提供的一种流表审计设备的硬件结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请中的技术方案进行描述。
参见图1,为本申请提供的一种流表审计系统的架构示意图。如图1所示,流表审计系统100包括处理器101以及卸载卡102,该处理器101上可以运行虚拟交换机301,该卸载卡102用于将虚拟交换机301的数据转发功能卸载至卸载卡102中,具体可以是虚拟交换机301通过卸载卡102转发不同虚拟机之间通信的数据包,如转发虚拟机1与虚拟机2之间通信的数据包,或者转发虚拟机1与虚拟机3之间通信的数据包等。其中,不同虚拟机可以位于不同的计算设备,也可以位于同一计算设备,如虚拟机1与虚拟机3可以分别位于计算设备201以及计算设备202,虚拟机1与虚拟机2可以位于计算设备201。
作为一种可能的实现方式,虚拟机也可以运行在流表审计系统100中,例如,虚拟机1、虚拟机2和虚拟机3运行在处理器101中,或者上述虚拟机运行在流表审计系统100的其他器件中。为了便于描述,以下实施例以图1所示的系统架构为例进行说明。
上述处理器101可以是中央处理器(central processing unit,CPU)、专用集成电路(application-specific integrated circuit,ASIC)、可编程逻辑器件(programmablelogic device,PLD)、复杂程序逻辑器件(complex programmable logical device,CPLD)、现场可编程门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(genericarray logic,GAL)、片上系统(system on chip,SoC)、软件定义架构(software-definedinfrastructure,SDI)芯片、人工智能(artificial intelligence,AI)芯片等任意一种处理器或其任意组合。
卸载卡102,可以是网卡(network interface card,NIC)、智能网卡(smartnetwork interface card/intelligence network interface card,SmartNIC/iNIC)、数据处理器(dataprocessing unit,DPU)、基础设施处理器(infrastructure processingunit,IPU)中的任意一种或多种,也可以是其它具有数据转发能力的设备等。
处理器101与卸载卡102可以通过总线进行连接,该总线流入可以是外围组件快速互连(peripheral component interconnect express,PCIE)总线、计算快速链接(computeexpress link,CXL)总线、通用串行总线(universal serial bus,USB)中的任意一种或者多种,也可以通过其它类型的总线进行连接。
实际应用时,处理器101与卸载卡102可以分别位于独立的物理设备中,如处理器101可以位于服务器等计算设备,卸载卡102可以作为外接设备嵌入该计算设备上,这两个独立的物理设备可以通过以太网、光纤、IB(InfiniBand)网络等形式进行通信,本申请实施例对此并不进行限定。或者,处理器101与卸载卡102可以集成在一个物理设备中,如卸载卡102具体为网卡时,处理器101可以与卸载卡102集成在SmartNIC或者iNIC中。
图1所示的流表审计系统100中,虚拟交换机301运行在处理器101上,而在其它可能的流表审计系统中,虚拟交换机301也可以运行在卸载卡102上。示例性地,虚拟交换机301例如可以是开放的虚拟交换机(open virtual switch,OVS)、CloudEngine 1800V(简称CE1800v)或者其它类型的虚拟交换机等。虚拟交换机301用于生成流表,并将该流表发送给卸载卡102。其中,流表中可包括匹配域,匹配域中包括一条或者多条匹配项,例如,匹配项可包括互联网协议(Internet Protocol,IP)、媒体接入控制(Media Access Control,MAC)、虚拟局域网(virtual local area network,VLAN)标识(identifier,ID)、(virtualextensible local area network,VXLAN)ID中至少一种。并可进一步根据匹配域所包括的匹配项确定不同流表中的匹配项所执行的动作是否匹配,其中,动作可用于指示卸载卡102实现数据包的丢弃、转发、修改、查找等至少一种数据处理功能。
具体实现时,虚拟交换机301中可以配置有流表管理器,该流表管理器用于生成并管理流表,并通过虚拟交换机301中的驱动接口,将流表下发给卸载卡102。卸载卡102对接收到的流表进行保存,并根据该流表中定义的规则转发不同虚拟机之间通信的数据包,如卸载卡102可以根据该流表中定义的规则将虚拟机1发送的数据包向虚拟机2进行转发,或者将虚拟机3发送的数据包向虚拟机1进行转发等。为便于区分,以下将虚拟交换机301中的流表称之为软件流表,将卸载卡102中存储的流表称之为硬件流表。其中,虚拟交换机301在运行过程中每次可以将整个软件流表发送给卸载卡102,或者,虚拟交换机301在运行过程中每次向卸载卡102发送软件流表部分规则,例如,将软件流表中发生更新的一条或者多条规则发送给卸载卡102。
但是,实际应用场景中,虚拟交换机301可能存在运行异常,如虚拟交换机301中用于下发流表的驱动接口运行错误等,或者卸载卡102存在软件或硬件异常,如卸载卡102存储流表时发生数据写入错误等,这容易导致卸载卡102未接收到软件流表、或者卸载卡102所保存的硬件流表中的部分规则存在数据错误等,从而导致卸载卡102转发数据包所使用的硬件流表与虚拟交换机301下发给卸载卡102的软件流表不匹配,这使得卸载卡102转发数据包时容易存在错误,进而影响虚拟机1至虚拟机3上的业务运行。比如,在虚拟机1与虚拟机2协同处理业务的场景中,当卸载卡102未接收到软件流表或者卸载卡102所保存的硬件流表中不存在针对虚拟机2的转发规则时,卸载卡102在接收到虚拟机1发送的数据包后,可能不会将数据包转发给虚拟机2,从而虚拟机2因为未接收到该数据包而导致业务中断运行等。
基于此,本申请实施例提供了一种流表审计方法,该方法可以由流表审计装置303执行,用于提高卸载卡102转发数据包的准确率。具体实现时,流表审计装置303获取虚拟交换机301存储的软件流表,该软件流表用于指导卸载卡102转发不同虚拟机之间通信的数据包,并且,流表审计装置303还获取卸载卡102存储的硬件流表,该硬件流表由卸载卡102通过对虚拟交换机102发送的软件流表进行保存得到,用于实现虚拟交换机301的数据转发功能卸载至卸载卡102,从而流表审计装置303审计硬件流表与软件流表是否匹配。这样,流表审计装置303能够及时检测出卸载卡102中的流表存在异常,从而能够检测出卸载卡102转发不同虚拟机之间通信的数据包时所存在的错误。如此,通过根据检测出的异常对卸载卡102进行相应的运维,可以尽可能避免卸载卡102转发数据包发生错误,从而可以避免影响虚拟机1至虚拟机3上的业务运行。
示例性地,流表审计装置303可以通过软件实现,例如可以是运行在计算设备上的应用程序等。实际应用时,流表审计装置303可以部署于虚拟交换机301内部,如图1所示,或者,流表审计装置303可以独立于虚拟交换机301进行部署。或者,流表审计装置303可以通过硬件实现,比如,流表审计装置303可以是CPU、ASIC、PLD、CPLD、FPGA、GAL、SoC、SDI芯片、AI芯片等任意一种处理器或其任意组合。
值得注意的是,上述图1所示的流表审计系统100仅作为一种示例性说明,实际应用时,本申请实施例提供的流表审计方法也可以应用于其他可适用的流表审计系统。比如,在其他可能的流表审计系统中,流表审计装置可以部署于虚拟交换机301外部,或者,一个或者多个虚拟机可用运行在流表审计系统100中,或者,流表审计装置可以检测多个虚拟交换机301中的硬件流表是否存在异常等,本申请对此并不进行限定。
接下来结合附图,对本申请提供的流表审计方法的实施例进行描述。
参见图2,图2为本申请实施例提供的一种流表审计方法的流程示意图。其中,图2所示的流表审计方法可以由相应的流表审计装置执行,如图1中的部署于虚拟交换机301内部的流表审计装置303执行等。为便于说明,本实施例中以应用于图1所示的流表审计系统100为例进行示例性说明。
基于图1所示的流表审计系统100,图2所示的流表审计方法具体可以包括:
S201:流表审计装置303获取软件流表,该软件流表由虚拟交换机301存储,并且,该软件流表用于指导卸载卡102转发不同虚拟机之间通信的数据包。
通常情况下,虚拟交换机301可以生成软件流表,该软件流表中定义了一条或者多条转发规则。示例性地,如图3所示,软件流表中的每条转发规则可以包括包头域(headerfields)、计数器(counters)以及动作(actions)中至少一项。其中,包头域也可称之为匹配域,匹配项可包括IP、MAC、VLAN ID、VXLAN ID中至少一种,可用于对接收到的数据包的包头内容进行匹配;计数器,用于统计匹配上软件流表中的转发规则的数据包的数量;动作,用于指示卸载卡102对数据包的处理操作类型,包括转发、丢弃、排队、修改等动作。
然后,流表审计装置303可以将生成的软件流表下发给卸载卡102,从而基于硬件的卸载卡102根据该流表转发不同虚拟机之间通信的数据包,以此来提高不同虚拟机之间通信的数据包的转发效率。实际应用时,虚拟交换机301生成并且下发的软件流表可以是一个,或者可以是多个。比如,虚拟交换机301可以生成软件流表A以及软件流表B,其中,软件流表A用于指示多个虚拟机之间通信的数据包的转发规则,软件流表B用于对该多个虚拟机中的部分虚拟机进行访问控制,如访问控制列表(access control list,ACL)等。为便于理解,本实施例中以流表审计装置303针对虚拟交换机301下发的一个软件流表进行异常检测为例进行示例性说明,针对其余软件流表的检测过程,与对该软件流表进行异常检测的实现过程类似,可参照下文相关之处的描述进行理解。
作为一种实现示例,虚拟交换机301在生成软件流表后,可以将其保存在虚拟交换机301的存储器(例如,内存)中。相应地,流表审计装置303在确定对虚拟交换机301进行针对流表的异常检测后,可以访问虚拟交换机301的内存,以获得软件流表。例如,流表审计装置303可以调用虚拟交换机301中的第一驱动接口来遍历虚拟交换机301中的软件流表,其中,调用该第一驱动接口的入参中可以包括流表遍历上下文,是指实现软件流表遍历所需的必要信息,例如可以是用于指示软件流表的遍历位置的信息;进一步地,调用该第一驱动接口的入参中还可以包括软件流表的标识,以指示所要遍历的软件流表。实际应用时,第一驱动接口,例如可以被定义为int rte_flow_dump_start(void**context,int table_type),其中,void**context可以表征流表遍历上下文,int table_type可以作为流表的标识(不同的流表属于不同的类型)。
在一种可能的实现方式中,当流表审计装置303部署于虚拟交换机301外部时,流表审计装置303可以向虚拟交换机301发送针对软件流表的数据访问请求。相应的,虚拟交换机301可以响应该数据访问请求,将内存中的软件流表反馈给流表审计装置303。或者,虚拟交换机301也可以周期性的将软件流表发送给流表审计装置303等,本实施例中,对于流表审计装置303获取软件流表的实现方式并不进行限定。
S202:流表审计装置303获取硬件流表,该硬件流表由卸载卡102存储,该硬件流表通过对虚拟交换机301发送的软件流表进行保存得到,该硬件流表用于实现虚拟交换机的数据转发功能卸载至卸载卡102。
正常情况下,卸载卡102中所保存的硬件流表,即为虚拟交换机301下发的软件流表。但是,实际应用场景中,若虚拟交换机301发生程序运行异常或者卸载卡102发生软件或者硬件异常,如虚拟交换机301中用于发送软件流表的驱动接口运行错误等,或者卸载卡102存储流表时发生数据写入错误等,可能会导致卸载卡102接收并保存的硬件流表与虚拟交换机301发送的软件流表并不匹配。因此,流表审计装置303可以获取卸载卡102中存储的硬件流表,以便检测卸载卡102中的硬件流表的正确性。需要说明的是,图2所示的步骤执行顺序仅作为一些示例性说明,实际应用时,流表审计装置303可以同时获取虚拟交换机301中的软件流表以及卸载卡102中的硬件流表;或者,流表审计装置303可以先获取卸载卡102中的硬件流表,再获取虚拟交换机301中的软件流表等。
作为一种实现示例,流表审计装置303可以调用虚拟交换机301中的第二驱动接口来获取卸载卡102中的硬件流表,该第二驱动接口为与上述第一驱动接口不同,具体地,调用该第二驱动接口的入参中可以包括流表遍历上下文以及流表参数,其中,流表遍历上下文用于指示硬件流表的遍历位置,流表参数用于指示卸载卡102返回硬件流表所包括的规则条目(如指示卸载卡102返回硬件流表中的包头域中的信息等)。进一步地,调用该第二驱动接口的入参中还可以包括本次遍历所要获取的硬件流表中的匹配项的数量、卸载卡102所返回的硬件流表中的匹配项的数量、以及返回的硬件流表中的各个匹配项关联的动作的具体内容等。例如,第二驱动接口可以被定义为int rte_flow_dump_next(void*context,int count,int*dumped_count,const struct rte_flow_item**patterns,const structrte_flow_action**actions),其中,void*context为流表遍历上下文、int count为流表审计装置303所请求的硬件流表中的匹配项数量、int*dumped_count为卸载卡102实际返回的硬件流表中的匹配项数量、const struct rte_flow_item**patterns为流表参数、conststruct rte_flow_action**actions为返回的硬件流表中的各个匹配项关联的动作的具体内容。
在另一种可能的实现方式中,当流表审计装置303部署于卸载卡102外部时,流表审计装置303可以向虚拟交换机301发送针对硬件流表的数据访问请求,以便卸载卡102根据该数据访问请求将保存的硬件流表反馈给流表审计装置303。或者,卸载卡102也可以周期性的将硬件流表发送给流表审计装置303等,本实施例中,对于流表审计装置303获取硬件流表的实现方式并不进行限定。
其中,流表审计装置303在执行步骤S201以及步骤S202之前,可以先判断是否满足针对卸载卡102进行异常检测的触发条件,并且,当满足该触发条件时,流表审计装置303开始执行步骤S201以及步骤S202。本实施例中,提供了以下几种触发条件的实现示例。
在第一种示例中,触发条件,可以是接收到流表审计装置303接收到针对卸载卡102中的硬件流表的审计指令。
例如,当虚拟交换机301或者卸载卡102在运行过程中发出异常预警时,用户(如运维人员等)可以通过客户端向流表审计装置303发送审计指令,以指示流表审计装置303检测卸载卡102中的硬件流表是否存在异常。如此,可以检测出卸载卡102中的硬件流表是否因为虚拟交换机301或者卸载卡102的运行异常而发生错误。
在第二种示例中,触发条件,可以是距离上一次的异常检测过程的时间间隔达到预设时长。
具体地,流表审计装置303可以周期性对卸载卡102中存储的流表进行审计,并且,在完成一次异常检测过程后,可以利用计时器启动计时。当计时时长达到预设的周期时长时,流表审计装置303可以自动触发对卸载卡102的下一轮审计过程。
本实施例中,对于流表审计装置303执行审计过程的触发条件并不进行限定。
S203:流表审计装置303审计硬件流表与软件流表是否匹配。
本实施例中,流表审计装置303在获取到软件流表以及硬件流表后,可以审计硬件流表与软件流表是否匹配。作为一些示例,本实施例提供了以下两种可能的实现方式。
在第一种实施方式中,流表审计装置303在获取到软件流表以及硬件流表后,可以比对软件流表中的规则与硬件流表中的规则,例如可以对两个流表中的规则进行逐项比对,直至硬件流表与软件流表中的所有规则均完成对比,以确定硬件流表与软件流表是否匹配。其中,在比对两个规则时,具体可以是比对这两个规则中的匹配域和动作是否匹配,每个规则中的匹配域包括至少一个匹配项,而该规则中的动作用于指示该匹配域中所包括的匹配项关联的操作类型。在此过程中,如果软件流表以及硬件流表中的规则均匹配,则流表审计装置303确定卸载卡102中存储的硬件流表并不存在异常。而若软件流表以及硬件流表中存在至少一条规则不匹配,表征卸载卡102接收并存储的硬件流表,与虚拟交换机301实际发送的软件流表存在差异,则流表审计装置303确定硬件流表与软件流表不匹配,也即卸载卡102中存储的硬件流表存在异常。
在第二种实施方式中,流表审计装置303可以先检测硬件流表与软件流表所包括的匹配项的数量是否相同,并且,当两个流表所包括的匹配项的数量不相同时,如硬件流表包括的匹配项的数量小于软件流表包括的匹配项的数量等,表征卸载卡102在保存虚拟交换机301下发软件流表的过程中存在数据丢失,此时,异常检测装置300可以确定硬件流表与软件流表不匹配,也即卸载卡102中存储的硬件流表存在异常。而当硬件流表与软件流表所包括的匹配项的数量相同时,流表审计装置303可以进一步比对软件流表中所包括的匹配项关联的动作与硬件流表中所包括的匹配项关联的动作是否相同,并且,当两个流表中所包括的匹配项关联的动作相同时,流表审计装置303确定硬件流表并不存在异常;而当两个流表中所包括的匹配项关联的动作相同时,流表审计装置303可以确定卸载卡102中存储的流表存在异常。如此,可以提高流表审计装置303审计硬件流表与软件流表表是否匹配的效率。
当然,上述两种实现方式仅作为一些示例性说明,并不用于限定其具体实现,流表审计装置303也可以通过其它方式实现对卸载卡102中硬件流表的审计。比如,在其它实施方式中,流表审计装置303可以先比对硬件流表与软件流表中包括的转发规则的数量是否一致,并且,当两个转发规则的数量不一致时,流表审计装置303可以直接确定硬件流表与软件流表不匹配;而在两个流表中的转发规则数量一致的情况下,流表审计装置303可以逐项比对两个流表中的各条转发规则中的匹配项以及动作是否匹配,以此确定硬件流表与软件流表是否匹配。
实际应用时,当检测到硬件流表存在异常时(也即硬件流表与软件流表不匹配),流表审计装置303还可以向用户进行告警。作为一种示例,流表审计装置303可以生成告警界面,例如可以是图4所示的告警界面,并通过对外提供的客户端或者用户侧的终端设备将该警告界面呈现给用户。其中,该告警界面中可以包括告警提示信息(即“当前网卡XX中的流表存在错误!”),用于向用户提示网卡XX(为上述卸载卡102中的一种)存储的硬件流表存在异常,以便用户获知该异常信息。进一步地,该告警界面中还可以包括卸载卡102中的流表存在异常的详细信息,如卸载卡102中的流表存在部分规则缺失、或者卸载卡102中的部分规则的内容存在错误等,如图4所示。
在进一步可能的实施方式中,流表审计装置303在确定硬件流表存在异常后,还可以对硬件流表进行更新。基于此,本实施例还可以进一步包括下述步骤。
S204:当硬件流表与软件流表不匹配时,流表审计装置303利用软件流表更新硬件流表。
示例性地,本实施例提供了以下几种更新硬件流表的实现方式。
在第一种实施方式中,流表审计装置303在检测出硬件流表与软件流表中存在不匹配的规则时,如软件流表中的某条规则在硬件流表中未存在记录,或者硬件流表与软件流表中的匹配项不一致或者匹配项关联的动作不一致等,流表审计装置303可以将其添加至硬件流表中,实现对硬件流表的更新。具体地,流表审计装置303可以通过单独配置的驱动接口,将该条规则发送至卸载卡102中,或者,流表审计装置303也可以指示虚拟交换机301将该条规则通过单独配置的驱动接口下发至卸载卡102中,以便卸载卡102利用软件流表中记录的该条规则,替换硬件流表中的相应规则或将其填充到硬件流表中。或者,当硬件流表相对于软件流表中多了至少一条规则,表征该至少一条规则为错误的规则(未被及时删除),则,流表审计装置303可以指示卸载卡102从硬件流表中删除该至少一条规则。如此,通过对硬件流表进行逐条规则的校对与更正,可以使得更新后的硬件流表与软件流表相匹配,实现在规则粒度上的错误更正。并且,卸载卡102在更新流表的过程中,可以基于硬件流表中剩余的正确规则继续为其它虚拟机提供转发数据包的服务,以此可以降低更正硬件流表对于卸载卡102转发数据包的影响。这样,后续卸载卡102依据更新后的硬件流表转发不同虚拟机之间通信的数据包,可以避免转发数据包发生错误,从而可以避免影响虚拟机上的业务运行。
在第二种实施方式中,当流表审计装置303确定硬件流表与软件流表所包括的匹配项的数量不相同,或者,硬件流表与软件流表中所包括的匹配项关联的动作不相同时,流表审计装置303可以将获取的软件流表或者软件流表中的部分规则(如软件流表中与硬件流表不匹配的规则)通过单独配置的驱动接口发送给卸载卡102,或者指示虚拟交换机301重新向卸载卡102下发软件流表或者软件流表中的部分规则,以实现将卸载卡102中的流表更新为该软件流表。
在第三种实施方式中,流表审计装置303可以是在用户的干预下,对卸载卡102中的硬件流表进行更新。示例性地,当确定硬件流表与软件流表不匹配时,流表审计装置303向用户呈现的告警界面中不仅呈现有告警提示信息,还配置有“自动更新”控件,该“自动更新”控件用于方便用户指示流表审计装置303对卸载卡102中的流表进行自动更新,从而流表审计装置303可以响应于用户在该告警界面上针对更新硬件流表的确认操作,自动利用软件流表更新卸载卡102中的硬件流表。
值得注意的是,本实施例中,是以流表审计装置303对卸载卡102中的一个硬件流表进行审计为例进行说明,实际应用时,卸载卡102中可能存储有多个不同的硬件流表,从而针对卸载卡102中的每个硬件流表,流表审计装置303均可以采用上述类似过程,检测该卸载卡102中的各个硬件流表是否存在异常,并对存在异常的硬件流表进行更正。
具体地,流表审计装置303在确定满足针对卸载卡102进行异常检测的触发条件后,可以启动虚拟交换机301中的驱动接口(如上述第一驱动接口)对虚拟交换机301中的软件流表进行遍历,并基于遍历得到的第一个软件流表判断卸载卡102中相应的硬件流表(该硬件流表与软件流表具有相同的标识)是否存在异常。在基于图2所示实施例的过程完成对于卸载卡102中的硬件流表的更新后,流表审计装置303可以根据遍历得到的第二个软件流表,继续判断卸载卡102中相应的硬件流表是否存在异常。重复上述过程,直至遍历完虚拟交换机301中的所有软件流表。此时,流表审计装置303可以通过调用第三驱动接口,停止遍历软件流表,并继续监测流表审计装置303是否满足流表审计的触发条件。其中,第三驱动接口,为与上述第一驱动接口以及第二驱动接口均不相同的接口。示例性地,调用该第三驱动接口的入参中可以包括流表遍历上下文,例如,第三驱动接口可以被定义为int rte_flow_dump_done(void*context)等,该void*context可以为流表遍历上下文。
本实施例中,流表审计装置303通过审计虚拟交换机301中的软件流表与卸载卡102中的硬件流表,可以及时发现卸载卡102中硬件流表存在异常并进行自动更新,这样,虚拟交换机301在借助卸载卡102转发不同虚拟机之间通信的数据包时,可以基于正确的(也即更新后的流表)进行数据转发,如此,可以避免卸载卡102转发数据包发生错误,保证网络通信的可用性和可靠性,从而可以避免影响虚拟机上的业务运行。而且,流表审计装置303能够对卸载卡102中存在异常的硬件流表进行自动检测和更新,而无需对卸载卡102中的硬件流表进行人工检测和更新,这不仅可以降低流表审计与更新的成本,而且也能提高错误处理的及时性以及实时性。
值得注意的是,本领域的技术人员根据以上描述的内容,能够想到的其他合理的步骤组合,也属于本申请的保护范围内。其次,本领域技术人员也应该熟悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请所必须的。
以上结合图1至图4对本申请实施例提供的流表审计方法进行介绍,接下来结合附图对本申请实施例提供的流表审计装置的功能以及实现该流表审计装置的计算设备进行介绍。
参见图5,示出了一种流表审计装置的结构示意图,该流表审计装置500包括:
流表获取模块501,用于获取软件流表,所述软件流表由虚拟交换机存储,所述软件流表用于指导卸载卡转发不同虚拟机之间通信的数据包;获取硬件流表,所述硬件流表由所述卸载卡存储实现将所述虚拟交换机的数据转发功能卸载至所述卸载卡;
审计模块502,用于审计所述软件流表与所述硬件流表是否匹配。
在一种可能的实施方式中,所述流表审计装置500还包括:
更新模块503,用于当所述软件流表与所述硬件流表不匹配时,利用所述软件流表更新所述硬件流表。
在一种可能的实施方式中,所述虚拟交换机包括第一驱动接口以及第二驱动接口,所述软件流表通过所述第一驱动接口获取,所述硬件流表通过所述第二驱动接口获取,所述第一驱动接口与所述第二驱动接口为不同的接口。
在一种可能的实施方式中,所述审计模块502,用于:
比对所述软件流表中的规则与所述硬件流表中的规则,所述规则包括匹配域和动作,所述匹配域包括至少一个匹配项,所述动作用于指示所述匹配域中所包括的匹配项关联的操作类型;
当所述软件流表与所述硬件流表中存在至少一条规则不匹配时,确定所述软件流表与所述硬件流表不匹配。
在一种可能的实施方式中,所述审计模块502,用于:
检测所述软件流表所包括的匹配项的数量与所述硬件流表所包括的匹配项的数量是否相同;
当所述软件流表中所包括的匹配项的数量与所述硬件流表中所包括的匹配项的数量不相同时,确定所述软件流表与所述硬件流表不匹配;或者,
当所述软件流表中所包括的匹配项关联的动作与所述硬件流表中所包括的匹配项关联的动作不相同时,确定所述软件流表与所述硬件流表不匹配。
在一种可能的实施方式中,所述虚拟交换机通过处理器运行,所述处理器位于所述卸载卡内部,或者,所述处理器为所述卸载卡外其他器件。
在一种可能的实施方式中,所述流表审计装置500还包括:
告警模块504,用于当所述软件流表与所述硬件流表不匹配时,生成告警界面,所述告警界面用于向用户提示所述硬件流表存在异常。
在一种可能的实施方式中,所述流表审计装置还包括:
更新模块503,用于响应于所述用户在所述告警界面针对更新所述硬件流表的确认操作,利用所述软件流表更新所述硬件流表。
在一种可能的实施方式中,所述流表审计装置500部署于所述虚拟交换机内部,或者,所述流表审计装置500独立于所述虚拟交换机部署。
在一种可能的实施方式中,所述流表审计装置500通过软件实现,或者,所述流表审计装置500通过硬件实现。
本实施例中,流表审计装置500通过审计虚拟交换机中的软件流表与卸载卡中的硬件流表,可以及时发现卸载卡中硬件流表存在异常并进行自动更新,这样,虚拟交换机在借助卸载卡转发不同虚拟机之间通信的数据包时,可以基于正确的(也即更新后的流表)进行数据转发,如此,可以避免卸载卡转发数据包发生错误,保证网络通信的可用性和可靠性,从而可以避免影响虚拟机上的业务运行。而且,流表审计装置500能够对卸载卡中存在异常的硬件流表进行自动检测和更新,而无需对卸载卡中的硬件流表进行人工检测和更新,这不仅可以降低流表审计与更新的成本,而且也能提高错误处理的及时性以及实时性。
由于图5所示的流表审计装置500对应于图2所示的方法,故图5所示的流表审计装置500的具体实现方式及其所具有的技术效果,可以参见前述实施例中的相关之处描述,在此不做赘述。
图6为本申请提供的一种流表审计设备600的示意图,该流表审计设备600可以实现上述图2所示实施例中的流表审计装置303的功能。
如图6所示,所述流表审计设备600包括处理器601、存储器602、通信接口603。其中,处理器601、存储器602、通信接口603通过总线604进行通信,也可以通过无线传输等其他手段实现通信。该存储器602用于存储指令,该处理器601用于执行该存储器602存储的指令。进一步的,流表审计设备600还可以包括内存单元605,还内存单元605可以通过总线604与处理器601、存储介质602以及通信接口603连接。其中,该存储器602存储程序代码,且处理器601可以调用存储器602中存储的程序代码执行以下操作:
获取软件流表,所述软件流表由虚拟交换机存储,所述软件流表用于指导卸载卡转发不同虚拟机之间通信的数据包;
获取硬件流表,所述硬件流表由所述卸载卡存储,所述硬件流表通过对所述虚拟交换机发送的软件流表进行保存得到,所述硬件流表用于实现所述虚拟交换机的数据转发功能卸载至所述卸载卡;
基于所述软件流表审计所述硬件流表与所述软件流表是否匹配。
应理解,在本申请实施例中,该处理器601可以是CPU,该处理器601还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立器件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。
该存储器602可以包括只读存储器和随机存取存储器,并向处理器601提供指令和数据。存储器602还可以包括非易失性随机存取存储器。例如,存储器602还可以存储设备类型的信息。
该存储器602可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlinkDRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
该通信接口603用于与流表审计设备600连接的其它设备进行通信。该总线604除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线604。
作为一种可能的实现方式,上述流表审计设备600可以为通信设备,例如,DPU、IPU、SmartNIC、iNIC中至少一种。或者,上述流表审计设备600可以为服务器等。
应理解,根据本申请实施例的流表审计设备600可对应于本申请实施例中的流表审计装置500,并可以对应于执行根据本申请实施例中图2所示方法中的流表审计装置303,并且流表审计设备600所实现的上述和其它操作和/或功能分别为了实现图2中方法的相应流程,为了简洁,在此不再赘述。
本申请还提供了一种流表审计的处理器,该处理器用于实现图2中流表审计装置303的功能,为了简洁,在此不再赘述。
本申请还提供了一种流表审计的计算机芯片,该计算机芯片包括处理器和供电电路,供电电路用于为所述处理器供电,处理器用于实现图2中流表审计装置303的功能,为了简洁,在此不再赘述。
作为一种可能的实现方式,上述流表审计的处理器或计算机芯片可以以插槽或插卡形式与计算机的主板耦合。
本申请还提供了一种服务器,该服务器包括上述处理器或计算机芯片或图6所示的流表审计设备600,并用于实现图2中流表审计装置303的功能,为了简洁,在此不再赘述。
本申请还提供了一种流表审计系统,所述流表审计系统包括流表审计设备、虚拟交换机、卸载卡,其中,该流表审计设备例如可以是上述流表审计设备600,虚拟交换机例如可以是上述图2所示实施例中的虚拟交换机301,卸载卡例如可以是上述图2所示实施例中的卸载卡102。
本申请实施例还提供了一种计算机可读存储介质。所述计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,所述指令指示计算设备执行上述流表审计方法。
本申请实施例还提供了一种计算机程序产品。所述计算机程序产品包括一个或多个计算机指令。在计算设备上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。
所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机或数据中心进行传输。
所述计算机程序产品可以为一个软件安装包,在需要使用前述流表审计方法的任一方法的情况下,可以下载该计算机程序产品并在计算设备上执行该计算机程序产品。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (21)
1.一种流表审计方法,其特征在于,所述方法由流表审计装置执行,包括:
获取软件流表,所述软件流表由虚拟交换机存储,所述软件流表用于指导卸载卡转发不同虚拟机之间通信的数据包;
获取硬件流表,所述硬件流表由所述卸载卡存储,所述硬件流表通过对所述虚拟交换机发送的软件流表进行保存得到,所述硬件流表用于实现所述虚拟交换机的数据转发功能卸载至所述卸载卡;
基于所述软件流表审计所述硬件流表与所述软件流表是否匹配。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述硬件流表与所述软件流表不匹配时,利用所述软件流表更新所述硬件流表。
3.根据权利要求1或2所述的方法,其特征在于,所述基于所述软件流表审计所述硬件流表与所述软件流表是否匹配,包括:
比对所述软件流表中的规则与所述硬件流表中的规则,所述规则包括匹配域和动作,所述匹配域包括至少一个匹配项,所述动作用于指示所述匹配域中所包括的匹配项关联的操作类型;
当所述硬件流表与所述软件流表中存在至少一条规则不匹配时,确定所述硬件流表与所述软件流表不匹配。
4.根据权利要求1或2所述的方法,其特征在于,基于所述软件流表审计所述硬件流表与所述软件流表是否匹配,包括:
检测所述硬件流表所包括的匹配项的数量与所述软件流表所包括的匹配项的数量是否相同;
当所述硬件流表中所包括的匹配项的数量与所述软件流表中所包括的匹配项的数量不相同时,确定所述软件流表与所述硬件流表不匹配;或者,
当所述硬件流表中所包括的匹配项关联的动作与所述软件流表中所包括的匹配项关联的动作不相同时,确定所述软件流表与所述硬件流表不匹配。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述虚拟交换机包括第一驱动接口以及第二驱动接口,所述软件流表通过所述第一驱动接口获取,所述硬件流表通过所述第二驱动接口获取,所述第一驱动接口与所述第二驱动接口为不同的接口。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述虚拟交换机通过处理器运行,所述处理器位于所述卸载卡内部,或者,所述处理器为所述卸载卡外其他器件。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述方法还包括:
当所述软件流表与所述硬件流表不匹配时,生成告警界面,所述告警界面用于向用户提示所述硬件流表存在异常。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
响应于所述用户在所述告警界面针对更新所述硬件流表的确认操作,利用所述软件流表更新所述硬件流表。
9.根据权利要求1至8任一项所述的方法,其特征在于,所述流表审计装置部署于所述虚拟交换机内部,或者,所述流表审计装置独立于所述虚拟交换机部署。
10.一种流表审计装置,其特征在于,所述流表审计装置包括:
流表获取模块,用于获取软件流表,所述软件流表由虚拟交换机存储,所述软件流表用于指导卸载卡转发不同虚拟机之间通信的数据包;获取硬件流表,所述硬件流表由所述卸载卡存储,所述硬件流表通过对所述虚拟交换机发送的软件流表进行保存得到,所述硬件流表用于实现所述虚拟交换机的数据转发功能卸载至所述卸载卡;
审计模块,用于基于所述软件流表审计所述硬件流表与所述软件流表是否匹配。
11.根据权利要求10所述的流表审计装置,其特征在于,所述流表审计装置还包括:
更新模块,用于当所述硬件流表与所述软件流表不匹配时,利用所述软件流表更新所述硬件流表。
12.根据权利要求10或11所述的流表审计装置,其特征在于,所述审计模块,用于:
比对所述软件流表中的规则与所述硬件流表中的规则,所述规则包括匹配域和动作,所述匹配域包括至少一个匹配项,所述动作用于指示所述匹配域中所包括的匹配项关联的操作类型;
当所述硬件流表与所述软件流表中存在至少一条规则不匹配时,确定所述硬件流表与所述软件流表不匹配。
13.根据权利要求10或11所述的流表审计装置,其特征在于,所述审计模块,用于:
检测所述硬件流表所包括的匹配项的数量与所述软件流表所包括的匹配项的数量是否相同;
当所述硬件流表中所包括的匹配项的数量与所述软件流表中所包括的匹配项的数量不相同时,确定所述硬件流表与所述软件流表不匹配;或者,
当所述硬件流表中所包括的匹配项关联的动作与所述软件流表中所包括的匹配项关联的动作不相同时,确定所述硬件流表与所述软件流表不匹配。
14.根据权利要求10至13任一项所述的流表审计装置,其特征在于,所述虚拟交换机包括第一驱动接口以及第二驱动接口,所述软件流表通过所述第一驱动接口获取,所述硬件流表通过所述第二驱动接口获取,所述第一驱动接口与所述第二驱动接口为不同的接口。
15.根据权利要求10至14任一项所述的流表审计装置,其特征在于,所述虚拟交换机通过处理器运行,所述处理器位于所述卸载卡内部,或者,所述处理器为所述卸载卡外其他器件。
16.根据权利要求10至15任一项所述的流表审计装置,其特征在于,所述流表审计装置还包括:
告警模块,用于当所述软件流表与所述硬件流表不匹配时,生成告警界面,所述告警界面用于向用户提示所述硬件流表存在异常。
17.根据权利要求16所述的流表审计装置,其特征在于,所述流表审计装置还包括:
更新模块,用于响应于所述用户在所述告警界面针对更新所述硬件流表的确认操作,利用所述软件流表更新所述硬件流表。
18.根据权利要求10至17任一项所述的流表审计装置,其特征在于,所述流表审计装置部署于所述虚拟交换机内部,或者,所述流表审计装置独立于所述虚拟交换机部署。
19.一种流表审计设备,其特征在于,包括处理器、存储器;
所述处理器用于执行所述存储器中存储的指令,以使所述流表审计设备执行如权利要求1至10任一项所述方法的步骤。
20.一种流表审计系统,其特征在于,所述流表审计系统包括流表审计设备、如权利要求1至9任一项中的虚拟交换机、如权利要求1至9任一项中的卸载卡,所述流表审计设备用于执行如权利要求1至9任一项所述方法的步骤。
21.一种计算机可读存储介质,其特征在于,包括指令,当其在计算设备上运行时,使得所述计算设备执行如权利要求1至9中任一项所述方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210688092.1A CN117294619A (zh) | 2022-06-17 | 2022-06-17 | 流表审计方法、装置、系统及相关设备 |
PCT/CN2023/099923 WO2023241573A1 (zh) | 2022-06-17 | 2023-06-13 | 流表审计方法、装置、系统及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210688092.1A CN117294619A (zh) | 2022-06-17 | 2022-06-17 | 流表审计方法、装置、系统及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117294619A true CN117294619A (zh) | 2023-12-26 |
Family
ID=89192243
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210688092.1A Pending CN117294619A (zh) | 2022-06-17 | 2022-06-17 | 流表审计方法、装置、系统及相关设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117294619A (zh) |
WO (1) | WO2023241573A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190028409A1 (en) * | 2017-07-19 | 2019-01-24 | Alibaba Group Holding Limited | Virtual switch device and method |
US10997106B1 (en) * | 2020-09-22 | 2021-05-04 | Pensando Sytems Inc. | Inter-smartNIC virtual-link for control and datapath connectivity |
CN116866283A (zh) * | 2020-10-31 | 2023-10-10 | 华为技术有限公司 | 一种流表处理方法及相关设备 |
CN113821310B (zh) * | 2021-11-19 | 2022-05-06 | 阿里云计算有限公司 | 数据处理方法、可编程网卡设备、物理服务器及存储介质 |
-
2022
- 2022-06-17 CN CN202210688092.1A patent/CN117294619A/zh active Pending
-
2023
- 2023-06-13 WO PCT/CN2023/099923 patent/WO2023241573A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023241573A1 (zh) | 2023-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10742532B2 (en) | Non-intrusive mechanism to measure network function packet processing delay | |
CN107517110B (zh) | 一种分布式系统中单板配置自恢复方法及装置 | |
WO2019051948A1 (zh) | 监控数据的处理方法、设备、服务器及存储介质 | |
CN112737800B (zh) | 服务节点故障定位方法、调用链生成方法及服务器 | |
CN110602234B (zh) | 区块链网络节点管理方法、装置、设备以及存储介质 | |
CN110870286B (zh) | 容错处理的方法、装置和服务器 | |
US20140107863A1 (en) | Vehicle Control Device, Vehicle Control System | |
US10205813B2 (en) | Method and system for detecting abnormal contact information and server | |
CN111315026B (zh) | 信道的选择方法、装置、网关及计算机可读存储介质 | |
US11226857B1 (en) | Device, method and computer program product for fault elimination of a multilayer system | |
EP4064589A1 (en) | Ethernet time synchronization method and apparatus | |
CN117221152A (zh) | 一种以太网报文的接收判定方法及装置 | |
CN111224756B (zh) | 确定数据传输异常的方法、装置、存储介质及电子设备 | |
CN117294619A (zh) | 流表审计方法、装置、系统及相关设备 | |
CN111786859A (zh) | 丢包检测方法、装置及存储介质 | |
CN116302885A (zh) | 问题处理方法及装置、计算机可读存储介质、终端 | |
CN113726885B (zh) | 一种流量配额的调整方法和装置 | |
CN114513398B (zh) | 网络设备告警处理方法、装置、设备及存储介质 | |
CN115633044A (zh) | 报文的处理方法、装置、电子设备及存储介质 | |
CN114449037A (zh) | 一种异步通信推送系统 | |
CN108616461B (zh) | 一种策略切换方法及装置 | |
CN112769889B (zh) | 服务数据的推送方法、装置、存储介质以及电子装置 | |
CN110740192A (zh) | 一种基于p2p网络的虚拟化环境下的镜像分发方法及系统 | |
CN114866398B (zh) | 网络故障诊断方法及装置 | |
CN114827172B (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 |