CN102780608A - 用于分布式虚拟交换机的私有虚拟局域网方法和系统 - Google Patents

用于分布式虚拟交换机的私有虚拟局域网方法和系统 Download PDF

Info

Publication number
CN102780608A
CN102780608A CN2012101456154A CN201210145615A CN102780608A CN 102780608 A CN102780608 A CN 102780608A CN 2012101456154 A CN2012101456154 A CN 2012101456154A CN 201210145615 A CN201210145615 A CN 201210145615A CN 102780608 A CN102780608 A CN 102780608A
Authority
CN
China
Prior art keywords
port
vlan
vid
virtual
array
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.)
Granted
Application number
CN2012101456154A
Other languages
English (en)
Other versions
CN102780608B (zh
Inventor
A.比斯瓦斯
J.巴斯韦尔
D.G.卡玛思
J.基达姆比
V.潘德伊
D.龙德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN102780608A publication Critical patent/CN102780608A/zh
Application granted granted Critical
Publication of CN102780608B publication Critical patent/CN102780608B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及用于分布式虚拟交换机的私有虚拟局域网方法和系统。主机系统的虚拟化管理器的分组处理逻辑在去往/来自具有三个位映射阵列的虚拟端口的进入或离开路径上检测分组,所述虚拟端口用于处理虚拟逻辑局域网(VLAN)内的分组。所述逻辑检查分组的VLAN标识符(VID),以基于对应的位映射阵列内的偏移位置确定所述端口是否支持该VLAN。进入阵列偏移位置和离开阵列偏移位置两者都对应于VID的值,并且在端口上配置VLAN期间在特定位映射阵列内设定。当VLAN被端口所支持时,该逻辑使得分组能够被该端口处理。否则,该逻辑丢弃分组。剥离位映射阵列指示在端口(或目的地端口)的离开路径上转发分组之前何时应该移除该分组的VID。

Description

用于分布式虚拟交换机的私有虚拟局域网方法和系统
技术领域
本发明一般涉及计算机网络,具体涉及虚拟局域网(VLAN)。更具体地,本发明涉及由分布式虚拟交换机支持的私有VLAN。
背景技术
虚拟局域网(VLAN)是本领域所公知的,并且表示一种广播域,在该广播域中客户端(典型地为虚拟客户端)可以向存在于同一VLAN中的其他客户端发送帧。私有VLAN(PVLAN)表示该虚拟网络范型的扩展,其在网络中提供附加的安全性,以防止对正在通信的业务的监视,以及具有其他优点。私有VLAN(PVLAN)是在大多数基于硬件和软件的层2交换机上支持的标准特征集。将分布式虚拟交换机(DVS)引入到PVLAN实施中对虚拟连网范型添加了新的复杂度层。
发明内容
本发明公开了一种方法、数据处理系统和计算机程序产品,其提供支持配置有群体、隔离和混杂子域的一个或多个私有虚拟局域网(PVLAN)的分布式虚拟交换机(DVS)的虚拟端口内的分组的高效处理。主机系统的虚拟化管理器的分组处理逻辑在具有三个位映射(bitmap)阵列的虚拟端口的DVS的进入或离开路径上检测分组,所述虚拟端口用于处理虚拟逻辑局域网(VLAN)内的分组。所述逻辑检查分组的VLAN标识符(VID),以基于对应的位映射阵列内的偏移位置确定所述端口是否支持该VLAN。进入VLAN位映射阵列偏移位置和离开VLAN位映射阵列偏移位置都对应于VID的值,并且在端口上配置VLAN期间设定在特定位映射阵列内。当VLAN被端口支持时,该逻辑使得分组能够被端口处理。否则,该逻辑丢弃该分组。剥离(strip)位映射阵列指示在端口的离开路径上转发分组之前何时应该移除该分组的VID。
在所述实施例中,在具有虚拟化管理器的主机数据处理系统(主机系统)内执行所述方法,所述虚拟化管理器配置和使能虚拟化计算环境。虚拟化计算环境包括一个或多个虚拟机以及层2分布式虚拟交换机(DVS)的本地可访问组件,该DVS包括多个在至少一个虚拟局域网(VLAN)内支持分组传输的虚拟端口。虚拟化管理器的处理资源执行虚拟化管理器的分组处理逻辑/代码,所述逻辑/代码使得虚拟化管理器执行各种功能处理,所述功能处理使得能够利用从分组取回到的VLAN ID以及用于虚拟端口的进入路径上的分组的进入位映射阵列和用于离开路径上的分组的离开位映射阵列,经由虚拟端口进行分组转发。当在特定位映射阵列内未识别出该VLAN ID,则丢弃分组。仅在VID识别了设定了在位映射阵列中的对应偏移位置的VLAN时,进入路径或离开路径上检测的分组才允许由端口处理。
所述虚拟端口是访问端口和上行链路端口中的一个或多个,并且每个端口包括:进入VLAN位映射,其包含对应于在到所述端口的进入路径中被所述端口支持的VLAN的VID的设定的偏移位置;离开VLAN位映射,其包含对应于在所述端口的离开路径中被所述端口支持的VLAN的VID的设定的偏移位置;以及剥离VLAN位映射,其包含对应于识别下述VLAN的VID的设定的偏移位置,其中对于所述VLAN,在从所述端口转发接收到的分组之前要在离开路径上移除所述VID。每个虚拟端口还包括端口VLAN ID(PVID),其指示添加到所述进入路径上的未加标签分组的VLAN标签。所述方法则包括:响应于在所述进入路径上接收到的分组不具有VLAN标签,自动地利用所述虚拟端口的PVID对所述分组加标签;以及响应于在所述离开路径上检测到的分组添加了PVID,在转发所述分组之前自动地将所述PVID从所述分组移除。
所述方法的一个实施例还包括:检查是否设定了在所述虚拟端口的剥离位映射阵列内的剥离阵列偏移位置,所述剥离阵列偏移位置指示所述VLAN被所述端口支持以及所述VID应该在所述分组被转发之前被移除,其中所述剥离阵列偏移位置对应于所述VID的值,并且在所述端口上配置所述VLAN期间在所述剥离位映射阵列内设定;以及响应于设定了所述剥离阵列偏移位置,从所述分组移除所述VID,并将没有VID的所述分组转发到所述分组识别的VLAN的目的地设备。
在一个实施例中,所述进入位映射阵列、离开位映射阵列和剥离位映射阵列中的每一个是包括N个位条目的一维阵列,其中每个位对应于从0至N-1的偏移位置,N是整数,其表示能够由所述虚拟端口使用值的范围为从0至N-1的全局唯一的标识符(ID)支持的单独VLAN的最大数目;所述进入位映射阵列、离开位映射阵列和剥离位映射阵列之一中的偏移位置在该位位置在相应位映射阵列中的值具有值一(1)时被设定;以及所述检查是否设定了所述偏移位置的处理包括将所述偏移位置处的值与一(1)进行比较,并当所述值等于一(1)时指示设定了所述偏移位置。
最后,所述方法的实施例使得虚拟化管理器能够在配置新虚拟端口时产生所述三个位映射的组,并分配全局唯一的端口ID,以及修改/更新虚拟端口的位映射以支持多个VLAN,反之亦然。该三个位映射的组被分配给每个被配置和更新来支持添加附加VLAN的虚拟端口,以使得能够高效地处理在虚拟端口的进入路径和离开路径上检测到的分组。
以上总结包含细节的简化、概括以及省略,并且不意在作为要求权利的主题的全面描述,而是意在提供与其关联的某些功能的简要概述。要求权利的主题的其它系统、方法、功能、特征和优点,对于本领域的技术人员而言,在查阅了以下附图和详细文字描述后将是明显的或将变得明显。
本发明的以上以及其它目的、特征和优点在以下详细文字描述中将变得明显。
附图说明
结合附图阅读所述实施例,其中:
图1是示出根据一个实施例的虚拟计算机网络的拓扑的图,所述虚拟计算机网络配置有一个或多个虚拟交换机;
图2是根据一个实施例的物理和虚拟化组件的层视图,所述物理和虚拟化组件构成具有分布式虚拟交换机的示例虚拟计算机网络;
图3是根据一个实施例的物理服务器的组件的框图,所述物理服务器被虚拟化来提供多个虚拟机和虚拟服务器;
图4是根据一个实施例的、包括私有局域网(PVLAN)域的虚拟网络中的层2分布式虚拟交换机(DVS)在多个物理主机上的示例分布的框图;
图5A示出了根据一个实施例的、配置有位映射阵列的示例PVLAN内存在的不同端口;
图5B是示出根据一个实施例的、在图5A的PVLAN内分组从一个类型的端口到另一类型的可传输性的表;
图6是根据一个实施例的、示出针对接收的VLAN标识符(ID)被添加到分布式虚拟交换机(DVS)的虚拟端口而产生和更新进入位映射、离开位映射和剥离位映射阵列的方法的高层逻辑流程图;
图7示出了根据一个实施例的、由图4的方法所产生并被用于使得能够经由DVS在PVLAN内进行高效路由的示例进入、离开和剥离位映射阵列;
图8A和图8B是根据一个实施例的、分别示出利用分组的VLAN ID和位映射阵列(诸如图7的位映射阵列)而通过DVS处理接收的分组的方法的不同实施例的高层逻辑流程图;
图9是示出根据一个实施例的、利用位映射阵列对在虚拟端口的进入路径上和离开路径上检测/接收到的分组进行处理的处理图。
具体实施方式
示例性实施例提供了一种方法、数据处理系统和计算机程序产品,其使得能够在虚拟化计算环境中的分布式虚拟交换机(DVS)的虚拟网络端口处进行高效分组处理。在虚拟平台中执行该方法,在该虚拟平台中,分组处理逻辑被增强,以使能在私有虚拟局域网(PVLAN)的虚拟端口内更高效的分组处理。根据所述实施例的一个或多个方面,分组处理逻辑使得虚拟和物理客户端机器都能够利用分配到每个虚拟端口的PVID和一组位映射更高效地在分布式虚拟网络上相互通信。具体地,该方法的所提供的方面包括:在DVS的第一虚拟端口处检测分组的传入,其中第一虚拟端口被分配为使得能够向和从一个或多个VLAN内的设备路由接收的分组;从分组的头部取回(retrieve)VLAN ID(VID),其中VLAN ID是被分配为相对于可以被第一虚拟端口支持的多个VLAN的其他VLAN唯一地识别特定VLAN的值。该方法接着使得能够利用从分组取回到的VLAN ID以及用于虚拟端口的进入路径上的分组的进入位映射阵列和用于虚拟端口的离开路径上的分组的离开位映射阵列,经由虚拟端口进行分组转发。当在特定位映射阵列内未识别出VLAN ID时,丢弃分组。仅在VID识别了在位映射阵列中设定了对应偏移位置的VLAN时,在进入路径上或离开路径上检测到的分组允许由端口处理。
此外,在下面更详细描述的一个实施例中,当在端口的离开路径上检测到分组时,该方法包括:检查是否设定了虚拟端口的剥离位映射阵列内的剥离阵列偏移位置,指示VLAN被端口支持以及在将分组转发前应该移除VID,其中剥离阵列偏移位置对应于VID的值并在端口上配置VLAN期间在剥离位映射阵列内设定;以及响应于设定了剥离阵列偏移位置,从分组移除VID,并将没有VID的分组转发到由分组识别的VLAN的目的地设备。
本方法的一个或多个实施例使得虚拟化管理器能够在配置新虚拟端口时生成三个位映射的组并分配全局唯一的端口ID,以及能够修改/更新虚拟端口的位映射以支持多个VLAN,反之亦然。该三个位映射的组被分配到被配置和更新来支持添加附加VLAN的每个虚拟端口,以使得能够高效地处理在虚拟端口的进入和离开路径上检测到的分组。
在本发明的示例实施例的以下详细说明中,以足够的细节描述了可以实践本发明的特定示例实施例,以使得本领域的技术人员能够实践本发明,并且应该理解,可以采用其他实施例,并且在不偏离本发明的精神和范围的情况下可以进行逻辑、架构、程序、机械、电学和其他改变。因此,以下详细描述不被认为是限制性的,并且本发明的范围由所附权利要求及其等同物限定。
在附图的不同视图的描述中,相似的元件被提供与之前的附图相似的名称和附图标记。提供分配给元件的特定附图标记仅是辅助说明而不意在隐含对所述实施例的任何限制(结构或功能或者其他方面的)。
应该理解,特定组件、设备和/或参数名称(诸如这里所描述的执行工具/逻辑/固件的那些)的使用仅是作为示例,而不意在隐含对发明的任何限制。因此,本发明可以利用用于描述这里的组件/设备/参数的不同名称/术语来实施,没有限制。在描述实施例的一个或多个元素、特征或概念时对任何特定协议或私有名称的引用仅是作为一个实施例的示例而提供,并且这样的引用不限制本发明扩展到使用不同元素、特征或概念的实施例。因此,这里使用的每个术语在使用所述术语的上下文中被给予其最广泛的解释。如这里所使用的,术语“进入(ingress)”是指分组在该端口进入交换机(在所述实施例中时DVS),而术语“离开”是指分组使用该端口从交换机出去。进入和离开被用于分别指端口的进入路径和该端口的离开路径。
如下面进一步描述的,本发明的功能特征的实施被提供在处理设备/结构内,并涉及硬件、固件的组合以及若干软件层构成(例如程序代码)的使用。所述的附图示出了数据处理架构的特定示例内的硬件组件和软件组件。图示和描述的实施例假设系统架构可以被扩展到大得多的数据处理系统和/或网络。
现在特别参照图1,描述了示例虚拟化网络结构的框图,所述虚拟化网络结构诸如数据中心或企业网络,并且其也可以被传统地称为“云”。虚拟化网络结构100包括底层的物理网络105。物理网络105可以包括多个机器/设备(如物理网络105内一般地示出的),包括一个或多个物理服务器、路由器、适配器、数据库、以及物理交换机,它们彼此互联并经由一个或多个类型/形式的连接结构(由虚线指示)彼此通信。虚拟化网络结构100还包括网络虚拟化层120,其由一个或多个网络系统管理器(hypervisor)110产生,以支持多个虚拟局域网(VLAN)130。虚拟机/设备驻留于具有物理硬件资源的虚拟化平台(诸如服务器)上(见图2和图3),所述物理硬件资源经由虚拟化管理器(见图3)的一个或多个实施提供,诸如国际商业机器(IBM)公司的强劲系统管理器(Power Hypervisor(PHYP))。
物理网络105由物理转发元件构成。转发元件可以是具有标准转发硅的传统硬件交换机(例如交换机107)、以及诸如系统管理器内包括的虚拟交换机。交换机提供对协议的支持,以允许调整他们的流表来支持分布虚拟网络的实施。物理交换机107可以包括任何商业可得或私有的交换机,其可以包括OpenFlow或其他标准或私有协议。物理网络105中的转发元件被网络系统管理器110用于实施分布虚拟交换机(DVS),诸如DVS 145a、145b。如这里所述的,DVS提供交换机的逻辑视图,其与底层的硬件分离并可以延伸跨越多个物理交换机或多个系统管理器。虚拟交换机145a、145b与虚拟机通信并且还可以具有与物理NIC的物理连接,而物理交换机107与物理主机通信。如这里所提供的,DVS 145由网络系统管理器110保持,并可以延伸跨越子网。每个DVS 145可以包括多个物理主机或物理网络端口,并且多个DVS可以共享同一物理硬件。
网络系统管理器110提供供给(provisioning)功能,其创建和保持网络虚拟化层120,并且系统管理器110也创建和保持逻辑转发元件并将这些元件映射到底层的硬件。在一个实施例中,网络系统管理器110可以由控制器(例如管理控制台115)使用网络操作系统实施。网络虚拟化层的控制由网络控制管理器150(其被一般显示为与管理控制台115关联)提供。网络控制管理器150是软件工具,其在管理控制台115(其可以是连接到网络系统管理器110的物理或虚拟设备)上执行,并且网络控制管理器150被用于设立各种虚拟设备以及向这些虚拟设备供给资源。网络虚拟化层120使得DVS145内的虚拟端口能够被抽象化和使用(物理网络105内的)物理网络交换机,以在VLAN(例如,PVLAN 140)的设备之间传递分组。因此,网络系统管理器110保持映射,该映射使得在路由单个VLAN的设备之间路由通信,并使得能够将来自或去往VLAN的分组路由到外部设备。
在上述虚拟化网络结构内,示出了示例性私有VLAN(PVLAN)140和VLAN 142。应理解,这两个VLAN仅表示潜在的大量VLAN(其可以包括多个PVLAN 140和多个VLAN 142)中的两个。可以经由各个分布虚拟交换机(DVS)145支持PVLAN 140和VLAN 142两者,所述DVS 145可以跨越多个主机设备,并且每个DVS 145提供多个被分配到各种虚拟机的虚拟端口,所述各种虚拟机在PVLAN 140或VLAN 142内互连。
本领域的技术人员知道,随着虚拟化计算范型的快速扩展和向云计算的进展,大集合(hosting)服务或企业网络可以在若干地点(其可以地理上分散,例如,旧金山、纽约等)保持多个数据中心或网络。因此,将来自这些地理上分散的地点内的客户端机器/设备连接到单个虚拟局域网(VLAN)中需要使用一个或多个分布虚拟交换机(DVS)。这些DVS(例如DVS 145)经由网络系统管理器110产生的网络虚拟化层120支持。每个DVS 145继而提供多个虚拟端口,所述多个虚拟端口被用于支持去往/来自一个或多个VLAN 130、或一个或多个VLAN 130内的分组传输,所述一个或多个VLAN130包括一个或多个私有VLAN(PVLAN)140和/或一个或多个VLAN 142。
现在参照图2,其示出了描绘图1的物理硬件层和网络虚拟化层的一些组件的扩展视图。应该理解,图2中示出的计算资源、层和功能仅意在示例性的,主张权利的发明的实施例不限于此。如所描绘的,物理层200包括各种物理硬件和软件组件,其可以被用于例示在虚拟化网络结构内使用的虚拟实体。作为示例,硬件组件可以包括大型机(例如,
Figure BDA00001628233400071
系统)、精简指令集计算机(RISC)架构服务器(例如,IBM
Figure BDA00001628233400072
系统)、IBM
Figure BDA00001628233400073
系统、IBM
Figure BDA00001628233400074
系统、存储设备(例如,闪存驱动器、磁盘驱动器、光盘驱动器、磁带驱动器等)、物理网络和连网组件(例如路由器、交换机等)。软件组件可以包括操作系统软件(例如,AIX、Windows、Linux等)、网络应用服务器软件(例如,IBM
Figure BDA00001628233400075
应用服务器软件,其包括网站服务器软件)、以及数据库软件(例如IBM
Figure BDA00001628233400081
数据库软件)。IBM、zSeries、pSeries、xSeries、BladeCenter、WebSphere和DB2是国际商业机器公司在全球许多管辖地的注册商标。Windows是微软公司的商标,Linux是Linux Torvalds的商标。
驻留于物理层205中的计算资源由一个或多个虚拟机监控器(VMM)或系统管理器(例如,网络系统管理器110)虚拟化和管理。如所示的,虚拟化层220包括多个虚拟实体(例如虚拟服务器、虚拟存储器、虚拟网络(包括虚拟私有网络))、虚拟应用和虚拟客户端。可以通过在虚拟化网络环境内连接的客户端设备147访问这些虚拟实体,其是物理层200中的底层资源的抽象。客户端设备147可以是实际设备或虚拟设备(例如,虚拟机,VM)。
图3示出了已经被虚拟化来产生多个虚拟客户端设备的示例计算机服务器平台,所述多个虚拟客户端设备中的一个或多个是由具有多个虚拟端口的DVS支持的VLAN或PVLAN内的客户端设备。这里,服务器300可互换地称为主机或主机设备或主机数据处理系统。因此,主机设备300包括硬件组件和软件/固件/OS组件,其被逻辑分区,以创建多个虚拟机(VM)或操作系统(OS)分区,所述分区可被配置为客户端逻辑分区(LPAR)和/或虚拟I/O服务器(VIOS)。为了简单,所有客户端LPAR在下文中都称为VM,其中作为示例示出VM1220a和VM2220b。还示出单个VIOS 230作为参考。然而,应该理解,在一个或多个实施方式中,系统可以仅利用VM配置,即没有任何VIOS。物理层310包括一个或多个处理器302、一个或多个存储器304、和逻辑(数据)存储器31。该一个或多个处理器302经由总线、互连/交换机或互连结构(一般地称为互连结构305)与一个或多个存储器304和本地存储器312互连。可以跨大范围的互连结构分布的组件的特定内部连接性与所述的实施例不相关,并且不再提供关于系统硬件组件之间的特定类型的互连性的细节。
在物理层310中还包括的是一个或多个物理网络接口(NI)308(也传统地称为网络适配器),其支持/使能主机系统300(以及VM 220a/220b和VIOS230)到外部网络(例如网络105,图1)的物理连接。此外,物理层310包括多个I/O适配器和I/O设备306,其为主机系统300提供I/O接口。I/O适配器306是物理层适配器,该物理层适配器使得主机系统300能够支持经由I/O接口与本地连接的和远程连接(网络化)的I/O设备的I/O操作。I/O适配器的示例包括外围组件接口(PCI)、PCI-X或高速PCI(PCI EXpress)适配器、以及小型计算机系统互连(SCSI)适配器,等等。主机系统300被逻辑分区,使得不同的I/O适配器306被虚拟化,并且虚拟I/O适配器可以接着被唯一地分配给不同的逻辑分区(VM和/或VIOS)。
逻辑上位于物理层310之上的是虚拟化管理器320,在一个实施例中,其可以是强劲系统管理器(PHYP),IBM公司的商标。虽然作为PHYP引入,但完全可以理解,其他类型的虚拟化管理组件可以被使用,并且同等地适用于各种所描述的实施例的实施方式。虚拟化管理器320可以具有在物理层310内或者位于相对于虚拟化管理器320的其他地方的关联的服务处理器(未示出)。服务处理器可以被用于为一个或多个逻辑分区提供各种服务。如所示出的,存在于物理层310之外的硬件管理控制器(HMC)315经由虚拟化管理器320与主机系统300通信。可以通过HMC 315控制不同逻辑分区的操作,HMC 315可以是独立的数据处理系统,系统管理员(administrator)可以从该独立的数据处理系统执行各种功能,诸如将资源重分配到不同的逻辑分区。
主机系统300还包括多个用户层的逻辑分区(LPAR),其中示出了两个虚拟机(VM1220a和VM2220b)和一个虚拟I/O服务器(VIOS)230。根据各种示例实施例,主机系统300支持多个客户端和在虚拟环境中创建的其他功能操作系统(OS)分区。每个LPAR接收特定虚拟硬件和OS资源(包括虚拟CPU资源、虚拟存储器资源、虚拟OS)的分配,并访问所分配的本地存储器。每个LPAR包括相应的主机操作系统,其控制对物理层310和/或对通过VIOS 230提供的虚拟I/O功能和/或服务的低层访问。在一个实施例中,操作系统可以使用OS/400实施,OS/400被设计为与分区管理固件(诸如PHYP)接口,并可从国际商业机器公司获得。应理解,取决于具体实施方式,例如也可以使用其他类型的操作系统(诸如高级交互执行环境(AIX)操作系统,其为IBM公司的商标;微软
Figure BDA00001628233400091
其为微软公司的商标;或者
Figure BDA00001628233400092
其为自由软件基金和Linux Torvalds的注册商标),并且OS/400仅用作示例。
此外,根据示例实施例,每个逻辑分区被提供了一个或多个虚拟网络接口,仅为了示例的目的而编号为NI1…NI4。这些NI允许LPAR与其他LPAR通信,所述LPAR均在主机系统上,并允许LPAR与跨越分布网络上的其他设备通信。在所述实施例中,VM 220a/220b中的至少一个是PVLAN的一部分并连接到可以使能跨越PVLAN的连接的DVS。DVS 330可以是跨越多个主机系统的更大DVS的本地部分,其提供在虚拟化管理器320内。DVS 330包括多个虚拟端口,每个端口被分配到PVLAN内的一个或多个VM,以使能在PVLAN内向和从所述关联设备的分组传输。
根据一个实施例,使用端口路由位映射阵列使跨DVS的虚拟端口的分组传输更高效。如主机系统300内进一步示出的,虚拟管理器320包括端口控制器325,其与主机系统300支持的一个或多个DVS关联。端口控制器325包括策略软件组件342,其定义端口路由策略和连接性策略,等等。端口控制器还包括端口注册和位映射设置(PRBS)工具343以及端口分组处理(PPH)工具344。下面在图6-8的描述内详细说明PRBS工具343和PPH工具344提供的功能。此外,端口控制器325包括多个与各个端口关联的单独(individual)PVID 345以及对应的三个VLAN阵列340的组,每个组对应于一个PVID和所关联的端口。下面将参照图6-9更详细地说明产生位映射阵列340并接着使用位映射阵列340通过DVS的虚拟端口提供更高效的分组处理的方法。
现在参照图4,示出了数据处理环境的视图,该数据处理环境包括支持在包括分布虚拟路由器的虚拟网络拓扑/环境内互连的虚拟机的多个物理主机系统之间的实际和虚拟连接。在所示实施例中,数据处理环境400包括因特网协议(IP)网络402,其包括多个网段404a、404b,每个网段耦接到物理路由器406a、406b中相应的一个。如本领域所公知的,每个物理路由器406a、406b包括相应的转发表407a、407b,物理路由器406a、406b通过所述转发表基于包含在分组中的OSI层3(例如因特网协议(IP))地址将到来的数据分组转发到分组的目的地。物理主机系统410a、410b耦接到网段404a,并且物理主机系统410c耦接到网段404b。物理主机(诸如物理主机系统410a、410b)可选地可以由辅助主机连接408(诸如直接电缆连接或私有非路由网络)附加地耦接。例如可以利用如图3所示的主机系统300实施每个物理主机系统410a-410c。
每个物理主机系统410a-410c执行虚拟化管理器412a-412c中相应的一个,其例如,在通过IP网络402耦接到物理主机系统410a-410c的管理控制台415处的人工和/或自动管理员的指引下,虚拟化和管理其相应的物理主机410的资源。物理主机系统410a上的虚拟化管理器412a支持VM 414a-414c的执行,物理主机系统410b上的虚拟化管理器412b支持VM 414d-414f的执行,并且物理主机系统410c上的虚拟化管理器412c支持VM 414g-414i的执行。在各种实施例中,VM 414a-414i可以包括一个或多个云用户和/或云提供商的VM。在所述实施例中,每个VM 414具有至少一个(以及在某些情况下为多个)虚拟网络接口NI1-NI11,其至少在OSI模型的层2和3上提供网络连接。
如所述的,每个虚拟化管理器412a-412c提供一个或多个(并且在所述实施例中,至少两个)虚拟网络,管理器的VM 414可以附接到所述虚拟网络。为了视觉地将它们从物理子网404a-404b区分开,在图4中用虚线图示表示虚拟网络。例如,在所示实施例中,虚拟化管理器412a-412c全都通过提供层2的连接性的单独虚拟交换机430a1、430b1和430c1的实施而提供第一分布虚拟网络420a。虚拟化管理器412a-412b类似地通过DVS 430a2和430b2的实施提供第二虚拟网络420b。此外,虚拟化管理器412c通过分布交换机430c2的实施提供第三虚拟网络420c。在各种实施例中,每个虚拟网络420a-420c可以例如是特定云用户的私有网络(例如PVLAN)、多个云用户共享的合作私有网络和/或云提供商,或者公共网络。在所述示例中,网络接口NI2、NI4、NI6、NI8和NI10连接到第一虚拟网络420a,网络接口NI1、NI3、NI5和NI7连接到第二虚拟网络420b,并且网络接口NI9和NI11连接到第三虚拟网络420c。每个虚拟化管理器412优选地记录关于特定虚拟化管理器支持的虚拟网络420以及对应的VM414与虚拟网络420的连接的信息。此信息被记录为网络信息422a、422b和422c中相应的一个。例如,当供应、布置或迁移进特定VM 414时第一虚拟化管理器412a可以在其网络信息422a中创建条目用于它的VM 414a、414b或414c之一,并且当迁移出或破坏VM 414时第一虚拟化管理器412a可以从网络信息422a移除条目。
在一个可选实施方式中,为了支持在虚拟网络420a-420c之间以及在虚拟网络420与物理网络402和/或404之间通信,虚拟化管理器412a-420c可以各自实施分布式路由器432a-432c中相应的一个,以提供OSI层3路由。然而,在替代实施例中,可以不在物理主机内实施任何路由功能。在所示实施例中,每个分布式路由器432为由路由器的虚拟化管理器412实例化的每个虚拟网络420提供相应的网络接口、以及至物理主机410所附接(例如通过物理网络接口304的软件端口)的物理网段404的网络接口。每个分布式路由器432附加地包括相应的转发表434a、434b和434c,用于存储路由信息。
本领域的普通技术人员将理解,图1-4中所示的硬件、固件/软件工具以及软件组件及其基本配置可以变化。各个图的示例组件不意在是穷举的,而是代表性的,以强调用于实施某一所述实施例的一些组件。例如,可以提供数据处理系统和/或主机系统的不同配置,包括其他设备/组件,其可以额外地使用或代替所述硬件而使用,并可以被不同地配置。所示示例不意在隐含对当前描述的实施例和/或它们的逻辑扩展的架构限制或其他限制。
现在参照图5A,示出了PVLAN域的端口视图。PVLAN域500包括主VLAN 505,其继而提供两个群体(community)VLAN(称为群体1VLAN 520a和群体2VLAN 520b)以及隔离(Isolated)VLAN 525。这些VLAN在层2(L2)交换机内相互关联和定义。群体VLAN 520a、520b和隔离VLAN 525在这里统称为辅助VLAN(由虚环绕线指示)。每个VLAN具有关联的VLANID,其唯一地识别DVS内的VLAN。在PVLAN内是三个相关端口,分别定义为混杂端口、隔离端口和群体端口。如这里所提供的,混杂端口连接到层3(L3)或层4(L4)设备(例如路由器),其可以继而连接到英特网或监管(administrative)工作站或者公共网络服务器,例如动态主机配置协议(DHCP)服务器。隔离端口和群体端口连接到独立虚拟和物理用户设备或服务器,诸如图3和4中的VM,并且隔离端口和群体端口携带来源于PVLAN内的设备之一或者针对其而接收的业务。
在分组路由期间,主VLAN 505将混杂端口510与群体端口522a-d或隔离端口526a、526b连接。具体地,主VLAN 505在混杂端口510处从L3/L4设备接收分组,并将分组传递到一个或多个辅助VLAN。如这里所提供的,隔离VLAN被定义为功能性地将隔离端口连接到混杂端口的VLAN。在隔离VLAN中,业务仅是单向的,即分组在隔离端口处接收且仅从该隔离端口传输到混杂端口。对于其他隔离或群体端口,分组不可用。群体VLAN被定义为功能性地将群体端口连接到混杂端口的VLAN。在群体VLAN内,仅单向路由业务,即分组在群体端口处接收且仅从群体端口传输到混杂端口以及传输到该群体VLAN上的其他群体端口。在所述路由协议中,分组不从群体端口传输到隔离端口或传输到可能存在于同一交换机上的不同群体VLAN上的群体端口。
当在L2交换机内配置VLAN时,管理员可以手动地指定VLAN内的端口。然而,当配置PVLAN时,管理员定义主VALN和一个或多个辅助VLAN。利用所述实施例,对于软件使能的用以支持PVLAN特征的DVS(如图4所呈现的),DVS必须支持PVLAN内支持的所有三种类型的端口,强制执行(enforce)由PVLAN强制的通信限制(其可以例如由策略软件342定义,图4),并支持多个PVLAN域。
虽然存在于通信的层2域内,但PVLAN 500具有多个子域。如这里所定义的,每个PVLAN子域由两个VLAN ID(VID)构成,具体为主VLAN ID和辅助VLAN ID。主VLAN表示PVLAN通信域,而辅助VLAN是PVLAN域的通信子域。因此,辅助VLAN ID是网络中支持的所有PVLAN中的全局唯一的ID。每个网络端口落入单个PVLAN内的3个类型的子域之一(并且仅仅是一个)中,如下定义:
(1)混杂端口—这些端口可以与PVLAN域中的所有端口通信。混杂端口支持与PVLAN 500的主VLAN ID 545相同的辅助VLAN ID 547。
(2)群体端口—这些端口可以与同一群体内的混杂端口和其他端口通信(例如,群体端口522a可以与群体1VLAN 520a内的群体端口522b通信)。如图5所示的,在单个/同一PVLAN 500内可以存在多个群体。每个群体由唯一的VLAN ID 547a、547b表示,其与主群体VLAN ID 545、隔离VLAN ID550以及其他群体的VLAN ID不同。
(3)隔离端口—这些端口仅能与混杂端口通信。隔离端口526a、526b的辅助VLAN ID是与主VLAN ID 545不同的VLAN ID。在一个实施例中,在PVLAN 500内仅支持一个隔离VLAN ID(550)。
每个端口使能到和从一个或多个端设备的通信,示出了所述端设备中的端设备524a-524b作为每个(per)群体VLAN 520a、520b的两个端设备(S1、S2)。每个隔离VLAN 525还包括端设备528a、528b,对于每个隔离VLAN 525示出了一个端设备(分别为S4、S5)。
图5B的表500总结了图5A所示的私有VLAN内的端口动作。在DVS上支持PVLAN方案取决于强制执行PVLAN所需要的通信限制的每个主机上的软件实体。在DVS相关的应用中,DVS方案典型地由多个主机/机器中的软件实体构成。软件实体在主机系统内在DVS访问端口(例如连接到虚拟机的端口)之中转发分组,并通过使用主机系统上的网络卡(上行链路端口)(向和从主机)转发而与外部网络通信。特定虚拟机上的软件实体仅知道在该虚拟器上支持的端口,其可以仅是整个DVS方案支持的所有端口的(小)子网。虽然可以使软件实体知道(同一DVS内的)其他主机上的端口,但该配置将对软件实体(即本地DVS)中的转发表增加不必要的复杂度和尺寸的层。
在层2上交换的业务基于具有MAC头部的数据的帧。层2交换机可以在单个交换机上包括几百个端口。私有VLAN在同一广播域内的端口之间提供层2隔离。私有VLAN将常规VLAN域分区为子域,其由一对VLAN(主VLAN和辅助VLAN)表示。私有VLAN中的每个端口是主VLAN的构件(member)。主VLAN携带从混杂端口到隔离和群体端口以及到其他混杂端口的向下游的单向业务。隔离VLAN携带从隔离端口朝向混杂端口的向上游的单向业务。群体VLAN携带从群体端口到混杂端口以及到同一群体中的其他主机端口的向上游的业务。多个群体VLAN可以被配置在私有VLAN中。在一个实施例中,群体端口还可以接收向上游的业务。此外,接收向上游的业务的端口可以支持超过一个VLAN。如这里所提供的,隔离端口是属于隔离的辅助VLAN的主机端口。隔离端口具有与同一私有VLAN内除混杂端口之外的其他端口的完全层2分离。私有VLAN阻止所有业务到达隔离端口,除了来自混杂端口的业务,并且从隔离端口接收的业务仅被转发到混杂端口。群体端口是属于群体辅助VLAN的主机端口。群体端口可以与同一群体VLAN中的其他端口以及与混杂端口通信。这些接口在层2中与其他群体中的所有其他接口隔离以及与他们的私有VLAN内的隔离端口隔离。
在PVLAN内,施加若干配置限制。这些限制的列表可以包括下列中的一个或多个:(1)在私有VLAN中仅可以存在一个隔离VLAN;(2)隔离端口不能是上行链路端口;(3)辅助VLAN端口不能与同一私有VLAN域中的其他VLAN重叠;(4)网络中的缺省VLAN不能是私有VLAN;(5)映射到辅助VLAN的主VLAN需要被创建并被使能;(6)如果端口未被加标签(tag),则其不能支持超过一个VLAN;(7)端口可以是私有VLAN域内的混杂端口或群体端口或隔离端口;(8)可以支持高达4095个PVLAN,其中识别号0和4095被保留;以及(9)私有VLAN需要被创建并使能,以便端口支持PVLAN。
随着在虚拟化方案中对基于软件的层2交换机的需要的增加,这里所述的实施例的多个方面提供了一种用于DVS软件中的网络分组处理的高效算法。如下文所定义的,这些实施例提供DVS中的高效O(1)分组处理(数据路径)PVLAN方案。所述实施例建立在以下事实上:PVLAN内的任何子域(不论是混杂、隔离还是群体)的VLAN ID是全局唯一的。因此,所述实施例的一个方面涉及(主机系统上的)软件实体,其通过利用正确的VLAN ID在从端口的向外(outbound)/进入路径中向分组加标签以及验证(validate)到端口的向内(inbound)/离开和/或离开路径上的分组的VLAN ID,而实施特定PVLAN策略的强制执行。该方法确保多个DVS能够支持同一组PVLAN以及统一地强制执行PVLAN策略。根据所陈述的实施例,所述方案的效率基于端口如何验证分组上的VLAN标签。虽然在DVS内可能存在多个PVLAN域并且每个访问端口可能属于多个PVLAN本身,但所述实施例所陈述的方法避免在分组处理期间遍历任何PVLAN列表。
在实施例所提供的优化方案下,DVS中的每个端口(访问端口和上行链路端口两者)支持三个VLAN位映射(这里也可替换地称为位映射阵列)。如现在参照图7所描述的,每个端口的三个位映射(或位映射阵列)是:进入VLAN位映射742、离开VLAN位映射744、和剥离VLAN位映射746。进入VLAN位映射742包含端口在进入路径中支持的VLAN。离开VLAN位映射包含该端口在离开路径中支持的VLAN。最后,剥离VLAN位映射包含在发送帧/分组到端口之前软件模块必须移除/剥离的离开路径上的VLAN。位映射阵列保持在端口位映射340内,端口位映射340在一个实施例中保持多个端口位映射740a…740m,用于DVS内支持的M个端口,其中M是整数。如图7以及用于端口1的示例位映射阵列(740)所示的,每个位映射阵列具有对应于特定DVS上支持的VLAN的最大数目的N个条目。三个VLAN位映射中的每个是N位的一维阵列。在一个实施例中,N=4096位(512字节)。然而,N的值是系统参数,其在替代实施例中可以是不同的数值。如这里所提供的,当位的值从零(0)变换为1时可以设定位。因此未设定的所有位包含零值。当在阵列的第M个位置(相对于阵列的开始的偏移)中设定位时,则VLAN M出现在位映射中。端口1的进入VLAN位映射742内示出的数值以从0至N-1的范围的连续次序表示N位。离开VLAN位映射744则示出存在出现和分配到离开VLAN位映射744的位置1、3、4和N-2的对应VLAN。而且,剥离VLAN位映射746指示路由到VLAN 4和最后的VLAN(N-1)的分组应该在向/从虚拟端口路由来自该PVLAN的分组之前被剥离VLANID。
除了位映射阵列742、744和746,每个端口还具有PVID VLAN ID 750。PVID 750指示必须添加到进入路径上的未加标签的分组的VLAN标签并且还指示在离开路径上将移除哪些标签。根据一个实施例,并且如图6的方法所示,当端口初始被添加到PVLAN(或非私有VLAN)时,在端口的每个位映射上适当地设置PVLAN(和VLAN),或者反之亦然(vice-versa),其是不经常的操作,因此不在分组处理的路径中。
现在参照图6,示出了管理员使用管理控制台和执行其上的软件而完成将端口添加到DVS的处理的方法。一旦端口信息被提供给软件,控制软件随后产生用于该端口的适当的三个位映射阵列。应该理解,这些步骤中的某些可以被自动化并由管理控制台315的处理组件执行,并且所述步骤中的大多数也可以由在管理控制台115工作的网络管理员手动执行。如这里所描述的,经由/利用端口注册和位映射设置(PRBS)工具343完成所述方法,所述工具343在管理控制台315(图3)的一个或多个处理(或虚拟管理器)或主机系统本身上的虚拟化管理器的处理器上执行。因此各种处理被描述为由PRBS工具343所执行,PRBS工具343可以继而由网络管理员配置和/或实例化。该工具的执行可以提供执行各种所述功能的处理逻辑。当被网络管理员启动时,在一个实施例中,管理员可以经由管理控制台315上的命令行接口(CLI)与PRBS工具343交互。
图6的方法在块602中开始,在块602中将VLAN ID(VID)添加到DVS上的虚拟机端口。在步骤604中确定VID是否用于私有VLAN。当VLAN ID用于私有VLAN时,该私有VLAN被处理和认作现有私有VLAN的辅助VLAN(块606)。接着在块608中确定VID是否是私有VLAN中的主VLANID。响应于VID是私有VLAN中的主VLAN ID,私有VLAN中的所有VLANID被添加到端口的进入位映射,并且私有VLAN中的所有VLAN ID也被添加到端口离开位映射(块601)。在决定块612中,PRBS工具343(图3)和/或管理员确定VID是否是该端口的PVID。响应于VID是该端口的PVID,该工具/管理员将私有VLAN中的所有VLAN ID添加到端口剥离位映射阵列/阵列(块614)。然后注册该VID的路径完成(块640)。
返回到决定块608,如果VID不是PVLAN中的主VLAN,则在块616中检查VID是否是PVLAN中的群体VLAN ID。响应于VID是PVLAN中的群体VLAN ID,工具/管理员将VID添加到端口进入位映射阵列以及端口离开位映射阵列,并还将私有VLAN的主VID添加到端口离开位映射(块618)。接着在块620中检查VID是否是端口的PVID,并且当VID是该端口的PVID,则工具/管理员将该VID和PVLAN的主VID添加到端口剥离位映射阵列(块622)。然后,注册VID的该路径完成(块640)。
在决定块616中,如果VID不是PVLAN中的群体VLAN ID,则在块624中检查VID是否是PVLAN中的隔离VLAN ID。响应于VID是PVLAN中的隔离VLAN ID(隔离端口)的确定,工具/管理员将该VID添加到端口进入位映射,并还将PVLAN的主VID添加到端口离开位映射阵列(块626)。然后,接着在块628中执行VID是否是端口的PVID的检查。响应于VID是端口的PVID(同时VID也是PVLAN中的隔离VLAN ID),工具/管理员将PVLAN的主VID添加到端口剥离位映射(块630)。
返回决定块604,响应于VID不是私有VLAN的VID,则工具/管理员将该VID作为常规VID处理(块632)。工具/管理员将该VID添加到端口进入位映射,并还将该VID添加到端口离开位映射(块634)。工具接着在块636中检查VID是否是端口的PVID,并且响应于VID是端口的PVID,工具将VID添加到端口剥离位映射(块638)。在接收到新VLAN用于在PVLAN内注册时注册VLAN和更新VLAN位映射的处理的非私有VLAN部分在终止块640完成。
也可以从正在为其执行位映射产生的访问端口的类型的特定角度描述上述方法。因此,例如,当执行各个端口的产生和/或更新时,以下条件变得可用。
(1)对于隔离端口,在端口在PVLAN的隔离子域中的情况下,进入VLAN位映射包含隔离VLAN ID,离开VLAN位映射包含混杂(主)VLANID,并且如果端口的PVID设置为隔离VID则剥离VLAN位映射包含混杂VLAN ID。
(2)对于群体端口,在端口属于PVLAN的群体子域的情况下,进入VLAN位映射包含群体VLAN ID,离开VLAN位映射包含群体和混杂VLANID,并且如果端口的PVID被设置为群体VID则剥离VLAN位映射包含群体和混杂VLAN ID两者。
(3)对于混杂端口,在端口属于PVLAN的混杂子域的情况下,进入VLAN位映射包含混杂VLAN ID,离开VLAN位映射包含PVLAN中的所有VID,即所有群体、隔离和主VID,并且如果端口的PVID被设置为混杂VID则剥离VLAN位映射包含PVLAN中的所有VID(类似于离开)。
此外,如果端口属于多个PVLAN,则端口的结果位映射是通过简单地合并如上产生的位映射而产生的组合位映射。因为每个PVLAN支持的VID的组是全局唯一的,所以进入、离开和剥离位映射的同一组合可以支持单个端口上的多个PVLAN。同样,在同样的位映射上可以支持非私有VLAN ID(即,常规VLAN)。在此情形中,在VLAN不是私有VLAN的情况中,进入和离开VLAN位映射将都包含用于常规VLAN的相同位设置。可以通过执行访问端口位映射的合并和联合而自动地产生上行链路端口位映射。在一个替代实施例中,管理员可以在上行链路端口上明确地配置VLAN。
在这里所述的实施例内,用于正确处理分组的方法需要位映射的配置阶段的精确性。在进入部分中,检查帧的VLAN ID是否被端口支持,并且针对于进入位映射执行该检查。在转发部分内,检查目的地端口是否支持帧的VID。针对离开位映射执行该检查。在离开部分中,执行检查来确定是否剥离帧的标签。根据剥离位映射执行该检查。
一旦正确地设置了位映射和对应的PVID值,则分组转发逻辑可以处理/验证(verify)接收的分组的VLAN并适当地响应。用于执行分组的该验证和处理的方法提供O(1)方案(solution),这是因为每个分组必须经由三(3)个基本恒定的位映射来验证,并且该方案是恒定的而不管(即不依赖于)系统中的VLAN的数目。而且,因此使得可以检查分组VLAN ID是否被设定在(属于)特定位映射中的算法也是O(1)算法。图8A和8B示出了通过执行控制相关端口的固件或软件来实施O(1)算法的某些所述特征的方法的两个实施例。虽然图6的方法已经被描述为经由端口控制器340内的PBRS工具343的执行来实施,但本方法经由/利用端口转发逻辑中的一个或多个来完成,所述端口转发逻辑可以经由端口分组处理(PPH)工具344的执行来实施(图3)。PPH工具344在主机系统自身上的虚拟化管理器的一个或多个处理器(或虚拟处理器)上执行。因此,各种处理可以被描述为通过PPH工具344和/或端口转发逻辑执行,所述端口转发逻辑可以继而由网络管理员配置和/或实例化。当被网络管理员启动时,在一个实施例中,管理员可以经由管理控制台315上的命令行接口(CLI)与PRBS工具343交互。还应该理解,PPH工具334的功能可以与PRBS工具343的功能集成,以形成单个组合的工具,其本身表示在支持一个或多个PVLAN的DVS的端口内实施的可执行代码段和/或逻辑。
为了使得能够更好地理解图8A和8B的方法,参照图9,其示出了在示例虚拟端口的进入路径和离开路径上检测到的分组的转发和处理中涉及的虚拟端口和DVS的组件。如所提供的,DVS 900包括一个或多个端口控制器逻辑(端口控制器)905,在所述端口控制器逻辑905中保持了使能和/或执行这里所描述的实施例的各种功能的若干组件和工具。端口控制器905包括策略组件342和PRBS工具343。此外,端口控制器905包括多组端口VLAN阵列340a…n和关联的PVID 345a…n。如这里所描述的,每组端口VLAN阵列(例如阵列340a)包括三个位映射阵列,即进入位映射阵列、离开位映射阵列和剥离位映射阵列。端口控制器905还包括端口转发逻辑910(其可以经由前述PHH工具344(图3)的执行来产生)。端口转发逻辑连接到虚拟端口920的进入路径930和离开路径940各自的接收接口932和942(或者在替代实施例中,接收队列934和944)并与之接口。在所示实施例中,进入路径930和离开路径940两者都包括接收队列934、944,其耦接到各自的接收接口932、942。类似地,两个路径(930、940)都包括发送队列936、946,其耦接到各自的发送接口938、948。分组处理逻辑935、945也被提供在每个路径(930、940)内。将理解,分组处理逻辑935、945可以简单地是抽象到各个路径(930、940)内发生接收分组的处理的位置的、端口转发逻辑910的扩展。而且,在一个实施例中,虚拟端口920也可以保持端口的端口VLAN阵列340a和关联PVID 345a的复本。
再次参照图8A,方法在块802中开始,在块802中,用于源端口的进入分组处理器(handler)被实例化来处理具有VLAN ID(VID)的分组。当端口检测/接收到用于处理的分组时,从分组头部取回VLAN ID。PPH工具在块804中确定分组的VID是否被设定。响应于分组的VID未被设定,PPH工具利用源端口的PVID对分组加标签(块806)。一旦分组的VID被设定或者在PPH工具利用源端口的PVID对分组加标签之后,PPH工具在块808中确定源端口的进入位映射是否支持VID。如果源端口进入位映射不支持分组的VID,则丢弃分组(块810)。然而,响应于源端口的进入位映射支持VID,PPH工具使得源端口能够处理分组(块812)。在块814中,PPH工具实例化用于分组的转发功能,并确定分组的目的地端口。利用识别的目的地端口,PPH工具在块816检查分组的VID是否在目的地端口的离开位映射中。响应于分组VID不在目的地端口的离开位映射中,PPH工具丢弃分组(块818)。然而,响应于分组VID在目的地端口的离开位映射中,PPH工具在目的端口处理分组(块820)。在决定块822,PPH工具检查分组的VID是否在目的地端口的剥离位映射中。响应于分组的VID在目的地端口的剥离位映射中,PPH工具从分组中移除VID(块824)。PPH工具接着完成该分组的处理(块826)。
现在参照图8B,提供了也参照图9的端口转发逻辑定义的方法的特定实施方式。该方法在块830开始,并进入到块832中,块832指示端口转发逻辑910在DVS 900的虚拟端口(例如端口920)处检测分组的到来传输。虚拟端口被分配为使得能够向和从一个或多个VLAN内的设备路由接收的分组。处理块834接着提供端口转发逻辑从分组的头部取回VLAN ID(VID)。VLAN ID是分配来从可以由第一虚拟端口支持的多个VLAN的其它VLAN唯一地识别特定VLAN的值。接着,在块836中确定是否在虚拟端口的进入路径(相对于离开路径)上检测到分组。响应于在虚拟端口的进入路径上检测到分组,端口转发逻辑910检查(在块838中)是否设定了在虚拟端口的进入位映射阵列内的进入阵列偏移位置,这将指示VLAN被该端口所支持。进入阵列偏离位置对应于VID的值并在端口上配置VLAN期间在进入位映射阵列内设定。此外,每个虚拟端口还包括PVID VLAN ID,其指示添加到进入路径上的非标签分组的VLAN标签。该方法处理因此包括:端口转发逻辑在块840中检查接收的分组是否不具有PVID。响应于进入路径上的接收的分组不具有PVID,端口转发逻辑910自动地利用虚拟端口的PVID对分组加标签(块842)。响应于进入阵列偏移位置被设定并指示VLAN被端口支持,端口转发逻辑910接收端口处的分组并启动端口对接收的分组的处理(经由分组处理逻辑935)(块844)。然而,响应于进入阵列偏移位置未被设定,端口转发逻辑905丢弃分组(846)。因此,仅在VID识别了在进入位映射阵列中设定了对应的偏移位置的VLAN时,进入路径上的检测到的分组被允许由端口处理。接着进入路径上的分组的处理结束,并且类似地处理在端口上接收到的下一分组,为了效率可以并行的完成所述处理。
返回决定块836,响应于在端口的离开路径940上检测到分组传输(即,在进入路径930上未检测到分组),端口转发逻辑910检查(块848)是否设定了在虚拟端口的离开位映射内的离开阵列偏移位置,这将指示VLAN被端口支持。离开阵列偏移位置对应于VID的值并在端口上配置VLAN期间在离开位映射阵列内设定。响应于离开阵列偏移位置被设定并且指示VLAN被端口所支持,端口转发逻辑910接收端口处的分组,并启动端口对接收的分组的处理(块850)。响应于离开阵列偏移位置未被设定,端口转发逻辑910丢弃分组(块842)。再次,仅在VID识别了在离开位映射阵列中设定了对应的偏移位置的VLAN时,离开路径上检测到的分组被允许由端口处理。
对于在离开路径上检测和/或接收的分组,方法处理还包括端口转发逻辑910,其在块852检查是否设定了在虚拟端口的剥离位映射阵列内的剥离阵列偏移位置,其将指示VLAN被端口所支持以及VID应该在转发分组之前被移除。剥离阵列偏移位置对应于VID的值,并在端口上配置VLAN期间在剥离位映射阵列内设定。响应于离开路径上检测到的分组添加了PVID标签,端口转发逻辑自动在转发该分组之前将PVID从分组移除(块858)。响应于设定了剥离阵列偏移位置,端口转发逻辑910将VID从分组中移除并将没有VID的分组转发到分组所识别的VLAN的目的地设备(块856)。然后进入路径上的分组的处理结束,并且类似地处理端口上接收的下一分组,为了效率可以并行地完成所述处理。
上述示例实施例呈现了用于在DVS的虚拟端口内高效地处理分组的方法,所述DVS支持配置有群体、隔离和混杂子域的一个或多个PVLAN。在具有配置和使能虚拟化计算环境的虚拟化管理器的主机数据处理系统(主机系统)内执行该方法。虚拟化计算环境包括一个或多个虚拟机以及层2分布式虚拟交换机(DVS)的本地可访问组件,所述DVS包括支持至少一个虚拟局域网(VLAN)内的分组传输的多个虚拟端口。虚拟化管理器的处理资源执行产生执行所述方法的处理逻辑(例如端口转发逻辑910)的代码(例如PPH工具344)。
在该方法的一个实施例中:进入位映射阵列、离开位映射阵列和剥离位映射阵列中的每个是包括N个位条目的一维阵列,其中每一位对应于从0至N-1的偏移位置,N是整数,其表示能够由所述虚拟端口使用值的范围为从0至N-1的全局唯一的标识符(ID)支持的单独VLAN的最大数目;进入位映射阵列、离开位映射阵列和剥离位映射阵列之一中的偏移位置在相应位映射阵列中该位位置的值具有值一(1)时被设定;以及检查是否设定了偏移位置的处理包括将偏移位置处的值与一(1)进行比较,并当所述值等于一(1)时指示设定了偏移位置。
在一个实施方式中,虚拟端口可以是访问端口或上行链路端口,并且每个端口包括:进入VLAN位映射,其包含对应于在到端口的进入路径中端口支持的VLAN的VID的设定的偏移位置;离开VLAN位映射,其包含对应于在端口的离开路径中端口支持的VLAN的VID的设定的偏移位置;以及剥离VLAN位映射,其包含对应于识别下述VLAN的VID的设定的偏移位置,其中对于所述VLAN,在从所述端口转发接收到的分组之前要在离开路径上移除VID。
在一个实施例中,该方法包括:接收将新VLAN添加到虚拟端口的请求(包括但不限于经由命令行接口(CLI)或GUI接收请求);向新VLAN分配全局唯一的ID作为新VID;在为新VLAN产生的每一个位映射阵列中识别偏移位置,其中偏移位置对应于新VID的值;基于虚拟端口的类型特征,利用指示新VLAN的关联的值更新每个位映射阵列内的相应偏移位置。该方法还提供:基于从CLI接收的输入向新VLAN关联属性;存储新VLAN的属性,并实例化端口,以处理去往和来自新VLAN的设备的分组,所述端口支持新VLAN的分组通信。
在一个实施例中,该方法还包括:响应于接收到将新端口添加到PVLAN的请求:向新端口分配唯一的PVID VLAN ID;为新端口自主地产生进入位映射阵列、离开位映射阵列和剥离位映射阵列;对应于端口支持的每个VLAN和每个PVLAN,设定进入位映射阵列、离开位映射阵列和剥离位映射阵列中的每个的适当的偏移位置;存储进入位映射阵列、离开位映射阵列和剥离位映射阵列,用于在处理在新端口的进入路径和离开路径上接收到的分组时使用;以及与位映射阵列一起存储所分配的PVID VLAN ID。此外,在一个实施方式中,自主地产生和设定进入位映射阵列、离开位映射阵列和剥离位映射阵列中的每个的适当的偏移位置包括:识别新端口与PVLAN的隔离子域、群体子域和混杂子域中的哪个关联,其中隔离子域具有隔离VLAN ID(VID),群体子域具有群体VID,群体VID对于多个群体子域之中的该群体子域是唯一的,并且混杂子域共享主VLAN ID作为混杂VID。该方法还提供:响应于新端口与隔离子域关联,在进入位映射阵列内对应于隔离VID的进入偏移位置处设定位值,在离开位映射阵列内对应于混杂VID的离开偏移位置处设定位值,其中混杂VID与主VLAN ID相同,并且如果新端口的PVID被设定为隔离VID,则在剥离位映射内对应于混杂VID的的剥离偏移位置处设定位值;响应于新端口与群体子域关联,设定进入位映射阵列内对应于群体VID的进入偏移位置,在离开位映射阵列内对应于混杂VID的第一离开偏移位置处设定第一位值并在离开位映射阵列内对应于群体VID的第二离开偏移位置处设定第二位值,并且如果新端口的PVID被设定为群体VID,则在剥离位映射内分别对应于群体VID和混杂VID的第一剥离偏移位置处和第二剥离偏移位置处设定第一位值和第二位值;以及响应于新端口与混杂子域关联,设定进入位映射阵列内对应于混杂VID的进入偏移位置,在离开位映射阵列内对应于PVLAN中的每个群体子域、隔离子域和主域的VID的一个或多个离开偏移位置处设定位值,并且在离开位映射阵列内对应于PVLAN中的每个群体子域、隔离子域和主域的VID的一个或多个离开偏移位置处设定位值。
此外,上述实施例提供:响应于新端口与每一个都具有全局唯一VID的多个PVLAN关联,自主产生和设定进入位映射阵列、离开位映射阵列和剥离位映射阵列中的每个的适当的偏移位置包括:将为每个PVLAN产生的三个位映射的每个组中的各个组合并为三个组合的位映射的单个组,其中多个进入位映射阵列被合并为单个组合的进入位映射阵列,多个离开位映射阵列被合并为单个组合的离开位映射阵列,并且多个剥离位映射阵列被合并为单个组合的剥离位映射阵列。
根据一个实施方式,响应于接收到将VLAN添加到DVS的请求,所述方法包括:利用相同的位设置产生进入位映射阵列和离开位映射阵列,用于非私有VLAN的访问端口位映射;以及通过将属于VLAN的所有离开位映射和进入位映射合并而自动地产生上行链路端口的进入位映射和离开位映射。在一个实施例中,可以通过包含以下处理的替代方法产生上行链路端口的VLAN位映射:(a)对于进入位映射,合并上行链路端口所支持的所有访问端口(进入和离开)的VLAN位映射;对于离开位映射,合并上行链路端口所支持的所有访问端口(进入和离开)的VLAN位影射。最后,剥离位映射取决于分配到上行链路端口的PVID。
本发明的一个实施例提供计算机程序产品,包括:计算机可读存储介质;以及计算机可读介质上的程序代码,当该程序代码被与在数据处理系统上执行以产生具有一个或多个分布式虚拟交换机(DVS)的虚拟化计算环境的虚拟化管理器关联的处理器执行时,使得虚拟化管理器执行上述方法功能中的每个。
而且,本发明的另一实施例提供一种数据处理系统,包括:一个或多个处理器,提供处理资源;一个或多个存储器,耦接到所述一个或多个处理器;一个或多个网络接口,使得能够经由物理网络与其它设备通信;以及虚拟化管理器,将数据处理系统配置为具有分布式虚拟交换机(DVS)以及在虚拟环境内经过由与DVS关联的端口在虚拟局域网(VLAN)内通信的一个或多个虚拟机的虚拟化机器,并且其中虚拟化管理器包括一个或多个可执行工具,包括分组处理逻辑,其在处理资源上执行并使得所述虚拟化管理器:向在主机系统上的虚拟化环境内建立的PVLAN的每个子域分配全局唯一的VLAN标识符(ID);利用正确的VID对来自PVLAN内的DVS的虚拟端口的向外路径以及去往PVLAN内的DVS的虚拟端口的向内路径中的分组加标签;以及通过执行该方法的上述实施例的各种功能而动态地验证该虚拟端口的向内路径和向外路径上的接收的分组的VID。
此外,在数据处理系统的一个实施例中:虚拟端口是访问端口和上行链路端口中的一个或多个,并且每个端口包括:进入VLAN位映射,其包含对应于在到端口的进入路径中端口支持的VLAN的VID的设定的偏移位置;离开VLAN位映射,其包含对应于在端口的离开路径中端口支持的VLAN的VID的设定的偏移位置;以及剥离VLAN位映射,其包含对应于识别下述VLAN的VID的设定的偏移位置,其中对于所述VLAN,在从端口转发接收到的分组之前要在离开路径上移除所述VID;VLAN是私有VLAN(PVLAN)并且每个虚拟端口还包括PVID VLAN ID,其指示添加到进入路径上的未加标签分组的VLAN标签;多个分布式虚拟交换机由同一组PVLAN支持,多个PVLAN域被提供在单个DVS内,以及虚拟化管理器的分组处理逻辑统一地强制执行PVLAN策略;并且一个或多个可执行工具还使得虚拟化管理器:响应于在进入路径上的接收的分组不具有PVID,自动地利用虚拟端口的PVID对分组加标签;以及响应于在离开路径上的检测的分组添加了VID,自动地在转发所述分组之前将VID从所述分组移除。
这里所呈现和描述的各个附图中的流程图和框图图示了根据本发明各种实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。在这一点上,所述流程图或框图中的每个块可以表示模块、片段或代码部分,其包括用于实现指定的一个或多个逻辑功能的一个或多个可执行指令。还应当注意,在某些替代实现方式中,块中标注的功能可以不按照图中标注的顺序进行。例如,连续示出的两个块实际上可以基本同时地执行,或者根据所涉及的功能,有时候可以按照相反的顺序执行所述块。还将注意到,可以通过执行指定的功能或动作的基于专用硬件的系统或者专用硬件和计算机指令的组合来实现所述框图和/或流程图图示的每个块、以及所述框图和/或流程图图示中的块的组合。
在以上流程图中,一个或多个方法在计算机程序产品中具体化,所述计算机程序产品具有包含计算机可读/程序代码/指令的计算机可读介质,从而当计算机可读/程序代码/指令在计算机设备/机器上(由处理单元/处理器)执行时执行一系列步骤。在某些实施方式中,方法的某些处理被组合、同时执行或以不同的顺序执行、或者也许被省略,而不偏离本发明的精神和范围。因此,虽然方法处理以特定的序列说明和图示,但特定序列的处理的使用并非意在隐含对本发明的任何限制。可以关于处理的序列进行改变而不偏离本发明的精神和范围。因此,使用特定的序列不被认为是限制性的,并且本发明的范围延伸到所附权利要求及其等价物。
如本领域技术人员将认识到的,可以作为系统、方法或计算机程序产品来具体化本发明的各方面。因此,本发明的各方面可以采取全硬件实施例的形式、全软件实施例(包括固件、驻留软件、微代码等)的形式、或者组合了在这里均可通称为“电路”、“模块”或“系统”的软件和硬件方面的实施例的形式。此外,本发明的各方面可采取在一个或多个计算机可读介质中包含的计算机程序产品的形式,所述计算机可读介质具有在其上具体化的计算机可读程序代码。
可以使用一个或多个计算机可读介质的任何组合。该计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质例如可以是但不限于电子、磁、光、电磁、红外或半导体系统、装置、或设备,或者前述各项的任何适当组合。计算机可读存储介质的更多具体示例(非穷尽性列举)包括以下各项:具有一条或多条导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式致密盘只读存储器(CD-ROM)、光存储设备、磁存储设备、或者前述各项的任何适当组合。在本文档的上下文中,计算机可读存储介质可以是可包含或存储程序以便由指令执行系统、装置或设备使用或者结合所述指令执行系统、装置或设备使用的任何有形介质。
计算机可读信号介质可包括在基带中或者作为载波的一部分的传播的数据信号,其中在该传播的数据信号中包含计算机可读程序码。这种传播的信号可以采用多种形式,包括但不限于电磁、光或任何以上适当的组合。计算机可读信号介质可以是并非是计算机可读存储介质、但是能发送、传播或者传输用于由指令执行系统、装置或者设备使用或者与其结合使用的程序的任何计算机可读介质。
可以使用任何适当的介质传送在计算机可读介质上包含的程序,所述介质包括但不限于无线、有线、光纤缆线、RF等,或者前者的任意适当的组合。用于执行本发明的各方面的操作的计算机程序代码可以用一种或多种编程语言的任何组合来编写,所述编程语言包括:面向对象编程语言,例如Java、Smalltalk、C++等;以及传统的过程编程语言,例如“C”编程语言或类似编程语言。该程序代码可以完全在用户的计算机上执行、部分地在用户的计算机上执行、作为独立软件包执行、部分地在用户的计算机上并且部分地在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一场景中,远程计算机可以通过包括局域网(LAN)或广域网(WAN)的任何类型的网络连接到用户的计算机,或者可以形成到外部计算机的连接(例如,使用因特网服务提供商通过因特网)。
下面参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图图示和/或框图描述了本发明的各方面。将理解:可以通过计算机程序指令来实现所述流程图图示和/或框图的每个块、以及所述流程图图示和/或框图中的块的组合。可以将这些计算机程序指令提供给通用计算机、专用计算机、或者其他可编程数据处理装置的处理器以便产生机器,使得经由所述计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在所述流程图和/或框图的一个或多个块中指定的功能/动作的部件。
也可以将这些计算机程序指令存储在计算机可读介质中,该计算机可读介质可以指示计算机、其他可编程数据处理装置或者其他设备以特定的方式发挥作用,使得存储在计算机可读介质中的指令产生一种制造产品,该制造产品包括实现在所述流程图和/或框图的一个或多个块中指定的功能/动作的指令。也可以将计算机程序指令加载到计算机、其他可编程数据处理装置或者其他设备上,以使得在计算机、其他可编程装置或者其他设备上执行一系列操作步骤,从而产生计算机实现的过程,使得在计算机或其他可编程装置上执行的指令提供用于实现在所述流程图和/或框图的一个或多个块中指定的功能/动作的过程。
如将进一步理解的,可以使用软件、固件或硬件的任何组合实施本发明的实施例中的处理。作为以软件实践本发明的预备步骤,程序代码(不论软件还是固件)将典型地存储在一个或多个机器可读存储介质中,诸如固定(硬盘)驱动器、磁盘、光盘、磁带、半导体存储器(诸如ROM、PROM等),从而根据本发明做出制造产品。通过直接从存储设备执行代码、通过将代码从存储设备复制到另一存储设备(诸如硬盘、RAM等)、或者通过使用传输类型介质(诸如数字和模拟通信链路)传输代码用于远程执行来使用包含程序代码的制造产品。可以通过将包含根据本发明的代码的一个或多个机器可读存储设备与适当的处理硬件组合来执行其中包含的代码,而实践本发明的方法。用于实践本发明的装置可以是一个或多个处理设备和存储系统,其包含或具有对根据本发明而编码的程序的网络访问。
因此,重要的是,虽然在具有安装的(或执行的)软件的全功能计算机(服务器)的上下文中描述了本发明的实例实施例,但本领域的技术人员将理解,本发明的实例实施例的软件方面能够作为程序产品以各种形式分发,并且本发明的示例实施例同等适用,而不管用于实际执行分发的介质的特定类型。
虽然已经参照示例实施例描述了本发明,但本领域的技术人员将理解,可以进行各种改变并且可以用等同物替代其元件,而不偏离本发明的范围。此外,可以进行许多修改,以将特定系统、设备或其组件适配到本发明的教导,而不偏离本发明的实质范围。因此,本发明不意在被限制到用于执行本发明而公开的特定实施例,而是本发明将包括落入所附权利要求范围内的所有实施例。此外,术语“第一”、“第二”等的使用不表示任何顺序或重要性,而是术语“第一”、“第二”等被用来将元件彼此区分。
在这里使用的术语只是出于描述特定实施例的目的,而非意图限制本发明。如这里使用的,单数形式“一”和“所述”意图是也包括复数形式,除非上下文清楚地指出不是这样。还将理解的是,当在本说明书中使用时,术语“包括”和/或“包含”指明存在所述特征、整数、步骤、操作、元件和/或组件,但是不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或其组的存在或附加。
下面的权利要求中的所有装置或步骤加功能元件的对应结构、材料、动作和等价物意在包括用于与特别要求权利的其它要求组件组合地执行功能的任何结构、材料或动作。已经为了示例性和说明性的目的呈现了本发明的说明,但该说明不意在是穷举的或将本发明限制到所公开的形式。许多修改和改变对于本领域的普通技术人员而言将是显而易见的,而不偏离本发明的范围和精神。选择和说明实施例,以便更好地说明本发明的原理和实际应用,并使得本领域的其它普通技术人员能够理解具有适于所构思的特定使用的各种修改的各种实施例的本发明。

Claims (17)

1.一种在具有虚拟化管理器的主机数据处理系统(主机系统)中,所述虚拟化管理器的处理资源执行所述虚拟化管理器的分组处理逻辑而执行的方法,所述虚拟化管理器配置和使能虚拟化计算环境,所述虚拟化计算环境包括一个或多个虚拟机以及层2分布式虚拟交换机(DVS)的本地可访问组件,所述DVS包括支持至少一个虚拟局域网(VLAN)内的分组传输的多个虚拟端口,所述方法包括:
在所述DVS的第一虚拟端口处检测分组的到来传输,其中所述第一虚拟端口被分配为使能接收分组向和从一个或多个VLAN内的设备的路由;
从所述分组的头部取回VLAN ID(VID),其中所述VLAN ID是被分配为相对于能够被所述第一虚拟端口支持的多个VLAN的其它VLAN唯一地识别特定VLAN的值;
响应于在所述第一虚拟端口的进入路径上检测到分组:
检查是否设定了在所述虚拟端口的进入位映射阵列内的进入阵列偏移位置,其指示所述VLAN被所述端口支持,其中所述进入阵列偏移位置对应于所述VID的值,并且在所述端口上配置所述VLAN期间在所述进入位映射阵列内被设定;
响应于所述进入阵列偏移位置被设定并指示所述VLAN被所述端口支持,在所述端口处接收分组,并启动由所述端口对接收的分组的处理;
响应于所述进入阵列偏移位置未被设定,丢弃分组;
其中,仅在所述VID识别了在所述进入位映射阵列中设定了对应的偏移位置的VLAN时,所述进入路径上的检测到的分组被允许由所述端口处理。
2.如权利要求1所述的方法,还包括:
响应于在所述端口的离开路径上检测到分组传输:
检查是否设定了在所述虚拟端口的离开位映射阵列内的离开阵列偏移位置,其指示所述VLAN被所述端口支持,其中所述离开阵列偏移位置对应于所述VID的值,并且在所述端口上配置所述VLAN期间在所述离开位映射阵列内被设定;
响应于所述离开阵列偏移位置被设定并指示所述VLAN被所述端口支持,在所述端口处接收分组,并启动由所述端口对接收的分组的处理;
响应于所述离开阵列偏移位置未被设定,丢弃分组;
其中,仅在所述VID识别了在所述离开位映射阵列中设定了对应的偏移位置的VLAN时,所述离开路径上的检测到的分组被允许由所述端口处理。
3.如权利要求2所述的方法,还包括:
检查是否设定了在所述虚拟端口的剥离位映射阵列内的剥离阵列偏移位置,其指示所述VLAN被所述端口支持并且所述VID应该在分组被转发之前被移除,其中所述剥离阵列偏移位置对应于所述VID的值,并且在所述端口上配置所述VLAN期间在所述剥离位映射阵列内被设定;
响应于所述剥离阵列偏移位置被设定,从分组移除所述VID,并将没有所述VID的分组转发到所述分组识别的VLAN的目的地设备。
4.如权利要求3所述的方法,其中:
所述进入位映射阵列、离开位映射阵列和剥离位映射阵列中的每个是包括N个位条目的一维阵列,其中每一位对应于从0至N-1的偏移位置,N是整数,其表示能够由所述虚拟端口使用值的范围为从0至N-1的全局唯一的标识符(ID)支持的单独VLAN的最大数目;
所述进入位映射阵列、离开位映射阵列和剥离位映射阵列之一中的偏移位置在相应位映射阵列中该位位置的值具有值一(1)时被设定;以及
所述检查是否设定了偏移位置包括将所述偏移位置处的值与一(1)进行比较,并当所述值等于一(1)时指示设定了所述偏移位置。
5.如权利要求3所述的方法,其中所述虚拟端口是访问端口和上行链路端口中的一个或多个,并且每个端口包括:进入VLAN位映射,其包含对应于在到所述端口的进入路径中所述端口支持的VLAN的VID的设定的偏移位置;离开VLAN位映射,其包含对应于在所述端口的离开路径中所述端口支持的VLAN的VID的设定的偏移位置;以及剥离VLAN位映射,其包含对应于识别下述VLAN的VID的设定的偏移位置,其中对于所述VLAN,在从所述端口转发接收到的分组之前要在所述离开路径上移除所述VID。
6.如权利要求5所述的方法,其中:
所述VLAN是私有VLAN(PVLAN)并且每个虚拟端口还包括PVIDVLAN ID,其指示添加到所述进入路径上的未加标签分组的VLAN标签;并且
所述方法包括:
响应于在所述进入路径上接收到的分组不具有PVID,自动地利用所述虚拟端口的PVID对所述分组加标签;以及
响应于在所述离开路径上检测到的分组添加了PVID,自动地在转发所述分组之前将所述PVID从所述分组移除。
7.如权利要求3所述的方法,还包括:
接收将新VLAN添加到虚拟端口的请求;
向所述新VLAN分配全局唯一的ID作为新VID;
在为所述新VLAN产生的每一个位映射阵列中识别偏移位置,其中所述偏移位置对应于所述新VID的值;
基于所述虚拟端口的类型特征,利用指示所述新VLAN的关联的值更新每个位映射阵列内的相应偏移位置。
8.如权利要求7所述的方法,还包括:
基于从CLI接收的输入向所述新VLAN关联属性;
存储所述新VLAN的属性,并实例化所述端口,以处理去往和来自所述新VLAN上的设备的分组。
9.如权利要求1所述的方法,还包括:
响应于接收到将新端口添加到PVLAN的请求:
向所述新端口分配唯一的PVID VLAN ID;
为所述新端口自主地产生进入位映射阵列、离开位映射阵列和剥离位映射阵列;
对应于所述端口支持的每个VLAN和每个PVLAN,设定所述进入位映射阵列、离开位映射阵列和剥离位映射阵列中的每个的适当的偏移位置;
存储所述进入位映射阵列、所述离开位映射阵列和所述剥离位映射阵列,用于在处理在所述新端口的进入路径和离开路径上接收到的分组时使用;以及
与所述位映射阵列一起存储所分配的PVID VLAN ID。
10.如权利要求9所述的方法,其中所述自主地产生和设定所述进入位映射阵列、所述离开位映射阵列和所述剥离位映射阵列中的每个的适当的偏移位置包括:
识别所述新端口与PVLAN的隔离子域、群体子域和混杂子域中的哪个关联;
其中所述隔离子域具有隔离VLAN ID(VID),所述群体子域具有群体VID,所述群体VID对于多个群体子域之中的该群体子域是唯一的,并且所述混杂子域共享主VLAN ID作为混杂VID;
响应于所述新端口与隔离子域关联,在所述进入位映射阵列内对应于所述隔离VID的进入偏移位置处设定位值,在所述离开位映射阵列内对应于所述混杂VID的离开偏移位置处设定位值,其中所述混杂VID与所述主VLANID相同,并且如果所述新端口的PVID被设定为所述隔离VID,则在所述剥离位映射内对应于所述混杂VID的剥离偏移位置处设定位值;
响应于所述新端口与群体子域关联,设定所述进入位映射阵列内对应于所述群体VID的进入偏移位置,在所述离开位映射阵列内对应于所述混杂VID的第一离开偏移位置处设定第一位值并在所述离开位映射阵列内对应于所述群体VID的第二离开偏移位置处设定第二位值,并且如果所述新端口的PVID被设定为群体VID,则在所述剥离位映射内分别对应于所述群体VID和所述混杂VID的第一剥离偏移位置处和第二剥离偏移位置处设定第一位值和第二位值;以及
响应于所述新端口与混杂子域关联,设定所述进入位映射阵列内对应于所述混杂VID的进入偏移位置,在所述离开位映射阵列内对应于所述PVLAN中的每个群体子域、隔离子域和主域的VID的一个或多个离开偏移位置处设定位值,并且在所述离开位映射阵列内对应于所述PVLAN中的每个群体子域、隔离子域和主域的VID的一个或多个离开偏移位置处设定位值。
11.如权利要求9所述的方法,其中响应于所述新端口与每一个都具有全局唯一VID的多个PVLAN关联,所述自主产生和设定所述进入位映射阵列、所述离开位映射阵列和所述剥离位映射阵列中的每个的适当的偏移位置包括:
将为每个PVLAN产生的三个位映射的每个组中的各个组合并为三个组合的位映射的单个组,其中多个进入位映射阵列被合并为单个组合的进入位映射阵列,多个离开位映射阵列被合并为单个组合的离开位映射阵列,并且多个剥离位映射阵列被合并为单个组合的剥离位映射阵列。
12.如权利要求9所述的方法,其中响应于接收到将非私有VLAN添加到所述DVS的命令行接口请求,所述方法包括:
利用相同的位设置产生所述进入位映射阵列和所述离开位映射阵列,用于非私有VLAN的访问端口位映射;以及
通过将所述VLAN的所有访问端口位映射(进入和离开)合并而自动地产生上行链路端口进入位映射和上行链路端口离开位映射。
13.一种数据处理系统,包括:
一个或多个处理器,提供处理资源;
一个或多个存储器,耦接到所述一个或多个处理器;
一个或多个网络接口,使得能够经由物理网络与其它设备通信;
虚拟化管理器,将所述数据处理系统配置为具有分布式虚拟交换机(DVS)以及在虚拟环境内经由与DVS关联的端口在虚拟局域网(VLAN)内通信的一个或多个虚拟机的虚拟化机器,并且其中所述虚拟化管理器包括一个或多个可执行工具,所述可执行工具在处理资源上执行并使得所述虚拟化管理器:
向在所述主机系统上的虚拟化环境内建立的PVLAN的每个子域分配全局唯一的VLAN标识符(ID);
利用正确的VID对来自所述PVLAN内的DVS的虚拟端口的离开路径以及去往所述PVLAN内的DVS的虚拟端口的进入路径中的分组加标签;
通过以下步骤动态地验证在所述虚拟端口的进入路径和离开路径上的接收分组的VID:
在所述DVS的第一虚拟端口处检测分组的到来传输,其中所述第一虚拟端口被分配为使能接收分组向和从一个或多个VLAN内的设备的路由;
从所述分组的头部取回VLAN ID(VID),其中所述VLAN ID是被分配为从能够相对于所述第一虚拟端口支持的多个VLAN的其它VLAN唯一地识别特定VLAN的值;
响应于在所述第一虚拟端口的进入路径上检测到分组:
检查是否设定了在所述虚拟端口的进入位映射阵列内的进入阵列偏移位置,其指示所述VLAN被所述端口支持,其中所述进入阵列偏移位置对应于所述VID的值,并且在所述端口上配置所述VLAN期间在所述进入位映射阵列内被设定;
响应于所述进入阵列偏移位置被设定并指示所述VLAN被所述端口支持,在所述端口处接收分组,并启动由所述端口对接收的分组的处理;
响应于所述进入阵列偏移位置未被设定,丢弃分组;并且
其中,仅在所述VID识别了在所述进入位映射阵列中设定了对应的偏移位置的VLAN时,所述进入路径上的检测到的分组被允许由所述端口处理;
响应于在所述端口的离开路径上检测到分组传输:
检查是否设定了在所述虚拟端口的离开位映射阵列内的离开阵列偏移位置,其指示所述VLAN被所述端口支持,其中所述离开阵列偏移位置对应于所述VID的值,并且在所述端口上配置所述VLAN期间在所述离开位映射阵列内被设定;
响应于所述离开阵列偏移位置被设定并指示所述VLAN被所述端口支持,在所述端口处接收分组,并启动由所述端口对接收的分组的处理;
响应于所述离开阵列偏移位置未被设定,丢弃分组;
其中,仅在所述VID识别了在所述离开位映射阵列中设定了对应的偏移位置的VLAN时,所述离开路径上的检测到的分组被允许由所述端口处理。
14.如权利要求13所述的数据处理系统,其中在所述处理资源上执行的所述一个或多个可执行工具还使得所述虚拟化管理器:
检查是否设定了在所述虚拟端口的剥离位映射阵列内的剥离阵列偏移位置,其指示所述VLAN被所述端口支持并且所述VID应该在分组被转发之前被移除,其中所述剥离阵列偏移位置对应于所述VID的值,并且在所述端口上配置所述VLAN期间在所述剥离位映射阵列内被设定;
响应于所述剥离阵列偏移位置被设定,从分组移除所述VID,并将没有所述VID的分组转发到所述分组识别的VLAN的目的地设备。
15.如权利要求14所述的数据处理系统,其中
所述进入位映射阵列、离开位映射阵列和剥离位映射阵列中的每个是包括N个位条目的一维阵列,其中每一位对应于从0至N-1的偏移位置,N是整数,其表示能够由所述虚拟端口使用值的范围为从0至N-1的全局唯一的标识符(ID)支持的单独VLAN的最大数目;
所述进入位映射阵列、离开位映射阵列和剥离位映射阵列之一中的偏移位置在相应位映射阵列中该位位置的值具有值一(1)时被设定;以及
一个或多个可执行工具在处理资源上执行并使得所述虚拟化管理器:
所述可执行工具使得所述虚拟化管理器检查所述偏移位置是否被设定包括所述工具使得所述虚拟化管理器将所述偏移位置处的值与一(1)进行比较,并当所述值等于一(1)时指示所述偏移位置被设定。
16.如权利要求14所述的数据处理系统,其中:
所述虚拟端口是访问端口和上行链路端口中的一个或多个,并且每个端口包括:进入VLAN位映射,其包含对应于在到所述端口的进入路径中所述端口支持的VLAN的VID的设定的偏移位置;离开VLAN位映射,其包含对应于在到所述端口的离开路径中所述端口支持的VLAN的VID的设定的偏移位置;以及剥离VLAN位映射,其包含对应于识别下述VLAN的VID的设定的偏移位置,其中对于所述VLAN,在从端口转发接收到的分组之前要在所述离开路径上移除所述VID;
所述VLAN是私有VLAN(PVLAN)并且每个虚拟端口还包括PVIDVLAN ID,其指示添加到所述进入路径上的未加标签分组的VLAN标签;
多个分布式虚拟交换机由同一组PVLAN支持,多个PVLAN域被提供在单个DVS内,以及所述虚拟化管理器的分组处理逻辑统一地强制执行PVLAN策略;并且
所述一个或多个可执行工具还使得所述虚拟化管理器:响应于在所述进入路径上的接收的分组不具有PVID,自动地利用所述虚拟端口的PVID对所述分组加标签;以及响应于在所述离开路径上的检测的分组添加了VID,自动地在转发所述分组之前将所述VID从所述分组移除。
17.一种在具有虚拟化管理器的主机数据处理系统(主机系统)中,所述虚拟化管理器的处理资源执行的方法,所述虚拟化管理器配置和使能虚拟化计算环境,所述虚拟化计算环境包括一个或多个虚拟机以及层2分布式虚拟交换机(DVS)的本地可访问组件,所述DVS包括支持至少一个虚拟局域网(VLAN)内的分组传输的多个虚拟端口,所述方法包括:
响应于接收到将VLAN和私有VLAN(PVLAN)之一分配到端口的请求,产生一组端口VLAN位映射;
将所述一组端口VLAN位映射与端口VLAN标识符(ID)(PVID)一起存储;以及
响应于检测到在所述端口的进入路径和离开路径之一上穿过的分组,检查所述分组的VLAN ID(VID),将所述分组的VID设定并匹配到用于所述端口的一组端口VLAN位映射,并且当所述VID在所述一组端口VLAN位映射内匹配时使能分组传输,其中能够使用进入位映射对于源端口完成分组进入,并且能够使用目的地端口的离开位映射和剥离位映射对于所述目的地端口完成分组离开。
CN201210145615.4A 2011-05-13 2012-05-11 用于分布式虚拟交换机的私有虚拟局域网方法和系统 Expired - Fee Related CN102780608B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/107,554 2011-05-13
US13/107,554 US8670450B2 (en) 2011-05-13 2011-05-13 Efficient software-based private VLAN solution for distributed virtual switches

Publications (2)

Publication Number Publication Date
CN102780608A true CN102780608A (zh) 2012-11-14
CN102780608B CN102780608B (zh) 2015-06-24

Family

ID=47125370

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210145615.4A Expired - Fee Related CN102780608B (zh) 2011-05-13 2012-05-11 用于分布式虚拟交换机的私有虚拟局域网方法和系统

Country Status (2)

Country Link
US (2) US8670450B2 (zh)
CN (1) CN102780608B (zh)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103051529A (zh) * 2012-12-20 2013-04-17 华为技术有限公司 一种报文的处理方法和装置
CN104022960A (zh) * 2013-02-28 2014-09-03 杭州华三通信技术有限公司 基于OpenFlow协议实现PVLAN的方法和装置
CN104092684A (zh) * 2014-07-07 2014-10-08 杭州华三通信技术有限公司 一种OpenFlow协议支持VPN的方法及设备
WO2015014177A1 (zh) * 2013-07-31 2015-02-05 华为技术有限公司 一种流表交互方法、交换机及系统
CN104660506A (zh) * 2013-11-22 2015-05-27 华为技术有限公司 一种数据包转发的方法、装置及系统
CN104753820A (zh) * 2015-03-24 2015-07-01 福建星网锐捷网络有限公司 聚合链路中业务流非对称转发的方法、设备以及交换机
CN104883325A (zh) * 2014-02-27 2015-09-02 国际商业机器公司 Pvlan交换机及其连接到非pvlan装置的方法
CN105376231A (zh) * 2015-11-18 2016-03-02 浪潮(北京)电子信息产业有限公司 一种实现业务隔离的方法及装置
CN105407028A (zh) * 2014-09-08 2016-03-16 广达电脑股份有限公司 用于高频宽伺服器管理的方法与系统
CN105407082A (zh) * 2015-10-23 2016-03-16 上海斐讯数据通信技术有限公司 一种vlan中主机隔离的装置和方法
CN105592089A (zh) * 2015-12-29 2016-05-18 中国银联股份有限公司 一种云计算下的租户安全隔离方法
CN105874744A (zh) * 2013-12-18 2016-08-17 瑞典爱立信有限公司 用于虚拟化远程装置的系统和方法
CN105939309A (zh) * 2015-07-28 2016-09-14 杭州迪普科技有限公司 一种虚拟机隔离方法及装置
CN107431642A (zh) * 2015-02-10 2017-12-01 大交换机网络股份有限公司 用于控制交换机以捕获和监视网络流量的系统和方法
WO2018023498A1 (zh) * 2016-08-03 2018-02-08 华为技术有限公司 网络接口卡、计算设备以及数据包处理方法
CN109302466A (zh) * 2018-09-18 2019-02-01 华为技术有限公司 数据处理方法、相关设备及计算机存储介质
CN109905336A (zh) * 2019-03-13 2019-06-18 武汉星耀科技有限公司 分布式虚拟交换机的SuperVLAN实现方法及系统
US10581729B2 (en) 2016-08-03 2020-03-03 Huawei Technologies Co., Ltd. Network interface card, computing device, and data packet processing method
TWI706650B (zh) * 2018-01-19 2020-10-01 美商美超微電腦股份有限公司 自動多機箱鏈路聚合組態
CN113703789A (zh) * 2021-08-04 2021-11-26 德邦证券股份有限公司 部署微服务程序的方法、装置以及存储介质

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9558042B2 (en) 2004-03-13 2017-01-31 Iii Holdings 12, Llc System and method providing object messages in a compute environment
US8782654B2 (en) 2004-03-13 2014-07-15 Adaptive Computing Enterprises, Inc. Co-allocating a reservation spanning different compute resources types
US20070266388A1 (en) 2004-06-18 2007-11-15 Cluster Resources, Inc. System and method for providing advanced reservations in a compute environment
US8176490B1 (en) 2004-08-20 2012-05-08 Adaptive Computing Enterprises, Inc. System and method of interfacing a workload manager and scheduler with an identity manager
WO2006053093A2 (en) 2004-11-08 2006-05-18 Cluster Resources, Inc. System and method of providing system jobs within a compute environment
US8863143B2 (en) 2006-03-16 2014-10-14 Adaptive Computing Enterprises, Inc. System and method for managing a hybrid compute environment
US9231886B2 (en) 2005-03-16 2016-01-05 Adaptive Computing Enterprises, Inc. Simple integration of an on-demand compute environment
EP1872249B1 (en) 2005-04-07 2016-12-07 Adaptive Computing Enterprises, Inc. On-demand access to compute resources
US8619771B2 (en) 2009-09-30 2013-12-31 Vmware, Inc. Private allocated networks over shared communications infrastructure
US8041773B2 (en) 2007-09-24 2011-10-18 The Research Foundation Of State University Of New York Automatic clustering for self-organizing grids
US8195774B2 (en) 2008-05-23 2012-06-05 Vmware, Inc. Distributed virtual switch for virtualized computer systems
US9077654B2 (en) 2009-10-30 2015-07-07 Iii Holdings 2, Llc System and method for data center security enhancements leveraging managed server SOCs
US9876735B2 (en) * 2009-10-30 2018-01-23 Iii Holdings 2, Llc Performance and power optimized computer system architectures and methods leveraging power optimized tree fabric interconnect
US20110103391A1 (en) 2009-10-30 2011-05-05 Smooth-Stone, Inc. C/O Barry Evans System and method for high-performance, low-power data center interconnect fabric
US9054990B2 (en) 2009-10-30 2015-06-09 Iii Holdings 2, Llc System and method for data center security enhancements leveraging server SOCs or server fabrics
US20130107444A1 (en) 2011-10-28 2013-05-02 Calxeda, Inc. System and method for flexible storage and networking provisioning in large scalable processor installations
US9465771B2 (en) 2009-09-24 2016-10-11 Iii Holdings 2, Llc Server on a chip and node cards comprising one or more of same
US9069929B2 (en) 2011-10-31 2015-06-30 Iii Holdings 2, Llc Arbitrating usage of serial port in node card of scalable and modular servers
US8599863B2 (en) 2009-10-30 2013-12-03 Calxeda, Inc. System and method for using a multi-protocol fabric module across a distributed server interconnect fabric
US9680770B2 (en) 2009-10-30 2017-06-13 Iii Holdings 2, Llc System and method for using a multi-protocol fabric module across a distributed server interconnect fabric
US10877695B2 (en) 2009-10-30 2020-12-29 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US9648102B1 (en) 2012-12-27 2017-05-09 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US11720290B2 (en) 2009-10-30 2023-08-08 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US9311269B2 (en) 2009-10-30 2016-04-12 Iii Holdings 2, Llc Network proxy for high-performance, low-power data center interconnect fabric
US20110252208A1 (en) * 2010-04-12 2011-10-13 Microsoft Corporation Express-full backup of a cluster shared virtual machine
US8817620B2 (en) * 2010-07-06 2014-08-26 Nicira, Inc. Network virtualization apparatus and method
US9680750B2 (en) 2010-07-06 2017-06-13 Nicira, Inc. Use of tunnels to hide network addresses
JP5720324B2 (ja) * 2011-03-11 2015-05-20 日本電気株式会社 シンクライアント環境提供システム、サーバ、シンクライアント環境管理方法、及びシンクライアント環境管理プログラム
US8837499B2 (en) 2011-05-14 2014-09-16 International Business Machines Corporation Distributed fabric protocol (DFP) switching network architecture
US9363207B2 (en) * 2011-06-24 2016-06-07 Cisco Technology, Inc. Private virtual local area network isolation
US20130034015A1 (en) * 2011-08-05 2013-02-07 International Business Machines Corporation Automated network configuration in a dynamic virtual environment
US8767529B2 (en) 2011-09-12 2014-07-01 International Business Machines Corporation High availability distributed fabric protocol (DFP) switching network architecture
US9065745B2 (en) 2011-10-06 2015-06-23 International Business Machines Corporation Network traffic distribution
EP2773072B1 (en) * 2011-10-28 2019-02-27 Nec Corporation Control apparatus, communication system, virtual network management method, and program
US9036636B1 (en) * 2012-02-06 2015-05-19 Big Switch Networks, Inc. System and methods for managing network packet broadcasting
US9264295B1 (en) 2012-03-02 2016-02-16 Big Switch Networks, Inc. Systems and methods for forwarding broadcast network packets with a controller
US10103980B1 (en) * 2012-03-14 2018-10-16 Juniper Networks, Inc. Methods and apparatus for maintaining an integrated routing and bridging interface
CN107743093B (zh) * 2012-03-19 2020-11-03 英特尔公司 用于输入/输出虚拟化系统中分组管理的装置、方法和介质
US9331872B2 (en) * 2012-05-22 2016-05-03 Cisco Technology, Inc. Implementing PVLANs in a large-scale distributed virtual switch
US8958340B2 (en) * 2012-06-15 2015-02-17 Dell Products L.P. System and methods for open fabric management
CN103001953B (zh) * 2012-11-21 2015-09-09 北京航空航天大学 虚拟机网络资源分配方法及装置
JP5958639B2 (ja) * 2013-02-20 2016-08-02 富士通株式会社 スイッチ及びプログラム
CN103152256B (zh) * 2013-02-22 2017-05-03 浪潮电子信息产业股份有限公司 一种基于云计算数据中心的路由虚拟网络设计方法
US9173158B2 (en) * 2013-03-08 2015-10-27 Tellabs Operations, Inc. Method and apparatus for improving LTE enhanced packet core architecture using openflow network controller
US9967111B2 (en) * 2013-03-15 2018-05-08 Rackspace Us, Inc. Software-defined multinetwork bridge
JP6079426B2 (ja) * 2013-05-16 2017-02-15 富士通株式会社 情報処理システム、方法、装置及びプログラム
US9749231B2 (en) * 2013-07-02 2017-08-29 Arista Networks, Inc. Method and system for overlay routing with VXLAN on bare metal servers
CN105264991B (zh) * 2013-11-12 2019-12-24 华为技术有限公司 用于高效无线局域网通信的系统和方法
CN103812752B (zh) * 2014-03-03 2018-10-09 国家电网公司 一种电力通信网中vlan间资源共享的方法
US9509527B2 (en) * 2014-06-30 2016-11-29 Arista Networks, Inc. Method and system for VXLAN encapsulation offload
US9838337B1 (en) * 2014-09-30 2017-12-05 Juniper Networks, Inc. Automatic virtual local area network (VLAN) provisioning in data center switches
WO2016122570A1 (en) * 2015-01-30 2016-08-04 Hewlett Packard Enterprise Development Lp Sending information in a network controlled by a controller
US10693806B2 (en) * 2015-03-11 2020-06-23 Vmware, Inc. Network bandwidth reservations for system traffic and virtual computing instances
US10747564B2 (en) * 2015-04-02 2020-08-18 Vmware, Inc. Spanned distributed virtual switch
CN106797344B (zh) * 2015-06-30 2020-10-16 华为技术有限公司 通过远端网元端口通信的方法和装置
US9846602B2 (en) * 2016-02-12 2017-12-19 International Business Machines Corporation Migration of a logical partition or virtual machine with inactive input/output hosting server
US10554494B1 (en) 2017-01-04 2020-02-04 Juniper Networks, Inc. Automatic ICCP provisioning and VLAN provisioning on an inter-chassis link in a MC-LAG
CN106685788B (zh) * 2017-01-10 2019-10-11 盛科网络(苏州)有限公司 堆叠模式下pvlan的芯片实现方法
CN106685789B (zh) * 2017-01-13 2019-10-08 盛科网络(苏州)有限公司 堆叠模式下pvlan的芯片实现方法
US10666606B2 (en) * 2017-06-28 2020-05-26 Amazon Technologies, Inc. Virtual private network service endpoints
US10587510B2 (en) 2017-12-01 2020-03-10 International Business Machines Corporation Network function virtualization using tagged access ports
US11494212B2 (en) * 2018-09-27 2022-11-08 Intel Corporation Technologies for adaptive platform resource assignment
US10880124B2 (en) 2018-12-28 2020-12-29 Alibaba Group Holding Limited Offload controller control of programmable switch
US12068979B2 (en) * 2020-05-01 2024-08-20 EMC IP Holding Company, LLC System and method for dividing a physical ethernet port
US11374808B2 (en) 2020-05-29 2022-06-28 Corning Research & Development Corporation Automated logging of patching operations via mixed reality based labeling
US11295135B2 (en) * 2020-05-29 2022-04-05 Corning Research & Development Corporation Asset tracking of communication equipment via mixed reality based labeling
KR20220133716A (ko) * 2021-03-25 2022-10-05 삼성전자주식회사 가상 기업망을 구성하기 위한 장치 및 방법
CN115604167A (zh) * 2022-08-25 2023-01-13 紫光云技术有限公司(Cn) 一种公有云mac地址学习优化方法
CN117749715A (zh) * 2022-09-14 2024-03-22 瑞昱半导体股份有限公司 网络封包传输装置及其网络封包传输方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1677950A (zh) * 2004-04-01 2005-10-05 华为技术有限公司 基于虚拟局域网的数据交换方法
CN1741499A (zh) * 2005-09-13 2006-03-01 中兴通讯股份有限公司 一种基于mac学习的虚拟电路交换方法
US20100257263A1 (en) * 2009-04-01 2010-10-07 Nicira Networks, Inc. Method and apparatus for implementing and managing virtual switches

Family Cites Families (105)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5394402A (en) 1993-06-17 1995-02-28 Ascom Timeplex Trading Ag Hub for segmented virtual local area network with shared media access
US5617421A (en) 1994-06-17 1997-04-01 Cisco Systems, Inc. Extended domain computer network using standard links
US5515359A (en) 1994-08-26 1996-05-07 Mitsubishi Electric Research Laboratories, Inc. Credit enhanced proportional rate control system
US5633859A (en) 1994-09-16 1997-05-27 The Ohio State University Method and apparatus for congestion management in computer networks using explicit rate indication
ZA959722B (en) 1994-12-19 1996-05-31 Alcatel Nv Traffic management and congestion control for packet-based networks
US6035105A (en) 1996-01-02 2000-03-07 Cisco Technology, Inc. Multiple VLAN architecture system
US5742604A (en) 1996-03-28 1998-04-21 Cisco Systems, Inc. Interswitch link mechanism for connecting high-performance network switches
EP0853405A3 (en) 1997-01-06 1998-09-16 Digital Equipment Corporation Ethernet network with credit based flow control
US5893320A (en) 1997-05-20 1999-04-13 Demaree; Michael S. Device for cooking fowl
US6192406B1 (en) 1997-06-13 2001-02-20 At&T Corp. Startup management system and method for networks
US6147970A (en) 1997-09-30 2000-11-14 Gte Internetworking Incorporated Quality of service management for aggregated flows in a network system
US6567403B1 (en) 1998-04-30 2003-05-20 Hewlett-Packard Development Company, L.P. Virtual-chassis switch network topology
US6609153B1 (en) 1998-12-24 2003-08-19 Redback Networks Inc. Domain isolation through virtual network machines
US6347337B1 (en) 1999-01-08 2002-02-12 Intel Corporation Credit based flow control scheme over virtual interface architecture for system area networks
US6646985B1 (en) 1999-06-03 2003-11-11 Fujitsu Network Communications, Inc. Congestion control mechanism in a network access device
US6901452B1 (en) 2000-03-02 2005-05-31 Alcatel Selectable prioritization for data communication switch
US6880086B2 (en) 2000-05-20 2005-04-12 Ciena Corporation Signatures for facilitating hot upgrades of modular software components
US6947419B2 (en) 2001-06-12 2005-09-20 Acute Technology Corp. Apparatus for multicast forwarding in a virtual local area network environment
US7042842B2 (en) 2001-06-13 2006-05-09 Computer Network Technology Corporation Fiber channel switch
US7263060B1 (en) 2001-06-28 2007-08-28 Network Appliance, Inc. Multiple switch protected architecture
US7173934B2 (en) 2001-09-10 2007-02-06 Nortel Networks Limited System, device, and method for improving communication network reliability using trunk splitting
US7035220B1 (en) 2001-10-22 2006-04-25 Intel Corporation Technique for providing end-to-end congestion control with no feedback from a lossless network
US7561517B2 (en) 2001-11-02 2009-07-14 Internap Network Services Corporation Passive route control of data networks
US7668966B2 (en) 2001-11-02 2010-02-23 Internap Network Services Corporation Data network controller
US20030185206A1 (en) 2002-03-29 2003-10-02 Bhaskar Jayakrishnan Destination device bit map for delivering an information packet through a switch fabric
KR100472416B1 (ko) 2002-11-01 2005-03-11 삼성전자주식회사 패킷 플로우 제어 장치 및 방법
US7702729B2 (en) 2003-04-08 2010-04-20 Johanson Bradley E Event heap: a coordination infrastructure for dynamic heterogeneous application interactions in ubiquitous computing environments
JP2004355125A (ja) 2003-05-27 2004-12-16 Pioneer Electronic Corp ソフトウェア更新処理装置、そのシステム、その方法、そのプログラム、および、そのプログラムを記録した記録媒体
US7508763B2 (en) 2003-09-04 2009-03-24 Hewlett-Packard Development Company, L.P. Method to regulate traffic congestion in a network
US20050105538A1 (en) 2003-10-14 2005-05-19 Ananda Perera Switching system with distributed switching fabric
CN101087238B (zh) 2003-10-21 2010-08-04 华为技术有限公司 无源光网络的动态带宽分配装置及方法
US7483370B1 (en) 2003-12-22 2009-01-27 Extreme Networks, Inc. Methods and systems for hitless switch management module failover and upgrade
US7593320B1 (en) 2004-04-30 2009-09-22 Marvell International, Ltd. Failover scheme for stackable network switches
GB2418326B (en) 2004-09-17 2007-04-11 Hewlett Packard Development Co Network vitrualization
US7830793B2 (en) 2004-10-22 2010-11-09 Cisco Technology, Inc. Network device architecture for consolidating input/output and reducing latency
US7564869B2 (en) 2004-10-22 2009-07-21 Cisco Technology, Inc. Fibre channel over ethernet
US8238347B2 (en) 2004-10-22 2012-08-07 Cisco Technology, Inc. Fibre channel over ethernet
US7974223B2 (en) 2004-11-19 2011-07-05 Corrigent Systems Ltd. Virtual private LAN service over ring networks
US20070036178A1 (en) 2005-02-02 2007-02-15 Susan Hares Layer 2 virtual switching environment
EP1854250B1 (en) 2005-02-28 2011-09-21 International Business Machines Corporation Blade server system with at least one rack-switch having multiple switches interconnected and configured for management and operation as a single virtual switch
US8085657B2 (en) 2005-04-01 2011-12-27 Sony Corporation Flow control in a cellular communication system
CN100486216C (zh) 2005-07-15 2009-05-06 华为技术有限公司 一种提高虚拟交换系统中传输可靠性的方法
CN100571249C (zh) 2006-02-27 2009-12-16 中兴通讯股份有限公司 一种实时确定传输的以太网通讯方法
US7515535B2 (en) 2006-05-10 2009-04-07 Cisco Technology, Inc. Technique for efficiently managing bandwidth for multipoint-to-multipoint services in a provider network
MX2009008015A (es) 2007-02-02 2009-09-04 Interdigital Tech Corp Metodo y aparato para mejorar rlc para tamaño de pdu de rlc flexible.
US9661112B2 (en) 2007-02-22 2017-05-23 International Business Machines Corporation System and methods for providing server virtualization assistance
US8140696B2 (en) 2007-03-12 2012-03-20 International Business Machines Corporation Layering serial attached small computer system interface (SAS) over ethernet
US8320245B2 (en) 2007-03-13 2012-11-27 Alcatel Lucent Policy enforcement points
JP4888186B2 (ja) 2007-03-28 2012-02-29 富士通株式会社 通信システム、中継器、中継方法
US8559429B2 (en) 2007-06-11 2013-10-15 International Business Machines Corporation Sequential frame forwarding
US9667442B2 (en) 2007-06-11 2017-05-30 International Business Machines Corporation Tag-based interface between a switching device and servers for use in frame processing and forwarding
US7912003B2 (en) 2007-06-27 2011-03-22 Microsoft Corporation Multipath forwarding algorithms using network coding
WO2009042735A1 (en) 2007-09-25 2009-04-02 Blade Network Technologies, Inc. Apparatus for externally changing the direction of air flowing through electronic equipment
US7839777B2 (en) 2007-09-27 2010-11-23 International Business Machines Corporation Method, system, and apparatus for accelerating resolution of network congestion
US8553537B2 (en) 2007-11-09 2013-10-08 International Business Machines Corporation Session-less load balancing of client traffic across servers in a server group
US8867341B2 (en) 2007-11-09 2014-10-21 International Business Machines Corporation Traffic management of client traffic at ingress location of a data center
US8194674B1 (en) * 2007-12-20 2012-06-05 Quest Software, Inc. System and method for aggregating communications and for translating between overlapping internal network addresses and unique external network addresses
US7835306B2 (en) 2008-01-23 2010-11-16 Cisco Technology, Inc. Translating MST instances between ports of a bridge in a computer network
US8625592B2 (en) 2008-02-26 2014-01-07 Cisco Technology, Inc. Blade switch with scalable interfaces
WO2009146165A1 (en) 2008-04-15 2009-12-03 Blade Network Technologies, Inc. Network virtualization for a virtualized server data center environment
US8385202B2 (en) 2008-08-27 2013-02-26 Cisco Technology, Inc. Virtual switch quality of service for virtual machines
US9426095B2 (en) 2008-08-28 2016-08-23 International Business Machines Corporation Apparatus and method of switching packets between virtual ports
US9237034B2 (en) 2008-10-21 2016-01-12 Iii Holdings 1, Llc Methods and systems for providing network access redundancy
US7929554B2 (en) 2008-12-23 2011-04-19 Cisco Technology, Inc. Optimized forwarding for provider backbone bridges with both I and B components (IB-PBB)
WO2010099407A1 (en) 2009-02-27 2010-09-02 Broadcom Corporation Method and system for virtual machine networking
US8238340B2 (en) 2009-03-06 2012-08-07 Futurewei Technologies, Inc. Transport multiplexer—mechanisms to force ethernet traffic from one domain to be switched in a different (external) domain
US8265075B2 (en) 2009-03-16 2012-09-11 International Business Machines Corporation Method and apparatus for managing, configuring, and controlling an I/O virtualization device through a network switch
US8665886B2 (en) 2009-03-26 2014-03-04 Brocade Communications Systems, Inc. Redundant host connection in a routed network
US8325598B2 (en) 2009-05-20 2012-12-04 Verizon Patent And Licensing Inc. Automatic protection switching of virtual connections
US8174984B2 (en) 2009-05-29 2012-05-08 Oracle America, Inc. Managing traffic on virtualized lanes between a network switch and a virtual machine
US8638799B2 (en) 2009-07-10 2014-01-28 Hewlett-Packard Development Company, L.P. Establishing network quality of service for a virtual machine
US8204061B1 (en) 2009-07-23 2012-06-19 Cisco Technology, Inc. Virtual port channel switches with distributed control planes
US8125928B2 (en) 2009-07-24 2012-02-28 Juniper Networks, Inc. Routing frames in a shortest path computer network for a multi-homed legacy bridge node
US9031081B2 (en) 2009-08-06 2015-05-12 Broadcom Corporation Method and system for switching in a virtualized platform
US8625427B1 (en) 2009-09-03 2014-01-07 Brocade Communications Systems, Inc. Multi-path switching with edge-to-edge flow control
KR101337559B1 (ko) * 2009-10-27 2013-12-06 한국전자통신연구원 가상화 지원 프로그래머블 플랫폼 장치 및 패킷 전달 방법
US8537860B2 (en) 2009-11-03 2013-09-17 International Business Machines Corporation Apparatus for switching traffic between virtual machines
US8665747B2 (en) 2009-12-03 2014-03-04 Cisco Technology, Inc. Preventing loops on network topologies built with virtual switches and VMS
US8369335B2 (en) 2010-03-24 2013-02-05 Brocade Communications Systems, Inc. Method and system for extending routing domain to non-routing end stations
US8625616B2 (en) 2010-05-11 2014-01-07 Brocade Communications Systems, Inc. Converged network extension
US9160609B2 (en) 2010-05-28 2015-10-13 Futurewei Technologies, Inc. Virtual Layer 2 and mechanism to make it scalable
US8885488B2 (en) 2010-06-02 2014-11-11 Brocade Communication Systems, Inc. Reachability detection in trill networks
US8634308B2 (en) 2010-06-02 2014-01-21 Brocade Communications Systems, Inc. Path detection in trill networks
US20110299533A1 (en) 2010-06-08 2011-12-08 Brocade Communications Systems, Inc. Internal virtual network identifier and internal policy identifier
US8446914B2 (en) 2010-06-08 2013-05-21 Brocade Communications Systems, Inc. Method and system for link aggregation across multiple switches
US9246703B2 (en) 2010-06-08 2016-01-26 Brocade Communications Systems, Inc. Remote port mirroring
US8406128B1 (en) 2010-06-29 2013-03-26 Amazon Technologies, Inc. Efficient highly connected data centers
US8588081B2 (en) 2010-07-14 2013-11-19 Cisco Technology, Inc. Monitoring a flow set to detect faults
US8873551B2 (en) 2010-07-30 2014-10-28 Cisco Technology, Inc. Multi-destination forwarding in network clouds which include emulated switches
US8488608B2 (en) 2010-08-04 2013-07-16 Alcatel Lucent System and method for traffic distribution in a multi-chassis link aggregation
US8345697B2 (en) 2010-08-17 2013-01-01 Dell Products, Lp System and method for carrying path information
US8498299B2 (en) 2010-08-19 2013-07-30 Juniper Networks, Inc. Flooding-based routing protocol having average-rate and burst-rate control
US9749241B2 (en) 2010-11-09 2017-08-29 International Business Machines Corporation Dynamic traffic management in a data center
US20120131662A1 (en) * 2010-11-23 2012-05-24 Cisco Technology, Inc. Virtual local area networks in a virtual machine environment
US20120163164A1 (en) 2010-12-27 2012-06-28 Brocade Communications Systems, Inc. Method and system for remote load balancing in high-availability networks
US9071630B2 (en) 2011-01-07 2015-06-30 Jeda Networks, Inc. Methods for the interconnection of fibre channel over ethernet devices using a trill network
US8478961B2 (en) 2011-03-02 2013-07-02 International Business Machines Corporation Dynamic migration of virtual machines based on workload cache demand profiling
KR101780423B1 (ko) 2011-03-18 2017-09-22 삼성전자주식회사 반도체 장치 및 이의 제조 방법
US8755383B2 (en) 2011-03-21 2014-06-17 Avaya, Inc. Usage of masked ethernet addresses between transparent interconnect of lots of links (TRILL) routing bridges
US8787377B2 (en) 2011-03-21 2014-07-22 Avaya, Inc. Usage of masked BMAC addresses in a provider backbone bridged (PBB) network
US8588224B2 (en) 2011-05-14 2013-11-19 International Business Machines Corporation Priority based flow control in a distributed fabric protocol (DFP) switching network architecture
US8837499B2 (en) 2011-05-14 2014-09-16 International Business Machines Corporation Distributed fabric protocol (DFP) switching network architecture
US20120287785A1 (en) 2011-05-14 2012-11-15 International Business Machines Corporation Data traffic handling in a distributed fabric protocol (dfp) switching network architecture
US9736085B2 (en) 2011-08-29 2017-08-15 Brocade Communications Systems, Inc. End-to end lossless Ethernet in Ethernet fabric
US8767529B2 (en) 2011-09-12 2014-07-01 International Business Machines Corporation High availability distributed fabric protocol (DFP) switching network architecture

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1677950A (zh) * 2004-04-01 2005-10-05 华为技术有限公司 基于虚拟局域网的数据交换方法
CN1741499A (zh) * 2005-09-13 2006-03-01 中兴通讯股份有限公司 一种基于mac学习的虚拟电路交换方法
US20100257263A1 (en) * 2009-04-01 2010-10-07 Nicira Networks, Inc. Method and apparatus for implementing and managing virtual switches

Cited By (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103051529A (zh) * 2012-12-20 2013-04-17 华为技术有限公司 一种报文的处理方法和装置
CN103051529B (zh) * 2012-12-20 2016-03-30 华为技术有限公司 一种报文的处理方法和装置
CN104022960A (zh) * 2013-02-28 2014-09-03 杭州华三通信技术有限公司 基于OpenFlow协议实现PVLAN的方法和装置
CN104022960B (zh) * 2013-02-28 2017-05-31 新华三技术有限公司 基于OpenFlow协议实现PVLAN的方法和装置
US9565104B2 (en) 2013-02-28 2017-02-07 Hewlett Packard Enterprise Development Lp Switch controller
CN104348757B (zh) * 2013-07-31 2018-03-16 华为技术有限公司 一种流表交互方法、交换机及系统
CN104348757A (zh) * 2013-07-31 2015-02-11 华为技术有限公司 一种流表交互方法、交换机及系统
WO2015014177A1 (zh) * 2013-07-31 2015-02-05 华为技术有限公司 一种流表交互方法、交换机及系统
CN104660506B (zh) * 2013-11-22 2018-12-25 华为技术有限公司 一种数据包转发的方法、装置及系统
CN104660506A (zh) * 2013-11-22 2015-05-27 华为技术有限公司 一种数据包转发的方法、装置及系统
CN105874744A (zh) * 2013-12-18 2016-08-17 瑞典爱立信有限公司 用于虚拟化远程装置的系统和方法
CN104883325A (zh) * 2014-02-27 2015-09-02 国际商业机器公司 Pvlan交换机及其连接到非pvlan装置的方法
CN104883325B (zh) * 2014-02-27 2018-02-06 国际商业机器公司 Pvlan交换机及其连接到非pvlan装置的方法
CN104092684B (zh) * 2014-07-07 2017-10-03 新华三技术有限公司 一种OpenFlow协议支持VPN的方法及设备
CN104092684A (zh) * 2014-07-07 2014-10-08 杭州华三通信技术有限公司 一种OpenFlow协议支持VPN的方法及设备
US10015023B2 (en) 2014-09-08 2018-07-03 Quanta Computer Inc. High-bandwidth chassis and rack management by VLAN
CN105407028B (zh) * 2014-09-08 2018-12-28 广达电脑股份有限公司 用于高频宽伺服器管理的方法与系统
CN105407028A (zh) * 2014-09-08 2016-03-16 广达电脑股份有限公司 用于高频宽伺服器管理的方法与系统
TWI580221B (zh) * 2014-09-08 2017-04-21 廣達電腦股份有限公司 用於高頻寬伺服器管理的方法與系統及其相關非暫態電腦可讀取存取媒體
CN107431642A (zh) * 2015-02-10 2017-12-01 大交换机网络股份有限公司 用于控制交换机以捕获和监视网络流量的系统和方法
CN104753820A (zh) * 2015-03-24 2015-07-01 福建星网锐捷网络有限公司 聚合链路中业务流非对称转发的方法、设备以及交换机
CN105939309A (zh) * 2015-07-28 2016-09-14 杭州迪普科技有限公司 一种虚拟机隔离方法及装置
CN105939309B (zh) * 2015-07-28 2019-08-06 杭州迪普科技股份有限公司 一种虚拟机隔离方法及装置
WO2017067328A1 (zh) * 2015-10-23 2017-04-27 上海斐讯数据通信技术有限公司 一种vlan中主机隔离的装置和方法
CN105407082A (zh) * 2015-10-23 2016-03-16 上海斐讯数据通信技术有限公司 一种vlan中主机隔离的装置和方法
CN105376231A (zh) * 2015-11-18 2016-03-02 浪潮(北京)电子信息产业有限公司 一种实现业务隔离的方法及装置
CN105592089B (zh) * 2015-12-29 2018-11-27 中国银联股份有限公司 一种云计算下的租户安全隔离方法
CN105592089A (zh) * 2015-12-29 2016-05-18 中国银联股份有限公司 一种云计算下的租户安全隔离方法
WO2018023498A1 (zh) * 2016-08-03 2018-02-08 华为技术有限公司 网络接口卡、计算设备以及数据包处理方法
US10581729B2 (en) 2016-08-03 2020-03-03 Huawei Technologies Co., Ltd. Network interface card, computing device, and data packet processing method
US10623310B2 (en) 2016-08-03 2020-04-14 Huawei Technologies Co., Ltd. Network interface card, computing device, and data packet processing method
TWI706650B (zh) * 2018-01-19 2020-10-01 美商美超微電腦股份有限公司 自動多機箱鏈路聚合組態
CN109302466A (zh) * 2018-09-18 2019-02-01 华为技术有限公司 数据处理方法、相关设备及计算机存储介质
CN109905336A (zh) * 2019-03-13 2019-06-18 武汉星耀科技有限公司 分布式虚拟交换机的SuperVLAN实现方法及系统
CN113703789A (zh) * 2021-08-04 2021-11-26 德邦证券股份有限公司 部署微服务程序的方法、装置以及存储介质

Also Published As

Publication number Publication date
CN102780608B (zh) 2015-06-24
US20120287936A1 (en) 2012-11-15
US8824485B2 (en) 2014-09-02
US20130010799A1 (en) 2013-01-10
US8670450B2 (en) 2014-03-11

Similar Documents

Publication Publication Date Title
CN102780608B (zh) 用于分布式虚拟交换机的私有虚拟局域网方法和系统
US11451434B2 (en) System and method for correlating fabric-level group membership with subnet-level partition membership in a high-performance computing environment
US10432475B2 (en) Mapping relationships among virtual elements across a system
US9571451B2 (en) Creating network isolation between virtual machines
US9413554B2 (en) Virtual network overlays
US9584477B2 (en) Packet processing in a multi-tenant software defined network (SDN)
US11032183B2 (en) Routing information validation in SDN environments
US11233698B2 (en) System and method for supporting subnet number aliasing in a high performance computing environment
CN116235484A (zh) 层2网络中的基于接口的acl
US20170324645A1 (en) System and method for supporting vm migration between subnets in a high performance computing environment
US20140071990A1 (en) Overlay network capable of supporting storage area network (san) traffic
US9311133B1 (en) Touchless multi-domain VLAN based orchestration in a network environment
CN116762060A (zh) 虚拟化的云环境中层2网络的互联网组管理协议(igmp)
US11695692B2 (en) Transparent high availability for customer virtual machines achieved using a hypervisor-based side channel bonding and monitoring
WO2012168872A1 (en) Virtual network configuration and management
US20210399961A1 (en) Simulation-based cross-cloud connectivity checks
US11558245B1 (en) Secure bi-directional network connectivity system between private networks
CN118160278A (zh) 私有网络之间外部端点的透明安装
CN116711270A (zh) 虚拟化的云环境中的层2联网信息

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150624