一种开放流Openflow实例绑定方法及装置

文档序号:1965901 发布日期:2021-12-14 浏览:21次 >En<

阅读说明:本技术 一种开放流Openflow实例绑定方法及装置 (Open flow Openflow instance binding method and device ) 是由 张庆军 于 2021-08-31 设计创作,主要内容包括:本申请提供了一种开放流Openflow实例绑定方法及装置。该方法应用于控制器中,控制器针对多个Openflow实例,创建虚拟专用网络VPN实例,其中,每个VPN实例与Openflow流表相对应;绑定VPN实例与Openflow实例之间的对应关系。由此,实现了网络云场景中支持多个Openflow实例的效果。(The application provides an open flow Openflow instance binding method and device. The method is applied to a controller, the controller creates Virtual Private Network (VPN) instances aiming at a plurality of Openflow instances, wherein each VPN instance corresponds to an Openflow flow table; and binding the corresponding relation between the VPN instance and the Openflow instance. Therefore, the effect of supporting a plurality of Openflow instances in a network cloud scene is achieved.)

一种开放流Openflow实例绑定方法及装置

技术领域

本申请涉及通信技术领域,尤其涉及一种开放流Openflow实例绑定方法及装置。

背景技术

Openflow协议是SDN(Software Defined Network,软件定义网络)网络的一种通信协议,用于将控制平面和数据平面进行分离。每个用Openflow协议虚拟化得到的虚拟网络由支持Openflow协议的控制器(Controller)、支持Openflow协议的网络设备(Device)和安全通道(Secure Channel)组成。在通信过程中,需要网络设备与控制器建立连接,网络设备会向控制器上报属于Openflow控制的端口信息,然后控制器会根据收到的端口信息向网络设备下发流表,以使网络设备生成二三层转发表项等等。

在SDN网络中支持Openflow多实例场景,即,在网络设备上配置多个Openflow实例,网络设备上的一个Openflow实例可以连接多个控制器,同理,一个控制器也可以连接多个Openflow实例。基于此原理,现有SDN网络在进行Openflow实例划分时,是基于端口来实现的,例如,网络设备上有端口A和端口B,期望从端口A和端口B进入的报文匹配不同的Openflow流表项,为了实现该功能,现有技术的方案是将端口A与Openflow实例1(对应Openflow流表项1)建立绑定关系,然后将端口B与Openflow实例2(对应Openflow流表项2)建立绑定关系,这样一来,从端口A进入的报文会匹配到Openflow实例1的流表项1,而从端口B进入的报文会匹配到Openflow实例2的流表项2。

然而在网络云场景中,需要对公网和私网的流量分别进行处理,导致流表数量增加,这样就不利于网络云场景中支持多个Openflow实例,同时还不利于配置迁移和弹性扩缩容。

因此,如何在网络云场景中支持多个Openflow实例是值得考虑的技术问题之一。

发明内容

有鉴于此,本申请提供一种开放流Openflow实例绑定方法及装置,用以在网络云场景中支持多个Openflow实例。

具体地,本申请是通过如下技术方案实现的:

根据本申请的第一方面,提供一种开放流Openflow实例绑定方法,应用于控制器中,该方法,包括:

针对多个Openflow实例,创建虚拟专用网络VPN实例,其中,每个VPN实例与Openflow流表相对应;

绑定VPN实例与Openflow实例之间的对应关系。

可选地,绑定VPN实例与Openflow实例之间的对应关系,包括:

当新用户上线时,为所述新用户分配指定VPN实例;

建立所述指定VPN实例与指定Openflow实例之间的对应关系。

可选地,每个Openflow实例对应至少一个VPN实例。

可选地,本实施例提供的Openflow实例绑定方法,还包括:

向网络设备下发所述VPN实例对应的Openflow流表。

可选地,本实施例提供的Openflow实例绑定方法,还包括:

接收用户的业务报文;

基于VPN实例与Openflow实例之间的对应关系,确定所述用户所属的VPN实例对应的Openflow实例;

将所述业务报文发送给确定出的Openflow实例所属的网络设备,以使网络设备调用所述确定出的Openflow实例,根据所述用户所属的VPN实例对应的Openflow流表转发所述业务报文。

根据本申请的第二方面,提供一种开放流Openflow实例绑定装置,设置于控制器中,上述装置,包括:

创建模块,用于针对多个Openflow实例,创建虚拟专用网络VPN实例,其中,每个VPN实例与Openflow流表相对应;

绑定模块,用于绑定VPN实例与Openflow实例之间的对应关系。

可选地,上述绑定模块,具体用于当新用户上线时,为所述新用户分配指定VPN实例;建立所述指定VPN实例与指定Openflow实例之间的对应关系。

可选地,每个Openflow实例对应至少一个VPN实例。

可选地,本实施例提供的开放流Openflow实例绑定装置,还包括:

表项下发模块,用于向网络设备下发所述VPN实例对应的Openflow流表。

可选地,本实施例提供的开放流Openflow实例绑定装置,还包括:

接收模块,用于接收用户的业务报文;

确定模块,用于基于VPN实例与Openflow实例之间的对应关系,确定所述用户所属的VPN实例对应的Openflow实例;

发送模块,用于将所述业务报文发送给确定出的Openflow实例所属的网络设备,以使网络设备调用所述确定出的Openflow实例,根据所述用户所属的VPN实例对应的Openflow流表转发所述业务报文。

根据本申请的第三方面,提供一种电子设备,包括处理器和机器可读存储介质,机器可读存储介质存储有能够被处理器执行的计算机程序,处理器被计算机程序促使执行本申请实施例第一方面所提供的方法。

根据本申请的第四方面,提供一种机器可读存储介质,机器可读存储介质存储有计算机程序,在被处理器调用和执行时,计算机程序促使处理器执行本申请实施例第一方面所提供的方法。

本申请实施例的有益效果:

为每个Openflow实例创建VPN实例,然后绑定VPN实例与Openflow实例之间的对应关系,然后让Openflow流表与VPN实例相对应,而不再是现有技术中Openflow流表与Openflow实例对应,从而满足了网络云场景下的多Openflow实例化,即使得网络云场景下支持多个Openflow实例;此外,也就不会存在一个Openflow实例只绑定一个Openflow流表的情况,进而也就避免了Openflow流表的过度消耗。

附图说明

图1是本申请实施例提供的一种开放流Openflow实例绑定方法的流程示意图;

图2是本申请实施例提供的一种开放流Openflow实例绑定装置的结构示意图;

图3是本申请实施例提供的一种实施Openflow实例绑定方法的电子设备的硬件结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相对应的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

在介绍本申请提供的Openflow实例绑定方法之前,先对本申请涉及的技术术语进行说明:

Openflow协议虚拟化得到的每个网络由控制器、网络设备和安全通道构成,其中:

控制器,支持Openflow协议是虚拟网的控制中心,根据用户的配置或动态运行的协议生成Openflow流表并发送给网络设备。上述Openflow流表可以是控制器利用程序自动生成,也可以静态配置得到。该控制器上还可以运行其他程序或第三方软件等等。

网络设备,支持Openflow协议,用于接收控制器发送的Openflow流表,并根据Openflow流表进行报文处理;此外,网络设备还用于向控制器上报设备的状态和事件等,上述事件可以但不限于为接口的UP/DOWN事件。

安全通道,在控制器与网络设备之间通过预先配置的安全通道通信,该安全通道可以基于SSL(Secure Sockets Layer,安全套接层)配置。

下面对本申请提供的Openflow实例绑定方法进行详细地说明。

参见图1,图1是本申请提供的一种Openflow实例绑定方法的流程图,该方法可包括如下所示步骤:

S101、针对多个Openflow实例,创建虚拟专用网络VPN实例。

本步骤中,控制器针对所在虚拟网络中网络设备上的Openflow实例,创建VPN实例,且创建的每个VPN实例不同,一般体现在VPN实例的实例名称上,即,不同的VPN实例对应的实例名称不同。

此外,每个VPN实例与Openflow流表相对应,也就是说,每个VPN实例对应至少一个Openflow流表。

需要说明的是,创建的VPN实例的数量不低于Openflow实例的数量。

S102、绑定VPN实例与Openflow实例之间的对应关系。

本步骤中,待创建VPN实例后,可以绑定创建的VPN实例与Openflow实例之间的对应关系,这样一来,就能够基于VPN实例实现支持多个Openflow实例的目的,而且本申请中Openflow流表与VPN实例相对应,而不再是直接与Openflow实例对应,这样一来,也就不会存在一个Openflow实例只绑定一个Openflow流表的情况,进而也就避免了Openflow流表的过度消耗。此外,由于VPN实例的配置是固定的,只要VPN实例不变,网络设备上接口再多,也不会影响配置的迁移,同时,由于不再需要利用接口匹配Openflow实例,则增加或缩减接口也不会影响Openflow实例,而且也不需要增加配置,也即提升了扩缩容的能力。

可选地,在创建VPN实例时,创建的VPN实例的数量不低于Openflow实例的数量,因此,每个Openflow实例可以对应至少一个VPN实例。这样一来,每个Openflow实例可以管理一个或多个VPN实例,而每个VPN实例又可以与至少一个Openflow流表对应,使得Openflow实例对应的Openflow流表数量不再单一,从而提升了网络云场景中的多Openflow实例化,即使得网络云场景中支持更多的Openflow实例。

具体地,在绑定Openflow实例与VPN实例之间的对应关系时,可以根据负载均衡原则进行上述对应关系的绑定,或者根据业务类型进行上述对应关系的绑定。在根据负载均衡原则绑定时,可以将创建的VPN实例的数量均衡地分配给各个Openflow实例,然后绑定分配的VPN实例与对应Openflow实例之间的对应关系。在根据业务类型进行上述对应关系的绑定时,可以将相同业务类型的VPN实例分配给同一个Openflow实例上等等。当然,还可以采用其他的绑定方式,本申请对此不进行限定。

通过实施本申请提供的Openflow实例绑定方法,为每个Openflow实例创建VPN实例,然后绑定VPN实例与Openflow实例之间的对应关系,然后让Openflow流表与VPN实例相对应,而不再是现有技术中Openflow流表与Openflow实例对应,从而满足了网络云场景下的多Openflow实例化,即使得网络云场景下支持多个Openflow实例;此外,也就不会存在一个Openflow实例只绑定一个Openflow流表的情况,进而也就避免了Openflow流表的过度消耗。

可选地,在执行步骤S102时,还可以按照下述过程实施:当新用户上线时,为新用户分配指定VPN实例;建立指定VPN实例与指定Openflow实例之间的对应关系。

具体地,在创建VPN实例后,也可以先不建立绑定关系,待有新用户接入时,从创建的VPN实例中选一个VPN实例,即上述指定VPN实例,然后从各Openflow实例中选择一个Openflow实例,即上述指定Openflow实例,来为该新用户提供服务,然后绑定选择出来的指定VPN实例与指定Openflow实例之间的对应关系,同时记录该新用户的用户信息与为其分配的指定VPN实例之间的对应关系。由此一来,实现了网络云场景中的多Openflow实例化。

可选地,基于上述任一实施例,本实施例还提供了下述过程:向网络设备下发VPN实例对应的Openflow流表。

具体地,当绑定每个VPN实例与Openflow实例之间的对应关系后,针对每个VPN实例,就可以向网络设备中该VPN实例对应的Openflow实例下发该VPN实例对应的Openflow流表。这样一来,网络设备中每个Openflow实例就可以对应多个Openflow流表,不再是现有技术中基于接口的方式一个Openflow实例仅对应一个Openflow流表的方案,本申请提供的上述方案,能够大大减少了Openflow流表的消耗。

可选地,基于上述实施例,本申请还提供了下述方案:接收用户的业务报文;基于VPN实例与Openflow实例之间的对应关系,确定用户所属的VPN实例对应的Openflow实例;将业务报文发送给确定出的Openflow实例所属的网络设备,以使网络设备调用确定出的Openflow实例,根据用户所属的VPN实例对应的Openflow流表转发业务报文。

具体地,当控制器接收到用户发送的业务报文后,控制器可以从业务报文中解析出用户的用户信息,并根据用户信息确定出为该用户分配的VPN实例,即该用户所属的VPN实例;然后基于VPN实例与Openflow实例之间的对应关系,确定该用户所属的VPN实例对应的Openflow实例,并将该用户的业务报文转发个确定出的Openflow实例所属的网络设备,以使该网络设备接收到该业务报文后,调用上述确定出的Openflow实例查询用户所属VPN实例对应的Openflow流表,以转发该业务报文。由此实现了业务报文的转发。

需要说明的是,控制器在确定出Openflow实例后,可以在业务报文中加入确定出的Openflow实例的实例名称,这样一来,网络设备接收到上述业务报文后,可以解析出上述实例名称,然后调用上述确定出的Openflow实例查询用户所属VPN实例对应的Openflow流表,以转发该业务报文。

基于同一发明构思,本申请还提供了与上述开放流Openflow实例绑定方法对应的开放流Openflow实例绑定装置。该开放流Openflow实例绑定装置的实施具体可以参考上述对开放流Openflow实例绑定方法的描述,此处不再一一论述。

参见图2,图2是本申请一示例性实施例提供的一种开放流Openflow实例绑定装置,设置于控制器中,上述装置,包括:

创建模块201,用于针对多个Openflow实例,创建虚拟专用网络VPN实例,其中,每个VPN实例与Openflow流表相对应;

绑定模块202,用于绑定VPN实例与Openflow实例之间的对应关系。

可选地,基于上述实施例,本实施例中,上述绑定模块202,具体用于当新用户上线时,为所述新用户分配指定VPN实例;建立所述指定VPN实例与指定Openflow实例之间的对应关系。

可选地,基于上述任一实施例,本实施例中,每个Openflow实例对应至少一个VPN实例。

可选地,基于上述任一实施例,本实施例中的Openflow实例绑定装置,还包括:

表项下发模块(图中未示出),用于向网络设备下发所述VPN实例对应的Openflow流表。

进一步地,本实施例提供的Openflow实例绑定装置,还包括:

接收模块(图中未示出),用于接收用户的业务报文;

确定模块(图中未示出),用于基于VPN实例与Openflow实例之间的对应关系,确定所述用户所属的VPN实例对应的Openflow实例;

发送模块(图中未示出),用于将所述业务报文发送给确定出的Openflow实例所属的网络设备,以使网络设备调用所述确定出的Openflow实例,根据所述用户所属的VPN实例对应的Openflow流表转发所述业务报文。

通过设置本申请提供的Openflow实例绑定装置,为每个Openflow实例创建VPN实例,然后绑定VPN实例与Openflow实例之间的对应关系,然后让Openflow流表与VPN实例相对应,而不再是现有技术中Openflow流表与Openflow实例对应,从而满足了网络云场景下的多Openflow实例化,即使得网络云场景下支持多个Openflow实例;此外,也就不会存在一个Openflow实例只绑定一个Openflow流表的情况,进而也就避免了Openflow流表的过度消耗。

基于同一发明构思,本申请实施例提供了一种电子设备,该电子设备可以为上述控制器或网络设备。如图3所示,该电子流设备包括处理器301和机器可读存储介质302,机器可读存储介质302存储有能够被处理器301执行的计算机程序,处理器301被计算机程序促使执行本申请任一实施例所提供的开放流Openflow实例绑定取方法。此外,该电子设备还包括通信接口303和通信总线304,其中,处理器301,通信接口303,机器可读存储介质302通过通信总线304完成相互间的通信。

上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(Random Access Memory,RAM)、DDR SRAM(Double Data Rate Synchronous Dynamic Random Access Memory,双倍速率同步动态随机存储器),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

另外,本申请实施例提供了一种机器可读存储介质,机器可读存储介质存储有计算机程序,在被处理器调用和执行时,计算机程序促使处理器执行本申请实施例所提供的开放流Openflow实例绑定方法。

对于电子设备以及机器可读存储介质实施例而言,由于其涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

上述装置中各个单元/模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元/模块可以是或者也可以不是物理上分开的,作为单元/模块显示的部件可以是或者也可以不是物理单元/模块,即可以位于一个地方,或者也可以分布到多个网络单元/模块上。可以根据实际的需要选择其中的部分或者全部单元/模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

10页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:基于虚拟网卡的冗余网络通信方法、装置及终端设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!