掌桥专利:专业的专利平台
掌桥专利
首页

弹性网络接口ENI的配置方法及装置

文献发布时间:2023-06-19 18:32:25


弹性网络接口ENI的配置方法及装置

技术领域

本申请涉及计算机技术领域,尤其涉及一种弹性网络接口ENI的配置方法及装置。

背景技术

随着云技术的发展,租户在公有云上部署的虚拟设备承担着越来越大的业务流量,随之产生了采用负载均衡的方式将业务流量分散到多个虚拟设备上的诉求。但是,目前公有云场景适用的负载均衡方案较少,这限制了负载均衡技术在公有云上的应用。

发明内容

本申请实施例公开了一种弹性网络接口ENI的配置方法及装置,能够将公有云中的业务流量在多个虚拟设备上进行负载均衡,有利于负载均衡技术在公有云上的应用。

第一方面,本申请实施例提供一种弹性网络接口ENI的配置方法,该技术方案可以应用公有云中,假设该公有云包括云管理平台、租户在公有云上创建的至少一个虚拟私有云VPC以及租户在至少一个VPC上创建的多个虚拟设备,多个虚拟设备中的每个虚拟设备均绑定至少一个ENI(称作后端ENI),每个虚拟设备绑定后端ENI。在一种可能的实现方式中,该云管理平台可以是网络中的物理实体或物理实体中的装置(例如芯片或功能模块),或者,在一种可能的实现方式中,云管理平台可以是运行在物理实体中的虚拟设备(例如虚拟机或容器)等。

在本申请实施例中,云管理平台提供第一配置接口,所述第一配置接口用于获取租户输入的前端弹性网络接口ENI的配置信息,所述配置信息用于指示待创建的前端ENI需关联的多个后端ENI,其中每个后端ENI分别绑定至一个虚拟设备;所述云管理平台根据所述配置信息创建所述前端ENI,所述前端ENI与所述配置信息指示的所述多个后端ENI关联,所述前端ENI用于将发送至所述前端ENI的多个报文以负载均衡的方式转发至与所述前端ENI关联的多个后端ENI绑定的虚拟设备,从而实现将公有云中的业务流量以负载均衡的方式分散到公有云中的多个虚拟设备中,有利于丰富公有云场景适用的负载均衡方案,有利于推动负载均衡技术在公有云上的应用。

在一种可能的实现方式中,配置信息还用于指示负载均衡策略,所述前端ENI用于将发送至所述前端ENI的多个报文以所述配置信息指示的负载均衡策略转发至与所述前端ENI关联的多个后端ENI绑定的虚拟设备。租户通过向输入接口输入负载均衡测量,可以根据需求配置多个虚拟设备负载均衡的处理业务流量时所采用的负载均衡策略。

在一种可能的实现方式中,负载均衡策略包括针对所述多个报文需提取的报文信息类型。这样,租户通过向输入接口输入负载均衡策略,可以根据需求配置多个虚拟设备支持的负载均衡类型,例如支持IP三元组负载分担或支持TCP/UDP五元组负载分担。

在一种可能的实现方式中,负载均衡策略包括算法标识,所述算法标识指示负载均衡所采用的负载均衡算法。这样,租户通过向输入接口输入算法标识,可以根据需求配置负载均衡所采用的算法,有利于定制更加适合租户的应用场景的负载均衡策略,提高负载均衡效果。

在一种可能的实现方式中,所述配置信息包括所述多个后端ENI的权重,所述多个后端ENI中任意一个后端ENI的权重指示相应后端ENI在所述负载均衡中的权重。这样,租户通过向输入接口输入多个后端ENI的权重,可以根据虚拟设备的情况设置相应后端ENI的权重,例如为处理能力更强的虚拟设备对应的后端ENI设置更高的权重,以使处理能够更强的虚拟设备提高多个虚拟设备对业务流量的处理性能。

在一种可能的实现方式中,所述云管理平台提供第二配置接口,所述第二配置接口还用于获取所述租户输入的所述多个后端ENI中的一者或任意组合的故障状态;所述云管理平台设置所述前端ENI与发生故障状态的后端ENI取消关联,有利于避免向发生故障的虚拟设备发送第一报文,从而有利于避免后端虚拟设备异常影响前端业务,进而有利于提高多个虚拟设备所提供的业务服务的可用性。

在一种可能的实现方式中,所述接收模块还用于检测所述多个后端ENI绑定的虚拟设备的工作状态,所述工作状态包括故障状态和/或故障状态;所述云管理平台通知所述租户所述多个后端ENI绑定的虚拟设备的工作状态。

在一种可能的实现方式中,所述配置信息包括所述多个后端ENI的标识。

在一种可能的实现方式中,所述配置信息还用于指示所述前端ENI需关联的虚拟私有云VPC,所述云管理平台创建的所述前端ENI与所述配置信息指示的所述VPC关联,所述发送至所述前端ENI的多个报文为来自所述配置信息指示的所述VPC中的报文。

在一种可能的实现方式中,所述多个报文的目的地址为所述前端ENI的IP地址,或者,所述多个报文的下一跳是所述前端ENI的MAC地址。

在一种可能的实现方式中,所述配置信息还用于指示所述前端ENI需关联的弹性公网IP,所述云管理平台创建的所述前端ENI与所述配置信息指示的所述弹性公网IP关联,所述发送至所述前端ENI的多个报文的目的地址为所述弹性公网IP,有利于将来自公网的业务流量负载分担到公有云中的多个虚拟设备中,拓宽本申请实施例提供的负载均衡方案的应用场景。

在一种可能的实现方式中,所述多个虚拟设备包括虚拟机VM、容器和/或裸金属服务器,有利于实现多种类型的虚拟设备采用负载均衡的方式共同处理业务流量,从而有利于充分利用公有云上的虚拟设备资源。

在一种可能的实现方式中,所述多个虚拟设备用于实现如下至少一种设备的功能:代理设备、网络安全设备、路由器、交换机和网关。

在一种可能的实现方式中,所述输入接口包括配置界面、应用程序编程接口和输入模板中的至少一种。

本申请实施例第二方面提供一种公有云的报文转发方法,该方法可以应用于公有云场景,所述公有云场景包括云管理平台、租户创建的至少一个虚拟私有云VPC以及所述租户在所述至少一个VPC上创建的多个虚拟设备,该方法可以包括:转发装置接收前端ENI的转发信息,所述转发信息指示将发送至前端ENI的多个报文采用负载均衡的方式向关联的多个后端ENI绑定的虚拟设备进行转发;所述转发装置接收发送至所述前端ENI的多个报文;所述转发装置根据所述转发信息采用负载均衡的方式向所述多个后端ENI转发接收到的该多个报文。

在一种可能的实现方式中,所述转发信息指示根据配置信息中的策略信息所指示的负载均衡策略向所述多个后端ENI负载均衡的转发该多个报文,所述配置信息为云管理平台通过输入接口获取所述租户输入的信息。

关于配置信息或虚拟设备或输入接口的可能实现方式及有益效果可以参考第一方面的相关实现方式的内容,此处不再赘述。

第三方面,本申请提供了一种弹性网络接口ENI的配置装置,该ENI的配置装置可以为第一方面提到的云管理平台,或云管理平台中的装置,或者能够和云管理平台匹配使用的装置。该ENI的配置装置可以包括接收模块,用于获取租户输入的前端弹性网络接口ENI的配置信息,所述配置信息用于指示待创建的前端ENI需关联的多个后端ENI,其中每个后端ENI分别绑定至一个虚拟设备;还可以包括处理模块,用于根据所述配置信息创建所述前端ENI,所述前端ENI与所述配置信息指示的所述多个后端ENI关联,所述前端ENI用于将发送至所述前端ENI的多个报文以负载均衡的方式转发至与所述前端ENI关联的多个后端ENI绑定的虚拟设备。

在一种可能的实现方式中,配置信息还用于指示负载均衡策略,所述前端ENI用于将发送至所述前端ENI的多个报文以所述配置信息指示的负载均衡策略转发至与所述前端ENI关联的多个后端ENI绑定的虚拟设备。

在一种可能的实现方式中,负载均衡策略包括针对所述多个报文需提取的报文信息类型。

在一种可能的实现方式中,负载均衡策略包括算法标识,所述算法标识指示负载均衡所采用的负载均衡算法。

在一种可能的实现方式中,所述配置信息包括所述多个后端ENI的权重,所述多个后端ENI中任意一个后端ENI的权重指示相应后端ENI在所述负载均衡中的权重。

在一种可能的实现方式中,所述云管理平台提供第二配置接口,所述接收模块,还用于获取所述租户输入的所述多个后端ENI中的一者或任意组合的故障状态;所述处理模块,还用于设置所述前端ENI与发生故障状态的后端ENI取消关联。

在一种可能的实现方式中,所述接收模块,还用于检测所述多个后端ENI绑定的虚拟设备的工作状态,所述工作状态包括故障状态和/或故障状态;所述处理模块,还用于通知所述租户所述多个后端ENI绑定的虚拟设备的工作状态。

在一种可能的实现方式中,所述配置信息包括所述多个后端ENI的标识。

在一种可能的实现方式中,所述配置信息还用于指示所述前端ENI需关联的虚拟私有云VPC,所述云管理平台创建的所述前端ENI与所述配置信息指示的所述VPC关联,所述发送至所述前端ENI的多个报文为来自所述配置信息指示的所述VPC中的报文。

在一种可能的实现方式中,所述多个报文的目的地址为所述前端ENI的IP地址,或者,所述多个报文的下一跳是所述前端ENI的MAC地址。

在一种可能的实现方式中,所述配置信息还用于指示所述前端ENI需关联的弹性公网IP,所述云管理平台创建的所述前端ENI与所述配置信息指示的所述弹性公网IP关联,所述发送至所述前端ENI的多个报文的目的地址为所述弹性公网IP,有利于将来自公网的业务流量负载分担到公有云中的多个虚拟设备中,拓宽本申请实施例提供的负载均衡方案的应用场景。

在一种可能的实现方式中,所述多个虚拟设备包括虚拟机VM、容器和/或裸金属服务器,有利于实现多种类型的虚拟设备采用负载均衡的方式共同处理业务流量,从而有利于充分利用公有云上的虚拟设备资源。

在一种可能的实现方式中,所述多个虚拟设备用于实现如下至少一种设备的功能:代理设备、网络安全设备、路由器、交换机和网关。

在一种可能的实现方式中,所述输入接口包括配置界面、应用程序编程接口和输入模板中的至少一种。

第二方面和第二方面中任意一种可能的实现方式的有益效果可以分别参考第一方面和第一方面中相关实现方式的有益效果进行理解,此处不再赘述。

第四方面,本申请提供了一种网络设备,该网络设备可以为第二方面提到的转发装置,或能够和转发装置匹配使用的装置。该网络设备包括接收模块,用于接收前端ENI的转发信息,所述转发信息指示采用负载均衡的方式向多个后端ENI转发第一报文,所述第一报文为发送至所述前端ENI的报文,所述多个后端ENI分别绑定所述多个虚拟设备。该接收模块还用于接收发送至所述前端ENI的报文。还包括处理模块,用于根据所述转发信息采用负载均衡的方式向所述多个后端ENI转发接收到的发送至所述前端ENI的报文。

在一种可能的实现方式中,所述转发信息指示根据ENI信息中的策略信息所指示的负载均衡策略向所述多个后端ENI负载均衡的转发所述第一报文,所述ENI信息为云管理平台通过输入接口获取所述租户输入的信息。

关于ENI信息或虚拟设备或输入接口的可能实现方式及有益效果可以参考第二方面的相关实现方式的内容,此处不再赘述。

第五方面,本申请提供一种计算设备,该计算设备包括处理器和存储器,该处理器和该存储器耦合,该存储器用于存储程序代码,该处理器执行该存储器中存储的程序代码时,能够执行第一方面或第一方面的任意一种可能的实现方式或第二方面或第二方面的任意一种可能的实现方式所描述的方法。

在一种可能的实现方式中,该计算设备还可以包括通信接口,该处理器通过该通信接口例如能够接收或发送报文等。

本申请第六方面提供了一种芯片系统,该芯片系统包括处理器和接口电路,该处理器通过该接口电路与存储器耦合,该处理器用于执行该存储器中的程序代码,以执行第一方面或第一方面的任意一种可能的实现方式所描述的方法。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。

本申请第七方面提供一种计算机可读存储介质,该计算机可读存储介质中存储了程序代码,这些程序代码在计算机设备上运行时,使得计算机设备执行如本申请能够执行第一方面或第一方面的任意一种可能的实现方式或第二方面或第二方面的任意一种可能的实现方式所描述的方法。

本申请第八方面提供一种计算机程序产品,该计算机程序产品包含的程序代码被计算机设备执行时,以实现如本申请能够执行第一方面或第一方面的任意一种可能的实现方式或第二方面或第二方面的任意一种可能的实现方式所描述的方法。

由于本申请提供的各装置可用于执行前述对应的方法,因此本申请各装置所能获得到的技术效果可参考前述对应的方法所获得的技术效果,此处不再赘述。

附图说明

图1是本申请公有云场景一种可能的示意图;

图2是ELB场景一种可能的示意图;

图3A是本申请公有云场景另一种可能的示意图;

图3B是本申请弹性网络接口ENI的配置方法一种可能的流程图;

图4A示例性示出了本申请实施例提供的ENI的几种可能属性;

图4B示例性示出了本申请实施例提供的前端ENI关联的后端ENI几种可能属性;

图4C是本申请实施例提供的第一配置界面一种可能的示意图;

图4D是本申请实施例提供的第二配置界面一种可能的示意图;

图5A是本申请公有云场景另一种可能的示意图;

图5B是本申请公有云场景另一种可能的示意图;

图5C是本申请公有云场景另一种可能的示意图;

图6是本申请报文转发方法一种可能的流程图;

图7A是本申请前端ENI的转发信息一种可能的示意图;

图7B是本申请报文转发方法涉及的报文一种可能的示意图;

图8是本申请网络设备一种可能的结构示意图;

图9是本申请计算设备一种可能的示意图。

具体实施方式

首先,对本申请中所涉及的部分用语和相关技术进行解释说明,以便于本领域技术人员理解。

虚拟私有云(virtual private cloud,VPC)是一个公共云计算资源的动态配置池,需要使用加密协议、隧道协议和其它安全程序,在企业和云服务提供商之间传输数据。VPC为弹性云服务器构建隔离的、用户自主配置和管理的虚拟网络环境,提升用户云中资源的安全性,简化用户的网络部署,可以在VPC中定义安全组、虚拟专用网(virtual privatenetwork,VPN)、网际互连协议(internet protocol,IP)地址段、带宽等网络特性,租户可以通过VPC方便的管理、配置内部网络,进行安全快捷的网络变更。

弹性网络接口(elastic network interface,ENI)是VPC中的一个逻辑网络组件,代表虚拟网卡,ENI是绑定私有网络内云服务器的一种弹性网络接口,可在多个云服务器间自由迁移,可以在云服务器上绑定多个网卡实现高可用网络或者在弹性网卡上绑定多个内网IP,实现单主机多IP部署。

虚拟机(virtual machine,VM)是指通过软件模型的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。实体计算机中能够完成的工作在VM中都能够实现,在创建VM时,需要将实体计算机的部分硬盘和内存容量作为VM的硬盘和容量,每个VM都有独立的硬盘和操作系统等,可以像使用实体机一样对虚拟机进行操作。

容器(container)是计算机操作系统中的一种虚拟化技术,该技术使得进程运行于相对独立和隔离的环境(包含独立的文件系统、命名空间、资源视图等),从而能够简化软件的部署流程,增强软件的可移植性和安全性,提高系统资源的利用率,容器技术广泛应用于云计算领域的服务化场景。

本发明实施例所述的虚拟设备可以是虚拟机或容器或裸金属服务器。

云管理平台功能:提供访问接口,租户可操作客户端远程接入访问接口在云管理平台注册云账号和密码,并登录云管理平台,云管理平台对云账号和密码鉴权成功后,租户可进一步在云管理平台付费选择并购买特定规格(处理器、内存、磁盘)的虚拟机,付费购买成功后,云管理平台提供所购买的虚拟机的远程登录账号密码,客户端可远程登录该虚拟机,在该虚拟机中安装并运行租户的应用。

云管理平台逻辑功能划分:用户控制台、计算管理服务、网络管理服务、存储管理服务、鉴权服务、镜像管理服务。用户控制台提供界面或API与租户交互,计算管理服务用于管理运行虚拟机和容器的服务器以及裸金属服务器,网络管理服务用于管理网络服务(如网关、防火墙等),存储管理服务用于管理存储服务(如数据桶服务),鉴权服务用于管理租户的账号密码,镜像管理服务用于管理虚拟机镜像。

图1示出了本申请实施例适用的一种可能的公有云场景。如图1所示,该公有云场景包括数据中心10、互联网20和客户端30。其中,数据中心10包括云管理平台11、数据中心内部网络12、主机13、主机14和主机15。其中,主机13中部署了虚拟交换机131、虚拟设备1321和虚拟设备1322,主机14中部署了虚拟交换机141、虚拟设备1421和虚拟设备1422,主机15中部署了虚拟交换机151、虚拟设备1521和虚拟设备1522。

图1中设备间的连线用于表示相应设备间的通信连接,例如,参考图1,客户端30通过互联网20与云管理平台11之间建立有通信连接,云管理平台11和数据中心内部网络12之间建立有通信连接,数据中心内部网络12分别与虚拟交换机131、虚拟交换机141和虚拟交换机151之间建立有通信连接。需要说明书的是,图1中设备间的连线不限定相连的两个设备之间直连,例如,云管理平台11与互联网20之间可以通过一个或多个网络设备相连,该一个或多个网络设备包括但不限于网关、交换机和路由器中的至少一种网络设备。

虚拟设备1321、虚拟设备1322、虚拟设备1421、虚拟设备1422、虚拟设备1521和虚拟设备1522可以为租户通过云管理平台11提供的访问接口创建的,并且,租户可以通过云管理平台11提供的访问接口为各虚拟设备设置所在的VPC。云管理平台11提供的访问接口包括但不限于配置界面、应用程序编程接口(application programming interface,API)和输入模板中的至少一种。

虚拟设备1321、虚拟设备1322、虚拟设备1421、虚拟设备1422、虚拟设备1521和虚拟设备1522可以设置在同一VPC中或设置在多个VPC中。租户可通过云管理平台11提供的配置接口设置VPC的私网网段。租户可通过云管理平台提供的配置接口进一步设置各虚拟设备在相应VPC的私网地址。

图1中填充斜线的矩形代表租户通过云管理平台11创建的绑定相应虚拟设备的ENI。在本申请实施例中,将绑定虚拟设备的ENI称作后端ENI。图1所示的每个虚拟设备通过绑定的后端ENI与对应的虚拟交换机建立有通信连接。例如,参考图1,虚拟设备1321通过绑定的后端ENI 1331与虚拟交换机131建立有通信连接。

在一种可能的实现方式中,虚拟设备1321、虚拟设备1322、虚拟设备1421、虚拟设备1422、虚拟设备1521和虚拟设备1522包括但不限于虚拟机、容器和裸金属服务器中的至少一种虚拟设备。其中,虚拟机也可称为云服务器(elastic compute service,ECS)或弹性实例(不同的云服务提供商有不同的叫法)。在一种可能的实现方式中,虚拟设备1321、虚拟设备1322、虚拟设备1421、虚拟设备1422、虚拟设备1521和虚拟设备1522中的至少一个虚拟设备可以为网络功能虚拟化(Network Functions Virtualization,NFV)的虚拟设备。

在一种可能的实现方式中,虚拟设备1321、虚拟设备1322、虚拟设备1421、虚拟设备1422、虚拟设备1521和虚拟设备1522中的至少一个虚拟设备可以用于实现如下至少一种设备的功能:代理设备、网络安全设备、路由器、交换机和网关。

图1仅示例性示出本申请实施例适用的一种可能的公有云场景,本申请实施例适用的公有云场景可以包括比图1更多或更少的设备,例如,可以包括更多的主机或虚拟设备或网络设备。

随着云技术的发展,租户在公有云场景中部署的虚拟设备承担着越来越大的业务流量,随之产生了采用负载均衡的方式将业务流量分散到多个虚拟设备上的诉求。目前公有云场景适用的负载均衡方案较少,这限制了负载均衡技术在公有云上的应用。

弹性负载均衡(elastic load balance,ELB)是目前常用的负载均衡技术。图2示出了ELB一种可能的网络架构。下面结合图2举例介绍ELB一种可能的应用过程。参考图2,访问端21向ELB服务器22发送报文,该报文的目的IP地址为ELB服务器22的IP地址(例如10.1.0.3)。ELB服务器22接收到该报文后,按照负载均衡策略从业务服务器集群23中选择一个业务服务器i,n为正整数,i为小于或等于n的任意一个正整数。之后,ELB服务器22将该报文的目的IP地址改为业务服务器i的IP地址(例如10.100.0.6)。需要说明的是,图2仅作为举例,本申请实施例不限定ELB服务器22仅用于为来自一个访问端的流量执行负载均衡。

采用ELB解决上述图1对应的公有云场景的诉求时,图2所示的ELB服务器22对应于公有云ELB云服务器,业务服务器集群23对应于公有云上的虚拟设备集群(例如虚拟设备1421、虚拟设备1521和虚拟设备1522,举例而言该些虚拟设备可提供相同的服务,例如网页服务、数据库服务、购物服务或视频服务)。公有云上的虚拟设备集群需要挂在公有云ELB云服务器的后端,由ELB服务器22将来自访问端21的报文通过负载均衡算法发送到虚拟设备集群23的一个虚拟设备,在来自至少一个客户端的报文数量较多时,ELB服务器22根据预设规则将多个报文分别发送至虚拟设备集群23的不同虚拟设备进行处理,从而保证针对大量报文的处理速度,其中预设规则例如负载均衡算法、或随机选择,保证多个报文较为平均地发送至虚拟设备集群23每个虚拟设备。ELB服务器22向后端虚拟设备集群23转发报文时,需将报文的目的IP地址修改为选择的虚拟设备的IP地址,虚拟设备对接收到的报文进行处理后,将无法进一步向其他设备转发该报文,相当于对业务流量进行了终结。可见,ELB方案难以满足转发业务对负载均衡的需求。

为了丰富公有云场景适用的负载均衡方案,本申请实施例提供了一种弹性网络接口ENI的配置方法、报文转发方法及装置。

首先,本申请实施例提供两种类型的ENI。其中,一种类型的ENI用于绑定虚拟设备,本申请实施例将绑定虚拟设备的ENI称作后端ENI。其中,另一种类型的ENI用于绑定后端ENI,本申请实施例将绑定后端ENI的ENI称作前端ENI,前端ENI可以用于绑定一个或多个后端ENI。前端ENI用于将发送至前端ENI的多个报文以负载均衡的方式转发至与前端ENI关联的多个后端ENI绑定的虚拟设备。

以前端ENI绑定多个后端ENI为例,图3A示出了本申请实施例提供的两种ENI的示意图。参考图3A,前端ENI对应于图3A所示的前端ENI 31,后端ENI对应于后端ENI 1、……、后端ENI j,……,和后端ENI m,其中,m为大于或等于2的正整数,j为小于或等于m的任意一个正整数。参考图3A,后端ENI j绑定虚拟设备j,虚拟设备j可以为虚拟机或容器或裸金属服务器,前端ENI 31分别绑定后端ENI 1、……、后端ENI j,……,和后端ENI m。

前端ENI绑定多个后端ENI时,绑定的多个后端ENI可以设置在同一VPC中,或者,也可以设置在不同VPC中。以图3A所示的ENI为例,后端ENI 1、……、后端ENI j,……,和后端ENI m可以均设置在同一个VPC中,或者,后端ENI 1、……、后端ENI j,……,和后端ENI m可以设置在多个VPC中,例如,后端ENI 1和后端ENI m分别设置在两个VPC中。

前端ENI绑定多个后端ENI时,绑定的多个后端ENI所绑定的虚拟设备可以为同一类型的虚拟设备,或者,也可以为不同类型的虚拟设备。以图3A所示的ENI为例,虚拟设备1、……、虚拟设备j,……,和虚拟设备m可以为同一类型的虚拟设备,例如,均为虚拟机或容器或裸金属服务器,或者,虚拟设备1、……、虚拟设备j,……,和虚拟设备m至少对应于两种不同类型的虚拟设备,例如,虚拟设备1为虚拟机,虚拟设备m为容器。

前端ENI绑定多个后端ENI时,可选的,绑定的多个后端ENI所绑定的虚拟设备用于实现相同功能,例如用于实现如下设备中至少一种设备的功能:代理设备、网络安全设备、路由器、交换机和网关。

在一种可能的实现方式中,图3A所示的后端ENI j可以参考图1中填充斜线的矩形所代表的后端ENI进行理解。假设m为3,作为举例,图3A所示的虚拟设备1、虚拟设备2和虚拟设备3可以分别为图1中的虚拟设备1421、虚拟设备1521和虚拟设备1522,后端ENI 1、后端ENI 2和后端ENI 3可以分别为图1中的后端ENI 1431、后端ENI 1531和后端ENI 1532。

下面结合说明书附图介绍ENI的配置方法。

图3B为本申请实施例提供的一种弹性网络接口ENI的配置方法的流程示意图。如图3B所示,该方法包括但不限于步骤S301和步骤S302。

S301.云管理平台提供第一配置接口;

可选的,云管理平台例如为图1中的云管理平台11。

云管理平台可以向租户提供第一配置接口,租户可操作客户端(例如图1中的客户端30)远程接入第一配置接口。第一配置接口用于获取租户输入的前端ENI的配置信息,配置信息用于指示待创建的前端ENI需关联的多个后端ENI。该第一配置接口可以包括但不限于配置界面、应用程序编程接口(application programming interface,API)和输入模板中的至少一种。

S302.云管理平台根据配置信息创建前端ENI;

云管理平台通过第一配置接口可以获取租户输入的前端ENI的配置信息,之后根据获取的配置信息创建前端ENI。创建的前端ENI与配置信息指示的多个后端ENI关联,前端ENI用于将发送至前端ENI的多个报文以负载均衡的方式转发至与前端ENI关联的多个后端ENI绑定的虚拟设备。

云管理平台提供的ENI可以具有一种或多种属性。图4A示例性示出了ENI几种可能的属性,可选的,本申请实施例提供的后端ENI可以包括但不限于图4A所示的至少一种属性。以第一配置接口为配置界面(称作第一配置界面)为例,图4C示例性示出了第一配置界面一种可能的形式。第一配置接口可以用于获取租户对待创建的ENI配置的属性的参数值。云管理平台可以根据第一配置接口获取的属性的参数值来创建相应ENI。

下面结合图4A分别介绍ENI几种可能的属性。

可选的,ENI的属性可以包括接口类型,接口类型的至少一个参数值用于指示前端ENI。参考图4A中的行a1,例如,接口类型的参数值的形式为字符串,作为举例,ENI的接口类型的可选参数值包括“Port”、“Subport”和“Castport”。其中,“Port”代表绑定虚拟机的后端ENI(又可称作主接口),“Subport”代表绑定容器的后端ENI(又可称作SubENI或子接口),“Castport”代表绑定前端ENI,例如,前端ENI可以绑定接口类型的参数值为“Port”的主接口或接口类型为“Subport”的子接口。参考图4C中的行1,第一配置界面可以用于获取租户对待创建的ENI配置的接口类型的参数值。参考图4C,假设租户在第一配置界面中将接口类型设置为“CastENI”,云管理平台获取第一配置界面对应的配置信息后,可以为租户创建前端ENI。

可选的,前端ENI的属性可以包括成员组,成员组的参数值用于指示前端ENI需关联的多个后端ENI(每个后端ENI可以理解为成员组中的一个成员)。该属性可以在接口类型的参数值为“CastENI”时有效。参考图4A中的行a2,例如,成员组的参数值的形式为列表,具体的,成员组的参数值包括前端ENI关联的各个后端ENI(或称成员)的属性的参数值。

图4B示例性示出了后端ENI几种可能的属性。前端ENI关联的后端ENI可以包括但不限于图4B所示的至少一种属性。

可选的,前端ENI关联的后端ENI的属性可以包括成员标识,成员标识的参数值为相应后端ENI(或称成员端口)标识。后端ENI可以为用于绑定虚拟机的主接口或用于绑定容器的子接口。参考图4B中的行b1,成员标识的参数值的形式可以为字符串。可选的,成员标识的参数值可以是相应后端ENI的IP地址和/或MAC地址。参考图4C中的行5、行8和行11,第一配置界面可以用于获取租户对待创建的前端ENI配置的成员标识的参数值。参考图4C,假设租户在第一配置界面中配置的成员组包括3个后端ENI,其成员标识的参数值分别为1431(假设对应于图1所示的后端ENI 1431)、1531(假设对应于图1所示的后端ENI 1531)和1532(假设对应于图1所示的后端ENI 1532)。相应的,成员组的参数值可以包括行5、行8和行11。云管理平台获取第一配置界面对应的配置信息后,可以创建关联于后端ENI 1431、后端ENI1531和后端ENI 1532的前端ENI,并且,前端ENI用于将发送至前端ENI的多个报文以负载均衡的方式转发至与后端ENI 1431、后端ENI 1531和后端ENI 1532绑定的虚拟设备,即虚拟设备1421、虚拟设备1521和虚拟设备1522。

可选的,前端ENI关联的后端ENI的属性可以包括名称,名称的参数值为相应后端ENI(或称成员端口)的名称。可选的,第一配置界面可以获取租户设置的与前端ENI绑定的后端ENI的名称的参数值。或者,可选的,第一配置界面获取租户配置的成员标识的参数值后,云管理平台可以自动获取相应后端ENI的名称,并对相应后端ENI的名称的参数值进行设置。

可选的,前端ENI关联的后端ENI的属性可以包括权重,权重的参数值指示相应后端ENI在负载均衡中的权重。参考图4B中的行b3,权重的参数值可以为整数,取值范围例如为[0,100]。某个后端ENI的权重的参数值为0表示该后端ENI不再接收新的流量。参考图4C中的行6、行9和行12,第一配置界面可以用于获取租户对待创建的前端ENI配置的权重的参数值。参考图4C,假设租户在第一配置界面中为后端ENI 1431配置的权重的参数值为1,为后端ENI 1531配置的权重的参数值为1,为后端ENI 1532配置的权重的参数值为2。相应的,成员组的参数值可以包括行6、行9和行12。云管理平台获取第一配置界面对应的配置信息后,可以将前端ENI关联的后端ENI 1431、后端ENI 1531和后端ENI 1532的权重配置为1、1和2,并且,前端ENI用于将发送至前端ENI的多个报文按照该权重以负载均衡的方式转发至与后端ENI 1431、后端ENI 1531和后端ENI 1532绑定的虚拟设备,即虚拟设备1421、虚拟设备1521和虚拟设备1522,相应的,多个报文中转发至虚拟设备1421和虚拟设备1521的报文数目接近甚至相同,转发至虚拟设备1522的报文数目接近转发至虚拟设备1421或虚拟设备1521的报文数目的2倍。

可选的,前端ENI关联的后端ENI的属性可以包括管理状态,管理状态的参数值指示相应后端ENI是否参与转发到达前端ENI的报文。参考图4B中的行b4,管理状态的参数值可以为字符串,可选参数值例如包括“UP”和“DOWN”。其中,“UP”代表相应后端ENI参与转发到达前端ENI的报文,“DOWN”代表相应后端ENI不参与转发到达前端ENI的报文。在一种可能的实现方式中,管理状态用于指示相应后端ENI或相应后端ENI绑定的虚拟设备的故障状态,例如,“UP”代表未发生故障,“DOWN”代表发生故障。参考图4C中的行7、行10和行13,第一配置界面可以用于获取租户对待创建的前端ENI配置的管理状态的参数值。参考图4C,假设租户在第一配置界面中为后端ENI 1431、后端ENI 1531和后端ENI 1532配置的管理状态的参数值分别为“UP”、“UP”和“UP”。相应的,成员组的参数值可以包括行7、行10和行13。例如,成员组的参数值对应于行5至行13。云管理平台获取第一配置界面对应的配置信息后,可以将前端ENI关联的后端ENI 1431、后端ENI 1531和后端ENI 1532的管理状态的参数值分别配置为“UP”、“UP”和“UP”,前端ENI与后端ENI 1431、后端ENI 1531和后端ENI 1532均关联。

在一种可能的实现方式中,在步骤S302之后,图3B对应的实施例方法还可以包括步骤S303和步骤S304。

S303.云管理平台提供第二配置接口;

其中,第二配置接口用于获取租户输入的后端ENI的故障状态。本申请实施例不限定租户向第二配置接口输入前端ENI关联的所有ENI的故障状态,例如,第二配置接口用于获取租户输入的多个后端ENI中的一者或任意组合的故障状态。可选的,第二配置接口包括配置界面、应用程序编程接口和输入模板中的至少一种。

S304.云管理平台设置前端ENI与发生故障状态的后端ENI取消关联;

以第二配置接口为配置界面(称作第二配置界面)为例,假设云管理平台获取图4C所示的第一配置界面对应的配置信息后,创建前端ENI,之后可以向租户提供图4D所示的第二配置界面,租户可以在图4D所示的第二配置界面中设置后端ENI 1431、后端ENI 1531和后端ENI 1532的管理状态的参数值,分别为“UP”、“UP”和“DOWN”。云管理平台获取第二配置界面对应的配置信息后,可以将前端ENI关联的后端ENI 1431、后端ENI 1531和后端ENI1532的管理状态的参数值分别配置为“UP”、“UP”和“DOWN”,并且,云管理平台设置前端ENI与后端ENI 1532(即发生故障状态的后端ENI)取消关联。这样,发送至前端ENI的报文将不再负载分担至后端ENI 1532绑定的虚拟设备1522。

在一种可能的实现方式中,管理状态为故障状态,故障状态的参数值例如可以指示相应后端ENI或相应后端ENI绑定的虚拟设备的故障状态。

在一种可能的实现方式中,在步骤S302之后,在步骤S303之前,图3B对应的实施例方法还可以包括步骤S305和步骤S306。

S305.云管理平台检测多个后端ENI绑定的虚拟设备的工作状态;

其中,工作状态可以包括后端ENI或后端ENI绑定的虚拟设备的故障状态和/或故障状态;

S306.云管理平台通知租户多个后端ENI绑定的虚拟设备的工作状态。

之后,租户可以根据云管理平台的通知向第二配置接口输入多个后端ENI中的一者或任意组合的故障状态。

除了以上介绍的ENI的属性,可选的,ENI的属性可以包括负载均衡类型,云管理平台根据负载均衡类型的参数值用于指示负载均衡策略。该属性可以在接口类型的参数值为“CastENI”时有效。根据负载均衡类型的参数值创建的前端ENI可以用于将发送至前端ENI的多个报文以相应负载均衡策略转发至与前端ENI关联的多个后端ENI绑定的虚拟设备。可选的,负载均衡策略包括针对多个报文需提取的报文信息类型和/或负载均衡算法。参考图4A中的行a2,例如,负载均衡类型的参数值的形式为字符串,作为举例,负载均衡类型的可选参数值包括“UCMP_L3”和“UCMP_L4”。其中,“UCMP_L3”代表三层非平衡链路负载均衡(Unequal Cost Multiple Path,UCMP)转发,“UCMP_L4”代表四层UCMP转发。参考图4C中的行4,第一配置界面可以用于获取租户对待创建的前端ENI的负载均衡类型的参数值。参考图4C,假设租户在第一配置界面中将负载均衡类型的参数值设置为“UCMP_L3”,云管理平台获取第一配置界面对应的配置信息后,可以将创建的前端ENI的负载均衡类型设置为三层UCMP转发,前端ENI用于依据发送至该前端ENI的多个报文中的三元组将多个报文以UCMP的负载均衡方式转发至与前端ENI关联的多个后端ENI绑定的虚拟设备。

以上介绍了第一配置接口可以用于获取ENI的属性的参数值,在一种可能的实现方式中,第一配置接口还可以用于获取ENI的其他相关信息。

可选的,第一配置接口对应的配置信息还用于指示前端ENI需关联的VPC。参考图4C的行2,第一配置界面还用于获取子网信息的参数值,假设该参数值为前端ENI需关联的VPC的标识。图4C未具体示出关联的子网信息的参数值,而是以“VPC标识”表示。云管理平台获取子网信息的参数值后,可以将前端ENI与第一配置接口对应的配置信息指示的VPC关联。例如,云管理平台可以向配置信息指示的VPC对应的转发面下发前端ENI的转发信息。从而,前端ENI可以用于将来自与前端ENI关联的VPC中的虚拟设备的多个报文以负载均衡的方式转发至与前端ENI关联的多个后端ENI绑定的虚拟设备。

在一种可能的实现方式中,该转发信息可以指示将发送至前端ENI的多个报文采用负载均衡的方式向前端ENI关联的多个后端ENI所绑定的虚拟设备进行转发。参考图5A,假设前端ENI的转发信息如虚线的梯形所示,分别下发到虚拟交换机131、虚拟交换机141和虚拟交换机151上,并且,该前端ENI关联于后端ENI 1431、后端ENI 1531和后端ENI 1532。参考图5A中带箭头的线段,虚拟设备1321发出的多个报文到达虚拟交换机131后,虚拟交换机131根据前端ENI的转发信息,采用负载均衡的方式向后端ENI 1431、后端ENI 1531和后端ENI 1532进行转发,从而实现虚拟设备1421、虚拟设备1521和虚拟设备1522负载均衡的处理来自虚拟设备1321的多个报文。本申请实施例不限定前端ENI仅用于处理来自一个虚拟设备的报文,可选的,可以用于处理来自多个虚拟设备的报文。

后文将具体介绍转发信息的可能形式,此处暂不展开介绍。

在一种可能的实现方式中,多个报文的目的地址为前端ENI的IP地址,或者,多个报文的下一跳是前端ENI的MAC地址。

租户通过第一配置接口创建关联图1所示的后端ENI 1431、后端ENI 1531和后端ENI1532后,假设租户希望利用虚拟设备1421、虚拟设备1521和虚拟设备1522以负载均衡的方式的处理来自虚拟设备1321的业务流量,租户可以将该业务流量的目的地址设置为前端ENI的地址,或者,在前端ENI关联的VPC中将该业务流量的下一跳设置为前端ENI的MAC地址。这样,转发面接收到该业务流量后,可以根据前端ENI的转发信息将该业务流量负载均衡的转发至绑定的后端ENI 1431、后端ENI 1531和后端ENI 1532,进而由虚拟设备1421、虚拟设备1521和虚拟设备1522负载均衡的处理该业务流量。

可选的,第一配置接口对应的配置信息还用于指示前端ENI需关联的弹性公网IP(elastic IP,EIP),云管理平台获取到配置信息后,不仅向转发面下发前端ENI的转发信息,还将创建的前端ENI与配置信息指示的EIP关联。例如,云管理平台可以指示转发面记录该EIP与前端ENI的对应关系,来自外网的客户端访问该EIP,发送目的IP地址为该EIP的多个报文,该多个报文在互联网中路由到数据中心后,数据中心的转发面(例如NAT网关)可以根据EIP识别出该多个报文要发送给该前端ENI,之后可以根据前端ENI的转发信息将多个报文以负载均衡的方式转发至与前端ENI关联的多个后端ENI绑定的虚拟设备。

下面分析前述技术方案带来的有益效果。

本申请实施例中,云管理平台可以通过第一配置接口获取租户输入的前端ENI的配置信息,根据前端ENI的配置信息创建绑定多个后端ENI的前端ENI,以实现多个后端ENI对应的多个虚拟设备负载均衡的处理发送至前端ENI的报文。可见,本申请实施例提供了一种适用于公有云的负载均衡方案,有利于负载均衡技术在公有云上的应用。

并且,由于本申请实施例提供的负载均衡方案是通过转发面根据前端ENI的转发信息转发报文而实现的,因此,本申请实施例提供的负载均衡方案有利于保持报文中的源IP地址和目的IP地址。和现有负载均衡方案(例如ELB)相比,本申请实施例提供的负载均衡方案不仅同样适用于负载均衡的虚拟设备对业务流量进行终结并处理的场景,还适用于负载均衡的虚拟设备对业务流量进行转发的场景。

例如参考图5B,访问端(例如为图2所示的访问端21或图5A所示的虚拟设备1321)通过绑定的后端ENI(10.1.0.7/16)可以发送访问前端ENI(10.2.0.100/16)的多个报文,该多个报文的目的IP地址为10.2.0.100/16。转发面可以根据前端ENI的转发信息向关联的多个后端ENI(即图5B所示的后端ENI 1至后端ENI m)负载均衡的发送该多个报文。对于多个报文中的某个报文,假设转发面根据负载均衡算法选择后端ENI 1,可以向后端ENI 1转发该报文。由于该转发为转发面根据转发信息执行的,因此可以保持报文中的目的IP地址不变。虚拟设备1可以例如为代理设备(例如Nginx代理设备)或租户自定义的通过虚拟机或容器实现的网络设备或网络安全设备等,该网络安全设备可以例如为全球广域网(worldwide web,Web)应用防火墙(web application firewall,WAF)。虚拟设备1接收到报文后,可以对其处理(例如安全检查等),之后继续根据报文中的目的IP地址转发至后端ENI(10.4.0.8/16)。

例如参考图5C,访问端通过绑定的后端ENI(10.1.0.7/16)访问前端ENI(10.2.0.100/16)以外的其他设备(例如互联网中的某个设备)的报文,但是该报文的下一跳为前端ENI的MAC地址。该转发面可以根据前端ENI的转发信息向关联的多个后端ENI(后端ENI 1至后端ENI m)负载均衡的发送该报文。对于多个报文中的某个报文,假设转发面根据负载均衡算法选择后端ENI 1,可以向后端ENI 1转发该报文。由于该转发为转发面根据转发信息执行的,因此可以保持报文中的IP地址不变。虚拟设备1可以例如为透明式的防火墙设备,或者可以为访问公网的NAT网关设备或支持混合云的IPsec VPN隧道路由器,或者GRE隧道路由器等。虚拟设备1接收到非访问自己的报文后,可以根据报文携带的目的地址将其继续转发至互联网。可选的,虚拟设备1可以通过弹性公网IP(Elastic IP,EIP)向互联网转发报文。

而且,和集中式负载均衡方案(例如图2所示的ELB方案)相比,本申请实施例中利用转发面执行负载均衡,有利于提高负载均衡能力。并且,参考图5A,虚拟设备1321发送的第一报文可以在所在主机13上的虚拟交换机131中开始进行负载分担,有利于实现在报文的访问者源端便开始负载分担,进而有利于提高负载分担效率。

后端ENI绑定的虚拟设备(例如虚拟设备1421或虚拟设备1521或虚拟设备1522)可以包括VM或容器等,这有利于实现多种类型的虚拟设备采用负载均衡的方式共同处理业务流量,从而有利于充分利用公有云上的虚拟设备资源。

在一种可能的实现方式中,前端ENI是系统中的网络接口,在创建前端ENI时,对于前端ENI的API接口可以是直接在ENI的API上进行扩展,但是增加了至少一个属性,该属性可以例如为图4A所示的参数值为“Castport”的接口类型,该接口类型指示该ENI的类型为前端ENI的类型。可选的,云管理平台配置前端ENI后,可以保存相应的前端ENI的配置信息,租户可以例如通过API查看和/或修改前端ENI的属性,例如可以查看图4A和/或图4B所示的属性的信息。

在一种可能的实现方式中,前端ENI所绑定的多个后端ENI可以为云管理平台自动确定的,例如,云管理平台接收到前端ENI的配置信息后,从每个主机中选取业务负载最小的虚拟设备,将相应虚拟设备绑定的后端ENI绑定在前端ENI上。

或者,在一种可能的实现方式中,前端ENI所绑定的多个后端ENI可以为租户指定的。可选的,该前端ENI的配置信息可以包括多个后端ENI的标识,例如图4C中行5、行8和行11所示的后端ENI的标识。云管理平台可以根据多个后端ENI的标识确定前端ENI所绑定的后端ENI。这样,租户可以通过在第一配置接口输入多个后端ENI的标识,以指定前端ENI所绑定的后端ENI,进而指定负载均衡的虚拟设备。图4C中分别以“1431”、“1531”和“1532”简化表示后端ENI 1431、后端ENI 1531和后端ENI 1532的标识的参数值,本申请实施例不限定后端ENI的标识的参数值的选取形式。

在一种可能的实现方式中,云管理平台获取的前端ENI的配置信息可以包括用于指示负载均衡策略的策略信息,云管理平台根据前端ENI的配置信息下发的转发信息可以指示根据该策略信息对应的负载均衡策略向前端ENI绑定的多个后端ENI负载均衡的转发第一报文。租户通过向第一配置接口输入负载均衡测量,可以根据需求配置多个虚拟设备负载均衡的处理业务流量时所采用的负载均衡策略。

可选的,该策略信息可以包括负载均衡类型。示例性的,租户可以通过负载均衡类型指示负载均衡所依据的报文中的信息类型。本申请实施例中租户指示的负载均衡所依据的报文中的信息类型包括但不限于报文中的三元组、四元组或五元组。这样,租户通过向第一配置接口输入负载均衡策略,可以根据需求配置多个虚拟设备支持的负载均衡类型,例如支持IP三元组负载分担或支持传输控制协议(transmission control protocol,TCP)/用户数据报协议(user datagram protocol,UDP)五元组负载分担等。

相应的,在一种可能的实现方式中,在创建前端ENI时,对于前端ENI的API接口可以是直接在ENI的API上进行扩展,除了增加了前文介绍的接口类型对应的属性,还增加了负载均衡类型对应的属性,该属性可以例如为图4C中行4所示。该属性可以是在接口类型为前端ENI对应的接口类型(例如图4A所示的Castport)时有效。

可选的,该策略信息还可以包括负载均衡算法,该负载均衡算法包括但不限于轮询法、随机法、源地址哈希法、一致性哈希算法、加权轮询法、加权随机法或最小连接法。租户可以通过前端ENI的配置信息指定负载均衡所采用的负载均衡算法。

可选的,租户还可以通过负载均衡类型指示平衡链路负载均衡或非平衡链路负载均衡。可选的,该策略信息可以包括多个后端ENI的权重。例如图4C中的行6、行9和行12所示,后端ENI 1431、后端ENI 1531和后端ENI 1532的权重分别为1、1和2。对于多个后端ENI中的任意两个后端ENI,若两个后端ENI权重不同,那么,转发面根据前端ENI的转发信息向权重较高的后端ENI转发第一报文的概率高于向权重较低的后端ENI转发第一报文的概率。相应的,和权重较低的后端ENI对应的虚拟设备相比,权重较高的后端ENI对应的虚拟设备将处理更多的业务流量。这样,租户通过向第一配置接口输入多个后端ENI的权重,可以根据虚拟设备的情况设置相应后端ENI的权重,例如,租户可以通过图4C所示的第一配置界面为处理能力更强的虚拟设备1522对应的后端ENI 1532设置更高的权重,以使处理能力更强的虚拟设备1522处理更多的业务流量,进而有利于提高多个虚拟设备对业务流量的处理性能。

可选的,该策略信息可以包括多个后端ENI的状态,租户可以通过后端ENI的状态指示相应虚拟设备的故障状态为正常或异常。多个后端ENI的状态可以指示向正常的虚拟设备负载均衡的转发第一报文。例如图4C中行7、行10和行13所示,后端ENI 1431对应的虚拟设备1421、后端ENI 1531对应的虚拟设备1521和后端ENI 1532对应的虚拟设备1522的故障状态均为正常。本申请实施例不限定后端ENI的状态的参数值是正常或异常,也可以通过其他字符串来表示后端ENI的状态,只要租户和云管理平台能够确定该参数值所指示的虚拟设备的故障状态即可。

在一种可能的实现方式中,在创建前端ENI时,对于前端ENI的API接口可以是直接在ENI的API上进行扩展,除了增加了前文介绍的接口类型和/或负载均衡类型对应的属性,还可以增加后端ENI对应的属性。后端ENI的属性可以例如包括图4C中行5、行8和行11所示的后端ENI的标识,和/或例如包括图4C中行6、行8和行12所示的后端ENI的权重,和/或例如包括图4C中行7、行9和行13所示的后端ENI的状态。该属性可以是在接口类型为前端ENI对应的接口类型(例如图4A所示的接口类型的参数值为“Castport”)时有效。

在一种可能的实现方式中,管理状态指示后端ENI或其绑定的虚拟设备是否可以处理该业务流量的虚拟设备。示例性的,虚拟设备因发生故障或可用资源(例如处理器资源)过少而无法处理该业务流量。

可选的,云管理平台可以通过前端ENI的转发信息指示转发面向未发生故障的虚拟设备负载均衡的转发第一报文,有利于避免向故障状态为异常(例如发生故障)的虚拟设备发送第一报文,从而有利于避免后端虚拟设备异常影响前端业务,进而有利于提高多个虚拟设备所提供的业务服务的可用性。

由于虚拟设备故障状态的不确定性,云管理平台可以每隔一段时长对前端ENI绑定的多个后端ENI对应的虚拟设备进行健康检查,或者,云管理平台可以获取公有云上的其他装置(例如健康检查装置)对相应虚拟设备的健康检查结果。若前端ENI绑定的某个后端ENI对应的虚拟设备(例如图5A所示的虚拟设备1421)出现异常,无法继续处理该业务流量,云管理平台可以根据租户指示或自动修改相应后端ENI(例如图5所示的后端ENI 1431)的管理状态,例如,将其管理状态的参数值改为“DOWN”。进一步的,云管理平台可以解除前端ENI与该后端ENI之间的关联,具体的,可以通过前端ENI的转发信息指示转发面不向后端ENI 1431转发第一报文,而是向后端ENI 1531和后端ENI 1532负载均衡的转发第一报文,这样有利于业务服务保持较高的可用性。当虚拟设备1421恢复对该业务流量的处理能力后,云管理平台可以更新前端ENI的转发信息,以指示转发面向后端ENI 1431、后端ENI1531和后端ENI 1532负载均衡的转发第一报文。

步骤S302之后,转发面中的转发装置(例如交换机、路由器等)可以获取前端ENI的转发信息,并且可以根据该转发信息将发送至前端ENI的多个报文负载均衡的向关联的多个后端ENI所绑定的虚拟设备进行转发。本申请实施例不限定转发面转发第一报文的具体方式。作为举例,图6示出了本申请报文转发方法一种可能的流程。

参考图6,本申请公有云的报文转发方法可以包括步骤S601至步骤S603。

S601.转发装置接收前端ENI的转发信息;

可选的,转发装置可以例如为图1或图5A所示的虚拟交换机131或虚拟交换机141或虚拟交换机151或图1所示的数据中心内部网络12。可选的,前端ENI的转发信息可以来自例如图1所示的云管理平台11。

可选的,前端ENI的转发信息可以例如步骤S302中介绍的任意一种可能的转发信息,此处不再赘述。本申请实施例不限定转发信息的具体内容或形式,为了便于理解,图7A示出了转发信息一种可能的内容。

示例性的,参考图7A,前端ENI的转发信息可以包括路由表71、负载均衡信息72和成员信息73。其中,路由表71中的IP前缀(或目的IP地址)为前端ENI的IP地址(10.1.0.3),网络掩码为32,下一跳的内容为成员组标识(例如成员组100),该成员组标识用于匹配负载均衡信息72和成员信息73。负载均衡信息72包括成员组标识、负载均衡的类型和负载均衡算法。参考图4C的内容,“L3”可以代表三层负载均衡。可选的,转发装置通过虚拟可扩展局域网(virtual extensible local area network,VXLAN)技术向前端ENI绑定的后端ENI转发报文。例如,成员信息73可以包括绑定的后端ENI 1431的信息731、后端ENI 1531的信息732和后端ENI 1532的信息733。以后端ENI 1431的信息731为例,信息731包括后端ENI1431对应的成员组的标识(称作成员组标识,例如成员组100)、后端ENI 1431关联的VPC的VXLAN网络标识(VXLAN network identifier,VNI)、后端ENI 1431的MAC地址和隧道封装头中的IP地址(即“tunnel_IP”),“tunnel_IP”例如可以是后端ENI对应的主机(例如图1所示的主机14)的IP地址。

S602.转发装置接收发送至前端ENI的报文;

转发装置接收前端ENI的转发信息后,可以接收报文。本申请实施例中,转发装置可以接收发送至前端ENI的报文,为了便于描述,将该报文称作报文1。在一种可能的实现方式中,该报文1访问前端ENI,或者,该报文的下一跳为前端ENI的MAC地址。

假设报文1如图7B所示,该报文1的目的IP地址为前端ENI的IP地址(10.1.0.3)、报文1的目的物理地址为前端ENI的物理地址(以mac-前端ENI表示)。

S603.转发装置根据转发信息采用负载均衡的方式向多个后端ENI转发接收到的发送至前端ENI的报文。

转发装置接收发送至前端ENI的报文后,可以根据前端ENI的转发信息采用负载均衡的方式向多个后端ENI转发接收到的发送至前端ENI的报文。

假设前端ENI的转发信息如图7A所示,转发装置接收到例如图7B所示的报文1后,可以根据该报文1的目的地址匹配到路由表71。转发装置可以根据路由表71的成员组标识(成员组100)匹配到负载均衡信息72和成员信息73。之后,转发装置可以采用一致性哈希算法对后端ENI 1431、后端ENI 1531和后端ENI 1532执行三层负载均衡。假设转发装置选择后端ENI 1431,转发装置可以向后端ENI 1431转发报文1。假设转发装置通过VXLAN技术封装报文1,得到如图7B所示的报文2,之后,向后端ENI 1431发送报文2。

假设转发装置在接收到报文1后,再次接收到访问前端ENI的报文,该报文可以继续参考图7B的报文1理解。转发装置可以再次执行步骤S603。具体的,转发装置可以根据该报文的目的地址匹配到路由表71。转发装置可以根据路由表71的成员组标识(成员组100)匹配到负载均衡信息72和成员信息73。之后,转发装置可以采用一致性哈希算法对后端ENI1431、后端ENI 1531和后端ENI 1532执行三层负载均衡。假设转发装置选择后端ENI 1531,转发装置可以通过VXLAN技术封装该报文,得到如图7B所示的报文3,之后,向后端ENI 1531发送报文3。

上述详细阐述了本申请实施例的方法,为了便于更好的实施本申请实施例的上述方案,相应地,下面还提供用于配合实施上述方案的相关设备。

参见图8,图8是本申请实施例提供的一种ENI的配置装置的结构示意图,该ENI的配置装置可以是上述图3B的方法实施例中的云管理平台,可以执行图3B的ENI的配置方法实施例中以云管理平台为执行主体的方法和步骤。如图8所示,该ENI的配置装置800包括接收模块810和处理模块820。

其中,在一种可能的实现方式中,接收模块810,用于获取租户输入的前端弹性网络接口ENI的配置信息,配置信息用于指示待创建的前端ENI需关联的多个后端ENI,其中每个后端ENI分别绑定至一个虚拟设备。还包括处理模块820,用于根据配置信息创建前端ENI,前端ENI与配置信息指示的多个后端ENI关联,前端ENI用于将发送至前端ENI的多个报文以负载均衡的方式转发至与前端ENI关联的多个后端ENI绑定的虚拟设备。

具体地,接收模块810用于执行前述步骤S301,且可选的执行前述步骤中可选的方法,处理模块820用于执行前述步骤S302,且可选的执行前述步骤中可选的方法。

在一种可能的实施例中,接收模块810还用于获取租户输入的多个后端ENI中的一者或任意组合的故障状态;处理模块820还用于设置前端ENI与发生故障状态的后端ENI取消关联。

或者,在一种可能的实现方式中,接收模块810,用于检测多个后端ENI绑定的虚拟设备的工作状态,工作状态包括故障状态和/或故障状态。处理模块820,用于通知租户多个后端ENI绑定的虚拟设备的工作状态。

上述两个模块之间互相可以通过通信通路进行数据传输,应理解,ENI的配置装置800包括的各模块可以软件模块、也可以为硬件模块、或部分为软件模块部分为硬件模块。

关于前端ENI的配置信息或前端ENI或后端ENI或虚拟设备或第一配置接口的可能实现方式及有益效果可以参考图3B对应的实施例的相关内容,此处不再赘述。

需要说明的是,上述ENI的配置装置的结构仅仅作为一种示例,不应构成具体限定,可以根据需要对该ENI的配置装置中的各个模块进行增加、减少或合并。此外,该ENI的配置装置中的各个模块的操作和/或功能是为了实现上述图3B所描述的方法的相应流程,为了简洁,在此不再赘述。

参见图9,图9是本申请实施例提供的一种计算设备的结构示意图。如图9所示,该计算设备9包括:处理器91、通信接口92以及存储器93,处理器91、通信接口92以及存储器93通过内部总线94相互连接。应理解,该计算设备9可以是公有云中的计算设备。

处理器91可以由一个或者多个通用处理器构成,例如中央处理器(centralprocessing unit,CPU),或者CPU和硬件芯片的组合。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC)、可编程逻辑器件(programmablelogic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complexprogrammable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gatearray,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。

总线94可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线94可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但不表示仅有一根总线或一种类型的总线。

存储器93可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM);存储器730也可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM)、快闪存储器(flash memory)、硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器13还可以包括上述种类的组合。

需要说明的是,计算设备9的存储器93中存储了ENI的配置装置800的各个模块对应的代码,处理器91执行这些代码实现了ENI的配置装置800的各个模块的功能,即执行了S301和S302的方法,或执行了S601至S603的方法。

本申请还提供一种计算机可读存储介质,其中,计算机可读存储介质存储有计算机程序,当该计算机程序被处理器执行时,可以实现上述方法实施例中记载的任意一种的部分或全部步骤。

本发明实施例还提供一种计算机程序,该计算机程序包括指令,当该计算机程序被计算机执行时,使得计算机可以执行任意一种发放区域资源的方法的部分或全部步骤。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可能可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。

上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

技术分类

06120115604832