CN114338496B - 一种资源转发方法、装置、终端和计算机存储介质 - Google Patents
一种资源转发方法、装置、终端和计算机存储介质 Download PDFInfo
- Publication number
- CN114338496B CN114338496B CN202011083466.4A CN202011083466A CN114338496B CN 114338496 B CN114338496 B CN 114338496B CN 202011083466 A CN202011083466 A CN 202011083466A CN 114338496 B CN114338496 B CN 114338496B
- Authority
- CN
- China
- Prior art keywords
- forwarding
- port forwarding
- port
- ovn
- resource
- 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.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种资源转发方法,该方法应用于OpenStack的Neutron组件中,该Neutron组件通过ovsdb协议与OVN系统建立连接,该方法包括:接收端口转发请求,对端口转发请求进行处理,得到端口转发资源,利用ovsdb协议所建立的连接,将端口转发资源发送至OVN系统,通过OVN系统将端口转发资源发送至OpenVSwitch中,以转发端口转发资源。本发明实施例还同时公开了一种资源转发装置、终端和计算机存储介质,避免了端口转发中流量路径变长的问题出现,提升了端口转发的网络性能。
Description
技术领域
本发明涉及Neutron端口转发技术,尤其涉及一种资源转发方法、装置、终端和计算机存储介质。
背景技术
端口转发服务是由一组端口转发规则定义的策略。通常,一个端口转发服务可以应用到一个或更多的虚拟机,虚拟机的入站网络访问可以根据端口转发服务所定义的策略进行管理。可以根据需要指定一个或多个无类别域间路由(CIDR,Classless Inter-DomainRouting)来过滤源IP地址,以允许来自特定IP地址的请求被转发。采用特定IP地址的方法的关键技术在于实现将进入服务器一个端口的流量转发到另一台服务器的一个端口上,大部分场景为外网某个端口流量到内网某个流量的转发。
在相关技术中,OpenStack的Neutron组件可以通过port_forwarding插件为用户提供端口转发服务,将“公网ip+端口号”转换到用户“内网ip+端口号”,保证外部网络可以通过“公网ip+端口号”访问到用户“内网ip+端口号”。具体地,Neutron可以通过I3-agent,在用户的虚拟路由器namespace中下发iptables规则,实现“公网ip+端口号”到用户“内网ip+端口号”的转换,但是,该方法的网络转发性能较差;由此可以看出,现有的OpenStack的Neutron组件中在实现端口转发功能时存在网络性能较差的技术问题。
发明内容
有鉴于此,本发明实施例提供一种资源转发方法、装置、终端和计算机存储介质,以解决现有技术中存在的网络转发性能较差的技术问题。
本申请的技术方案是这样实现的:
第一方面,本申请实施例提供了一种资源转发方法,所述方法应用于OpenStack的Neutron组件中,所述Neutron组件通过ovsdb协议与OVN系统建立连接,包括:
接收端口转发请求;
对所述端口转发请求进行处理,得到端口转发资源;其中,所述端口转发资源为所述端口转发请求所请求转发的数据;
利用ovsdb协议所建立的连接,将所述端口转发资源发送至所述OVN系统;
通过所述OVN系统将所述端口转发资源发送至OpenVSwitch中,以转发所述端口转发资源。
在上述方法中,所述Neutron组件中设置有端口转发插件和端口转发驱动;相应地,所述对所述端口转发请求进行处理,得到端口转发资源,包括:
所述端口转发插件对所述端口转发请求进行解析处理,得到第一数据格式的转发资源;
将所述第一数据格式的转发资源写入所述Neutron组件所对应的数据库中;
将所述第一数据格式的转发资源传递至所述端口转发驱动;其中,所述数据库中数据的格式为所述第一数据格式;
所述端口转发驱动按照网络地址转换NAT规则,对所述第一数据格式的转发资源进行翻译,得到所述端口转发资源。
在上述方法中,在利用ovsdb协议所建立的连接,将所述端口转发资源发送至所述OVN系统之前,所述方法还包括:
在所述OVN系统中配置NAT数据表;
在所述NAT数据表中配置新的端口和NAT支持的协议字段,在所述NAT数据表对应的逻辑流表中配置对所述新的端口和所述NAT支持的协议字段的匹配字段,以配置出具有NAT规则的所述OVN系统。
在上述方法中,所述方法还包括:
端口转发驱动插件每隔预设时间段比较所述Neutron组件所对应的数据库中的转发资源与所述OVN系统中的端口转发资源是否一致;
当不一致时,所述端口转发插件对所述OVN系统中的端口转发资源进行处理,以更新所述OVN系统中的端口转发资源;其中,更新后的所述OVN系统中的端口转发资源与所述数据库中的转发资源一致。
在上述方法中,所述端口转发插件对所述OVN系统中的端口转发资源进行处理,以更新所述OVN系统中的端口转发资源,包括:
当所述OVN系统中的端口转发资源中存在第一端口转发资源,且所述第一端口转发资源不存在于所述数据库中时,所述端口转发插件删除所述第一端口转发资源。
在上述方法中,所述端口转发插件对所述OVN系统中的端口转发资源进行处理,以更新所述OVN系统中的端口转发资源,包括:
当所述数据库中的转发资源中存在第一转发资源,且所述第一转发资源不存在于所述OVN系统中时,所述端口转发插件将所述第一转发资源发送至所述端口转发驱动中;
所述端口转发驱动按照NAT规则,对所述第一转发资源进行翻译,将翻译后的转发资源通过所述ovsdb协议发送至所述OVN系统中。
在上述方法中,所述方法还包括:
当所述OVN系统发生故障时,所述端口转发插件将所述数据库中的转发资源发送至所述端口转发驱动中;
所述端口转发驱动按照NAT规则,对所述数据库中的转发资源进行翻译,将翻译后的转发资源通过所述ovsdb协议发送至所述OVN系统中。
第二方面,本发明实施例提供了一种资源转发装置,所述装置设置于OpenStack的Neutron中,所述Neutron组件通过ovsdb协议与OVN系统建立连接,包括:
接收模块,用于接收端口转发请求;
处理模块,用于对所述端口转发请求进行处理,得到端口转发资源;其中,所述端口转发资源为所述端口转发请求所请求转发的数据;
第一发送模块,用于利用ovsdb协议所建立的连接,将所述端口转发资源发送至所述OVN系统;
第二发送模块,用于通过所述OVN系统将所述端口转发资源发送至OpenVSwitch中,以转发所述端口转发资源。
在上述装置中,所述Neutron组件中设置有端口转发插件和端口转发驱动;相应地,所述处理模块,具体用于:
通过所述端口转发插件对所述端口转发请求进行解析处理,得到第一数据格式的转发资源;
将所述第一数据格式的转发资源写入所述Neutron组件所对应的数据库中;
将所述第一数据格式的转发资源传递至所述端口转发驱动;其中,所述数据库中数据的格式为所述第一数据格式;
所述端口转发驱动按照网络地址转换NAT规则,对所述第一数据格式的转发资源进行翻译,得到所述端口转发资源。
在上述装置中,所述装置还用于:
在利用ovsdb协议所建立的连接,将所述端口转发资源发送至所述OVN系统之前,在所述OVN系统中配置NAT数据表;
在所述NAT数据表中配置新的端口和NAT支持的协议字段,在所述NAT数据表对应的逻辑流表中配置对所述新的端口和所述NAT支持的协议字段的匹配字段,以配置出具有NAT规则的所述OVN系统。
在上述装置中,所述装置还包括:
比较模块,用于通过所述端口转发驱动插件每隔预设时间段比较所述数据库中的转发资源与所述OVN系统中的端口转发资源是否一致;
更新模块,当不一致时,用于通过所述端口转发插件对所述OVN系统中的端口转发资源进行处理,以更新所述OVN系统中的端口转发资源;其中,更新后的所述OVN系统中的端口转发资源与所述数据库中的转发资源一致。
在上述装置中,所述更新模块具体用于:
当所述OVN系统中的端口转发资源中存在第一端口转发资源,且所述第一端口转发资源不存在于所述数据库中时,通过所述端口转发插件删除所述第一端口转发资源。
在上述装置中,所述更新模块具体用于:
当所述数据库中的转发资源中存在第一转发资源,且所述第一转发资源不存在于所述OVN系统中时,通过所述端口转发插件将所述第一转发资源发送至所述端口转发驱动中;
通过所述端口转发驱动按照NAT规则,对所述第一转发资源进行翻译,将翻译后的转发资源通过所述ovsdb协议发送至所述OVN系统中。
在上述装置中,所述装置还用于:
当所述OVN系统发生故障时,通过所述端口转发插件将所述数据库中的转发资源发送至所述端口转发驱动中;
通过所述端口转发驱动按照NAT规则,对所述数据库中的转发资源进行翻译,将翻译后的转发资源通过所述ovsdb协议发送至所述OVN系统中。
第三方面,本申请实施例还提供了一种终端,所述终端包括:处理器以及存储有所述处理器可执行指令的存储介质,所述存储介质通过通信总线依赖所述处理器执行操作,当所述指令被所述处理器执行时,执行上述一个或多个实施例所述资源转发方法。
本申请实施例提供了一种计算机存储介质,存储有可执行指令,当所述可执行指令被一个或多个处理器执行的时候,所述处理器执行上述一个或多个实施例所述资源转发方法。
本发明实施例所提供的一种资源转发方法、装置、终端和计算机存储介质,该方法应用于OpenStack的Neutron组件中,Neutron组件通过ovsdb协议与OVN系统建立连接,包括:接收端口转发请求,对端口转发请求进行处理,得到端口转发资源,其中,端口转发资源为端口转发请求所请求转发的数据,利用ovsdb协议所建立的连接,将端口转发资源发送至OVN系统,通过OVN系统将端口转发资源发送至OpenVSwitch中,以转发端口转发资源;也就是说,在本发明实施例中,通过对端口转发请求进行处理可以得到端口转发资源,并通过ovsdb协议建立Neutron组件与OVN系统的连接,使得Neutron组件能够将端口转发资源发送至OVN中,进而使得OVN能够将端口转发资源发送至OpenVSwitch中,从而通过配置的OVN能够在不借助第三方设备的情况下实现端口转发功能,避免了端口转发中流量路径变长的问题出现,从而提升了端口转发的网络性能。
附图说明
图1为本发明实施例中的一种可选的资源转发方法的流程示意图;
图2为本发明实施例中的一种可选的资源转发方法的实例的流程的示意图;
图3为本发明实施例中的一种可选的资源转发装置的结构示意图;
图4为本申请实施例提供的一种可选的终端的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
实施例一
本发明实施例提供一种资源转发方法,该方法应用于OpenStack的Neutron组件中,该Neutron组件通过ovsdb协议与OVN系统建立连接,图1为本发明实施例中的一种可选的资源转发方法的流程示意图,如图1所示,该方法可以包括:
S101:接收端口转发请求;
目前,针对OpenStack架构,为了实现端口转发,以LinuxBridge+VLan架构为基础,与OpenStack的Neutron组件的原生的端口转发类似,也是采用了iptables nat表来具体实现端口转发功能,该方法采用了功能单一的虚拟交换机,网络转发性能较差;另外,采用公网代理服务器,将内网设备的预设端口转发至公网服务器的一个端口,通过公网代理服务器的另一个端口连接公网,反之,公网可以通过公网代理服务器的另一个端口连接到内网预设端口,但是该方法引入了额外的设备,不适用于云环境,容易造成性能瓶颈,还会造成流量路径边长。
为了在OpenStack的Neutron组件中实现端口转发的同时,提高网络性能,首先,利用ovsdb协议将Neutron组件与OVN系统建立连接,这样,使得Neutron组件与OVN系统之间可以通过ovsdb协议进行数据交互,从而实现端口转发。
具体来说,Neutron组件的Neutron-server接收端口转发请求,其中,Neutron-server具有应用程序编程接口(API,Application Programming Interface)功能。
S102:对端口转发请求进行处理,得到端口转发资源;
在接收到端口转发请求之后,需要对端口转发请求进行解析等处理,以得到端口转发资源,其中,端口转发资源为端口转发请求所请求转发的数据。
在实际应用中,该端口转发请求可以为http请求,对该http请求进行解析便可以得到端口转发资源。为了得到端口转发资源,在一种可选的实施例中,Neutron组件中设置有端口转发插件和端口转发驱动;相应地,S102可以包括:
端口转发插件对端口转发请求进行解析处理,得到第一数据格式的转发资源;
将第一数据格式的转发资源写入Neutron组件所对应的数据库中;
将第一数据格式的转发资源传递至端口转发驱动;其中,数据库中数据的格式为第一数据格式;
端口转发驱动按照NAT规则,对第一数据格式的转发资源进行翻译,得到端口转发资源。
具体来说,在Neutron组件中设置有端口转发插件port_forwarding plugin和端口转发驱动port_forwarding driver,其中,port_forwarding plugin能够实现读写Neutron DB和下发参数给port_forwarding driver的功能,也就是说,port_forwardingplugin继承原有plugin的功能,移除plugin将请求传递给agent步骤;port_forwardingdriver能够实现将port_forwarding参数进行翻译并下发到OVN的功能。
那么,端口转发插件在接收到端口转发请求之后,对端口转发请求进行解析,主要是解析得到转达资源,并对转发资源进行格式化,从而可以得到与Neutron组件所对应的数据库的数据格式一样的转发资源,然后再将转发资源存储至Neutron组件所对应的数据库中,其中,Neutron组件所对应的数据库承载着Neutron-server接收而来的用户数据。
然后,端口转发驱动需要对第一数据格式的转发资源进行翻译,具体来说,端口转发驱动按照NAT规则将第一数据格式的转发资源进行翻译,从而得到端口转发资源,这样,使得端口转发资源能够被具有NAT规则的OVN系统所识别和转发。
S103:利用ovsdb协议所建立的连接,将端口转发资源发送至OVN系统;
最后,在得到端口转发资源之后,可以利用ovsdb协议将端口转啊资源发送至OVN系统,其中,在实际应用中,需要使用ovsdb协议创建一个与ovnnb_nb交互的应用,这里,需要实现与具有NAT规则的OVN系统交互的接口,保证端口转发驱动发送的NAT规则写入新增端口NB。
其中,为了得到具有NAT规则的OVN系统,在一种可选的实施例中,在利用ovsdb协议所建立的连接,将所述端口转发资源发送至所述OVN系统之前,该方法还包括:
在OVN系统中配置NAT数据表;
在NAT数据表中配置新的端口和NAT支持的协议字段,在NAT数据表对应的逻辑流表中配置对新的端口和NAT支持的协议字段的匹配字段,以配置出具有NAT规则的OVN系统。
具体来说,具有NAT规则的OVN系统提供了一种在虚拟路由器上配置NAT规则的功能,实现内部ip和公网ip地址的互相转换,在实际应用中,在OVN系统中,引入NAT数据表,新增NAT数据表对应的逻辑流表,例如,lr_out_snat(table=1,在出向实现SNAT功能,将离开路由器的流量进行源ip地址替换)和lr_in_dnat(table=6,在出入实现DNAT功能,将进入路由器的流量进行目的ip地址替换),这样,分别实现了SNAT和DNAT功能。
然而,原生的具有NAT规则的OVN系统无法实现端口转发功能。在Neutron+OVN场景中,在NAT数据表中添加新的端口和协议字段,将在逻辑流表lr_in_dnat(table=6)中添加对新的端口和协议字段的匹配字段;例如,在NAT数据表中中新增“external_ports”和“porotocal”字段,这样,便可以配置出了具有NAT规则的OVN系统。
S104:通过OVN系统将端口转发资源发送至OpenVSwitch中,以转发端口转发资源。
具体来说,在配置出具有NAT规则的OVN系统之后,具有NAT规则的OVN系统能够将端口转发资源发送到OpenVSwitch,从而使得Neutron组件实现了端口转发功能。
为了使得Neutron组件与OVN系统中的数据保持一致,在一种可选的实施例中,该方法还包括:
端口转发驱动插件每隔预设时间段比较数据库中的转发资源与OVN系统中的端口转发资源是否一致;
当不一致时,端口转发插件对OVN系统中的端口转发资源进行处理,以更新OVN系统中的端口转发资源;其中,更新后的OVN系统中的端口转发资源与数据库中的转发资源一致。
具体来说,在实际应用中,在Neutron组件中的firewall v1 plugin中,设置了一个自动同步工具,用来将Neutron的端口转发资源数据同步到OVN系统。为了实现Neutron组件中的端口转发资源OVN系统中的数据同步,端口转发插件每隔预设时间段,比较Neutron组件所对应的数据库中的转发资源与OVN系统中的端口转发资源是否一致,如果一致,说明Neutron组件所对应的数据库中的转发资源已经同步至OVN系统中,如果不一致,说明Neutron组件所对应的数据库中的转发资源未成功同步至OVN系统中,所以,此时端口转发插件需要对OVN系统中的端口转发资源进行处理以更新OVN系统中的端口转发资源,使得Neutron组件所对应的数据库中的转发资源与OVN系统中的端口转发资源同步,从而实现Neutron组件中的数据与OVN系统中的数据同步。
针对不一致的情况,可以包括OVN系统中存在Neutron组件中没有的数据,还可以包括OVN系统中没有存储Neutron组件中的所有数据,这里,本申请实施例对此不作具体限定。
为了实现同步,在一种可选的实施例中,端口转发插件对OVN系统中的端口转发资源进行处理,以更新OVN系统中的端口转发资源,包括:
当OVN系统中的端口转发资源中存在第一端口转发资源,且第一端口转发资源不存在于数据库中时,端口转发插件删除第一端口转发资源。
具体来说,当OVN系统中的端口转发资源中存在第一端口转发资源,并且该第一端口转发资源不存在于上述数据库中时,说明OVN系统中存在的第一端口转发资源为Neutron组件中不存在的数据,为了实现两者数据的同步,需要删除掉,所以,Neutron组件中的自动同步工具删除第一端口转发资源,使得OVN系统中的数据与Neutron组件中的数据同步。
在一种可选的实施例中,端口转发插件对OVN系统中的端口转发资源进行处理,以更新OVN系统中的端口转发资源,包括:
当数据库中的转发资源中存在第一转发资源,且第一转发资源不存在于OVN系统中时,端口转发插件将第一转发资源发送至端口转发驱动中;
端口转发驱动按照NAT规则,对第一转发资源进行翻译,将翻译后的转发资源通过ovsdb协议发送至OVN系统中。
具体来说,当数据库中的转发资源中存在第一转发资源,并且还第一转发资源不存在于OVN系统中,说明Neutron组件中存在的第一转发资源为OVN系统中不存在的数据,为了实现两者的数据同步,需要将第一转发资源同步至OVN系统中,为了实现同步,端口转发插件需要按照NAT规则,先对第一转发资源进行翻译,并将翻译后的转发资源通过ovsdb协议发送至OVN系统中,这样,使得OVN相同中的数据与Neutron组件中的数据同步。
为了实现同步,在一种可选的实施例中,该方法还包括:
当OVN系统发生故障时,端口转发插件将数据库中的转发资源发送至端口转发驱动中;
端口转发驱动按照NAT规则,对数据库中的转发资源进行翻译,将翻译后的转发资源通过ovsdb协议发送至OVN系统中。
具体来说,当OVN系统断联或者故障时,Neutron组件中的端口转发资源数据会在OVN系统中丢失,为了保证Neutron组件中的数据和OVN系统中的数据一致,就需要定时的检查Neutron组件中的数据是否与OVN系统中的数据是否一致。
当OVN系统发生故障,OVN系统中的数据会丢失,所以,此时,为了实现两者的同步,端口转发驱动需要按照NAT规则对数据库中的转发资源进行翻译,从而得到翻译后的转发资源,并将翻译后的转发资源发送至OVN系统中,这样,使得OVN相同中丢失的数据又重新找回来,从而实现了Neutron组件中的数据与OVN系统中的数据同步。
下面举实例来对上述一个或多个实施例中的资源转发方法进行说明。
图2为本发明实施例提供的一种可选的资源转发方法的实例的流程示意图,如图2所示,该资源转发方法可以包括:
S201:Neutron-server接收用户的端口转发请求;
S202:Neutron-server创建端口转发,并发送至port_forwarding plugin,得到port_forwarding plugin反馈的显示成功的状态码200OK。
具体来说,Neutron-server通过建立wsgi server,接收用户的端口转发请求参数,并传递给port_forwarding plugin。
S203:当端口转发资源关联了Neutron的port,port_forwarding plugin对用户的端口转发请求进行处理;
具体来说,对用户发来的端口转发请求进行解析处理,得到与数据库相同数据格式的端口转发资源,并将端口转发资源写入数据库;当端口转发资源关联了Neutron的port,相应的端口转发资源参数会传递给port_forwarding driver。
S204:port_forwarding driver创建一个通过ovsdb协议交互的应用程序(APP,Application)
具体来说,对Neutron端口转发资源参数进行翻译,对plugin传递而来的端口转发资源参数进行翻译、翻译成具有NAT规则的端口转发资源,并借助ovsdbapp建立的连接发送给OVN。
S205:NAT数据表中添加端口NB
具体来说,为了配置出NAT OVN,需要在OVN中添加NAT数据表,具体地,提那家新的端口和NAT支持的协议字段,添加成功后,就获取到具有NAT规则的OVN。
其中,预先对OVN进行修改,得到具有NAT规则的OVN,即OVN NAT,修改后的OVN NAT记录了由port_forwarding driver发送而来的数据,并转换流表下发到OVS中,真正实现端口转发功能。
这里,ovsdbapp为Neutron和OVN建立数据连接,ovsdbapp通过ovsdb-idl建立与OVN NB的连接,并将翻译后的端口转发资源数据发送给OVN NAT。
这样,在端口转发中,获取到具有NAT规则的OVN,创建一个通过ovsdb进行交互的APP,从端口转发的数据库和具有NAT规则的OVN获取数据,还得到具有端口转发的循环或一致性的检查器。
本上述实例中,使用OVN作为底层技术,通过编写的port_forwarding plugin和port_forwarding driver、翻译和发送Neutron端口转发数据到OVN,实现了Neutron+OVN场景下的端口转发功能;编写了Neutron端口转发数据到OVN的自动同步工具。通过在port_forwarding plugin中设置了数据同步工具、定期检查Neutron端口转发数据和OVN是否一致,并对不一致的数据进行消除,保证了二者数据的一致性。修改了OVN NAT,使其支持参数“external_ports”和“protocol”,具体实现端口转发功能。使用了OVN作为底层端口转发实现技术,解决了原生Neutron端口转发性能差(iptables数目多造成的网络拥塞)的问题。
在本实例中,使用了Neutron+OVN来实现端口转发功能,无需引入第三方服务器设备;通过在port_forwarding plugin和driver中实现数据同步机制,定期自动地将Neutron的端口转发资源数据同步到OVN中,防止二者数据不一致造成的问题;解决了iptables实现的Neutron端口转发造成的网络性能受限问题。
也就是说,本发明实施例使用OVN作为中间层、OpenVSwitch作为底层实现技术,通过编写Neutron port_forwarding plugin和driver,将Neutron端口转发资源数据翻译成OVN NAT、并发送给OVN,实现端口转发功能,实现了端口转发的自动配置,端口转发资源数据的定期同步,以及提升了端口转发的网络性能。
本发明实施例所提供的一种资源转发方法,该方法应用于OpenStack的Neutron组件中,Neutron组件通过ovsdb协议与OVN系统建立连接,包括:接收端口转发请求,对端口转发请求进行处理,得到端口转发资源,其中,端口转发资源为端口转发请求所请求转发的数据,利用ovsdb协议所建立的连接,将端口转发资源发送至OVN系统,通过OVN系统将端口转发资源发送至OpenVSwitch中,以转发端口转发资源;也就是说,在本发明实施例中,通过对端口转发请求进行处理可以得到端口转发资源,并通过ovsdb协议建立Neutron组件与OVN系统的连接,使得Neutron组件能够将端口转发资源发送至OVN中,进而使得OVN能够将端口转发资源发送至OpenVSwitch中,从而通过配置的OVN能够在不借助第三方设备的情况下实现端口转发功能,避免了端口转发中流量路径变长的问题出现,从而提升了端口转发的网络性能。
实施例二
基于同一发明构思,本发明实施例提供一种资源转发装置,该装置设置于OpenStack的Neutron中,该Neutron组件通过ovsdb协议与OVN系统建立连接,图3为本发明实施例中的一种可选的资源转发装置的结构示意图,如图3所示,该资源转发装置包括:接收模块31,处理模块32,第一发送模块33和第二发送模块34;
接收模块31,用于接收端口转发请求;
处理模块32,用于对端口转发请求进行处理,得到端口转发资源;其中端口转发资源为端口转发请求所请求转发的数据;
第一发送模块33,用于利用ovsdb协议所建立的连接,将端口转发资源发送至OVN系统;
第二发送模块34,用于通过OVN系统将端口转发资源发送至OpenVSwitch中,以转发端口转发资源。
在一种可选的实施例中,Neutron组件中设置有端口转发插件和端口转发驱动;相应地,处理模块32,具体用于:
端口转发插件对端口转发请求进行解析处理,得到第一数据格式的转发资源;
将第一数据格式的转发资源写入Neutron组件所对应的数据库中;
将第一数据格式的转发资源传递至端口转发驱动;其中,数据库中数据的格式为第一数据格式;
端口转发驱动按照网络地址转换NAT规则,对第一数据格式的转发资源进行翻译,得到端口转发资源。
在一种可选的实施例中,该装置还用于:
在利用ovsdb协议所建立的连接,将端口转发资源发送至OVN系统之前,在OVN系统中配置NAT数据表;
在NAT数据表中配置新的端口和NAT支持的协议字段,在NAT数据表对应的逻辑流表中配置对所述新的端口和所述NAT支持的协议字段的匹配字段,以配置出具有NAT规则的OVN系统。
在一种可选的实施例中,该装置还包括:
比较模块,用于通过端口转发驱动插件每隔预设时间段比较数据库中的转发资源与OVN系统中的端口转发资源是否一致;
更新模块,当不一致时,用于通过端口转发插件对OVN系统中的端口转发资源进行处理,以更新OVN系统中的端口转发资源;其中,更新后的OVN系统中的端口转发资源与数据库中的转发资源一致。
在一种可选的实施例中,更新模块具体用于:
当OVN系统中的端口转发资源中存在第一端口转发资源,且第一端口转发资源不存在于数据库中时,通过端口转发插件删除第一端口转发资源。
在一种可选的实施例中,更新模块具体用于:
当数据库中的转发资源中存在第一转发资源,且第一转发资源不存在于OVN系统中时,通过端口转发插件将第一转发资源发送至端口转发驱动中;
通过端口转发驱动按照NAT规则,对第一转发资源进行翻译,将翻译后的转发资源通过ovsdb协议发送至OVN系统中。
在一种可选的实施例中,该装置还用于:
当OVN系统发生故障时,通过端口转发插件将数据库中的转发资源发送至端口转发驱动中;
通过端口转发驱动按照NAT规则,对数据库中的转发资源进行翻译,将翻译后的转发资源通过ovsdb协议发送至OVN系统中。
在实际应用中,上述接收模块31、处理模块32、第一发送模块33、第二发送模块34、比较模块和更新模块可由位于终端上的处理器实现,具体为中央处理器(CPU,CentralProcessing Unit)、微处理器(MPU,Microprocessor Unit)、数字信号处理器(DSP,DigitalSignal Processing)或现场可编程门阵列(FPGA,Field Programmable Gate Array)等实现。
图4为本申请实施例提供的一种可选的终端的结构示意图,如图4所示,本申请实施例提供了一种终端400,包括:
处理器41以及存储有所述处理器41可执行指令的存储介质42,所述存储介质42通过通信总线43依赖所述处理器41执行操作,当所述指令被所述处理器41执行时,执行上述实施例一所述的资源转发方法。
需要说明的是,实际应用时,终端中的各个组件通过通信总线43耦合在一起。可理解,通信总线43用于实现这些组件之间的连接通信。通信总线43除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图4中将各种总线都标为通信总线43。
本申请实施例提供了一种计算机存储介质,存储有可执行指令,当所述可执行指令被一个或多个处理器执行的时候,所述处理器执行实施例一所述的资源转发方法。
其中,计算机可读存储介质可以是磁性随机存取存储器(ferromagnetic randomaccess memory,FRAM)、只读存储器(Read Only Memory,ROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、可擦除可编程只读存储器(ErasableProgrammable Read-Only Memory,EPROM)、电可擦除可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory,EEPROM)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(Compact Disc Read-Only Memory,CD-ROM)等存储器。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。
Claims (10)
1.一种资源转发方法,其特征在于,所述方法应用于OpenStack的Neutron组件中,所述Neutron组件通过ovsdb协议与OVN系统建立连接,包括:
接收端口转发请求;
对所述端口转发请求进行处理,得到端口转发资源;其中,所述端口转发资源为所述端口转发请求所请求转发的数据;
利用ovsdb协议所建立的连接,将所述端口转发资源发送至所述OVN系统;
通过所述OVN系统将所述端口转发资源发送至OpenVSwitch中,以转发所述端口转发资源。
2.根据权利要求1所述的方法,其特征在于,所述Neutron组件中设置有端口转发插件和端口转发驱动;相应地,所述对所述端口转发请求进行处理,得到端口转发资源,包括:
所述端口转发插件对所述端口转发请求进行解析处理,得到第一数据格式的转发资源;
将所述第一数据格式的转发资源写入所述Neutron组件所对应的数据库中;
将所述第一数据格式的转发资源传递至所述端口转发驱动;其中,所述数据库中数据的格式为所述第一数据格式;
所述端口转发驱动按照网络地址转换NAT规则,对所述第一数据格式的转发资源进行翻译,得到所述端口转发资源。
3.根据权利要求1或2所述的方法,其特征在于,在利用ovsdb协议所建立的连接,将所述端口转发资源发送至所述OVN系统之前,所述方法还包括:
在所述OVN系统中配置NAT数据表;
在所述NAT数据表中配置新的端口和NAT支持的协议字段,在所述NAT数据表对应的逻辑流表中配置对所述新的端口和所述NAT支持的协议字段的匹配字段,以配置出具有NAT规则的所述OVN系统。
4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
端口转发驱动插件每隔预设时间段比较所述Neutron组件所对应的数据库中的转发资源与所述OVN系统中的端口转发资源是否一致;
当不一致时,所述端口转发插件对所述OVN系统中的端口转发资源进行处理,以更新所述OVN系统中的端口转发资源;其中,更新后的所述OVN系统中的端口转发资源与所述数据库中的转发资源一致。
5.根据权利要求4所述的方法,其特征在于,所述端口转发插件对所述OVN系统中的端口转发资源进行处理,以更新所述OVN系统中的端口转发资源,包括:
当所述OVN系统中的端口转发资源中存在第一端口转发资源,且所述第一端口转发资源不存在于所述数据库中时,所述端口转发插件删除所述第一端口转发资源。
6.根据权利要求4所述的方法,其特征在于,所述端口转发插件对所述OVN系统中的端口转发资源进行处理,以更新所述OVN系统中的端口转发资源,包括:
当所述数据库中的转发资源中存在第一转发资源,且所述第一转发资源不存在于所述OVN系统中时,所述端口转发插件将所述第一转发资源发送至所述端口转发驱动中;
所述端口转发驱动按照NAT规则,对所述第一转发资源进行翻译,将翻译后的转发资源通过所述ovsdb协议发送至所述OVN系统中。
7.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当所述OVN系统发生故障时,所述端口转发插件将所述数据库中的转发资源发送至所述端口转发驱动中;
所述端口转发驱动按照NAT规则,对所述数据库中的转发资源进行翻译,将翻译后的转发资源通过所述ovsdb协议发送至所述OVN系统中。
8.一种资源转发装置,其特征在于,所述装置设置于OpenStack的Neutron中,所述Neutron组件通过ovsdb协议与OVN系统建立连接,包括:
接收模块,用于接收端口转发请求;
处理模块,用于对所述端口转发请求进行处理,得到端口转发资源;其中,所述端口转发资源为所述端口转发请求所请求转发的数据;
第一发送模块,用于利用ovsdb协议所建立的连接,将所述端口转发资源发送至所述OVN系统;
第二发送模块,用于通过所述OVN系统将所述端口转发资源发送至OpenVSwitch中,以转发所述端口转发资源。
9.一种终端,其特征在于,所述终端中安装有OpenStack的Neutron组件,所述Neutron组件通过ovsdb协议与OVN系统建立连接,包括:
处理器以及存储有所述处理器可执行指令的存储介质,所述存储介质通过通信总线依赖所述处理器执行操作,当所述指令被所述处理器执行时,执行上述的权利要求1至7任一项所述的资源转发方法。
10.一种计算机存储介质,其特征在于,存储有可执行指令,当所述可执行指令被一个或多个处理器执行的时候,所述处理器执行所述的权利要求1至7任一项所述的资源转发方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011083466.4A CN114338496B (zh) | 2020-10-12 | 2020-10-12 | 一种资源转发方法、装置、终端和计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011083466.4A CN114338496B (zh) | 2020-10-12 | 2020-10-12 | 一种资源转发方法、装置、终端和计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114338496A CN114338496A (zh) | 2022-04-12 |
CN114338496B true CN114338496B (zh) | 2023-09-05 |
Family
ID=81032675
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011083466.4A Active CN114338496B (zh) | 2020-10-12 | 2020-10-12 | 一种资源转发方法、装置、终端和计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114338496B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115378868B (zh) * | 2022-08-18 | 2023-09-19 | 中电云数智科技有限公司 | 一种基于snat资源池实现报文处理的系统及方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104767676A (zh) * | 2014-01-03 | 2015-07-08 | 华为技术有限公司 | Sdn网络中的数据报文转发方法和系统 |
CN105516091A (zh) * | 2015-11-27 | 2016-04-20 | 武汉邮电科学研究院 | 一种基于sdn控制器的安全流过滤器及过滤方法 |
KR20170021209A (ko) * | 2015-08-17 | 2017-02-27 | 주식회사 오픈시스넷 | 가상화 환경에서 http/2 프록시 게이트웨이 서버 제공 방법 |
CN107222411A (zh) * | 2017-07-28 | 2017-09-29 | 郑州云海信息技术有限公司 | 一种数据中心的网络互联方法及装置 |
CN108989086A (zh) * | 2018-06-20 | 2018-12-11 | 复旦大学 | OpenStack平台中的Open vSwitch违规端口操作自动发现与追溯系统 |
CN109120454A (zh) * | 2018-09-04 | 2019-01-01 | 山东浪潮云投信息科技有限公司 | 一种QoS流量限速系统及方法 |
CN109361602A (zh) * | 2018-11-12 | 2019-02-19 | 网宿科技股份有限公司 | 一种基于OpenStack云平台转发报文的方法和系统 |
WO2019140958A1 (zh) * | 2018-01-22 | 2019-07-25 | 西安中兴新软件有限责任公司 | 转发方法及设备、电子设备和存储介质 |
CN110875888A (zh) * | 2018-08-30 | 2020-03-10 | 中国电信股份有限公司 | 实现网络资源按需处理的方法、装置和云管理系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101465786B (zh) * | 2007-12-18 | 2013-01-09 | 华为技术有限公司 | 一种资源转发的方法、网络实体及网络系统 |
US9455901B2 (en) * | 2013-10-04 | 2016-09-27 | Nicira, Inc. | Managing software and hardware forwarding elements to define virtual networks |
-
2020
- 2020-10-12 CN CN202011083466.4A patent/CN114338496B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104767676A (zh) * | 2014-01-03 | 2015-07-08 | 华为技术有限公司 | Sdn网络中的数据报文转发方法和系统 |
KR20170021209A (ko) * | 2015-08-17 | 2017-02-27 | 주식회사 오픈시스넷 | 가상화 환경에서 http/2 프록시 게이트웨이 서버 제공 방법 |
CN105516091A (zh) * | 2015-11-27 | 2016-04-20 | 武汉邮电科学研究院 | 一种基于sdn控制器的安全流过滤器及过滤方法 |
CN107222411A (zh) * | 2017-07-28 | 2017-09-29 | 郑州云海信息技术有限公司 | 一种数据中心的网络互联方法及装置 |
WO2019140958A1 (zh) * | 2018-01-22 | 2019-07-25 | 西安中兴新软件有限责任公司 | 转发方法及设备、电子设备和存储介质 |
CN108989086A (zh) * | 2018-06-20 | 2018-12-11 | 复旦大学 | OpenStack平台中的Open vSwitch违规端口操作自动发现与追溯系统 |
CN110875888A (zh) * | 2018-08-30 | 2020-03-10 | 中国电信股份有限公司 | 实现网络资源按需处理的方法、装置和云管理系统 |
CN109120454A (zh) * | 2018-09-04 | 2019-01-01 | 山东浪潮云投信息科技有限公司 | 一种QoS流量限速系统及方法 |
CN109361602A (zh) * | 2018-11-12 | 2019-02-19 | 网宿科技股份有限公司 | 一种基于OpenStack云平台转发报文的方法和系统 |
Non-Patent Citations (1)
Title |
---|
刘秋妍 ; 张忠皓 ; 李佳俊 ; 吕华章 ; .面向5G新媒体行业的边缘云平台设计.信息通信技术.2019,(S1),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN114338496A (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11570244B2 (en) | Mirroring network traffic of virtual networks at a service provider network | |
US11336696B2 (en) | Control access to domains, servers, and content | |
CN106850324B (zh) | 虚拟网络接口对象 | |
CN110198334B (zh) | 基于对象存储服务的访问方法、装置和存储介质 | |
US20120291024A1 (en) | Virtual Managed Network | |
CN103118148B (zh) | 一种arp缓存更新方法和设备 | |
CN106878199B (zh) | 一种接入信息的配置方法和装置 | |
US7532620B2 (en) | Routing table synchronization method, network apparatus, and routing table synchronization program | |
WO2015143802A1 (zh) | 业务功能链处理方法及装置 | |
US20110173344A1 (en) | System and method of reducing intranet traffic on bottleneck links in a telecommunications network | |
US11997015B2 (en) | Route updating method and user cluster | |
US20190387051A1 (en) | Method, device and computer program product for managing network system | |
CN112887229A (zh) | 一种会话信息同步方法及装置 | |
US11711299B2 (en) | Traffic mirroring in hybrid network environments | |
CN114338496B (zh) | 一种资源转发方法、装置、终端和计算机存储介质 | |
CN114422160B (zh) | 一种虚拟防火墙的设置方法、装置、电子设备和存储介质 | |
CN112994928B (zh) | 一种虚拟机的管理方法、装置及系统 | |
US20070157158A1 (en) | Software implementation of hardware platform interface | |
CN113472625B (zh) | 基于移动互联网的透明桥接方法、系统、设备及存储介质 | |
US11563721B2 (en) | Methods and systems for network address translation (NAT) traversal using a meet-in-the-middle proxy | |
JP6426118B2 (ja) | 中継装置、中継方法及び中継プログラム | |
CN110830477A (zh) | 一种业务的识别方法、装置、网关、系统及存储介质 | |
EP3253004B1 (en) | Communication control device, communication control method, and communication control program | |
CN113114565B (zh) | 数据报文转发方法及装置、存储介质及电子设备 | |
WO2022174754A1 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |