虚拟环境中的VLAN标记的制作方法

文档序号:11455588阅读:606来源:国知局
虚拟环境中的VLAN标记的制造方法与工艺



背景技术:

ieee802.1q联网标准定义了针对以太网帧的虚拟局域网(vlan)标记系统,其中,交换机将使用vlan标记来处理这类帧。“vlan标记”是可被添加到以太网帧中以标识帧所去往的特定vlan的信息。

附图说明

在以下具体实施方式和附图中公开了本发明的各个实施例。

图1是示出支持vlan标记的传统网络基础架构的示例的示意图。

图2是示出传统虚拟环境的示例的示意图,其中,vm从被附接到vst端口组被移除并且随后被附接到vgt端口组。

图3是示出传统虚拟环境的示例的示意图,其中,vm从被附接到第一主机的虚拟交换机vgt端口组被移除并且随后被附接到第二主机的虚拟交换机vgt端口组。

图4是示出根据一些实施例的在虚拟环境中执行vlan标记的系统的示意图。

图5是示出根据一些实施例的弹性服务管理器(esm)的示例的示意图。

图6是示出根据一些实施例的可以针对每个虚拟网络设备存储的示例vlan标记参数集的示意图。

图7是示出根据一些实施例的用于利用默认vlan值来配置虚拟网络设备的过程的实施例的流程图。

图8是示出根据一些实施例的用于利用默认vlan值来配置虚拟网络设备的过程的示例的流程图。

图9是示出虚拟环境的示例的示意图,其中,根据一些实施例来配置具有默认vlan值的虚拟网络设备。

图10是示出根据一些实施例的用于将虚拟网络设备从第一主机迁移到第二主机的过程的实施例的流程图。

图11是示出根据一些实施例的用于将虚拟网络设备从第一主机迁移到第二主机的过程的示例的流程图。

图12是示出根据一些实施例的虚拟环境的示例的示意图,其中,虚拟网络设备从一个主机被迁移到另一主机。

图13是示出从虚拟网络设备发送传出流量的过程的实施例的流程图。

具体实施方式

可以通过许多方式来实现本发明,这些方式包括作为进程、装置、系统、物质组成、被包含在计算机可读存储介质上的计算机程序产品、和/或处理器(例如,被配置为执行耦合到处理器的存储器所存储和/或所提供的指令的处理器)。在本说明书中,这些实现方式或本发明可以采取的任意其他形式可被称为技术。通常,可以在本发明的范围内更改所公开的过程的步骤的顺序。除非另有说明,否则诸如被描述为被配置为执行任务的处理器或存储器之类的组件,可被实现为被临时地配置为在给定时间执行任务的通用组件或被制造为执行任务的特定组件。如本文所使用的,术语“处理器”是指被配置为处理诸如,计算机程序指令之类的数据的一个或多个设备、电路、和/或处理核心。

下面提供了本发明的一个或多个实施例的详细描述以及示出本发明的原理的附图。结合这些实施例描述了本发明,但本发明不被限制于任何实施例。本发明的范围仅由权利要求来限定,并且本发明包括许多替代方式、修改以及等同物。在以下描述中阐述了许多具体细节以提供对本发明的透彻的理解。为了示例的目的提供了这些细节,并且可以在没有这些具体细节中的一些或全部细节的情况下根据权利要求来实施本发明。为了清楚性的目的,未详细描述与本发明相关的技术领域中公知的技术材料,以避免不必要地模糊本发明。

vlan包括与另一vlan相互隔离的广播域。可以通过软件而非硬件来配置vlan。通过使用vlan,可以基于逻辑分组而不是物理拓扑来划分网络。

为促进位于不同vlan中的设备之间的通信,ieee802.1q联网标准定义了针对以太网帧的vlan标记系统。“标记”或“vlan标记”是指将可用于标识帧将被传递到的vlan的信息(例如,vlan值或id)添加到帧中(例如,由于目的地设备位于该vlan内)。“标记的”流量是指具有vlan标记的流量,并且“未标记的”流量是指没有vlan标记的流量。vlan标记的一种常见形式是基于端口的vlan标记。

物理交换机的端口(接口)可被配置为“中继”端口。中继端口通常仅接收具有vlan标记的帧。然而,可以针对每个物理交换机中继端口配置特定的vlanid(称为“本机”vlanid)。当物理交换机中继端口接收到没有vlan标记的帧时,物理交换机中继端口将把这些未标记的帧视为隐含地归属于本机vlanid,从而将未标记的vlan帧发送到与本机vlanid相关联的vlan。换句话说,一旦未标记的帧在线路上被发送,则当且仅当接收者物理交换机端口被配置在中继模式中并且被配置有本机vlan时,这样的帧才被视为归属于本机vlan。在一些情况下,当物理交换机中继端口接收到具有等于其被配置的本机vlanid的vlan标记的帧时,物理交换机中继端口将丢弃这些帧。当物理交换机中继端口接收到标记有不同于本机vlanid的vlanid的帧时,物理交换机中继端口将把这些帧传递到它们相应的vlan标记所标识的vlan。物理交换机的中继端口还可以与允许vlanid的范围/集合相关联。如果物理交换机中继端口的相关标记在其被配置的允许vlanid的范围/集合之内,则它将传递其接收到的以太网帧;但是,如果物理交换机中继端口的相关标记不在其被配置的允许vlanid的范围/集合之内,则它将丢弃其接收到的以太网帧。

在虚拟环境中,主机的接口可被附接到物理交换机的特定中继端口。在各个实施例中,“主机”是运行支持计算机虚拟化功能的操作系统的特定服务器。这样的操作系统的示例通常被称为“管理程序”。主机可包括被配置为传递来自主机的特定接口的帧的虚拟交换机。虚拟交换机可以与各个端口组相关联。虚拟交换机的每个端口组包括与类似特性相关联的一个或多个虚拟交换机端口。端口组可被附接到在主机上运行的一个或多个虚拟机(vm),并且被配置为将从所附接的vm接收到的帧传递到物理交换机的相应中继端口。端口组是否标记它从vm接收到的以太网帧取决于与该端口组相关联的类型。端口组被附接到归属于vm的虚拟网络接口卡(vnic),并且vm可具有多个vnic。为了说明的目的,在本文描述的示例中,假设每个vm具有仅一个vnic并且该vnic被附接到端口组,以使得在该vm被描述为在诸如“中继”或“访问”模式之类的模式中操作时,可以假设该vm以该模式操作其接口。

在一些实施例中,第一类型的端口组是“虚拟交换机标记”(vst)端口组。vst端口组被配置为从所附接的vm接收未标记的以太网帧,并且基于针对该端口组所配置的vlanid来确定是否标记该未标记的帧。在一些实施例中,可以使用特定的vlanid值(即,vlanid=0)来指示“不标记”。

在一些实施例中,第二类型的端口组(“虚拟客户标记”(vgt)端口组)被配置为准许来自虚拟网络设备的标记的和未标记的流量通过,并且不被配置为标记从所附接的vm接收的以太网帧。相反,可以为被附接到vgt端口组的vm分配vlanid,并且vm自身被配置为基于针对该vm所分配的vlanid来确定是否标记帧。

可以根据vm被附接到vst端口组还是vgt端口组,并且如果vm被附接到vgt端口组,则可以将vm配置为处于“访问”或“中继”模式。被附接到vst端口组的vm被限制为在“访问”模式操作并且仅发送未标记的帧,因为vst端口组将负责标记这些帧。换句话说,被附接到vst端口组的vm在以下意义上始终处于“访问”模式:vst端口组始终使用被分配给该端口组的vlanid来进行标记。被附接到vgt端口组的vm是“能够中继的”,这意味着该vm可以根据vm的管理员的配置而处于“访问”或“中继”模式。换句话说,被附接到vgt端口组的vm能够在以下两种可能的模式中操作:“访问”模式和“中继”模式。因此,由于被附接到vgt端口组的vm可被配置为在“中继”模式中操作,因此这样的vm有时被称为是“能够中继的”。通常,被附接到vgt端口组并且保持在“访问”模式中的vm仍不标记它自己的传出流量,这可能会导致一些问题,如下面将进一步描述的。通常,被附接到vgt端口组、被配置为处于“中继”模式并且已经被分配有vlanid的vm,将利用所分配的vlanid来标记它自己的传出流量。

图1是示出支持vlan标记的传统网络基础架构的示例的示意图。在该示例中,系统100包括物理交换机102(例如,cisconexus5000系列物理交换机)。物理交换机102的中继端口a被配置有本机vlan1,该本机vlan1指示在中继端口a处接收到的未标记的流量将被发送到vlan1,并且在中继端口a处接收到的标记的流量将被发送到帧中包括的vlan标记所标识的vlan。此外,物理交换机102的中继端口a被配置有允许vlanid范围:1-10,该允许vlanid范围指示在中继端口a处接收到的标记有该范围之内的vlanid的流量将被传递,但标记有该范围之外的vlanid的流量将被丢弃。物理交换机102的中继端口b被配置有本机vlan10,该本机vlan10指示在中继端口b处接收到的未标记的流量将被发送到vlan10,并且在中继端口b处接收到的标记的流量将被发送到帧中包括的vlan标记所标识的vlan。此外,物理交换机102的中继端口b被配置有允许vlanid范围:1-10,该允许vlanid范围指示在中继端口b处接收到的标记有该范围之内的vlanid的流量将被传递,但标记有该范围之外的vlanid的流量将被丢弃。

在系统100中,主机1的接口118被连接到中继端口b,因此从主机1的接口118发送的未标记的流量将被发送到vlan10,并且从主机1的接口118发送的标记的流量将被发送到该流量的vlan标记所标识的vlan。类似地,主机2的接口120被连接到中继端口a,因此从主机2的接口120发送的未标记的流量将被发送到vlan1,并且从主机2的接口120发送的标记的流量将被发送到该流量的vlan标记所标识的vlan。例如,主机1和主机2中的每个主机包括物理服务器。主机1和主机2中的一者或二者的实现方式的示例是运行vmwareesxi5.5的管理程序的戴尔(dell)服务器12cpux2.5ghz、48gbram、256gb固态硬盘存储装置。

同样,在系统100中,虚拟机(vm)a130在主机1上运行,并且虚拟机(vm)c132在主机2上运行。vma130被附接到主机1的虚拟交换机108的vst端口组110。从vma130发送的帧将在虚拟交换机108处被接收,并且被从主机1的接口118发送到物理交换机102的中继端口b。vmc132被附接到主机2的虚拟交换机114的vgt端口组116。从vmc132发送的帧将在虚拟交换机114处被接收,并且被从主机2的接口120发送到物理交换机102的中继端口a。

如上所述,诸如主机1的vst端口组110之类的vst端口组对所接收的流量执行vlan标记,并且被配置有特定的vlanid。例如,vst端口组110丢弃它(例如,从vma130)接收到的标记的流量,并且基于其所配置的vlanid来确定如何标记它(例如,从vma130)接收到的未标记的流量。有时,vst端口组110丢弃vma130所接收的以及来自外部世界的所有标记的流量,除非标记的流量属于指定vlanid。

相反,诸如主机1的vgt端口组112和主机2的vgt端口组116之类的vgt端口组不对所接收的流量执行vlan标记,并且相反,允许所接收的标记的和未标记的流量通过。因此,被附接到vgt端口组的vm(例如,在主机2上运行的vmc132)是“能够中继的”,这意味着该vm负责标记其自身的流量以使得该流量可以被发送到正确的vlan(例如,期望的目的地虚拟网络设备所在的vlan)。通常,将vm附接到vgt端口组支持vm等级的vlan标记。

然而,在vm已经被迁移到不同类型的虚拟交换机端口组或不同的主机之后,支持vlan标记的传统网络基础架构不能充分地支持通过该vm进行vlan标记。下面的图2描述了当vm从被附接到vst端口组被移除并且随后被附接到vgt端口组时出现的第一问题,下面的图3描述了当vm被从第一主机迁移到第二主机时出现的第二问题。

图2是示出传统虚拟环境的示例的示意图,其中,vm从被附接到vst端口组被移除并且随后被附接到vgt端口组。在系统200中,假设vma230想要与位于vlan7(未示出)中的另一设备进行通信。vma230此前被附接到主机1的虚拟交换机208的vst端口组210,并且现在(例如,通过管理程序)被附接到主机1的虚拟交换机208的vgt端口组212。vma230将从被附接到vst端口组210转换为被附接到vgt端口组212的一个示例场景是,vma的所有者期望使得vma230变为能够中继的,从而能够标记其传出流量。当vma230被附接到vst端口组210时,vma230被限制为在“访问”模式中操作并因此不标记它发出的流量,但已依赖于vst端口组210来利用针对vst端口组210所配置的vlanid来标记流量。由于vma230想要将流量发送到vlan7,因此vma230被附接到配置有vlan7的vst端口组,即vst端口组210。来自vma230的标记有vlan7的流量随后被从主机1的接口218发送到物理交换机202的中继端口b。中继端口b确定该流量被标记有vlan7、检查vlan7在其被配置的1-10的允许vlanid范围之内、并随后将该流量传递到vlan7。

当vma230被附接到vst端口组210时,vma230不能中继。在该示例中,vma230从vst端口组210转换到vgt端口组212,因为vma230的管理员想要为vma230提供中继能力(即,vma标记其自身的传出流量的能力)。然而,当vma230被连接到vst端口组210时,vma230被限制为仅向vlan7发送流量,但在vma230已经被迁移到vgt端口组212之后,vma230现在将能够通过利用不同的vlanid来标记其自身的传出流量而潜在地向多个vlan发送流量。

如果vma230尚未被配置为在“中继”模式中操作并且未被分配要发送流量的vlanid,则在vma230被附接到vgt端口组212之后可能出现问题。在这种情况下,在vma230被附接到vgt端口组212之后,vma230将默认地保持在“访问”模式中,即使vma230是能够中继的,从而不标记其传出流量。vma230可被认为能够标记其传出流量,但尚未被配置(例如,由vma230的管理员)为执行这样的标记。因此,在vma230被附接到vgt端口组212但保持在“访问”模式中之后,由于传统vma230不知道其计算环境的底层物理硬件,因此vma230继续发送未标记的流量。由于vgt端口组212不标记接收到的流量,因此vgt端口组212将把vma230的未标记的流量从主机1的接口218发送到物理交换机202的中继端口b。中继端口b将确定流量是未标记的,从而将把流量发送到其被配置的本机vlanid(vlan10),该本机vlanid不是vma230旨在发送流量的vlanid(vlan7)。因此,在传统虚拟环境中,vst端口组和vgt端口组之间的不一致的行为可能会导致在vm从vst端口组被转换到vgt端口组之后,从vm发送到其预期vlan的流量流中断。

图3是示出传统虚拟环境的示例的示意图,其中,vm从被附接到第一主机的虚拟交换机vgt端口组被移除并且随后被附接到第二主机的虚拟交换机vgt端口组。在系统300中,假设vma330想要与位于vlan1中的另一设备进行通信。vma330此前被附接到主机1的虚拟交换机308的vgt端口组312,并且现在(例如,通过管理程序)被附接到主机2的虚拟交换机314的vgt端口组316。vma330将被从主机1迁移到主机2的一个示例场景是适应工作负载均衡、硬件故障切换、和/或环境的计算需求。假设在该示例中,当vma330被附接到vgt端口组312时,能够中继的vma330被配置为处于“中继”模式并且还被分配为将流量发送到vlan1。因此,在该示例中,当vma330被附接到vgt端口组312时,vma330已经利用vlan1标记了它发出的流量。来自vma330的标记有vlan1的流量随后被从主机1的接口318发送到物理交换机302的中继端口b。中继端口b确定该流量被标记有vlan1、检查vlan1在其被配置的1-10的允许vlanid范围之内、并随后将流量传递给vlan1。

在该示例中,由于需要对主机1进行维护,所以vma330从主机1的虚拟交换机308的vgt端口组312被转换并且现在(例如,通过管理程序)被附接到主机2的虚拟交换机314的vgt端口组316。

如果连接到第一主机接口的物理中继端口的本机vlanid与连接到第二主机接口的物理中继端口的本机vlanid不同,则在vma330被从一个主机的vgt端口组迁移到另一主机的vgt端口组之后可能出现问题。当vma330被附接到主机1的虚拟交换机308的vgt端口组312时,vma330的标记的流量被从主机1的接口318发送到物理交换机302的中继端口b,该中继端口b与vlan10的本机vlanid相关联。在vma330被附接到主机2的虚拟交换机314的vgt端口组316之后,vma330的标记的流量将被从主机2的接口320发送到物理交换机302的中继端口a,该中继端口a与vlan1的本机vlanid相关联,该本机vlanid被分配给能够中继的vma330以用于“中继”模式中的vlan标记。如上所述,物理交换机中继端口将丢弃所接收的标记有等于其被配置的本机vlanid的vlanid的帧。因为,通常,vma330不知道其计算环境的底层物理硬件,因此vma330不知道在基础架构中已经发生改变(即,vma330已经被从一个主机的vgt端口组迁移到另一主机的vgt端口组),或者不知道针对连接到vma330已被迁移到的新主机的接口的中继端口b配置的新本机vlanid,vma330将继续利用vlan1来标记其传出流量。中继端口b将确定流量被标记有等于其本机vlanid的vlanid,从而丢弃这类流量并且防止这类流量到达预期的vlanid。因此,在传统虚拟环境中,针对物理交换机中继端口所配置的本机vlanid可能会导致在vm被从一个主机迁移到另一主机之后,从vm发送到其预期vlan的流量流中断。

本文描述了虚拟环境中的vlan标记的实施例。在各个实施例中,“虚拟网络设备”包括被配置为执行一个或多个网络服务(例如,防火墙、负载均衡器、虚拟专用网络、以及入侵检测系统)的一个或多个虚拟机(vm)。虚拟网络设备可被配设、配置为执行特定服务,并且被添加到网络拓扑。虚拟网络设备可被配置为与位于不同vlan中的另一设备进行通信。在各个实施例中,为每个虚拟网络设备配置vlan标记参数集。如下面将进一步详细描述的,虚拟网络设备被配置为使用vlan标记参数集来以以下方式执行vlan标记:向正确的vlan提供不间断的流量流,而不管例如,上述场景中的虚拟网络设备是否从vst端口组被转换到vgt端口组和/或虚拟网络设备是否已被迁移到新的主机。

图4是示出根据一些实施例的在虚拟环境中执行vlan标记的系统的示意图。

弹性服务管理器(esm)412被配置为配设和管理虚拟网络设备。可以使用软件和/或硬件来实现esm412。在一些实施例中,esm412维护对可用于创建虚拟网络设备的物理和/或逻辑资源池进行跟踪的数据。例如,esm412接收配设可以针对特定用户来彼此通信的两个虚拟网络设备的请求。例如,每个所请求的虚拟网络设备被请求执行特定网络服务并且被放置在特定vlan中。例如,请求可以被输入到esm和/或虚拟网络设备414的用户接口中,并且通过网络408被发送到esm412。响应于该请求,esm412被配置为检查配设所请求的vlan中的两个所请求的虚拟网络设备所需的物理和/或逻辑资源是否可用(例如,使用其存储的数据),并且在所需的资源可用的情况下,esm412被配置为向管理程序406(并且在一些实施例中,除图示中未示出的一个或多个其他管理程序之外)发送针对所请求的虚拟网络设备分配虚拟机的请求。管理程序406的示例是vmwareesxi。然后,esm412配置管理程序406针对两个所请求的网络服务中的每个网络服务所分配的一个或多个虚拟机,以创建两个虚拟网络设备。esm412被配置为将两个虚拟网络设备放置在它们相应的vlan中,并且将两个虚拟网络设备提供给虚拟网络设备的适当的用户。用户可以配置第一和第二虚拟网络设备,以使得流量可以在跨不同vlan的虚拟网络设备之间流动。

在一些实施例中,esm412由esm管理员来管理。例如,esm管理员是通过直接或经由用户接口和/或命令行接口调用esm的(例如,rest)api来操纵ems的用户。

在一些实施例中,虚拟网络设备支持两个管理角色。第一角色被称为“配设管理员”,并且由esm(或其他编制工具)代表esm(或其他编制工具)管理员来操作。配设管理员与配设虚拟网络服务以及管理网络的基础架构相关联。第二角色被称为虚拟网络设备管理员。虚拟网络设备管理员与虚拟网络设备的用户相关联,并且其流量将由虚拟网络设备来处理。配设管理员可以实施虚拟网络设备管理员无法实施的策略。配设管理员不是esm管理员(即,esm管理员不能自动地使用他/她的凭证来控制虚拟网络设备)。配设管理员可被认为是针对esm的(非用户)代理,以通过虚拟网络设备管理员无法撤销的方式来在虚拟网络设备上执行一些操作(经由使用配设管理员的凭证)。例如,esm管理员可以配置esm,并且因此,esm可以使用配设管理员凭证来配置虚拟网络设备。因此,配设管理员的动作最初由esm管理员已经完成的操作(直接地或通过之前所提供的一些其他配置项)来触发。但要重申的是,esm管理员不能直接访问虚拟网络设备——他/她在虚拟网络设备上可以动作的唯一方式是间接地,如由esm来介导。作为示例,配设管理员(例如,基于来自esm的指示)还提供虚拟网络设备名称、虚拟网络设备管理地址、高可用性配置等。

图4的示例示出了针对多租户场景中的特定租户来在虚拟环境中执行vlan标记。在图4的示例中,多租户是互联网服务提供商(isp)针对isp的一个或多个客户(一个或多个租户)提供的,尽管图示中示出了仅一个这样的租户(与租户站点410相关联的租户)。例如,租户可包括企业。租户可以针对isp的服务向isp付费,并且还可拥有或租用isp站点的数据中心/网络内部的资源集。除了拥有或租用isp站点处的资源之外,租户还可拥有或租用其自己的住所处的资源。

在多租户场景中,isp与配设虚拟网络设备以及管理网络的基础架构相关联,从而与esm/配设管理员的角色相关联。在这样的场景下,租户是(一个或多个)虚拟网络设备的用户并且其流量将由(一个或多个)虚拟网络设备来处理,并因此与虚拟网络设备管理员的角色相关联。在本文使用的各个示例中,esm/配设管理员角色与提供商相关联,并且虚拟网络设备管理员与虚拟网络设备的租户/用户相关联。如下面将描述的,esm/配设管理员可以以对于虚拟网络设备管理员透明的方式来配置针对虚拟网络设备的vlan标记参数集。

当虚拟网络设备管理员请求esm412配设虚拟网络设备时,用户可以指示虚拟网络设备是不能中继的(例如,被限制为被配置为“访问”模式)还是能够中继的(例如,能够被配置在“访问”模式或“中继”模式)。在虚拟网络设备被请求为能够中继的情况下,esm412将把虚拟网络设备附接到虚拟交换机vgt端口组。当虚拟网络设备被附接到vgt端口组并且是能够中继的时,它可由虚拟网络设备管理员配置为处于“访问”模式或“中继”模式。否则,在虚拟网络设备被请求为不能中继的情况下,esm412将把虚拟网络设备附接到虚拟交换机vst端口,并且虚拟网络设备被限制为仅在“访问”模式中操作。如下面将描述的,在将虚拟网络设备附接到vst端口组之后,虚拟网络设备管理员可随后请求esm412将虚拟网络设备迁移到vgt端口组以获得中继能力。

esm412存储描述网络的物理配置的数据(通常对于虚拟网络设备是透明的),其中,网络的物理配置包括:哪个主机接口被连接到哪个物理交换机中继端口、针对每个物理交换机中继端口配置了哪个本机vlanid、哪个虚拟网络设备在哪个主机上运行、以及针对每个物理交换机中继端口所配置的vlanid的允许范围。esm412还存储描述网络的虚拟配置的数据,其中,网络的虚拟配置包括例如,虚拟网络设备被附接到vst端口组还是vgt端口组,以及针对每个vst端口组配置了哪个vlanid。如下面将进一步描述的,esm412(例如,经由配设管理员)被配置为基于其存储的物理和虚拟配置数据来生成和更新针对每个虚拟网络设备的各种vlan相关配置。针对每个虚拟网络设备所存储的vlan相关配置包括与每个虚拟网络设备相关联的vlan标记参数集,以使得虚拟网络设备可以使用其相应的vlan标记参数集来正确地确定如何标记(包括在哪些情况下不标记)它发送到虚拟交换机的流量,从而使得流量将由相应的物理交换机端口正确地处理,进而被发送到与目的地(例如,虚拟网络)设备相关联的正确vlan。

如下面将进一步描述的,通过配置和/或更新与虚拟网络设备相关联的vlan标记参数集,esm412能够确保在esm412(例如,经由配设管理员角色)将虚拟网络设备从一个主机迁移到另一主机之后,由能够中继的虚拟网络设备所标记的流量流向正确的vlan。此外,通过配置和/或更新与虚拟网络设备相关联的vlan标记参数集,esm412能够确保在esm412(例如,经由配设管理员角色)将虚拟网络设备从vst端口组转换到vgt端口组之后,流量流向正确的vlan。在各个实施例中,由esm412配设的每个虚拟网络设备被配置为包括软件模块,该软件模块被配置为使用vlan标记参数集来确定是否/如何标记传出帧。在一些实施例中,在虚拟机上执行的这样的软件模块被称为“接口管理器”。在各个实施例中,esm412以对于虚拟网络设备的管理员透明的方式来维护和更新每个虚拟网络设备的相应的vlan标记参数集。由esm来更新虚拟网络设备的vlan标记参数集以及由虚拟网络设备使用vlan标记参数集来标记其传出流量的组合支持来自虚拟网络设备的一致的流量流,而不要求虚拟网络设备管理员的干预。

在示例中,系统400包括isp站点402、网络408、以及租户站点410。在各个实施例中,isp站点402和租户站点410是不同的物理站点。在示例中,esm412和管理程序406被现场安装在isp站点402处。isp站点402可包括一个或多个esm(包括esm412在内)。安装在isp站点402处的每个esm被逻辑地连接到其管理的物理资源。isp站点402的isp已经创建了在至少一些租户(包括租户站点410的租户)间共享的层二和/或三拓扑。如下面将描述的,isp站点402还包括由与租户站点410相关联的租户所拥有/租用的资源集430((一个或多个)网络节点420、防火墙424、负载均衡器426、以及(一个或多个)网络节点422)。isp站点402还可包括由除租户站点410的租户之外的图4中未示出的租户所拥有/租用的资源。在该示例中,租户站点410包括到esm和/或虚拟网络设备414的用户接口,其包括用户接口,租户站点410处的用户(例如,虚拟网络设备管理员)通过该用户接口可以访问安装在isp站点402处的esm412和/或租户所拥有/使用的虚拟网络设备(例如,防火墙424和负载均衡器426)。

以下是isp站点402处的esm412可以如何配设两个虚拟网络设备(防火墙424和负载均衡器426),并且将它们放置在针对租户站点410的租户的不同vlan中的示例:

例如,租户站点410的租户可能希望先后将防火墙虚拟网络设备和负载均衡器虚拟网络设备添加到其拓扑中。为此,租户站点410的用户(例如,虚拟网络设备的管理员)可以使用到esm414的用户接口来针对被连接到负载均衡器虚拟网络设备的防火墙虚拟网络设备向isp站点402处的esm412发送请求。在一些实施例中,到esm414的用户接口包括运行命令行接口(cli)的客户端、或rest命令集、和/或经由rest接口和图形接口(例如,作为网络应用来运行)和/或命令行接口(例如,作为python应用来运行)来访问esm412的图形用户界面。该请求还可包括其他信息,例如,防火墙和负载均衡器中的每一个虚拟网络设备将具有多少接口以及防火墙和负载均衡器中的每一个虚拟网络设备的哪个接口将用于彼此交换数据。

在从到esm414的用户接口接收到请求之后,esm412检查其资源池以确定创建所请求的虚拟网络设备所需的物理和/或逻辑资源是否可用。在资源可用的情况下,esm412向管理程序406发送配设将被配置在所请求的防火墙和负载均衡器虚拟网络设备中的适当数目的虚拟机的请求。esm412随后将配置信息推送到管理程序406所配设的虚拟网络设备。esm412自身和/或经由相对于租户410的租户的虚拟网络设备的配设管理员角色来发送配置信息,以将虚拟网络设备配置为防火墙424和负载均衡器426。租户站点410处的虚拟网络设备管理员可以配置防火墙424和负载均衡器426,以使得数据可以在两个虚拟网络设备之间被交换。在一些实施例中,随着时间的推移,防火墙424和/或负载均衡器426可以将数据报告回esm412。

租户站点410的租户所拥有或租用的防火墙424和负载均衡器426可以各自在不同的主机(例如,服务器)上运行,并且每个主机可被放置在不同的vlan中。因此,可以允许同一isp的不同租户来使用isp站点402的isp所管理的所有vlan的不同子集。防火墙424和负载均衡器426在其上运行的每个主机可被连接到物理交换机的不同中继端口。物理交换机的每个中继端口与所配置的本机vlanid相关联。为了使防火墙424利用它们各自的vlan中的负载均衡器426来回发送流量,在防火墙424和负载均衡器426中的每个虚拟网络设备上运行的软件模块(例如,接口管理器)被配置为至少部分地基于虚拟网络设备从esm412接收的相应vlan标记参数集来确定如何标记它发送的帧。

图5是示出根据一些实施例的弹性服务管理器(esm)的示例的示意图。在一些实施例中,图4的系统400的esm412可被实现为图5中描述的示例。在该示例中,esm包括管理员接口502、资源管理器504、资源池506、虚拟网络设备驱动器508、管理程序驱动器510、配置跟踪引擎513、物理和虚拟配置存储装置511、以及虚拟网络设备vlan相关配置存储装置512。管理员接口502、资源管理器504、资源池506、虚拟网络设备驱动器508、配置跟踪引擎513、以及管理程序驱动器510中的每项都可以使用软件和/或硬件来实现。

管理员接口502被配置为从用户(例如,esm管理员)接收输入。例如,管理员接口502被配置为提供本地或远程用户接口,用户可以通过该本地或远程用户接口输入信息。在一些实施例中,经由代表状态转移(rest)应用编程接口(api)接收用户输入。在一些实施例中,管理员接口502接收配设一个或多个虚拟网络设备的请求。例如,可以由多租户(例如,isp的客户)场景中的租户做出请求。例如,请求可包括与下列项相关联的信息:所请求的虚拟网络设备的数目、每个虚拟网络设备的接口的数目、将由每个虚拟网络设备执行的网络服务(例如,防火墙、负载均衡、或其他网络服务)、每个虚拟网络设备被放置在其中的vlan、以及虚拟网络设备将被分配给的特定用户(例如,租户)。如果需要,管理员接口502还被配置为转换请求,并且将(经转换的)请求转发到资源管理器504。

资源管理器504被配置为接收由管理员接口502转发的用于配设虚拟网络设备的请求。在一些实施例中,资源管理器504是一个特定esm的组件,而非多个esm的组件。资源管理器504被配置为确定需要哪些物理资源和/或逻辑资源来服务每个请求。资源池506被配置为维护与可用的(例如,用于生成新的虚拟网络设备)以及不可用的(例如,不可用的资源可包括已被分配给现有虚拟网络设备的资源)物理和/或逻辑资源相关联的更新数据。资源池506所跟踪的物理和/或逻辑资源的示例包括物理服务器(主机)、中央处理单元(cpu)、存储器、网络接口卡、vlanid、ip地址、以及网络地址集。在一些实施例中,资源管理器504被配置为检查资源池506以确定处理每个请求所需的物理和/或逻辑资源是否可用。在esm内部的资源池506通知esm内部的资源管理器504处理请求所需的资源是可用的情况下,资源管理器504被配置为向esm内部的管理程序驱动器510发送包括请求的消息,该消息将被传递(例如,经由网络)到esm外部的管理程序(图5中未示出)。在一些实施例中,被发送到管理程序驱动器510的消息可包括针对一个或多个虚拟网络设备的原始请求以及针对虚拟网络设备的另外的规范,例如,每个资源的哪些和/或多少资源将用于配设每个虚拟网络设备。

管理程序驱动器510被配置为将来自esm的消息转换为(esm外部的)管理程序可以理解的格式,并且将经转换的消息发送到管理程序。在一些实施例中,管理程序驱动器510被配置为接收并转换来自资源管理器504的消息,并且将经转换的消息发送到管理程序(例如,经由rest或专有api)。管理程序将针对每个所请求的虚拟网络设备生成适当数目的虚拟机,并且还将创建或重新配置每个虚拟机所附接的其他网络资源(例如,虚拟交换机)。

虚拟网络设备驱动器508被配置为将来自esm的指令转换为包括一个或多个虚拟机的虚拟网络设备可以理解的指令。在(一个或多个)虚拟机由管理程序配设之后,虚拟网络设备驱动器508被配置为将经转换的指令发送到虚拟网络设备,以配置该一个或多个虚拟机用作每个所请求的虚拟网络设备。被发送到虚拟网络设备的经转换的指令(例如,经由restapi)可包括例如,将由每个虚拟网络设备执行的(一个或多个)网络服务。

物理和虚拟配置存储装置511被配置为存储与esm所管理的物理和虚拟基础架构相关的数据。在一些实施例中,物理和虚拟配置存储装置511被配置为存储物理配置,其中,物理配置是例如,下列项中的一项或多项:哪个主机接口被连接到哪个物理交换机中继端口、针对每个物理交换机中继端口配置了哪个本机vlanid、哪个虚拟网络设备在哪个主机上运行、以及针对每个物理交换机中继端口所配置的vlanid的允许范围。在一些实施例中,物理和虚拟配置存储装置511被配置为存储虚拟配置,其中,虚拟配置是例如,下列项中的一项或多项:虚拟网络设备被附接到vst端口组还是vgt端口组、以及针对每个vst端口组配置了哪个vlanid。

配置跟踪引擎513被配置为确定与esm相关联的虚拟环境中的物理和/或虚拟配置是否已经发生改变。在一些实施例中,配置跟踪引擎513确定物理和/或虚拟配置中的改变并且更新物理和虚拟配置存储装置511。例如,配置跟踪引擎513确定虚拟网络设备是否已经从vst端口组被移除并被附接到vgt端口组。在另一示例中,配置跟踪引擎513确定虚拟网络设备是否已经被从一个主机迁移到另一主机。在一些实施例中,配置跟踪引擎513被配置为使用存储在物理和虚拟配置存储装置511处的数据来确定针对每个虚拟网络设备所存储的vlan相关配置集,并且将这些配置存储在虚拟网络设备vlan相关配置存储装置512处。配置跟踪引擎513被配置为将针对每个虚拟网络设备所存储的vlan相关配置集发送到该虚拟网络设备(经由配设管理员)。在配置跟踪引擎513确定对物理和/或虚拟配置的改变并且相应地更新物理和虚拟配置存储装置511之后,配置跟踪引擎513还可更新存储在虚拟网络设备vlan相关配置存储装置512处的一个或多个vlan相关配置集,并且随后将经更新的vlan相关配置集发送到相应的虚拟网络设备。针对每个虚拟网络设备所存储的vlan相关配置集包括关于将由该虚拟网络设备执行的vlan标记的信息。在一些实施例中,针对每个虚拟网络设备所存储的vlan相关配置集还包括vlan标记参数集。在一些实施例中,针对虚拟网络设备所存储的vlan标记参数包括虚拟网络设备是否能够中继(例如,虚拟网络设备是否被附接到vgt端口组)、浮动本机vlanid、允许vlan、以及默认vlanid。如下面将进一步描述的,基于虚拟网络设备由配设管理员附接到vst还是vgt端口组来确定描述虚拟网络设备是否能够中继的参数,基于针对被连接到虚拟网络设备正在其上运行的当前主机的相关接口的物理交换机中继端口所配置的本机vlanid来确定浮动本机vlanid参数,允许的vlan包括准许与虚拟网络设备相关联的用户(例如,租户)来使用的vlanid的子集,并且默认vlanid由配设管理员基于一组标准来选择。

在各个实施例中,配置跟踪引擎513被配置为向虚拟网络设备发送其相应的vlan标记参数集及其更新。不管虚拟网络设备管理员已经将能够中继的虚拟网络设备(例如,被附接到vgt端口组的虚拟网络设备)配置为“访问”模式还是“中继”模式,虚拟网络设备(例如,在虚拟网络设备上运行的软件模块)都被配置为使用其相应的vlan标记参数集来执行vlan标记。

图6是示出根据一些实施例的针对每个虚拟网络设备可被存储的示例vlan标记参数集的示意图。在一些实施例中,由配设管理员存储和配置针对每个虚拟网络设备的vlan标记参数集。vlan标记参数集600包括“能够中继?”参数602、“浮动本机vlanid”参数604、“允许vlanid”参数606、以及“默认vlanid”参数608。然而,vlan标记参数集600仅是示例,并且在实际的实现方式中,可以针对每个虚拟网络设备存储不同的、较少的、和/或另外的vlan标记参数。

如果虚拟网络设备由配设管理员附接到虚拟交换机的vgt端口组,则“能够中继?”参数602被设置为“真”;并且,如果虚拟网络设备由配设管理员附接到虚拟交换机的vst端口组,则“能够中继?”参数602被设置为“假”。在一些实施例中,在虚拟网络设备管理员已经向esm请求虚拟网络设备能够中继的情况下,配设管理器将虚拟网络设备附接到vgt端口组。在一些实施例中,在虚拟网络设备管理员已经向esm请求虚拟网络设备专用于“访问”模式从而不能中继的情况下,配设管理器将虚拟网络设备附接到vst端口组。然而,在一些实施例中,在配设管理员将虚拟网络设备从vst端口组移除并将虚拟网络设备附接到vgt端口组之后,针对虚拟网络设备的“能够中继?”参数602从“假”变为“真”。在各个实施例中,“能够中继?”参数602被设置为“真”的虚拟网络设备能够由虚拟网络设备配置为处于“访问”模式或“中继”模式。在虚拟网络设备的“能够中继?”参数602被设置为“真”的情况下,不管虚拟网络设备已经被虚拟网络设备管理员配置为处于“访问”还是“中继”模式,虚拟网络设备(例如,或在其中运行的软件模块)被配置为确定如何标记其传出流量。

“浮动本机vlanid”参数604被设置为针对被连接到虚拟网络设备正在其上运行的当前主机的相关接口的物理交换机中继端口所配置的本机vlanid。在虚拟网络设备被迁移到新主机的情况下,更新“浮动本机vlanid”参数604的值。在虚拟网络设备被迁移到新主机的情况下,“浮动本机vlanid”参数604被更新为针对被连接到新主机的相关接口的物理交换机中继端口所配置的本机vlanid的vlanid。在各个实施例中,被配置为处在“访问”或“中继”模式的能够中继的虚拟网络设备(例如,或在其中运行的软件模块)被配置为使用“浮动本机vlanid”参数604来确定不标记去往与浮动本机vlanid参数604相同的vlanid的流量,但标记去往与浮动本机vlanid参数604不同的vlanid的具有目的地vlanid的流量。

“允许vlanid”参数606被设置为虚拟网络设备可以用来传递流量的vlanid的子集。在各个实施例中,“允许vlanid”参数606的vlanid被设置为准许使用虚拟网络设备的租户使用(例如,经由与服务提供商的布置)的vlanid。在一些实施例中,能够中继的虚拟网络设备(例如,或在其中运行的软件模块)被配置为使用“允许vlanid”参数606来确定它可以用来标记流量的vlanid。在一些实施例中,“允许vlanid”参数606的值由配设管理员至少基于针对被连接到虚拟网络设备正在其上运行的当前主机的相关接口的物理交换机中继端口所配置的vlanid的允许范围/集合的子集来选择。

“默认vlanid”参数608被设置为配设管理员所选择的vlanid。在一些实施例中,虚拟网络设备(例如,或在其中运行的软件模块)被配置为当“能够中继?”参数602已经被设置为“真”(因为虚拟网络设备已经被附接到vgt端口组),但虚拟网络设备管理员已经将虚拟网络设备配置为在“访问”模式中操作时,使用“默认vlanid”参数608来标记传出流量。在一些实施例中,虚拟网络设备(例如,或在其中运行的软件模块)被配置为当“能够中继?”参数602已经被设置为“真”(因为虚拟网络设备已经被附接到vgt端口组),并且虚拟网络设备管理员已经将虚拟网络设备配置为在“中继”模式中操作但虚拟网络设备管理员尚未为虚拟网络设备分配发送流量的vlanid时,使用“默认vlanid”参数608来标记传出流量。在虚拟网络设备已经从被附接到vst端口组转换为被附接到vgt端口组的情况下,“默认vlanid”参数608可被设置为针对vst端口组所配置的vlanid,以使得虚拟网络设备(例如,或其中的软件模块)在它已经被转换到vgt端口组并且被配置在“访问”模式或被配置在“中继”模式但未(尚未)被分配vlanid之后,可以模拟vst端口组。

图7是示出根据一些实施例的利用默认vlan值配置虚拟网络设备的过程的实施例的流程图。在一些实施例中,在诸如图4的系统400之类的系统处实现过程700。在一些实施例中,由esm和/或配设管理员实现过程700。

在702处,虚拟网络设备从附接到虚拟交换机标记(vst)端口组转换到附接到虚拟客户标记(vgt)端口组,其中,虚拟网络设备在附接到vgt端口组时是能够中继的,并且其中,虚拟网络设备在转换之前和之后被配置在访问模式。在各个实施例中,当虚拟网络设备附接到虚拟交换机的vst端口组时是不能中继的。如上所述,当虚拟网络设备附接到vst端口组时,虚拟网络设备不能中继、被限制在“访问”模式中操作、并且不标记其传出流量。在各个实施例中,当esm/配设管理员将虚拟网络设备从附接到vst端口组移除并替代地将虚拟网络设备附接到vgt端口组时,虚拟网络设备变得能够中继。通过附接到vgt端口组,虚拟网络设备现在能够执行其传出流量的标记。在一些实施例中,在虚拟网络设备上运行的软件模块(接口管理器)被配置为在虚拟网络设备变为能够中继之后执行虚拟网络设备的传出流量的标记。在一些实施例中,在虚拟网络设备从vst端口组被转换到vgt端口组之后,虚拟网络设备默认保持在“访问”模式中(因为虚拟网络设备在附接到vst端口组时可能仅在“访问”模式中操作)。

在一些实施例中,由于提供商提供给与虚拟网络设备相关联的租户的服务的变化,虚拟网络设备从之前的不能中继变为能够中继。以下是提供商提供给租户的服务的变化的示例:租户此前未对租户的虚拟网络设备能够中继付费,并且因此,配设管理员将虚拟网络设备附接到vst端口组。然而,租户随后决定对虚拟网络设备能够中继付费,并且因此,配设管理员将虚拟网络设备从vst端口组移除并将虚拟网络设备附接到vgt端口组。

在704处,虚拟网络设备被配置有默认vlan值,其中,虚拟网络设备被配置为使用默认vlan值来标记从虚拟网络设备发送的帧。默认vlan值(例如,默认vlanid)参数的vlan标记参数是针对虚拟网络设备配置的,并且被发送到虚拟网络设备。在各个实施例中,在某些情况下,虚拟网络设备(例如,其接口管理器)将使用默认vlan值来标记其传出流量。在一些实施例中,在虚拟网络设备在它已经被附接到vgt端口组之后保持在“访问”模式中操作的情况下,虚拟网络设备将使用默认vlan值参数来标记其传出流量。在虚拟网络设备此前被附接到vst端口组时,虚拟网络设备尚未标记其传出流量,并且依赖于vst端口组利用针对vst端口组所配置的vlan值来标记流量。

为了使能够中继但在“访问”模式中操作的虚拟网络设备能够模拟它此前所附接的vst端口组的标记行为,在一些实施例中,esm/配设管理员可以将针对虚拟网络设备所配置的默认vlan值设置为等于针对vst端口组所配置的vlan值。因此,在从vst端口组转换到vgt端口组并且保持在“访问”模式中之后,虚拟网络设备可以继续利用被配置为由vst端口组在标记中使用的同一vlan值来标记其传出流量。例如,若vlan5已经被配置为由虚拟网络设备此前所附接的vst端口组在标记中使用,则针对虚拟网络设备所配置的默认vlan值也可以是vlan5。在一些实施例中,默认vlan值可以被配置为任意vlanid。

在一些实施例中,包括默认vlan值在内的其他(经更新的)vlan标记参数被发送到虚拟网络设备。例如,其他vlan标记参数包括下列项中的一项或多项:被设置为“真”的“能够中继”参数、包括允许与虚拟网络设备相关联的租户使用的vlan值的允许vlan值的集合、以及与被配置用于连接到虚拟网络设备当前正在其上运行的主机的相关端口的中继端口的本机vlan值相对应的浮动本机vlan值。

在各个实施例中,在虚拟网络设备被附接到vgt端口组并且保持在“访问”模式中之后,能够中继的虚拟网络设备的接口管理器将首先确定默认vlan值参数是否在vlan标记参数中的允许vlan值的集合之内,以及默认vlan值是否不等于vlan标记参数中的浮动本机vlan值。在默认vlan值参数在允许vlan值的集合之内并且不等于浮动本机vlan值的情况下,接口管理器将利用默认vlan值来标记传出帧。否则,在默认vlan值参数不在允许vlan值的集合之内的情况下,接口管理器将不发送传出帧。否则,在默认vlan值在允许vlan值的集合之内但还等于浮动本机vlan值的情况下,接口管理器将发送未标记的传出帧。

图8是示出根据一些实施例的利用默认vlan值配置虚拟网络设备的过程的示例的流程图。在一些实施例中,在诸如图4的系统400之类的系统处实现过程800。在一些实施例中,由esm和/或配设管理员实现过程800。

过程800示出了虚拟网络设备从vst端口组被转换到vgt端口组的示例过程,并且针对虚拟网络设备所配置的默认vlanid等于针对vst端口组配置的用来标记分组的vlanid,以使得现在能够中继的虚拟网络设备继续以vst端口组所使用的同一方式来标记传出流量。

在802处,确定虚拟网络设备是否将被从vst端口组转换到vgt端口组。在确定虚拟网络设备将被从vst端口组转换到vgt端口组的情况下,控制转移到804。否则,在确定虚拟网络设备将保持被附接到vst端口组的情况下,控制随后返回802。在一些实施例中,虚拟网络设备被配置为在检测到由服务提供商提供给与虚拟网络设备相关联的租户的服务中的变化的情况下,从vst端口组转换到vgt端口组。例如,租户可能已经请求虚拟网络设备升级服务并且变为能够中继的,其中,它此前不能中继。在804处,虚拟网络设备被从vst端口组转换到vgt端口组。esm/配设管理员将虚拟网络设备从被附接到vst端口组移除并替代地将虚拟网络设备附接到vgt端口组。在806处,至少部分地基于针对vst端口组所配置的vlanid来配置与虚拟网络设备相关联的默认vlanid。为了使能够中继但在“访问”模式中操作的虚拟网络设备能够模拟它此前所附接的vst端口组的标记行为,在一些实施例中,esm/配设管理员可以将针对能够中继的虚拟网络设备所配置的默认vlan值设置为等于针对vst端口组所配置的vlan值。这样,当能够中继的虚拟网络设备在“访问”模式中操作时,虚拟网络设备(例如,其接口管理器)可以使用默认vlanid来标记其传出帧,而在转换后不会对其流量造成任何中断。

图9是示出虚拟环境的示例的示意图,其中,根据一些实施例来配置具有默认vlan值的虚拟网络设备。在系统900中,虚拟网络设备a(vnda930)想要将流量发送到位于vlan2中的目的地。vnda930初始地被附接到主机1的vst端口组910。当vnda930被附接到vst端口组910时,vnda930不标记其传出流量,并且vst端口组910已经使用其所配置的vlanid(vlan2)标记了vnda930的流量。这样,当vnda930被附接到vst端口组910时,来自vnda930的流量被发送到vlan2。然后,响应于事件(例如,由服务提供商提供给与vnda930相关联的租户的服务中的改变),vnda930被从vst端口组910移除并且随后被附接到主机1的vgt端口组912。

通常,在被附接到vgt端口组912之后,vnda930将保持在“访问”模式中并且将仍不标记其传出流量。因此,通常,来自vnda930的未标记的流量将穿过vgt端口组912,通过主机1的接口918被发出,并且在物理交换机902的中继端口b处被接收。通常,物理交换机902的中继端口b将认为未标记的流量是去往其所配置的vlan10的本机vlanid。因此,中继端口b将把未标记的流量发送到vlan10,从而中断应被发送到vlan2的流量。

然而,根据本文描述的实施例,在vnda930被转换到vgt端口组912之后,默认vlanid针对vnda930被配置为等于针对vst端口组910所配置的vlanid(vlan2),以使得在能够中继的vnda930上运行的接口管理器(ifm)软件模块可以使用默认vlan2来标记其传出流量,以便流量可以继续被发送到vlan2,就像vnda930仍被附接到vst端口组910一样。通过将默认vlanid配置为等于针对vnda930此前所附接的vst端口组910所配置的vlanid(vlan2),尽管vnda930是在“访问”模式中操作,但vnda930可以继续将流量发送到正确的vlanid,而不管从不能中继到能够中继的转换。

在被转换到vgt端口组912后,vnda930可以由vnda930的管理员配置为从“访问”模式切换到“中继”模式,并且基于所分配的vlanid(图9中未示出)来标记传出流量,在这种情况下,vnda930将不再使用默认vlanid来标记其传出流量,而是开始使用所分配的vlanid来标记其传出流量。

图10是示出根据一些实施例的用于将虚拟网络设备从第一主机迁移到第二主机的过程的实施例的流程图。在一些实施例中,在诸如图4的系统400之类的系统处实现过程1000。在一些实施例中,由esm和/或配设管理员实现过程1000。

在1002处,虚拟网络设备被从第一主机迁移到第二主机,其中,虚拟网络设备被配置有与迁移之前的第一主机的接口相关联的第一浮动本机vlan值。在各个实施例中,浮动本机vlan值(例如,浮动本机vlanid)参数被设置为针对被连接到虚拟网络设备正在其上运行的当前主机的相关接口的物理交换机中继端口所配置的本机vlan值。虚拟网络设备可能由于各种原因而被从第一主机迁移到第二主机。第一示例原因是第一主机发生故障,因此虚拟网络设备被迁移到可操作的第二主机。第二示例原因是需要对第一主机执行维护,因此虚拟网络设备被迁移到当前未执行维护的第二主机。第三示例原因是第一主机不具有虚拟网络设备所请求的另外的资源(例如,存储器、处理能力、存储装置等),因此虚拟网络设备被迁移到可以提供所请求的另外的资源的第二主机。

在迁移之前,虚拟网络设备在第一主机上运行,并且被配置有等于针对被连接到来自虚拟网络设备的传出流量从其被发送的第一主机的接口的物理交换机中继端口所配置的本机vlan值的浮动本机vlan值(例如,浮动本机vlanid)参数。在各个实施例中,虚拟网络设备在迁移之前被附接到第一主机处的vgt端口组,并且在迁移之后被附接到第二主机处的vgt端口组。由于虚拟网络设备被附接到第一主机处的vgt端口组,因此虚拟网络设备能够中继。在虚拟网络设备被配置为在“中继”模式中操作,并且在被附接到第一主机的vgt端口组时由虚拟网络设备管理员分配了用于发送流量的vlan值的情况下,虚拟网络设备首先通过将所分配的vlan值与基于第一主机的接口所确定的浮动本机vlan值参数进行比较来确定是否利用所分配的vlan值来标记传出帧。在一些实施例中,在虚拟网络设备上运行的软件模块(接口管理器)被配置为至少使用浮动本机vlan值参数来执行虚拟网络设备的传出流量的标记。如上所述,如果物理交换机中继端口接收到未标记的帧,则中继端口将认为该帧被暗示发送到针对该中继端口所配置的本机vlan值;但是,如果物理交换机中继端口接收到标记有针对该中继端口所配置的本机vlan值的帧,则中继端口可丢弃该帧。这样,虚拟网络设备被配置为首先检查其所分配的vlan值是否等于基于第一主机的接口所确定的浮动本机vlan值参数。在所分配的vlan值等于基于第一主机的接口所确定的浮动本机vlan值参数的情况下,虚拟网络设备将不标记传出帧,并且在所分配的vlan值不等于基于第一主机的接口所确定的浮动本机vlan值参数的情况下,虚拟网络设备将使用所分配的vlan值来标记传出帧。

在1004处,虚拟网络设备被配置有与第二主机的接口相关联的第二浮动本机vlan值,其中,虚拟网络设备被配置为将第二浮动vlan值与所分配的vlan值进行比较。在迁移之后,虚拟网络设备在第二主机上运行。这是因为,通常,虚拟网络设备不知道环境的物理配置,该物理配置包括针对被连接到来自虚拟网络设备的传出流量将从其被发送的第二/新的主机的接口的物理交换机中继端口所配置的本机vlan值。因此,通常,在被迁移到第二/新的主机之后,虚拟网络设备可能仍将其所分配的vlan值和与第一/之前的主机的接口相关联的本机vlan值进行比较。然而,如果针对连接到第一主机的接口的物理交换机中继端口所配置的本机vlan值与针对连接到第二主机的接口的物理交换机中继端口所配置的本机vlan值不同,并且如果虚拟网络设备发送用于与第一主机的接口相关联的本机vlan值的未标记的帧,则流量将由连接到第二主机的接口的物理交换机中继端口发送到其自己的本机vlan值。

因此,响应于迁移,esm/配设管理员将把针对虚拟网络设备所配置的浮动本机vlan值参数更新为等于针对连接到其第二/当前主机的接口的物理交换机中继端口所配置的本机vlan值。因此,由于esm/配设管理员在迁移之后已经自动更新了针对虚拟网络设备所配置的浮动本机vlan值参数,因此虚拟网络设备可以继续使用正确的本机vlan值来比较其所分配的vlan值,以确定标记流量是否是适当的。

这样,由于虚拟网络设备不能独自确定针对连接到其当前主机的接口的物理交换机中继端口所配置的本机vlan值,esm/配设管理员可以自动地配置针对虚拟网络设备的浮动本机vlan值参数,以匹配针对连接到虚拟网络设备的当前主机的接口的物理交换机中继端口所配置的本机vlan值,以确保虚拟网络设备使用适当的本机vlan值来确定如何标记其传出流量。

图11是示出根据一些实施例的用于将虚拟网络设备从第一主机迁移到第二主机的过程的示例的流程图。在一些实施例中,在诸如图4的系统400之类的系统处实现过程1100。在一些实施例中,由esm和/或配设管理员实现过程1100。在一些实施例中,使用过程1100来实现图10的过程1000。

过程1100示出,每当虚拟网络设备被从一个主机迁移到另一主机时,针对虚拟网络设备所配置的浮动本机vlanid参数可以被更新。

在1102处,确定是否将虚拟网络设备从第一主机迁移到第二主机。在确定将虚拟网络设备从第一主机迁移到第二主机的情况下,控制被传送到1104。否则,在确定不将虚拟网络设备从第一主机迁移到第二主机的情况下,稍后再次检查1102。如上所述,可能由于各种原因而将虚拟网络设备从被附接到第一主机处的vgt端口组迁移到被附接到第二主机处的vgt端口组。第一示例原因是第一主机发生故障,因此将虚拟网络设备迁移到可操作的第二主机。第二示例原因是需要对第一主机执行维护,因此将虚拟网络设备迁移到当前未执行维护的第二主机。第三示例原因是第一主机不具有虚拟网络设备所请求的另外的资源(例如,存储器、处理能力、存储装置等),因此将虚拟网络设备迁移到可以提供所请求的另外的资源的第二主机。在1104处,虚拟网络设备被从第一主机迁移到第二主机。在各个实施例中,虚拟网络设备在迁移之前被附接到第一主机处的vgt端口组,并且在迁移之后被附接到第二主机处的vgt端口组。在1106处,确定与连接到第二主机的接口的物理交换机中继端口相关联的本机vlanid。在1108处,至少部分地基于与连接到第二主机的接口的物理交换机中继端口相关联的本机vlanid来更新与虚拟网络设备相关联的浮动本机vlanid参数。在迁移和更新与虚拟网络设备相关联的浮动本机vlanid参数之后,虚拟网络设备可以在第二主机处运行的同时确定是否使用经更新的浮动本机vlanid参数来标记流量,而无需来自虚拟网络设备管理员的任何干预。在1110处,确定虚拟网络设备是否将停止运行。在虚拟网络设备将停止运行的情况下,过程1100结束。否则,在确定虚拟网络设备不停止运行的情况下,控制返回1102。

图12是示出根据一些实施例的虚拟环境的示例的示意图,其中,虚拟网络设备被从一个主机迁移到另一主机。在系统1200中,虚拟网络设备a(vnda1230)想要将流量发送到位于vlan10中的目的地。vnda1230最初被附接到主机1的vgt端口组1212。当vnda1230被附接到vgt端口组1212时,虚拟交换机1208将来自vnda1230的传出流量从主机1的接口1218发送到物理交换机1202的中继端口b。esm/配设管理员知道针对中继端口b所配置的本机vlanid是vlan10,因此将vnda1230的浮动本机vlanid参数配置为vlan10。能够中继的vnda1230已经被配置为在“中继”模式中操作,并且由vnda1230的管理员分配了vlan10。这样,vnda1230已经通过首先检查所分配的vlanid(vlan10)是否等于浮动本机vlanid(vlan10)来确定是否标记传出帧。由于所分配的vlanid(vlan10)等于浮动本机vlanid,因此当vnda1230被附接到主机1的vgt端口组1212时,vnda1230未标记传出帧以便中继端口b将把未标记的分组发送到其本机vlanid。然后,响应于事件(例如,需要对主机1执行维护),vnda1230被从vgt端口组1212移除并随后被附接到主机2的vgt端口组1216。

通常,在被迁移到主机2的vst端口组1216之后,vnda1230将继续比较其所分配的vlanid(vlan10)和本机vlan10,因为它不知道针对vnda1230的新主机(主机2)的接口1220所连接的物理交换机1202的中继端口a所配置的本机vlanid实际上是vlan1。因此,通常,来自vnda1230的未标记的流量将通过vgt端口组1216,通过主机2的接口1220被发出,并在物理交换机1202的中继端口a处被接收。通常,物理交换机1202的中继端口a将认为未标记的流量是去往其被配置的vlan1的本机vlanid。因此,中继端口a将把未标记的流量发送到vlan1,从而中断应被发送到vlan10的流量。

然而,根据本文描述的实施例,与vnda1230相关联的浮动本机vlanid参数被更新为等于针对vnda1230的新主机(主机2)的接口1220所连接的物理交换机1202的中继端口a所配置的本机vlanid(vlan10),以使得在vnda1230上运行的接口管理器(ifm)软件模块可以使用浮动本机vlanid参数来确定是否标记其传出流量,从而使得流量可以继续被发送到vlan1。通过将vnda1230的浮动本机vlanid参数更新为等于针对与vnda1230在其上运行的新主机(主机2)的接口1220相关联的中继端口a所配置的vlanid(vlan1),当vnda1230在“中继”模式中操作时,vnda1230可以继续将流量发送到正确的vlanid,而不管从一个主机到另一主机的迁移。在vnda1230已经被附接到主机2的vgt端口组1216之后,vnda1230可以使用其经更新的vlan1的浮动本机vlanid参数值来确定由于其所分配的vlan10的vlanid与浮动本机vlan1不匹配,因此vnda1230将使用vlan10来标记传出帧。

图13是示出从虚拟网络设备发送传出流量的过程的实施例的流程图。在一些实施例中,在诸如图4的系统400之类的系统处实现过程1300。在一些实施例中,由在虚拟网络设备上执行的接口管理器软件模块来实现过程1300。

过程1300示出了示例过程,通过该示例过程,在虚拟网络设备上执行的接口管理器使用如本文描述的虚拟网络设备的vlan标记参数(例如,“能够中继?”参数、浮动本机vlanid参数、允许vlanid参数、以及默认vlanid参数)来确定如何/何时标记传出流量。

在1302处,确定虚拟网络设备是否能够中继。在虚拟网络设备能够中继的情况下,控制被传送到1304。否则,在虚拟网络设备不能中继的情况下,控制被传送到1318,在1318处,从虚拟网络设备发送未标记的帧。虚拟网络设备在被附接到虚拟交换机的vgt端口组的情况下是能够中继的,并且在被附接到虚拟交换机的vst端口组的情况下是不能中继的。在一些实施例中,可以根据“能够中继?”参数来确定虚拟网络设备是否能够中继。

在1304处,确定虚拟网络设备的模式。在虚拟网络设备在“访问”模式中操作的情况下,控制被传送到1306。否则,在虚拟网络设备在“中继”模式中操作的情况下,控制被传送到1310。可以根据由虚拟网络设备的管理员所生成的配置来确定虚拟网络设备的模式。

在1306处,确定针对虚拟网络设备所配置的默认vlanid参数是否是被允许的。在默认vlanid参数被允许的情况下,控制被传送到1308。否则,在默认vlanid不被允许的情况下,过程1300结束。如果在允许vlanid参数所包括的vlanid中发现默认vlanid,则确定它是被允许的。

在1308处,确定默认vlanid参数是否等于浮动本机id参数。在默认vlanid等于浮动本机id参数的情况下,控制被传送到1318。否则,在默认vlanid不等于浮动本机id参数的情况下,控制被传送到1316,在1316处,帧被标记有默认vlanid并且被发送。

在1310处,确定针对虚拟网络设备所配置的分配的vlanid是否是被允许的。在所分配的vlanid被允许的情况下,控制被传送到1312。否则,在所分配的vlanid不被允许的情况下,过程1300结束。由虚拟网络设备的管理员来针对虚拟网络设备配置所分配的vlanid。如果在允许vlanid参数所包括的vlanid中发现所分配的vlanid,则确定它是被允许的。

在1312处,确定所分配的vlanid参数是否等于浮动本机id参数。在所分配的vlanid等于浮动本机id参数的情况下,控制被传送到1318。否则,在所分配的vlanid不等于浮动本机id参数的情况下,控制被传送到1314,在1314处,帧被标记有所分配的vlanid并且被发送。

尽管为了理解的清楚性的目的详细描述了上述实施例,但本发明不被限制于所提供的细节。存在实现本发明的许多替代方式。所公开的实施例是说明性的并且非限制性的。

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