基于逻辑端口标识符管理虚拟交换机中的网络流量的制作方法

文档序号:19251974发布日期:2019-11-27 20:22阅读:157来源:国知局
基于逻辑端口标识符管理虚拟交换机中的网络流量的制作方法

相关申请

本申请要求于2017年1月13日提交的标题为“基于逻辑端口标识符管理虚拟交换机中的网络流量(managingnetworktrafficinvirtualswitchesbasedonlogicalportidentifiers)”的美国非临时专利申请15/406,249的优先权,其全部内容通过引用并入本文。



背景技术:

在计算环境中,可以使用虚拟交换机,其包括能够为计算环境中的一个或更多个虚拟节点提供通信平台的软件模块。这些虚拟交换机可用于通过在将分组传递到同一网络上的其他节点之前检查分组来智能地指示网络上的通信。例如,可以检查分组以确定源和目的地互联网协议(ip)地址,以确定是否允许将通信传送到目的地计算节点。在一些实现中,虚拟交换机可以配置有转发规则或流操作,其指示要对分组采取的动作。这些流操作识别数据分组内的特定属性,例如ip地址、媒体访问控制(mac)地址等,并且当被识别出时,提供要针对数据分组断言的一组动作。这些动作可以包括对数据分组的修改、数据分组的转发规则以及其他可能的操作。

为了管理虚拟交换机,可以提供虚拟交换机控制器,其用于将控制平面与软件定义的网络的数据平面分离。这些虚拟交换机控制器用于定义在虚拟交换机接收分组时引导分组的规则或控制机制。在一些实现中,该路由可以包括定义哪些节点与哪些逻辑网络相关联,哪些安全机制被置于通信分组上,或者相对于虚拟交换机的数据平面的某种其他控制机制。然而,尽管虚拟交换机及其相关控制器提供了用于为虚拟机路由分组的有价值的机制,但是当需要将虚拟机的逻辑标识符转换成ip和mac地址以实现期望的转发规则时,可能出现困难。



技术实现要素:

本文公开的技术增强了软件定义的网络的网络流量管理。在一个实现中,操作虚拟计算环境以使用逻辑端口提供分组实施的方法包括在第一主机计算系统和第二主机计算系统中的每一个中,基于虚拟计算环境中虚拟机的转发规则和逻辑端口状态信息维护数据平面转发配置。该方法还在第一主机计算系统中提供识别要从在第一主机计算系统上执行的虚拟机传送到在第二主机计算系统上执行的虚拟机的分组,以及识别与第一主机计算系统上的虚拟机相关联的源逻辑端口。一旦被识别出,该方法在第一主机计算系统中提供将通信传送到第二主机计算系统,其中该通信至少封装分组和源逻辑端口。该方法还在第二主机计算系统中提供接收通信并至少基于源逻辑端口和数据平面转发配置确定通信中分组的转发动作。

附图说明

以下描述和相关附图教导了本发明的最佳模式。出于教导发明原理的目的,可以简化或省略最佳模式的一些常规方面。以下权利要求指定了本发明的范围。注意,最佳模式的某些方面可能不落入权利要求所指定的本发明的范围。因此,本领域技术人员将理解落入本发明范围内的最佳模式的变化。本领域技术人员将理解,下面描述的特征可以以各种方式组合以形成本发明的多种变型。结果,本发明不限于下面描述的具体示例,而是仅由权利要求及其等同物限制。

图1示出了根据一种实现的基于端口标识符来管理分组转发的虚拟计算环境。

图2示出了根据一种实现的将虚拟机的数据分组传送到第二主机的主机操作。

图3示出了根据一种实现的将转发规则应用于来自第二主机的通信的主机操作。

图4示出了根据一种实现的将数据分组从第一虚拟机传送到第二虚拟机的操作场景。

图5示出了根据一种实现的将数据分组从第一虚拟机传送到第二虚拟机的主机操作。

图6示出了根据一种实现的将数据分组从第一虚拟机传送到第二虚拟机的操作场景。

图7示出了根据一种实现的将数据分组从第一虚拟机传送到第二虚拟机的操作场景。

图8示出了根据一种实现的规则数据结构。

图9示出了根据一种实现的基于端口标识符来管理分组转发的主机计算系统。

具体实施方式

本文公开的各种示例提供了用于管理虚拟交换机上的分组转发的增强。特别地,虚拟交换机配置有转发规则,该转发规则指示在分组通过虚拟交换机时要对分组采取的动作。这些转发规则可以各自定义属性,例如源和目的地互联网协议(ip)地址,源和目的地媒体访问控制(mac)地址,协议和其他类似属性,并且进一步定义要针对满足定义的属性的数据分组断言的一组转发动作。这些转发动作可以包括用于将分组转发到其目的地的肯定转发动作,修改分组的修改动作,对分组的阻止动作,或者针对分组采取的其他类似动作。例如,当在虚拟交换机处接收到分组时,虚拟交换机可以检查该分组以确定应该应用于该分组的转发动作。一旦识别出动作,就可以采取动作,其可以包括将分组转发到目的地虚拟机或系统,阻止分组,修改分组或一些其他类似的操作。

在本示例中,为了检查通过虚拟交换机传送的分组,虚拟交换机可以基于与网络的每个虚拟机相关联的逻辑端口来采用基于规则的实施。这些虚拟端口包括逻辑值,这些逻辑值用作特定于每个虚拟机的逻辑网络链路的标识符。例如,网络的第一虚拟机将与第一逻辑端口值相关联,而第二虚拟机将与第二逻辑端口值相关联。因此,虚拟交换机可以确定通信的源和目的地逻辑端口,以基于逻辑端口确定用于通信的转发动作,而不是将虚拟机的逻辑端口转换为ip或mac地址以确定适当的转发规则。

为了使用逻辑端口提供该操作,当通过物理网络或通过位于同一主机上的虚拟路由器传送通信时,必须在通信内识别或定义源逻辑端口。例如,如果第一主机计算系统上的第一虚拟机要将数据分组传送到第二主机计算系统上的第二虚拟机,则可能需要第一主机计算系统上的虚拟交换机识别源逻辑端口。该源逻辑端口可以包括用作特定于虚拟机的逻辑网络链路的标识符的值。一旦识别出源逻辑端口,就可以将逻辑端口注入到用于隧道通信(tunnelingcommunication)的通信协议报头中,该隧道通信封装来自第一虚拟机的数据分组。然后可以至少部分地基于用于通信的封装的源逻辑端口将封装的通信传送到第二主机以进行处理。

图1示出了根据一种实现的基于端口标识符来管理分组转发的虚拟计算环境100。虚拟计算环境100包括具有虚拟机120-125、超级管理程序(hypervisor)130-131和网络接口140-141的主机110-111。虚拟计算环境100还包括中央控制器150,其可用于管理和提供位于主机110-111上的虚拟交换机的控制平面信息。

在操作中,主机110-111分别执行超级管理程序130-131,以为虚拟机120-125提供平台。超级管理程序130-131抽象化主机110-111的物理组件并向虚拟机提供硬件的虚拟表示,包括处理系统、存储接口、网络接口或一些其他抽象组件。除了为虚拟机120-125的操作提供抽象硬件之外,超级管理程序130-131还可用于向虚拟机提供软件定义的网络(sdn)。这些sdn可以包括虚拟交换机和路由器,用于提供可能存在于同一主机计算系统上的虚拟机和计算节点之间的连接,或者可以在单独的主机计算系统上操作。

为了提供sdn,可以从中央控制器150提供转发规则(有时称为流规则或流表),或者可以在主机110-111本地提供转发规则。这些转发规则基于分组的属性定义要对分组采取的动作,所述属性例如分组的源,分组的目的地,分组中使用的协议,或特定分组的任何其他类似属性。作为示例,转发规则可以提供第一服务组(例如应用程序服务组)被允许使用定义的协议与数据库服务组通信。结果,当使用定义的协议从应用程序服务组识别要传送到数据库服务组的分组时,可以将通信转发到目的地虚拟机,因为允许通信。

在本示例中,为了识别分组的源和目的地并实施转发规则,超级管理程序130-131可以识别与分组相关联的源和目的地逻辑端口。因此,当在两个虚拟机之间传送分组时,无论是在主机110-111中的同一主机上本地传送,还是跨主机110-111传送,都可以识别源和目的地逻辑端口以进行通信,并将其与规则进行比较以确定是否允许通信。为了允许目的地虚拟交换机确定源虚拟端口,可能需要第一主机上的超级管理程序将隧道通信的报头中的源端口编码到第二主机。例如,在虚拟机120和虚拟机123之间的数据分组的通信中,可能需要超级管理程序130识别数据分组的源逻辑端口,用数据分组在隧道通信中编码源逻辑端口,以及用超级管理程序131将隧道通信传送到主机111。一旦接收到,超级管理程序131就可以从隧道通信提取源端口标识符,并基于所识别的端口将转发动作应用于数据分组。

为了进一步说明在主机之间传送分组的操作,提供了图2和图3。图2示出了根据一种实现的将虚拟机的数据分组传送到第二主机的主机操作200。在下面参考图1的虚拟计算环境100的系统和元件的段落中,附带地参考操作200的过程。

如图所示,操作200包括基于转发规则和逻辑端口状态信息维护(201)虚拟机的数据平面转发配置。在至少一个实现中,超级管理程序130可以负责实现虚拟机120-122的sdn。为了提供sdn操作,包括虚拟交换和路由操作,超级管理程序130可以接收和实现转发规则。这些转发规则可以由中央控制器150提供,或者可以在主机110处本地提供。在许多实现中,可以使用安全组标识符或虚拟机组标识符来生成这些转发规则。例如,规则可以指定使用一个或更多个协议来允许应用程序组虚拟机和数据库组虚拟机之间的通信。因此,当部署在由超级管理程序130提供的sdn中时,可能需要超级管理程序130识别对应于每个安全组的虚拟机的逻辑端口状态信息(例如逻辑端口标识符/值)。该逻辑端口信息对应于主机110本地的虚拟机,以及在虚拟计算环境100内的其他主机上执行的虚拟机。在一些实现中,该逻辑端口信息可以由主机110-111交换,和/或由中央控制器150提供。一旦识别出逻辑端口信息,就可以实现数据平面转发配置,其将转发动作(由转发规则定义)与经由逻辑端口状态信息识别的逻辑端口相关联。

在维护虚拟计算环境100中的虚拟机的数据平面配置的同时,操作200还包括识别(202)要从主机110上的虚拟机传送到第二主机111上的虚拟机的分组。该分组可以包括传输控制协议(tcp),用户数据报协议分组(udp)分组,或用于从虚拟机通信的一些其他类型的分组。响应于识别出分组,主机110和超级管理程序130将识别(203)与主机110上的虚拟机相关联的源逻辑端口,将源逻辑端口注入到用于至主机111的通信的报头中,其中通信可包括第二分组,其封装来自虚拟机的已识别分组和虚拟机的源虚拟端口。该第二分组可以包括隧道协议分组,例如vxlan分组,通用网络虚拟化封装(geneve)分组,或一些其他类似的隧道协议分组。在一些实现中,在将来自虚拟机的分组封装到第二通信分组中时,可以将与虚拟机相关联的逻辑端口添加到第二分组的报头,而来自虚拟机的分组可以被放置在第二分组的有效载荷中。一旦封装在第二通信中,就可以通过物理网络接口140将通信传送(204)到主机111。

作为说明性示例,虚拟机121可以将分组传送到虚拟机124。响应于传送分组,超级管理程序130可以识别分组,确定与虚拟机121相关联的源逻辑端口,并将来自虚拟机121的分组封装到能够传送到主机111的第二通信分组。该第二分组可以包括来自第一分组的信息,并且还可以包括虚拟机121的源逻辑端口,其中当逻辑端口在主机111处被接收时,其可以用于转发分组。

在一些实现中,除了向第二主机111提供用于通信的信息之外,超级管理程序130还可以在本地实现用于传送的分组的转发规则。特别地,超级管理程序130可以使用对应虚拟机的逻辑端口状态信息来识别源逻辑端口和目的地逻辑端口,并且至少部分地基于源和目的地逻辑端口来识别转发动作。此外,参考要从虚拟机121传送到虚拟机124的分组的示例,将识别用于虚拟机121的源端口,并且将识别用于虚拟机124的目的地端口。一旦被识别出,就可以确定应用于逻辑端口的转发动作,以及在主机110本地应用转发动作。因此,如果允许传送分组,则可以使用网络接口140将分组转发到主机111。但是,如果分组不被允许,则可以在通过物理网络传送之前停止分组。

图3示出了根据一种实现的将转发规则应用于来自第二主机的通信的主机操作。在下面参考图1的虚拟计算环境100的系统和元件的段落中,附带地参考操作300的过程。

如图3所示,类似于主机110的操作,主机111基于转发规则和逻辑端口状态信息维护(301)虚拟机的数据平面转发配置。转发规则可以在主机111处本地定义,或者在一些实现中可以从中央控制器150传送。这些规则可以定义需要相同转发配置的安全组或虚拟机组。例如,可以将所有数据库分类的虚拟机分配给同一安全组,以确保为提供数据库操作的所有虚拟机提供相同的转发规则。因此,管理员可以在计算环境内根据需要动态地添加或移除虚拟机,而无需为虚拟计算环境生成新规则。另外,因为可以从虚拟计算环境添加或移除虚拟机,所以超级管理程序130-131可以为当前部署在环境中的虚拟机交换和/或提供逻辑端口信息(与虚拟机相关联的逻辑端口标识符)。基于可以以虚拟机组的形式提供的转发规则,以及识别该组中的虚拟机的逻辑端口的逻辑端口状态信息,可以定义数据平面转发配置,其将转发动作(转发、阻止、修改等)与分配给虚拟机的逻辑端口相关联。

当维护转发配置时,主机111可以从第一主机110接收(302)通信,其中通信包括来自虚拟机的分组和与虚拟机相关联的逻辑端口。响应于接收到通信,主机111可以识别(304)与来自虚拟机的分组相关联的通信中的源逻辑端口,并基于虚拟计算环境100的逻辑端口、转发规则以及逻辑端口状态信息确定(305)分组的动作。

作为说明性示例,当从网络接口141接收到分组时,超级管理程序131可以解封装隧道协议分组,以识别来自虚拟机的原始分组和与虚拟机相关联的逻辑端口。一旦解封装,逻辑端口可以与数据平面转发配置结合使用以确定如何转发分组。例如,源逻辑端口可以与目的地逻辑端口(其可以基于逻辑端口状态确定)结合使用,以确定分组的转发动作。

尽管在本示例中示出了将分组从主机110传送到主机111,但是应该理解,每个主机可能够提供类似的传送和接收操作。此外,虽然在图1-图3的示例中示出了在主机之间物理地传送分组,但是应当理解,当在单个主机上部署虚拟路由器(或分布式虚拟路由器)时,也可以提供类似的操作。因此,当通过同一物理主机上的虚拟路由器传送分组时,与源虚拟机相关联的源逻辑端口可以通过虚拟路由器放置在隧道分组的报头中,其中隧道分组至少包括来自虚拟机的分组和与源虚拟机相关联的逻辑端口标识符。一旦通过虚拟路由器传送,虚拟交换机可以识别逻辑端口标识符,并至少基于逻辑端口标识符应用转发规则。

图4示出了根据一种实现的将数据分组从第一虚拟机传送到第二虚拟机的操作场景400。操作场景400包括图1的虚拟计算环境100的系统和元件。

如图所示,虚拟机120在步骤1传送要转发到目的地虚拟机125的分组。响应于传送该分组,超级管理程序130在步骤2识别与虚拟机120相关联的源逻辑端口。特别地,当虚拟机部署在虚拟网络内时,可以为虚拟机分配逻辑端口,该逻辑端口用于将虚拟机加入相应的逻辑网络或逻辑交换机。一旦识别出源逻辑端口,超级管理程序130在步骤3a将来自虚拟机120的分组封装到第二通信分组中,其中第二通信分组包括来自虚拟机120的原始分组和与虚拟机120相关联的源逻辑端口。然后,在步骤3b,通过网络接口140将第二通信分组通信到主机111的网络接口141。一旦在网络接口处接收到通信,则在步骤3c将通信转发到超级管理程序131,其中超级管理程序131在步骤4从通信提取源逻辑端口,并使用源逻辑端口来确定适用的转发规则。如果允许将分组传送到虚拟机125,则超级管理程序131将在步骤5将分组从虚拟机120转发到虚拟机125。

在一些实现中,主机110-111被配置为在通过虚拟交换机传送数据分组时维护数据分组的数据平面转发配置。该数据平面配置可以基于所接收的转发规则,其中规则可以从中央控制器提供,或者可以在各个主机中的每一个上本地配置。在一些实现中,转发规则可以定义用于通信的虚拟机的源组(诸如数据库组、应用程序组、前端操作组等),用于通信的虚拟机的目的地组以及用于通信的协议,并将属性与转发动作(转发、阻止、修改等)相关联。除了规则之外,主机110-111可以被配置为维护虚拟计算环境内的虚拟机的逻辑端口信息,其中逻辑端口信息识别与各个虚拟机组中的虚拟机相对应的逻辑端口。例如,可以定义转发规则,其允许一组应用程序虚拟机与一组数据库虚拟机通信。一旦定义了规则,主机就可以识别符合转发规则的虚拟机和相应的逻辑端口。一旦识别出端口,就可以更新数据平面转发配置以反映哪些端口与哪些转发规则相关联。

返回到操作场景400中的示例,超级管理程序131可以提取虚拟机120的源端口,确定用于通信的目的地端口(在该示例中为虚拟机125的端口),并且基于端口信息识别用于通信的相应转发动作。在一些示例中,超级管理程序131还可以在确定要应用于分组的动作时,进一步识别通信的其他属性,诸如通信协议、通信时间和其他类似属性。一旦识别出动作,就可以基于所识别出的动作来转发分组。因此,如果动作指示分组要被转发到虚拟机125,则分组将由超级管理程序131使用与虚拟机125相关联的端口转发到虚拟机。相反,如果不允许分组直接通信到虚拟机125,然后超级管理程序131可以修改分组和/或防止分组被转发。

尽管在先前示例中示出了源和目的地虚拟机都属于同一逻辑网络,但是应该理解,并非来自虚拟机的所有数据分组都可以被发送到同一逻辑网络上的虚拟机。例如,如果第一虚拟机正在将通信传送到不在同一逻辑网络上的第二虚拟机,则与第二虚拟机相关联的mac或ip地址可用于实施转发规则。因此,除了使用虚拟机的逻辑端口信息之外,在一些示例中,数据平面转发配置可以使用逻辑端口分配(对于同一逻辑网络上的虚拟机)和不在同一逻辑网络上的虚拟机的mac或ip地址的组合来实施规则。这些mac或ip地址可以从中央控制器提供,或者在虚拟计算环境中的主机之间交换。

类似于用于传送主机计算系统的操作,接收主机计算系统也可以采用逻辑端口标识符(对于同一逻辑网络上的虚拟机)和从不在逻辑网络上的物理或虚拟机接收的通信的mac或ip地址的组合。例如,如果主机111从与虚拟机125不在同一逻辑网络上的物理或虚拟机接收到针对虚拟机125的通信,则主机111可以使用与源机器相关联的ip或mac地址来应用所需的转发规则。在一些实现中,主机111可以处理分组以确定逻辑端口标识符是否位于所接收的分组中,并且如果不包括逻辑端口标识符,则使用通信设备的ip或mac地址来确定转发动作。

在一些实现中,除了在目的地主机上应用转发规则之外,应当理解,转发规则也可以由主机110在传送分组时应用。特别地,主机110可以识别与虚拟机125相关联的目的地逻辑端口,基于通信的端口确定适用的转发动作,并将该动作应用于数据分组。因此,如果分组被批准转发,则主机110可以通过网络将通信转发到主机111。相反,如果不允许通信,则可以阻止通信被传送到主机111。

图5示出了根据一种实现的将数据分组从第一虚拟机传送到第二虚拟机的主机操作500。在下面参考图1的虚拟计算环境100的系统和元件的段落中附带地描述操作500。具体地,参考使用图1的主机110上的单个虚拟交换机在虚拟机之间传送的分组来描述操作500。

类似于本文在图1-图4中描述的操作,主机计算系统可以被配置为基于转发规则和逻辑端口状态信息维护(501)虚拟机的数据平面转发配置。该数据平面转发配置用于将通信的源和目的地逻辑端口与用于通信的转发动作相关联。在一些实现中,为了定义数据平面转发配置,转发规则可以由管理员在主机处本地提供或通过外部控制器提供,并且可以通过识别对应于管理员定义的虚拟机组的逻辑端口在数据平面中实现。当维护配置时,主机110和超级管理程序130可以识别(502)要从主机110上的第一虚拟机传送到主机110上的第二虚拟机的分组。响应于识别出该分组,主机110可以至少基于源逻辑端口和数据平面转发配置来确定(503)对分组的动作。在确定动作的一些实现中,主机110可以识别与通信相关联的源逻辑端口,以及用于通信的目的地逻辑端口。一旦识别出端口(以及通信的任何补充属性),就可以识别出转发动作,并对分组采取动作。此动作可以包括将分组转发到目的地虚拟机、阻止分组、修改分组或一些其他类似的动作。

图6示出了根据一种实现的将数据分组从虚拟机传送到第二虚拟机的操作场景600。操作场景600包括来自图1的虚拟计算环境100的主机110。操作场景600是通过单个虚拟交换机的示例通信。

在操作中,虚拟机120在步骤1将分组传送到主机110上的虚拟机122。响应于由虚拟机120传送的分组,超级管理程序130在步骤2识别用于虚拟机120的源逻辑端口,并且在步骤3至少部分地基于该源逻辑端口确定针对分组的动作。一旦识别出动作并且如果允许将分组传送到虚拟机122,则超级管理程序130可以将分组转发到虚拟机122。这里,因为分组是在主机110的虚拟交换机上本地传送的,所以不要求分组被封装到第二隧道数据分组中。而是,超级管理程序130可以直接应用和实施规则,因为超级管理程序已知源和目的地逻辑端口。

图7示出了根据一种实现的将数据分组从第一虚拟机传送到第二虚拟机的操作场景700。操作场景700包括来自图1的虚拟计算环境100的系统和元件。具体地,操作场景700包括主机110的元件,并且还包括经由超级管理程序130提供的虚拟交换机(vs)715-716和虚拟路由器(vr)实例710。

在图7的示例中,类似于图6中描述的操作,虚拟机在步骤1传送要递送到虚拟机122的分组。响应于识别出要传送的分组,超级管理程序130的虚拟交换机715在步骤2识别与虚拟机120相关联的源逻辑端口并生成第二分组,其中第二分组利用虚拟机120的逻辑端口标识符封装来自虚拟机120的分组。一旦封装,分组就通过虚拟路由器实例710传送以递送到虚拟机122。例如,虚拟路由器实例710可以由超级管理程序130实现,以在逻辑上分离位于同一主机计算系统上的虚拟机,并为虚拟机提供单独的局域网。因此,虚拟机120可以位于由超级管理程序130提供的第一网络上,而虚拟机122位于由超级管理程序130提供的第二网络上。为了提供网络之间的通信,可以提供虚拟路由器实例710以将两个网络耦合。

一旦分组已经通过虚拟路由器实例710传送,超级管理程序130可以从通信的报头中提取源逻辑端口,并应用转发规则以在步骤3确定要应用于分组的动作。如果至少基于源逻辑端口允许分组,则超级管理程序130可以在步骤4将分组转发到虚拟机122。但是,如果不允许分组,则分组可以被超级管理程序130阻止并且不转发到虚拟机122。

在一些实现中,虚拟路由器或虚拟路由器正在其中执行的超级管理程序可以另外将进入的源逻辑端口转发到目的地虚拟机,使得目的地超级管理程序可以基于源端口计算转发动作。例如,如图7所示,不是在主机110上本地传送分组,而是可以在通过物理网络传送到第二主机计算系统之前,将分组传送到虚拟路由器710。因此,虚拟路由器710或超级管理程序130可以负责向第二计算系统提供源地址,允许第二主机计算系统基于源地址确定针对分组的动作。另外,虚拟路由器还可以将其逻辑端口标识符安装到用于通信的隧道报头中,其可以用于递送诸如分组路径信息的服务。因此,除了与源虚拟机相关联的逻辑端口之外,虚拟路由器还可以添加其自己的逻辑端口以向目的地虚拟交换机、超级管理程序和/或虚拟机提供分组路径信息。

图8示出了根据一种实现的规则数据结构800。规则数据结构800表示用于向计算环境中的虚拟交换机提供规则的格式。这些规则可以在主机处本地定义,或者可以经由中央控制器为多个主机提供。在特定示例中,规则数据结构800包括用于规则810、源812、目的地814、协议816和动作818的列。尽管在本示例中被示为单个表,但应理解为可用于定义sdn的转发规则的一个或更多个表、链表、阵列、数据树或其他类似的数据结构。

在虚拟计算环境的操作期间,管理员可以定义要在计算网络内实现的转发规则。这些转发规则定义了分组的属性,当遇到这些分组时,会断言针对分组的转发动作,例如将分组转发到其目的地、阻止分组、修改分组的动作或针对分组的某些其他类似动作。在一些实现中,分组规则可以以虚拟机组或安全组的形式定义属性,其中当虚拟机被添加到组时,它们每个都根据组被分配转发规则。例如,参考数据结构800的示例,当为虚拟计算环境的虚拟机定义规则a840时,管理员可以定义源、目的地和协议,并且可以在这些属性被识别出时进一步定义动作。因此,管理员可以定义允许虚拟机的应用程序组使用数据库协议与数据库虚拟机通信的规则。

一旦生成规则并将其提供给主机计算系统,超级管理程序可以基于分配给计算网络内的虚拟机的逻辑端口来转换规则。特别地,超级管理程序可以维护环境中的各个虚拟机的逻辑端口状态信息。因此,参考应用程序组和数据库组的示例,超级管理程序可以识别与应用程序组和数据库组相关联的逻辑端口。一旦被识别出,耦合到虚拟机的虚拟交换机的数据平面可以被配置为使用逻辑端口来实现规则。

尽管在图8的示例中示出为包括四个规则840-843,但是应当理解,可以在虚拟计算环境中实现任何数量的规则。这些规则可用于分离计算组之间的通信,管理来自虚拟计算环境之外的系统的入站网络通信,或者为网络内的虚拟机提供任何其他sdn管理。

图9示出了根据一种实现的对网络分组的处理进行优先级排序的计算系统900。计算系统900表示可以实现本文公开的用于主机系统的各种操作体系架构、过程、场景和序列的任何计算系统或系统。计算系统900是主机110-111的示例,但是可以存在其他示例。计算系统900包括通信接口901、用户界面902和处理系统903。处理系统903链接到通信接口901和用户界面902。处理系统903包括处理电路905和存储操作软件907的存储器设备906。计算系统900可包括其他众所周知的组件,例如电池和外壳,为清楚起见未示出。

通信接口901包括通过通信链路通信的组件,例如网卡、端口、射频(rf)、处理电路和软件,或一些其他通信设备。通信接口901可以被配置为通过金属、无线或光学链路进行通信。通信接口901可以被配置为使用时分复用(tdm)、互联网协议(ip)、以太网、光学网络、无线协议、通信信令或一些其他通信格式-包括其组合。在至少一个实现中,通信接口901可以用于与一起为sdn提供操作的一个或更多个其他计算系统通信,包括定义sdn的网络规则的其他主机和/或中央控制器。

用户界面902包括与用户交互以接收用户输入并呈现媒体和/或信息的组件。用户界面902可以包括扬声器、麦克风、按钮、灯、显示屏、触摸屏、触摸板、滚轮、通信端口或一些其他用户输入/输出装置-包括其组合。在一些示例中可以省略用户界面902。

处理电路905包括从存储器设备906检索并执行操作软件907的微处理器和其他电路。存储器设备906可以包括以用于存储信息的任何方法或技术实现的易失性和非易失性、可移除和不可移除的介质,所述信息例如计算机可读指令、数据结构、程序模块或其他数据。存储器设备906可以实现为单个存储设备,但是也可以跨多个存储设备或子系统实现。存储器设备906可以包括附加元件,例如用于读取操作软件907的控制器。存储介质的示例包括随机存取存储器、只读存储器、磁盘、光盘和闪存,以及其任何组合或变体,或任何其他类型的存储介质。在一些实现中,存储介质可以是非暂时性存储介质。在某些情况下,至少一部分存储介质可以是暂时性的。应该理解,在任何情况下存储介质都不是传播信号。

处理电路905通常安装在电路板上,该电路板还可以保持存储器设备906以及通信接口901和用户界面902的部分。操作软件907包括计算机程序、固件或一些其他形式的机器可读程序指令。操作软件907包括规则模块908、端口模块909、分组模块910和实施模块911,但是任何数量的软件模块可以提供类似的操作。在一些实现中,模块907-911可以作为虚拟机920的超级管理程序的一部分来操作。操作软件907还可以包括操作系统、实用程序、驱动程序、网络接口、应用程序或一些其他类型的软件。当由处理电路905执行时,操作软件907指示处理系统903如本文所述操作计算系统900。

在操作中,虚拟机920可以在计算系统900上执行以提供期望的过程并且更有效地使用由计算系统900提供的物理资源。为了提供到虚拟机的连接,超级管理程序可以实现sdn,其提供逻辑路由器和交换机以将虚拟机连接到其他真实和虚拟计算系统。这里,规则模块908指示处理系统903基于虚拟计算环境的虚拟机的转发规则和逻辑端口状态信息来维护数据平面转发配置。该数据平面可以基于通过用户界面902本地提供的规则来配置,或者通过第二计算系统(例如中央sdn控制器)从外部提供的规则来配置。可以使用组(诸如安全组)来定义这些规则,其用于维护一个或更多个虚拟机的安全性参数。例如,规则可以定义组“数据库服务”,然后其确保提供服务的所有虚拟机接收相同的规则。因此,除了使用规则来维护数据平面之外,规则模块908还可以指示处理系统903识别虚拟计算环境中的虚拟机的端口。然后,可以使用这些端口将规则转换为每个虚拟机的各个数据平面转发动作。例如,如果有四个虚拟机符合安全组的要求,则可以使用虚拟机的逻辑端口配置转发动作。

在维护数据平面转发配置的同时,端口模块909指示处理系统903识别要从第一虚拟机传送到第二虚拟机的分组,其中第二虚拟机可以驻留在经由至少一个虚拟路由器耦合的单独虚拟交换机上,或者可以包括在第二物理主机计算系统上运行的第二虚拟机。响应于该请求,端口模块909指示处理系统903至少识别与通信虚拟机相关联的源逻辑端口。一旦识别出逻辑端口,分组模块910就指示处理系统903将来自具有源逻辑端口的虚拟机的分组封装到第二分组中。在一些实现中,该第二分组可以用于在物理机之间传送或者通过虚拟路由器通信,并且可以包括vxlan分组、geneve分组或一些其他类似的分组。

在一些实现中,除了生成用于传送的分组之外,实施模块911可以指示处理系统903在传送分组之前实施转发规则。为了提供该操作,实施模块911可以识别用于通信的源逻辑端口,通信的目的地逻辑端口,以及在一些实现中用于分组的协议信息,并确定分组是否能够传送。如果分组不能够传送,则实施模块911可以通过阻止第二分组的传送来防止分组被提供给目的地虚拟交换机。相反,如果允许分组,则实施模块911可以允许生成第二分组,并且可以将第二分组转发到相应的主机或通过虚拟路由器转发。

除了分组的传送之外,当虚拟交换机接收到虚拟机的分组时,可以使用实施模块911。具体地,实施模块911可以接收从第二主机或通过虚拟路由器发送的隧道分组,其中隧道分组可以包括用于目的地虚拟机的数据分组和与用于数据分组的源虚拟机相关联的源逻辑端口。一旦接收到,则实施模块911可以从隧道分组中提取源逻辑端口,并且在提取之后,源逻辑端口可以用于确定是否允许通信。在一些实现中,实施模块911可以至少使用从报头提取的源逻辑端口、与目的地虚拟机相关联的目的地逻辑端口来确定是否要转发分组。如果允许,则可以将数据分组转发到相应的目的地虚拟机。相反,如果不允许通信,则可以阻止通信并防止其被转发到目的地虚拟机。

回到图1的元件,主机110-111和中央控制器150可各自包括通信接口、网络接口、处理系统、计算机系统、微处理器、存储系统、存储介质或一些其他处理设备或软件系统,并且可以分布在多个设备之间。主机110-111和中央控制器150均可包括软件,诸如操作系统、日志、数据库、实用程序、驱动程序、自然语言处理软件、网络软件和存储在计算机可读介质上的其他软件。主机110-111和中央控制器150可各自包括服务计算系统、桌面计算系统或一些其他类似的计算系统。

主机110-111和中央控制器150之间的通信可以使用金属、玻璃、光学、空气、空间或一些其他材料作为传输介质。主机110-111和中央控制器150之间的通信可以使用各种通信协议,例如时分复用(tdm)、异步传输模式(atm)、互联网协议(ip)、以太网、同步光网络(sonet)、混合光纤同轴电缆(hfc)、电路交换、通信信令、无线通信或一些其他通信格式,包括其组合、改进或变型。主机110-111和中央控制器150之间的通信可以是直接链路,或者可以包括中间网络、系统或设备,并且可以包括通过多个物理链路传输的逻辑网络链路。

所包括的说明书和附图描绘了教导本领域技术人员如何制作和使用最佳模式的具体实现方式。出于教导发明原理的目的,已经简化或省略了一些常规方面。本领域技术人员将理解落入本发明范围内的这些实现方式的变型。本领域技术人员还将理解,上述特征可以以各种方式组合以形成多个实现。作为结果,本发明不限于上述具体实现方式,而是仅由权利要求及其等同物限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1