一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种流量镜像方法、装置、设备及存储介质与流程

2023-01-02 20:45:55 来源:中国专利 TAG:
1.本发明涉及计算机
技术领域
:,特别涉及一种流量镜像方法、装置、设备及存储介质。
背景技术
::2.当前,云计算、云服务时代,公司业务和个人业务都在推行上云服务。开源项目openstack云计算管理平台提供了虚拟机化方案,云服务提供了虚拟机化服务,但同时业务运行离不开网络转发,数据的快速转发是云服务性能的基础。目前比较落后的三层转发方案是使用网络防火墙iptable功能来提供路由、nat(networkaddresstranslation,网络地址转换)等服务,这种方式需要给每一个路由器创建一个命名空间,然后在命名空间中创建一些接口,并插在ovs(openvirtualswitch,开源虚拟交换机)的网桥上;此方案创建命名空间不仅会消耗大量的系统资源,还会因为报文多次在ovs进程、命名空间用户态空间、内核空间之间频繁转换而降低效率。为解决上述问题,现有技术中,基于ovn(openvirtualnetwork,开放虚拟网络)控制器重新对ovs流表进行规划,使ovs不仅仅提供二层转发,也提供三层转发,但目前ovn不支持流量镜像功能,对需要监控的流量进行拷贝然后发送到指定的位置的过程称为流量镜像。技术实现要素:3.有鉴于此,本发明的目的在于提供一种流量镜像方法、装置、设备及介质,能够实现对进出ovs流表的流量的镜像,解决在ovn模式下流量无法镜像的问题。其具体方案如下:第一方面,本技术公开了一种流量镜像方法,包括:获取针对流量镜像的配置信息,并将所述配置信息保存至数据库;根据所述数据库的信息,通过ovn更新用于流量转发的ovs流表,并在所述ovs流表内添加用于流量镜像的目标流表,以得到更新后的ovs流表集;利用所述ovs流表集对进入ovs流表的流量和/或出ovs流表的流量进行流量镜像。4.可选的,所述根据所述数据库的信息,通过ovn更新用于流量转发的ovs流表,并在所述ovs流表内添加用于流量镜像的目标流表,包括:在整个ovs流表结构中确定出目标添加位置,根据所述数据库的信息在所述目标添加位置添加用于流量镜像的目标流表;根据所述数据库的信息,为作为流量入口的入口流表、作为流量出口的出口流表、用于查找交换机网口的端口查找流表和所述目标流表配置相应的流表逻辑。5.可选的,所述在整个ovs流表结构中确定出目标添加位置,根据所述数据库的信息在所述目标添加位置添加用于流量镜像的目标流表,包括:将ovs流表结构内的入口流表与用于规则校验的流表之间作为第一目标添加位置;从所述第一目标添加位置筛选出空闲流表,基于所述空闲流表和所述配置信息生成第一目标流表,所述第一目标流表用于对进入ovs流表的流量进行流量镜像。6.可选的,所述根据所述数据库的信息,为作为流量入口的入口流表、作为流量出口的出口流表、用于查找交换机网口的端口查找流表和所述目标流表配置相应的流表逻辑,包括:根据所述数据库的信息,为所述入口流表、所述出口流表、所述端口查找流表和所述目标流表配置相应的流表逻辑和流表优先级,以实现流表转发。7.可选的,所述根据所述数据库的信息,为作为流量入口的入口流表、作为流量出口的出口流表、用于查找交换机网口的端口查找流表和所述目标流表配置相应的流表逻辑和流表优先级,包括:对为作为流量入口的入口流表配置对应的流表逻辑和流表优先级,以便所述入口流表将流入的流量复制后跳过规则校验流表转发至目标流表;对所述目标流表配置对应的流表逻辑和流表优先级,以便所述目标流表将接受到的流量发送至端口查找流表;对所述端口查找流表配置对应的流表逻辑和流表优先级,以便所述端口查找流表用于判断流量镜像的目的端口是否在本节点,并在判断结果为本节点时将流量跳过规则校验流表转发至出口流表。8.可选的,利用所述ovs流表集对进入ovs流表的流量进行流量镜像,包括:通过所述入口流表获取进入ovs流表的第一流量,并将所述第一流量复制发送给所述第一目标流表;利用所述第一目标流表按照所述配置信息筛选出待镜像的目标流量,并将所述目标流量转发给所述端口查找流表;利用所述端口查找流表判断流量镜像的目的端口是否在本节点,若是,则将所述目标流量转发给所述出口流表,并通过所述出口流表将所述目标流量发送至目的镜像地址。9.可选的,所述在整个ovs流表结构中确定出目标添加位置,根据所述数据库的信息在所述目标添加位置添加用于流量镜像的目标流表,包括:将ovs流表结构内的用于规则校验的流表与出口流表之间作为第二目标添加位置;从所述第二目标添加位置筛选出空闲流表,基于所述空闲流表和所述配置信息生成作为第二目标流表,所述第二目标流表用于对出ovs流表的流量进行流量镜像。10.可选的,利用所述ovs流表集对出ovs流表的流量进行流量镜像,包括:通过所述出口流表获取出ovs流表的第二流量,并将所述第二流量复制发送给所述第二目标流表;利用所述第二目标流表按照所述配置信息筛选出待镜像的目标流量,并将所述目标流量转发给所述端口查找流表;利用所述端口查找流表判断流量镜像的目的端口是否在本节点,若是,则将所述目标流量转发给所述出口流表,并通过所述出口流表将所述目标流量发送至目的镜像地址。11.可选的,所述利用所述端口查找流表判断流量镜像的目的端口是否在本节点之后,还包括:若流量镜像的目的端口不在本节点,则通过业务网络将所述流量镜像发送至对应的节点。12.可选的,所述获取针对流量镜像的配置信息,包括:在网络服务组件内添加目标插件,通过所述网络服务组件内所述目标插件获取用户发送的针对流量镜像的配置信息;可选的,所述获取针对流量镜像的配置信息,包括:在网络服务组件内配置命令行和应用程序编程接口,通过网络服务组件内所述应用程序编程接口获取用户发送的针对流量镜像的配置信息。13.可选的,所述将所述配置信息保存至数据库,包括:将所述配置信息保存至ovn的北向数据库,以便ovn后台进程通过监测所述北向数据库更新南向数据库,以便ovn控制器根据所述南向数据库更新的数据更新所述ovs流表。14.可选的,所述ovn后台进程通过监测所述北向数据库更新南向数据库,包括:通过ovn北向进程监测逻辑交换端口表中的端口镜像列;根据所述端口镜像列中的变更数据,从逻辑端口镜像对列表中查询对应的镜像信息,并将所述镜像信息翻译至新南向数据库。15.可选的,所述将所述配置信息保存至数据库,包括:将所述配置信息保存至网络服务组件的关系型数据库,以便在重启后通过查找所述关系型数据库获取所述配置信息。16.可选的,所述将所述配置信息保存至数据库之前,还包括:按照预设校验规则对所述配置信息进行校验,并在校验成功后将所述配置信息保存至数据库。17.可选的,所述获取针对流量镜像的配置信息,包括:获取用户针对流量镜像的配置信息;所述配置信息包括源地址、目的地址、项目信息、镜像方向和过滤条件。18.可选的,所述按照预设校验规则对所述配置信息进行校验,包括:基于所述配置信息校验源端口和目的端口是否属于相同项目;基于所述配置信息校验源端口和目的端口是否存在;基于所述配置信息校验过滤条件是否合法。19.第二方面,本技术公开了一种流量镜像装置,包括:配置信息获取模块,用于获取针对流量镜像的配置信息,并将所述配置信息保存至数据库;流表更新模块,用于根据所述数据库的信息,通过ovn更新用于流量转发的ovs流表,并在所述ovs流表内添加用于流量镜像的目标流表,以得到更新后的ovs流表集;流量镜像模块,用于利用所述ovs流表集对进入ovs流表的流量和/或出ovs流表的流量进行流量镜像。20.第三方面,本技术公开了一种电子设备,包括:存储器,用于保存计算机程序;处理器,用于执行所述计算机程序,以实现前述的流量镜像方法。21.第四方面,本技术公开了一种计算机可读存储介质,用于存储计算机程序;其中计算机程序被处理器执行时实现前述的流量镜像方法。22.本技术中,获取针对流量镜像的配置信息,并将所述配置信息保存至数据库;根据所述数据库的信息,通过ovn更新用于流量转发的ovs流表,并在所述ovs流表内添加用于流量镜像的目标流表,以得到更新后的ovs流表集;利用所述ovs流表集对进入ovs流表的流量和/或出ovs流表的流量进行流量镜像。可见,通过在使用openstack开源项目ovn的网络环境中,不改变原有流量架构设计的基础上,通过在所述ovs流表内添加用于流量镜像的目标流表,实现对进出ovs流表的流量的镜像,解决在ovn模式下流量无法镜像的问题,进而便于进行流量监控,解决了ovn分布式网络环境下流量无法监控的问题,丰富了ovn模式下的产品功能。附图说明23.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。24.图1为本技术提供的一种流量镜像方法流程图;图2为本技术提供的一种具体的基于配置信息的流量更新方法流程图;图3为本技术提供的一种具体的流量镜像方法流程图;图4为本技术提供的一种具体的流量镜像逻辑流程图;图5为本技术提供的一种流量镜像装置结构示意图;图6为本技术提供的一种电子设备结构图。具体实施方式25.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。26.现有技术中,ovn不支持流量镜像功能。为克服上述技术问题,本技术中提出一种流量镜像方法,能够实现对进出ovs流表的流量的镜像,解决在ovn模式下流量无法镜像的问题。27.本技术实施例公开了一种流量镜像方法,参见图1所示,该方法可以包括以下步骤:步骤s11:获取针对流量镜像的配置信息,并将所述配置信息保存至数据库。28.本实施例中,首先获取用户针对流量镜像的配置信息,配置信息包括镜像的源地址、目的地址、所属的项目信息、镜像的方向和镜像过滤条件等。其中,所述获取针对流量镜像的配置信息,可以包括:在网络服务组件内添加目标插件,通过所述网络服务组件内所述目标插件获取用户发送的针对流量镜像的配置信息;或,在网络服务组件内配置命令行和应用程序编程接口,通过网络服务组件内所述应用程序编程接口获取用户发送的针对流量镜像的配置信息。即用户可以通过命令行、网页或者其他方式下发配置,此处需要给用户提供配置命令、api接口等,可以使用开源的tap-as-a-service项目提供的命令行配置和api接口,也可以单独开发插件,由于tap-as-a-service项目是针对原生ovs实现的一套服务,只能借鉴用户配置部分的代码功能,实现逻辑不太匹配,过滤功能需要单独开发,因此可以单独在网络服务组件(neutron_server)内配置插件,以便通过网络服务组件内目标插件获取用户发送的针对流量镜像的配置信息。可以理解的是,neutron为openstack核心项目之一,提供云计算环境下的虚拟网络功能,openstack网络(neutron)管理openstack环境中所有虚拟网络基础设施(vni,virtualnetworkinfrastructure),物理网络基础设施(pni,physicalnetworkinginfrastructure)的接入层;是租户虚拟机与互联网信息交互的桥梁,可以通过扩容插件或驱动的方式满足更丰富的网络控制,neutron-server是此网络服务的进程名字。29.本实施例中,所述配置信息包括源地址、目的地址、项目信息、镜像方向和过滤条件,所述将所述配置信息保存至数据库之前,还可以包括:按照预设校验规则对所述配置信息进行校验,并在校验成功后将所述配置信息保存至数据库。本实施例中,所述按照预设校验规则对所述配置信息进行校验,可以包括:基于所述配置信息校验源端口和目的端口是否属于相同项目;基于所述配置信息校验源端口和目的端口是否存在;基于所述配置信息校验过滤条件是否合法。即例如图2所示,保存至数据库之前先进行信息校验,具体的,收到配置后需要对用户下发的配置进行校验,如果不满足源端口和目的端口属于同一个项目,或者,源端口和目的端口均已存在,即已经存在配置,以及镜像过滤条件合法,例如过滤的地址范围无效等条件,则返回失败告知用户。30.获取配置信息后,将配置信息保存至数据库,本实施例中,所述将所述配置信息保存至数据库,可以包括:将所述配置信息保存至ovn的北向数据库,以便ovn后台进程通过监测所述北向数据库更新南向数据库,以便ovn控制器根据所述南向数据库更新的数据更新所述ovs流表。即校验成功后把数据通过ovsdb协议写入ovn北向数据库,ovn后台进程(ovn-north)用于监控ovn北向数据库数据变化并更新南向数据库的一个用户态进程,需要添加对流量监控表的监控及翻译功能,并写入ovn南向数据库。ovn控制器(ovn-controller)会监控南向数据库的更新然后添加对应的流表到ovs。31.本实施例中,所述ovn后台进程通过监测所述北向数据库更新南向数据库,可以包括:通过ovn北向进程监测逻辑交换端口表中的端口镜像列;根据所述端口镜像列中的变更数据,从逻辑端口镜像对列表中查询对应的镜像信息,并将所述镜像信息翻译至新南向数据库。可以理解的是,ovn北向进程服务需要对北向数据库中逻辑交换端口表和逻辑端口镜像对列表进行监控,以便及时根据北向数据库更新南向数据库,具体的,通过添加处理函数,响应ovn-nbdb-server下发的逻辑交换端口表(logical_switch_port表)的端口镜像列(port_mirrors列)变更;根据此列的内容去l逻辑端口镜像对列表(ogical_port_mirror_pair)查询对应的镜像信息,并翻译到ovn南向数据库中。此处根据出入方向分别翻译规则到对应的逻辑流表中,包括镜像的规则,比如判断对目的端口22的流量进行镜像,需要在入口流表和出口流表中分别添加一条指定的逻辑流表,判断条件是dst.port==22,即目的端口是否为22,动作是将流量提交到用于查找交换机网口的端口查找流表。32.本实施例中,所述将所述配置信息保存至数据库,可以包括:将所述配置信息保存至网络服务组件的关系型数据库,以便在重启后通过查找所述关系型数据库获取所述配置信息。例如图2所示,为了实现重启后重新进行镜像配置以及便于管理员查看镜像配置,本实施例通过在neutron数据库中创建表port_mirrors,校验成功后将配置信息写入该表,此表放在neutron进程启动时在自己的数据库中添加,用于记录端口镜像源端口、目的端口、所属子网id、所属项目、镜像的方向、镜像过滤条件等信息,具体的neutron数据库数据格式参考如下:步骤s12:根据所述数据库的信息,通过ovn更新用于流量转发的ovs流表,并在所述ovs流表内添加用于流量镜像的目标流表,以得到更新后的ovs流表集。33.本实施例中,ovn更新用于流量转发的ovs流表,具体根据配置信息在所述ovs流表内添加用于流量镜像的目标流表。34.步骤s13:利用所述ovs流表集对进入ovs流表的流量和/或出ovs流表的流量进行流量镜像。35.本实施例中,流表更新后,流量在进入流表后,即可按照目标流表的流表逻辑实现流量镜像,包括进入ovs流表的流量和出ovs流表的流量的镜像,由此,通过规划新的流表及逻辑实现端口镜像功能。36.由上可见,本实施例中获取针对流量镜像的配置信息,并将所述配置信息保存至数据库;根据所述数据库的信息,通过ovn更新用于流量转发的ovs流表,并在所述ovs流表内添加用于流量镜像的目标流表,以得到更新后的ovs流表集;利用所述ovs流表集对进入ovs流表的流量和/或出ovs流表的流量进行流量镜像。可见,通过在使用openstack开源项目ovn的网络环境中,不改变原有流量架构设计的基础上,通过在所述ovs流表内添加用于流量镜像的目标流表,实现对进出ovs流表的流量的镜像,解决在ovn模式下流量无法镜像的问题,进而便于进行流量监控和流量分析,解决了ovn分布式网络环境下流量无法监控的问题,丰富了ovn模式下的产品功能。37.本技术实施例公开了一种具体的流量镜像方法,参见图3所示,该方法可以包括以下步骤:步骤s21:获取针对流量镜像的配置信息,并将所述配置信息保存至数据库。38.步骤s22:在整个ovs流表结构中确定出目标添加位置,根据所述数据库的信息在所述目标添加位置添加用于流量镜像的目标流表。39.首先,对现有技术中ovn架构通过ovs流表进行转发的原理进行介绍,所有接口(port)的流量进入ovs流表后都会匹配到本网桥的0表,这个表作为入口,校验port信息是否存在如果存在则送到8表开始进行二层或者三层转发,一直到50表都是二三层转发规则,比如地址转换、限速、广播、acl等常规三层交换机处理;到50表后需要寻找出口,然后跳转到65表,65表和0表刚好相反,0表是根据物理port找逻辑口,65表根据逻辑口找物理port,此时ovs转发完成。40.本实施例中,为实现对进出流表流量的镜像,在整个ovs流表结构中确定出目标添加位置,然后根据数据库的信息,即根据配置信息在目标添加位置添加用于流量镜像的目标流表,并配置其他相关流表的逻辑。例如图4所示,对接口的流量进行镜像处理,不管是入方向或者是出方向都可能需要镜像,因此,在8表的前面添加一个7表用于处理port出方向的流量,即进入ovs流表的流量;并且,在50表后面添加一个51表用来处理port入方向的流量,即出ovs流表的流量。可以理解的是,1到7表以及51到64表为现有技术中预留的空闲表项,由此在不改变原有流量架构设计的基础上,充分利用目前空置的表项,在较为合适的位置对流量进行拷贝,跳过多余的表单处理,提供高性能的流量镜像功能,既维持了ovn架构设计理念,又能丰富了开源项目的功能。41.步骤s23:根据所述数据库的信息,为作为流量入口的入口流表、作为流量出口的出口流表、用于查找交换机网口的端口查找流表和所述目标流表配置相应的流表逻辑,以得到更新后的ovs流表集。42.流量镜像即对需要监控的流量进行拷贝然后发送到指定的位置的过程,现有流表中多数流表均是用于二三层的转发规则,因此流量镜像时需要跳过这些表项,仅依赖新增的目标流表,以及作为流量入口的入口流表、作为流量出口的出口流表、用于查找交换机网口的端口查找流表,从而实现当流量到达指定接口,或者从指定接口送出时,根据配置的镜像规则对数据进行拷贝,使用单独的转发路径送到指定的目的接口,在保证流量内容,特别是报文五元组信息不改变的情况下完成流量镜像。43.本实施例中,所述在整个ovs流表结构中确定出目标添加位置,根据所述数据库的信息在所述目标添加位置添加用于流量镜像的目标流表,可以包括:将ovs流表结构内的入口流表与用于规则校验的流表之间作为第一目标添加位置;从所述第一目标添加位置筛选出空闲流表,基于所述空闲流表和所述配置信息生成第一目标流表,所述第一目标流表用于对进入ovs流表的流量进行流量镜像。44.本实施例中,所述根据所述数据库的信息,为作为流量入口的入口流表、作为流量出口的出口流表、用于查找交换机网口的端口查找流表和所述目标流表配置相应的流表逻辑,可以包括:根据所述数据库的信息,为所述入口流表、所述出口流表、所述端口查找流表和所述目标流表配置相应的流表逻辑和流表优先级,以实现流表转发。45.本实施例中,所述根据所述数据库的信息,为作为流量入口的入口流表、作为流量出口的出口流表、用于查找交换机网口的端口查找流表和所述目标流表配置相应的流表逻辑和流表优先级,可以包括:对为作为流量入口的入口流表配置对应的流表逻辑和流表优先级,以便所述入口流表将流入的流量复制后跳过规则校验流表转发至目标流表;对所述目标流表配置对应的流表逻辑和流表优先级,以便所述目标流表将接受到的流量发送至端口查找流表;对所述端口查找流表配置对应的流表逻辑和流表优先级,以便所述端口查找流表用于判断流量镜像的目的端口是否在本节点,并在判断结果为本节点时将流量跳过规则校验流表转发至出口流表。46.其中,端口查找流表记录的是端口是否是本地节点的端口,如果是本地端口则继续往下走,如果不是本地的端口,则直接通过业务网络送往对应的节点;根据这个逻辑,本实施例中需要追加流量镜像目的端口的特殊处理,为的是跳过后续规则的限制,避免镜像的流量无辜被丢弃;具体的,端口查找流表需要追加新的流表规则,为本地节点端口,目的端口为流量镜像的目的端口,直接送到出口流表,匹配到对应的物理端口后送出ovs。47.本实施例中,利用所述ovs流表集对进入ovs流表的流量进行流量镜像,可以包括:通过所述入口流表获取进入ovs流表的第一流量,并将所述第一流量复制发送给所述第一目标流表;利用所述第一目标流表按照所述配置信息筛选出待镜像的目标流量,并将所述目标流量转发给所述端口查找流表;利用所述端口查找流表判断流量镜像的目的端口是否在本节点,若是,则将所述目标流量转发给所述出口流表,并通过所述出口流表将所述目标流量发送至目的镜像地址。48.例如图4所示,入口流表为0表,第一目标流表为7表,出口流表为65表,端口查找流表为37表。49.1、镜像流量在最初的位置开始镜像,避免在转发过程中丢弃导致镜像不到,流量最初的位置即0表,为保证流量进入该ovs流表集的0表,在0表中添加优先级为2000的流表,匹配物理接口为vm1的流量则送到8表,然后复制一条送到7表。50.2、给7表添加一个优先级为0的默认流表,用于处理匹配不到的流量,既不需要镜像的流量直接丢弃。流表匹配规则为最优匹配规则,既哪条能匹配到的条件最多选哪条,如果条件都一样,选优先级最高的。然后再追加一条优先级为1,port为vm1目的端口为22的匹配规则,由于需要镜像流量到镜像目的地址mirror,所有此条流表的执行动作设置为从ovs的mirror送出,具体通过设置逻辑id实现,然后送到37表。51.3、37表是一个特殊的表,指在查找ovs出口端口是否在本节点,如果是继续往下。如果不是则送到对应的节点,此功能继承与ovn架构,本实施例中不再赘述。52.4、由于镜像的流量需要完整不动得拷贝到mirror所以直接跳过8-36表,这些表是对流量进行规则校验的。53.5、给mirror所在节点的37表下发一条优先级为100,匹配规则为送到mirror口,以便流量直接跳过38-64,送到65表。54.6、在65上有逻辑portid查找到对应的物理port,然后送出ovs,完成镜像到mirror的功能。55.即本实施例中指在对端口的流量进行镜像处理,不管是入方向或者是出方向都可能需要镜像。所以在8表的前面添加一个7表用于处理出虚拟机网卡的流量(即进入ovs的流量,因流表是以ovs为基准设计,故此方向的流量在ovn代码层的宏定义中指定为ingress(进入),从用户角度看,是从虚拟机出来的流量,故在用户下发配置中的说明字段(direction字段)指定为out),在50表后面添加一个51表用来处理送入虚拟机网卡的流量(即出ovs的流量,此方向的流量在ovn代码层的宏定义为egress(出口),从用户角度看,是进入虚拟机的流量,故在用户下发配置中的direction字段指定为in)。56.本实施例中,所述在整个ovs流表结构中确定出目标添加位置,根据所述数据库的信息在所述目标添加位置添加用于流量镜像的目标流表,可以包括:将ovs流表结构内的用于规则校验的流表与出口流表之间作为第二目标添加位置;从所述第二目标添加位置筛选出空闲流表,基于所述空闲流表和所述配置信息生成作为第二目标流表,所述第二目标流表用于对出ovs流表的流量进行流量镜像。57.本实施例中,利用所述ovs流表集对出ovs流表的流量进行流量镜像,可以包括:通过所述出口流表获取出ovs流表的第二流量,并将所述第二流量复制发送给所述第二目标流表;利用所述第二目标流表按照所述配置信息筛选出待镜像的目标流量,并将所述目标流量转发给所述端口查找流表;利用所述端口查找流表判断流量镜像的目的端口是否在本节点,若是,则将所述目标流量转发给所述出口流表,并通过所述出口流表将所述目标流量发送至目的镜像地址。58.例如图4所示,入口流表为0表,第二目标流表为51表,出口流表为65表,端口查找流表为37表。即同理,如果是对vm2入方向的流量进行镜像,则把规则加在出ovs的最后一站,既65表,然后单独拷贝一条路径送到51表,在51表里过滤镜像流量,送到37,再由37表确定出口然后送出流量。59.步骤s24:利用所述ovs流表集对进入ovs流表的流量和/或出ovs流表的流量进行流量镜像。60.其中,关于上述步骤s21、步骤s24的具体过程可以参考前述实施例公开的相应内容,在此不再进行赘述。61.由上可见,本实施例中在整个ovs流表结构中确定出目标添加位置,根据所述数据库的信息在所述目标添加位置添加用于流量镜像的目标流表;根据所述数据库的信息,为作为流量入口的入口流表、作为流量出口的出口流表、用于查找交换机网口的端口查找流表和所述目标流表配置相应的流表逻辑。充分利用目前空置的表项,在较为合适的位置对流量进行拷贝,使用单独的转发路径送到指定的目的接口,跳过多余的表单处理,提供高性能的流量镜像功能,在保证流量内容,特别是报文五元组信息不改变的情况下完成流量镜像。62.相应的,本技术实施例还公开了一种流量镜像装置,参见图5所示,该装置包括:配置信息获取模块11,用于获取针对流量镜像的配置信息,并将所述配置信息保存至数据库;流表更新模块12,用于根据所述数据库的信息,通过ovn更新用于流量转发的ovs流表,并在所述ovs流表内添加用于流量镜像的目标流表,以得到更新后的ovs流表集;流量镜像模块13,用于利用所述ovs流表集对进入ovs流表的流量和/或出ovs流表的流量进行流量镜像。63.由上可见,获取针对流量镜像的配置信息,并将所述配置信息保存至数据库;根据所述数据库的信息,通过ovn更新用于流量转发的ovs流表,并在所述ovs流表内添加用于流量镜像的目标流表,以得到更新后的ovs流表集;利用所述ovs流表集对进入ovs流表的流量和/或出ovs流表的流量进行流量镜像。可见,通过在使用openstack开源项目ovn的网络环境中,不改变原有流量架构设计的基础上,通过在所述ovs流表内添加用于流量镜像的目标流表,实现对进出ovs流表的流量的镜像,解决在ovn模式下流量无法镜像的问题,进而便于进行流量监控,解决了ovn分布式网络环境下流量无法监控的问题,丰富了ovn模式下的产品功能。64.在一些具体实施例中,所述流表更新模块12具体可以包括:流表添加单元,用于在整个ovs流表结构中确定出目标添加位置,根据所述数据库的信息在所述目标添加位置添加用于流量镜像的目标流表;流表配置单元,用于根据所述数据库的信息,为作为流量入口的入口流表、作为流量出口的出口流表、用于查找交换机网口的端口查找流表和所述目标流表配置相应的流表逻辑。65.在一些具体实施例中,所述流表添加单元具体可以包括:第一位置确定单元,用于将ovs流表结构内的入口流表与用于规则校验的流表之间作为第一目标添加位置;第一目标流表添加单元,用于从所述第一目标添加位置筛选出空闲流表,基于所述空闲流表和所述配置信息生成第一目标流表,所述第一目标流表用于对进入ovs流表的流量进行流量镜像。66.在一些具体实施例中,所述流表配置单元具体可以用于根据所述数据库的信息,为所述入口流表、所述出口流表、所述端口查找流表和所述目标流表配置相应的流表逻辑和流表优先级,以实现流表转发。67.在一些具体实施例中,所述流表配置单元具体可以包括:第一配置单元,用于对为作为流量入口的入口流表配置对应的流表逻辑和流表优先级,以便所述入口流表将流入的流量复制后跳过规则校验流表转发至目标流表;第二配置单元,用于对所述目标流表配置对应的流表逻辑和流表优先级,以便所述目标流表将接受到的流量发送至端口查找流表;第三配置单元,用于对所述端口查找流表配置对应的流表逻辑和流表优先级,以便所述端口查找流表用于判断流量镜像的目的端口是否在本节点,并在判断结果为本节点时将流量跳过规则校验流表转发至出口流表。68.在一些具体实施例中,所述流量镜像模块13具体可以包括:流量复制单元,用于通过所述入口流表获取进入ovs流表的第一流量,并将所述第一流量复制发送给所述第一目标流表;目标流量确定单元,用于利用所述第一目标流表按照所述配置信息筛选出待镜像的目标流量,并将所述目标流量转发给所述端口查找流表;流量发送单元,用于利用所述端口查找流表判断流量镜像的目的端口是否在本节点,若是,则将所述目标流量转发给所述出口流表,并通过所述出口流表将所述目标流量发送至目的镜像地址。69.在一些具体实施例中,所述流表添加单元具体可以包括:第二位置确定单元,用于将ovs流表结构内的用于规则校验的流表与出口流表之间作为第二目标添加位置;第二目标流表添加单元,用于从所述第二目标添加位置筛选出空闲流表,基于所述空闲流表和所述配置信息生成作为第二目标流表,所述第二目标流表用于对出ovs流表的流量进行流量镜像。70.在一些具体实施例中,所述流量镜像模块13具体可以包括:流量复制单元,用于通过所述出口流表获取出ovs流表的第二流量,并将所述第二流量复制发送给所述第二目标流表;目标流量确定单元,用于利用所述第二目标流表按照所述配置信息筛选出待镜像的目标流量,并将所述目标流量转发给所述端口查找流表;流量发送单元,用于利用所述端口查找流表判断流量镜像的目的端口是否在本节点,若是,则将所述目标流量转发给所述出口流表,并通过所述出口流表将所述目标流量发送至目的镜像地址。71.在一些具体实施例中,所述流量发送单元具体可以用于若流量镜像的目的端口不在本节点,则通过业务网络将所述流量镜像发送至对应的节点。72.在一些具体实施例中,所述配置信息获取模块11具体可以包括:第一获取单元,用于在网络服务组件内添加目标插件,通过所述网络服务组件内所述目标插件获取用户发送的针对流量镜像的配置信息。73.在一些具体实施例中,所述配置信息获取模块11具体可以包括:第二获取单元,用于在网络服务组件内配置命令行和应用程序编程接口,通过网络服务组件内所述应用程序编程接口获取用户发送的针对流量镜像的配置信息。74.在一些具体实施例中,所述配置信息获取模块11具体可以包括:第一保存单元,用于将所述配置信息保存至ovn的北向数据库,以便ovn后台进程通过监测所述北向数据库更新南向数据库,以便ovn控制器根据所述南向数据库更新的数据更新所述ovs流表。75.在一些具体实施例中,所述第一保存单元具体可以包括:端口镜像列监测单元,用于通过ovn北向进程监测逻辑交换端口表中的端口镜像列;信息翻译单元,用于根据所述端口镜像列中的变更数据,从逻辑端口镜像对列表中查询对应的镜像信息,并将所述镜像信息翻译至新南向数据库。76.在一些具体实施例中,所述配置信息获取模块11具体可以包括:第二保存单元,用于将所述配置信息保存至网络服务组件的关系型数据库,以便在重启后通过查找所述关系型数据库获取所述配置信息。77.在一些具体实施例中,所述流量镜像装置,还包括:校验单元,用于按照预设校验规则对所述配置信息进行校验,并在校验成功后将所述配置信息保存至数据库。78.在一些具体实施例中,所述配置信息包括源地址、目的地址、项目信息、镜像方向和过滤条件。79.在一些具体实施例中,所述校验单元具体可以包括:第一校验单元,用于基于所述配置信息校验源端口和目的端口是否属于相同项目;第二校验单元,用于基于所述配置信息校验源端口和目的端口是否存在;第三校验单元,用于基于所述配置信息校验过滤条件是否合法。80.进一步的,本技术实施例还公开了一种电子设备,参见图6所示,图中的内容不能被认为是对本技术的使用范围的任何限制。81.图6为本技术实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的流量镜像方法中的相关步骤。82.本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本技术技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。83.另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统221、计算机程序222及包括配置信息在内的数据223等,存储方式可以是短暂存储或者永久存储。84.其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是windowsserver、netware、unix、linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的流量镜像方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。85.进一步的,本技术实施例还公开了一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述任一实施例公开的流量镜像方法步骤。86.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。87.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或
技术领域
:内所公知的任意其它形式的存储介质中。88.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。89.以上对本发明所提供的一种流量镜像方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。当前第1页12当前第1页12
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献