用于实现灵活的虚拟局域网的方法和装置的制作方法

文档序号:7994320阅读:324来源:国知局
专利名称:用于实现灵活的虚拟局域网的方法和装置的制作方法
技术领域
本发明的各种实施例整体涉及虚拟局域网(VLAN),并且特别地,涉及基于三层(L3) IP承载网的二层(L2)虚拟以太网。
背景技术
VLAN在常规的客户专用网中得到了广泛的使用。VLAN是一种被广泛用于应对和实现隔离性和连通性的机制。一般而言,可以在VLAN内进行广播,而属于不同VLAN的机器/虚拟机(VM)无法彼此通信。通过携带VLAN标签,在交换机当中的业务可以实现在同一VLAN的成员之间的连接,但被连接到不同的交换机。随着VLAN的应用环境不断扩展,常规的VLAN实现方式(诸如IEEE802.1Q等)面临着各种挑战。当VLAN的配置结构和应用场景发生变化时,例如客户将其VLAN迁移到数据中心网络(DCN)时,会对VLAN的实现方面产生诸多要求。举例来说,VLAN的安全性、稳健性和可扩缩性需要得到保证。此外,还要求VLAN中的设备和装置能够保持相对于它们通常在专用网中的工作方式而言不变的工作方式。另一方面,在多租户环境中,每个租户都要求定义其自己的VLAN,物理节点和VM实例都在增加,因而VLAN的数目也在快速增长。在这种情况下,当前可用的VLAN标识符(ID)可能是不够的。另外,在现代数据中心,任何时刻都可能会有相当一部分VM处于迁移状态,而VM跨越VLAN边界的迁移会需要在交换机上进行很多配置改变。此外,由于部署了来自众多租户的多平台应用,隔离性和连通性也是需要考虑的关键性因素,因为隔离性确保了安全性、稳健性和可扩缩性,而连通性则确保了动态资源分配和调度。然而,现有的关于VLAN的部署方案和技术应用却无法满足上述需求,相应地,也就不能够为更多用户在更大规模的网络环境下提供所期望的服务。

发明内容
鉴于以上原因,本发明提出了一种用于实现灵活的虚拟局域网的方案,旨在克服现有技术中存在的至少一项问题。根据本发明的第一方面,提供了一种用于实现虚拟局域网的方法,其包括:响应于在第一交换机处接收到数据帧,确定用于传输所述数据帧的全局虚拟局域网,其中,所述数据帧来自于第一交换机所服务的一个或多个第一本地虚拟局域网之一;至少部分地基于对所述全局虚拟局域网的确定来对所述数据帧进行封装;以及在所述全局虚拟局域网上传输经封装的数据帧,以便将所述数据帧发送到至少一个第二交换机,其中,第二交换机服务于一个或多个第二本地虚拟局域网。根据本发明的第二方面,提供了一种实现虚拟局域网的装置,其包括:确定单元,其被配置为响应于在第一交换机处接收到数据帧,确定用于传输所述数据帧的全局虚拟局域网,其中,所述数据帧来自于第一交换机所服务的一个或多个第一本地虚拟局域网之一;封装单元,其被配置为至少部分地基于对所述全局虚拟局域网的确定来对所述数据帧进行封装;以及传输单元,其被配置为在所述全局虚拟局域网上传输经封装的数据帧,以便将所述数据帧发送到至少一个第二交换机,其中,第二交换机服务于一个或多个第二本地虚拟局域网。根据本发明的第三方面,提供了一种用于实现虚拟局域网的方法,其包括:接收在全局虚拟局域网上传输的数据帧,其中,所述数据帧来自于第一交换机所服务的一个或多个第一本地虚拟局域网之一;根据所述数据帧来获取所述全局虚拟局域网的标识符;以及至少部分地基于所述全局虚拟局域网的标识符,确定第二交换机所服务的一个或多个第二本地虚拟局域网之一的标识符,以便将解封装的数据帧发送到由所确定的标识符标识的第二本地虚拟局域网。根据本发明的第四方面,提供了一种实现虚拟局域网的装置,其包括:接收单元,其被配置为接收在全局虚拟局域网上传输的数据帧,其中,所述数据帧来自于第一交换机所服务的一个或多个第一本地虚拟局域网之一;获取单元,其被配置为根据所述数据帧来获取所述全局虚拟局域网的标识符;以及确定单元,其被配置为至少部分地基于所述全局虚拟局域网的标识符,确定第二交换机所服务的一个或多个第二本地虚拟局域网之一的标识符,以便将解封装的数据帧发送到由所确定的标识符标识的第二本地虚拟局域网。根据本发明的第五方面,提供了一种配置虚拟局域网的方法,其包括:响应于侦测到主机进入第一交换机所服务的第一本地虚拟局域网,确定所述主机所属的全局虚拟局域网,以便在所述全局虚拟局域网上将来自所述主机的数据帧传输到至少一个第二交换机,其中,第二交换机服务于一个或多个第二本地虚拟局域网;将第一交换机的地址添加到目录服务器,以便与所述目录服务器上存储的所述主机的地址相对应;以及如果所述主机是第一本地虚拟局域网中的第一台主机,则在第一交换机处创建映射记录,其记录了第一本地虚拟局域网的标识符与所述全局虚拟局域网的标识符之间的对应关系。根据本发明的第六方面,提供了一种配置虚拟局域网的装置,其包括:确定单元,其被配置为响应于侦测到主机进入第一交换机所服务的第一本地虚拟局域网,确定所述主机所属的全局虚拟局域网,以便在所述全局虚拟局域网上将来自所述主机的数据帧传输到至少一个第二交换机,其中,第二交换机服务于一个或多个第二本地虚拟局域网;添加单元,其被配置为将第一交换机的地址添加到目录服务器,以便与所述目录服务器上存储的所述主机的地址相对应;以及创建单元,其被配置为如果所述主机是第一本地虚拟局域网中的第一台主机,则在第一交换机处创建映射记录,其记录了第一本地虚拟局域网的标识符与所述全局虚拟局域网的标识符之间的对应关系。通过采用本发明所提供的方法和装置,可以实现与现有的VLAN标准或协议(诸如IEEE 802.1Q等)的良好兼容,并且能够满足VLAN在多租户和多站点数据中心的应用环境下对隔离性和连通性的需求。


从以下结合附图对各种示例性实施例的描述中,将进一步理解本发明的多个方面,在附图中:图1示意性地示出了 VLAN的网络布局;图2示意性地示出了 IEEE 802.1Q的标签格式;
图3是依照本发明的示例性实施例示出了基于三层IP承载网的二层虚拟以太网系统的不意图;图4A是依照本发明的示例性实施例说明了可在发送端交换机处执行的用于实现VLAN的方法的流程图;图4B是依照本发明的示例性实施例说明了可在接收端交换机处执行的用于实现VLAN的方法的流程图;图4C是依照本发明的示例性实施例说明了可在交换机处执行的用于配置VLAN的方法的流程图;图5A是依照本发明的示例性实施例说明了在基于三层IP承载网的二层虚拟以太网内实现单播的示意图;图5B是依照本发明的示例性实施例说明了在基于三层IP承载网的二层虚拟以太网内实现广播的示意图;图6A是依照本发明的一个示例性实施例的用于实现VLAN的装置的框图;图6B是依照本发明的另一示例性实施例的用于实现VLAN的装置的框图;图6C是依照本发明的一个示例性实施例的用于配置VLAN的装置的框图;以及图7示出了适于用来实现本发明实施方式的示例性计算系统的框图。
具体实施例方式下面对本发明的具体实施方式
进行详细描述。所属技术领域的技术人员知道,本发明的多个方面可以体现为系统、方法或计算机程序产品。因此,本发明的多个方面可以具体实现为以下形式,即,可以是完全的硬件、完全的软件(包括固件、驻留软件、微代码等)、或者本文一般称为“电路”、“模块”或“系统”的软件部分与硬件部分的组合。此外,本发明的多个方面还可以采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可用的程序码。可以使用一个或多个计算机可读的介质的任何组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限于——电的、磁的、光的、电磁的、红外线的、或半导体的系统、装置、器件或任何以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括以下:有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任何合适的组合。在本文件的语境中,计算机可读存储介质可以是任何包含或存储程序的有形的介质,该程序被指令执行系统、装置或者器件使用或者与其结合使用。计算机可读的信号介质可包括在基带中或者作为载波一部分传播的、其中体现计算机可读的程序码的传播的数据信号。这种传播的信号可以采用多种形式,包括——但不限于——电磁信号、光信号或任何以上合适的组合。计算机可读的信号介质可以是并非为计算机可读存储介质、但是能发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序的任何计算机可读介质。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者任何合适的上述组合。用于执行本发明的操作的计算机程序码,可以以一种或多种程序设计语言的任何组合来编写,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++之类,还包括常规的过程式程序设计语言一诸如“C”程序设计语言或类似的程序设计语言。程序码可以完全地在用户的计算上执行、部分地在用户的计算机上执行、作为一个独立的软件包执行、部分在用户的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何种类的网络一包括局域网(LAN)或广域网(WAN)-连接到用户的计算机,或者,可以(例如利用因特网服务提供商来通过因特网)连接到外部计算机。以下参照按照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的多个方面。要明白的是,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得通过计算机或其它可编程数据处理装置执行的这些指令,产生实现流程图和/或框图中的方框中规定的功能/操作的装置。也可以把这些计算机程序指令存储在能指令计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令产生一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品。也可以把计算机程序指令加载到计算机或其它可编程数据处理装置上,使得在计算机或其它可编程数据处理装置上执行一系列操作步骤,以产生计算机实现的过程,从而在计算机或其它可编程装置上执行的指令就提供实现流程图和/或框图中的方框中规定的功能/操作的过程。下面参照附图,结合具体实施例对本发明进行描述。这样的描述仅仅出于说明目的,而不意图对本发明的范围进行限制。图1示意性地示出了 VLAN的网络布局,如图1所示,该网络可以包括VLAN UVLAN2和VLAN 3,在单个物理LAN上具有隔离的广播域。尽管图1中仅示出了三个VLAN,然而应当理解,可以部署更多的VLAN。可以通过软件来配置LAN成员关系,而不是在物理上对设备或连接进行重新安置。举例来说,可以配置交换机端口,当数据帧进入VLAN时对其添加标签,通过查找媒体访问控制(MAC)表来将数据帧交换/泛洪到干道链路(trunk link),以及当退出VLAN时解除标签,等等。通过建立VLAN成员关系,可以形成静态VLAN(例如基于端口的VLAN)或动态VLAN(例如基于源MAC地址)。所有未被配置的主机/端口可以属于“默认VLAN”,并且它们全都处在一个广播域中。举例来说,VLAN可以基于诸如IEEE 802.1Q这样的标准或协议。图2示意性地示出了 IEEE 802.1Q的标签格式。相对于以太网版本下的格式,按照IEEE 802.1Q的规定,在源MAC地址字段与帧类型字段之间插入了 4字节的标签首部,包括2字节的标签协议类型(TPID)和2字节的标签控制信息字段(TCI),其中,TCI含有12比特的VLAN标识符(VID)。VLAN ID唯一地标识了数据帧所属的VLAN。随着网络规模的不断扩大以及VLAN租户数目的日益增长,12比特的VLAN ID可能并不足以支持诸如DCN等应用环境,并且在多租户情况下,可能在不同的用户网络语境中重用同一 VLAN ID。在当前VLAN的实现中,跨多站数据中心来调整VLAN也是复杂的。此夕卜,VLAN数目的增加以及对VLAN的配置改变也加大了管理开销。按照常规的VLAN技术,可以在VLAN内进行广播,而属于不同VLAN的机器却无法彼此通信。然而,属于某个VLAN的主机或服务器可能会希望将其数据帧发送到属于另一不同VLAN的主机或服务器。用户也常常会改变其VLAN的配置,例如,使得属于某个VLAN的虚拟机进行跨越该VLAN边界的迁移。除此之外,在特定的应用场景(例如DCN环境)中,可能会希望所有未被配置到VLAN的主机最初是被隔离的,而不是属于默认VLAN (广播域)。针对上述至少一个方面的问题,本发明提供了一种实现VLAN的解决方案,其可以在DCN中实施。该方案采用灵活有效的方式来配置VLAN,其可以与现有的VLAN实现标准或协议(诸如IEEE 802.1Q等)具有良好的兼容性,而且还能够满足VLAN在诸如多租户和多站点数据中心这样的应用环境下对隔离性和连通性的多种需求。图3依照本发明的示例性实施例示出了基于三层IP承载网的二层虚拟以太网系统的示意图。如图所示,该系统包括交换机T0RpT0RyT0R3和ToR4,以及目录服务器(DS)。交换机ToRp ToR2, ToR3和ToR4可分别具有三层接入交换机的功能。由一个通用的三层IP网络连接起来的交换机和目录服务器可以相互通信。每个接入交换机可以连接一个或多个二层的以太网本地网络(例如,在图3中所示的本地VLAN I和本地VLAN2),交换机和所连接的本地网络可合称为一个节点或局部节点。举例来说,交换机(TOR)可以在本地支持一个或多个IEEE 802.1Q VLAN,可以自动分配或由用户来指定本地VLAN的ID (例如,IEEE802.1Q标签)。附加地或替代地,交换机还可以支持未启用IEEE 802.1Q标签的二层以太网,在这种情况下,可以将本地的所有服务器/主机看作是处在同一个IEEE802.1Q VLAN内。因而,根据本发明实施例的节点内的以太网能够支持IEEE 802.1Q VLAN的功能。对于局限于节点内部的IEEE 802.1Q VLAN,可以称之为本地VLAN。而对于全局的基于三层IP承载网的虚拟二层以太网而言的VLAN,可以称之为全局VLAN。每个本地VLAN可以包括一个或多个主机(或服务器主机),如图3所示,由ToR1支持的本地VLANl可以包括主机110和111,由ToR1支持的本地VLAN 2可以包括主机210和211,由ToR2支持的本地VLAN I可以包括主机120和121,并且由ToR3支持的本地VLAN I可以包括主机230和231。接入交换机ToR4没有支持任何本地VLAN。在本发明的一个示例性实施例中,默认地将未被配置到任何VLAN的主机彼此隔离。考虑到L3网络可以自然地提供隔离性和连通性,在本发明的示例性实施例中应用了三层IP承载网的多播组。多播组将多个主机划分成组,在组内可以将多播处理成“广播”。在设置了适当的路由表的情况下,路由器和路由协议可以确保每个主机能够与其它主机进行通信。举例来说,L3网络多播组可以将不同局部节点中本地VLAN的用户连接起来。图3中示出了多播组I (如虚线圈所示)和多播组2 (如实线圈所示),其中,多播组I连接了 ToR1和ToR2及其支持的本地VLAN,多播组2连接了 ToR1和ToR3及其支持的本地VLAN。可以将多播组看作是全局VLAN,例如,多播组I对应于全局VLAN1,而多播组2对应于全局VLAN2。尽管图3中仅示出了包括2个多播组和4个交换机的系统,然而可以理解,该系统可以包括更多的多播组和更多的交换机,每个交换机可以支持更多的本地VLAN,并且每个本地VLAN可以包括更多的主机。根据本发明的示例性实施例,交换机(如图3中所示的ToR4)可以选择不加入任何多播组,替代地,交换机(如图3中所示的T0RpT0R2和ToR3)也可以选择加入一个或多个多播组。根据本发明的示例性实施例,管理员可以在目录服务器上定义关于所有主机的VLAN定义信息,这些主机(例如,在图3中所示的主机110,111,120,121,210,211,230和231)可以分布在各个局部节点内。举例来说,在目录服务器上可以存储关于主机的地址(例如L2MAC地址等)、全局多播组标识符(例如多播组地址等)以及交换机地址(例如L3IP地址等)之间的映射关系。在本发明的一个示例性实施例中,通过查询目录服务器上的相应信息,接入交换机可以构造三层IP包对二层以太网单播帧的封装,从而实现在位于不同局部节点的属于同一全局VLAN的服务器主机之间的二层以太网单播通信。附加地或替代地,在本发明的另一示例性实施例中,利用三层IP网络的多播技术,接入交换机可以用三层IP网络的多播包来封装二层网络的广播包,从而实现位于不同局部节点但属于同一全局VLAN的服务器主机之间的全局VLAN内二层以太网广播通信。在本发明的又一示例性实施例中,根据目录服务器上的定义信息,属于不同全局VLAN的服务器主机之间的通信会被接入交换机阻断,从而实现全局VLAN对服务器主机之间通信范围的划分。这可以有效地避免当前网络架构上诸如MAC窥探(snooping)这样的安全性攻击。下面的示意性流程图一般作为逻辑流程图来进行阐述。因此,所示出的顺序和所标记的步骤表示所提出的方法的一个实施例。可以想到在功能、逻辑或效果方面等效于所描述的方法的一个或多个步骤或其部分的其它步骤和方法。另外,所采用的格式和符号是为了阐释该方法的逻辑步骤而提供的,并且被理解为并不限制该方法的范围。尽管在流程图中可采用各种箭头类型和线条类型,然而它们被理解为并不限制相应的方法的范围。事实上,某些箭头或其它的连接符可能仅仅用于指示该方法的逻辑流程。另外,特定方法发生的顺序可以按照所示对应步骤的顺序,或者,可以不按照所示对应步骤的顺序。图4A是依照本发明的示例性实施例说明了用于实现VLAN的方法的流程图,该方法可在作为跨全局VLAN传输的数据帧的发送端交换机(例如,在图3中所示的ToRp ToR2和ToR3中的任何一个)处执行。如图4A所示,在步骤412,响应于在第一交换机(例如图3中所示的ToR1)处接收到数据帧,确定用于传输该数据帧的全局VLAN,其中,该数据帧来自于第一交换机所服务的一个或多个第一本地VLAN之一(例如图3中所示的包括主机110和111的VLAN1)。在步骤414,至少部分地基于对全局VLAN的确定(例如图3中所示的多播组I)来对该数据帧进行封装。在步骤416,可以在所确定的全局VLAN上传输经封装的数据帧,以便将该数据帧发送到至少一个第二交换机(例如图3中所示的ToR2),其中,第二交换机服务于一个或多个第二本地VLAN(例如图3中所示的包括主机120和121的VLAN1)。举例来说,该数据帧可以包括单播帧或广播帧。在单播帧的情况下,根据本发明的一个示例性实施例,确定全局VLAN的操作可以包括:利用数据帧的源主机和目的主机的地址来查询目录服务器,以便验证源主机和目的主机是否属于同一全局VLAN,其中,源主机属于所述一个或多个第一本地VLAN之一,而目的主机属于所述一个或多个第二本地VLAN之一。进一步地,确定全局VLAN的操作还可以包括:在数据帧的源主机和目的主机属于同一全局VLAN(由此可在步骤412中将其确定为用于传输该数据帧的全局VLAN)的情况下,从目录服务器获得第二交换机的地址(例如IP地址)。举例来说,如果该数据帧的源主机和目的主机不属于同一全局VLAN,则作为发送端交换机的第一交换机可以进行拒绝通信的处理过程,例如简单丢弃该数据帧。在广播帧的情况下,根据本发明的另一示例性实施例,确定全局VLAN的操作可以包括:利用数据帧的源主机的地址来查询目录服务器,以便确定源主机所属的全局VLAN。进一步地,确定全局VLAN的操作还可以包括:从目录服务器获得与该全局VLAN相对应的多播地址。根据本发明的示例性实施例,对于数据帧的封装操作可以包括:至少向该数据帧添加源地址和目的地址。在针对单播帧的一个示例性实施例中,源地址可以包括第一交换机的地址(例如,发送端接入交换机的IP地址),而目的地址可以包括第二交换机的地址(例如,接收端接入交换机的IP地址)。替代地,在针对广播帧的一个示例性实施例中,源地址可以包括第一交换机的地址,而目的地址可以包括与所确定的全局VLAN相对应的多播地址(例如,连接发送端和接收端交换机的三层承载网的IP多播地址)。图4B是依照本发明的示例性实施例说明了用于实现VLAN的方法的流程图,该方法可在作为跨全局VLAN传输的数据帧的接收端交换机(例如,在图3中所示的ToRp ToR2和ToR3中的任何一个)处执行。如图4B所示,在步骤422,接收在全局VLAN(例如图3中所示的多播组I)上传输的数据帧,其中,该数据帧来自于第一交换机(例如图3中所示的ToR1)所服务的一个或多个第一本地VLAN之一(例如图3中所示的包括主机110和111的VLAN1)。在步骤424,根据所接收到的数据帧来获取该全局VLAN的标识符。至少部分地基于所获取的全局VLAN的标识符,在步骤426,可以确定第二交换机(例如图3中所示的ToR2)所服务的一个或多个第二本地VLAN之一的标识符,以便将解封装的数据帧发送到由所确定的标识符标识的第二本地VLAN(例如图3中所示的包括主机120和121的VLAN1)。根据本发明的一个示例性实施例,可以对所接收到的数据帧进行解封装,例如去掉IP首部。在接收到单播帧的情况下,获取全局VLAN的标识符可以包括以下操作:从解封装的数据帧中获得该数据帧的目的主机的地址;利用目的主机的地址来查询目录服务器;以及从目录服务器获得与该目的主机的地址相对应的全局VLAN的标识符。替代地,在接收到广播帧的情况下,获取全局VLAN的标识符可以包括以下操作:从该数据帧中获得与全局VLAN相对应的多播地址;利用该多播地址来查询目录服务器;以及从目录服务器获得与该多播地址相对应的全局VLAN的标识符。举例来说,利用所获取的全局VLAN的标识符,可以在本地(例如,在第二交换机处)查询与所获取的全局VLAN的标识符相对应的本地VLAN的标识符,该标识符标识了数据帧的目的地所属的本地VLAN。在本发明的一个示例性实施例中,如果查询到的本地VLAN的标识符与所接收到的数据帧中携带的本地VLAN的标识符不同,则将数据帧中的本地VLAN的标识符修改为所查询到的本地VLAN的标识符。通过这样的方式,第二交换机可以将单播帧发送到由所确定的本地VLAN标识符标识的本地VLAN中,并且单播帧所指定的目的主机会接收到该单播帧。替代地,第二交换机可以将广播帧发送到由所确定的本地VLAN标识符标识的本地VLAN中,并且属于该本地VLAN的所有主机会接收到该广播帧。根据本发明的示例性实施例,可以在基于三层IP承载网的二层虚拟以太网上实现以上针对图4A和图4B所描述的方法。本发明所提供的灵活有效的VLAN方案在商品化L3TCP/IP网络上承载了虚拟L2网络。在局部节点内的主机或服务器可以在本地交换L2帧,其可支持常规的IEEE802.1Q VLAN。通过具有扩展模块的商品化L3交换机,每个节点可以连接到其它节点。节点所包括的这些ToR可以彼此相连,以便形成作为承载网的L3TCP/IP网络。利用IP包中的MAC封装以及L3多播技术,多播包以及针对远端MAC地址的单播包可以到达另一节点内的远端主机或服务器。多个主机或服务器在逻辑上处于虚拟扁平型局域网中。举例来说,通过目录服务器中的配置,可以在该扁平型虚拟局域网上定义VLAN。在本发明的一个示例性实施例中,管理员可以按用户的要求将主机分组,使得这些主机对应于不同的全局VLAN。管理员可以为每个全局VLAN分配一个三层承载网的多播组,并在目录服务器上建立每台主机的地址和全局VLAN及对应多播组的多播地址的对应关系记录。举例来说,可以在目录服务器上存储至少一个以下字段或信息: 服务器/主机地址:其可以是服务器/主机上网卡的MAC地址,用来唯一地标识服务器/主机; 全局VLAN标识符:其可以表示服务器/主机所属的全局VLAN的ID ; 对应多播组:其可以是全局VLAN所对应的IP多播地址;以及 交换机地址:其可以是服务器/主机所属的本地VLAN的接入三层交换机本身的IP地址。根据本发明的示例性实施例,连接了不同节点的接入交换机的三层IP网络还可以连接目录服务器(DS),并且DS可 以通过该IP网络与各个接入交换机通信,例如实现信息的查询和交换。举例来说,目录服务器可以是具有信息存储和查询功能的任何类型的数据库或服务器。图4C是依照本发明的示例性实施例说明了可在交换机处执行的用于配置VLAN的方法的流程图。在步骤432,响应于侦测到主机进入第一交换机所服务的第一本地VLAN,确定该主机所属的全局VLAN,以便在所确定的全局VLAN上将来自该主机的数据帧传输到至少一个第二交换机,其中,第二交换机可以服务于一个或多个第二本地VLAN。举例来说,根据主机的地址(例如MAC地址),第一交换机可以向目录服务器查询该主机所属的全局VLAN和相应的承载网多播组,并且第一交换机可以加入到该多播组,以便支持在该多播组内的通信。在步骤434,可以将第一交换机的地址添加到目录服务器,以便与目录服务器上存储的该主机的地址相对应。例如,第一交换机可以用自己的IP地址来填写或更改DS上针对该主机所记录的“交换机地址”字段。如果该主机是第一本地VLAN中的第一台主机,那么在步骤436,可以在第一交换机处创建映射记录,用于记录第一本地VLAN的标识符与所确定的全局VLAN的标识符之间的对应/映射关系。例如,第一交换机可以为第一本地VLAN分配一个本地的IEEE 802.1Q的标签(tag),并且在本地存储的全局/本地VLAN对应表里增加一条对应关系记录。通过执行该方法,第一交换机可以加入到承载网多播组,该承载网多播组对应于针对该主机所确定的全局VLAN。由此,该主机可以在二层虚拟网(例如本地VLAN)上正常地处理输入/输出数据帧(例如以太网帧),还可以通过第一交换机将数据帧发送到全局VLAN上的一个或多个第二交换机,进而由第二交换机将该数据帧转发给一个或多个其它主机。根据本发明的示例性实施例,该方法还可以包括步骤:响应于侦测到该主机离开第一本地VLAN(例如断开连接),第一交换机可以清除在目录服务器上存储的与该主机的地址相对应的第一交换机的地址(例如,对应于接入三层交换机IP的字段)。在本发明的一个示例性实施例中,该方法可以进一步包括步骤:如果该主机是第一本地VLAN中的最后一台主机,那么第一交换机可以删除记录了第一本地VLAN的标识符与该主机所属全局VLAN的标识符之间的对应关系的映射记录(例如,在本地存储的全局/本地VLAN对应表里的相应记录)。特别地,根据主机的地址(例如MAC地址),第一交换机可以(例如从DS中)查询到该主机所属的全局VLAN和相应的承载网多播组。如果该主机是所在的全局VLAN在本地VLAN的最后一台主机,则第一交换机可以离开该承载网多播组。以上描述了根据示例性实施例的用于实现和配置VLAN的方法。应当指出的是,所描述的方法仅为示例,而不是对本发明的限制。本发明的用于实现和配置VLAN的方法可具有更多、更少或不同的步骤,所描述的一些步骤可合并为单个步骤或划分为更细的步骤,并且一些步骤之间的顺序可改变或可并行执行。图5A是依照本发明的示例性实施例说明了在基于三层IP承载网的二层虚拟以太网内实现单播的示意图。相应地,图5B是依照本发明的示例性实施例说明了在基于三层IP承载网的二层虚拟以太网内实现广播的示意图。为了便于说明,图5A和图5B仅以两个节点为例,每个节点都有一台接入交换机与外部的通用的三层IP网络连接,其中,接入交换机可以实现如以上结 合图4A-4C中的至少一个所描述的功能。目录服务器DS也可以通过该三层IP网络与每个接入交换机相连。根据本发明的实施例,在每个节点内部可以包括一个或多个二层以太网。二层以太网可以由一台或多台传统的二层以太网交换机互联构成。在二层以太网内,可以支持IEEE802.1Q VLAN的功能。特别地,对于没有应用IEEE 802.1Q标签的以太网,可以认为是支持IEEE 802.1Q VLAN的一个特例,在这种情况下,所有服务器主机都在同一个IEEE 802.1Q VLAN内。如先前针对图3和图4A-4C所描述的,这里将局限于节点内部的IEEE 802.1Q VLAN称为本地VLAN,而根据本发明实施例所构建的全局的虚拟二层以太网的VLAN,可以称之为全局VLAN。在包括接入交换机ToR1的节点1,假设有两台服务器主机110和111,它们都从属于本地VLAN 001。在包括接入交换机ToR2的节点2,假设有两台服务器主机120和121,它们都从属于本地VLAN 002。可以理解,这里只是为了便于说明而仅示出了两个节点并且每个节点具有两台主机的例子,实际上,根据本发明实施例的系统可以具有更多的节点及相应的交换机,并且每个节点内部可以包括更多的主机及相应的一个或多个本地VLAN。此外,每个交换机可以加入到一个或多个全局VLAN所对应的多播组。下面结合图5A来说明在二层虚拟网内实现单播时的工作原理。假设服务器主机110发送数据帧(例如以太网帧)512给服务器主机120。举例来说,节点I的接入交换机ToR1的网卡工作在混杂模式下,它会收到该数据帧来进行处理。接入交换机ToR1可以利用数据帧512的源和目的地址(例如,源和目的MAC地址54:52:00:00:00:01/54:52:00:00:00:02)来向目录服务器进行查询,以便确认这两个地址是否属于同一个全局VLAN。如果这两个地址不属于同一个全局VLAN,那么目录服务器可以返回诸如不允许通信的结果给节点I的接入交换机T0Rp相应地,接入交换机!^!^可以进行拒绝通信的处理过程,例如简单丢弃这个数据帧。如果数据帧的源和目的地址属于同一个全局VLAN,那么目录服务器可以返回目的主机所在网络的接入交换机ToR2的地址(例如IP地址)。接入交换机ToR1收到该地址后,可以用自己的地址(例如IP地址)作为源地址并且用收到的地址作为目的地址来封装先前收到的数据帧512,例如通过添加IP首部来构造一个IP包514。作为发送端的接入交换机,!^!^可以通过L3承载网将经封装的数据帧(例如IP包514)发送给作为接收端的接入交换机ToR2。
举例来说,目录服务器DS中存储的用于查询的相关字段或信息可以包括:服务器/主机地址、所属全局VLAN标识符、对应多播组以及交换机地址。表I示出了可在目录服务器中存储的针对各个主机的主要字段及相应信息的一个示例。表I
权利要求
1.一种实现虚拟局域网的方法,其包括: 响应于在第一交换机处接收到数据帧,确定用于传输所述数据帧的全局虚拟局域网,其中,所述数据帧来自于第一交换机所服务的一个或多个第一本地虚拟局域网之一; 至少部分地基于对所述全局虚拟局域网的确定来对所述数据帧进行封装;以及 在所述全局虚拟局域网上传输经封装的数据帧,以便将所述数据帧发送到至少一个第二交换机,其中,第二交换机服务于一个或多个第二本地虚拟局域网。
2.根据权利要求1所述的方法,其中所述数据帧包括单播帧,并且其中,确定所述全局虚拟局域网包括: 利用所述数据帧的源 主机和目的主机的地址来查询目录服务器,以便验证所述源主机和所述目的主机是否属于同一全局虚拟局域网,其中,所述目的主机属于所述一个或多个第二本地虚拟局域网之一;以及 在所述源主机和所述目的主机均属于所述全局虚拟局域网的情况下,从所述目录服务器获得第二交换机的地址。
3.根据权利要求1或2所述的方法,其中,对所述数据帧进行封装包括对所述数据帧至少添加以下信息: 源地址,其包括第一交换机的地址;以及 目的地址,其包括第二交换机的地址。
4.根据权利要求1所述的方法,其中所述数据帧包括广播帧,并且其中,确定所述全局虚拟局域网包括: 利用所述数据帧的源主机的地址来查询目录服务器,以便确定所述源主机所属的全局虚拟局域网;以及 从所述目录服务器获得与所述全局虚拟局域网相对应的多播地址。
5.根据权利要求1或4所述的方法,其中,对所述数据帧进行封装包括对所述数据帧至少添加以下信息: 源地址,其包括第一交换机的地址;以及 目的地址,其包括与所述全局虚拟局域网相对应的多播地址。
6.一种实现虚拟局域网的装置,其包括: 确定单元,其被配置为响应于在第一交换机处接收到数据帧,确定用于传输所述数据帧的全局虚拟局域网,其中,所述数据帧来自于第一交换机所服务的一个或多个第一本地虚拟局域网之一; 封装单元,其被配置为至少部分地基于对所述全局虚拟局域网的确定来对所述数据帧进行封装;以及 传输单元,其被配置为在所述全局虚拟局域网上传输经封装的数据帧,以便将所述数据帧发送到至少一个第二交换机,其中,第二交换机服务于一个或多个第二本地虚拟局域网。
7.根据权利要求6所述的装置,其中所述数据帧包括单播帧,并且其中,确定所述全局虚拟局域网包括: 利用所述数据帧的源主机和目的主机的地址来查询目录服务器,以便验证所述源主机和所述目的主机是否属于同一全局虚拟局域网,其中,所述目的主机属于所述一个或多个第二本地虚拟局域网之一;以及 在所述源主机和所述目的主机均属于所述全局虚拟局域网的情况下,从所述目录服务器获得第二交换机的地址。
8.根据权利要求6或7所述的装置,其中,对所述数据帧进行封装包括对所述数据帧至少添加以下信息: 源地址,其包括第一交换机的地址;以及 目的地址,其包括第二交换机的地址。
9.根据权利要求6所述的装置,其中所述数据帧包括广播帧,并且其中,确定所述全局虚拟局域网包括: 利用所述数据帧的源主机的地址来查询目录服务器,以便确定所述源主机所属的全局虚拟局域网;以及 从所述目录服务器获得与所述全局虚拟局域网相对应的多播地址。
10.根据权利要求6或9所述的装置,其中,对所述数据帧进行封装包括对所述数据帧至少添加以下信息: 源地址,其包括第一交换机的地址;以及 目的地址,其包括与所述全局虚拟局域网相对应的多播地址。
11.一种实现虚拟局域网的方法,其包括: 接收在全局虚拟局域网上传输的数据帧,其中,所述数据帧来自于第一交换机所服务的一个或多个第一本地虚拟局域网之一; 根据所述数据帧来获取所述全局虚拟局域网的标识符;以及 至少部分地基于所述全局虚拟局域网的标识符,确定第二交换机所服务的一个或多个第二本地虚拟局域网之一的标识符,以便将解封装的数据帧发送到由所确定的标识符标识的第二本地虚拟局域网。
12.根据权利要求11所述的方法,其中所述数据帧包括单播帧,并且其中,获取所述全局虚拟局域网的标识符包括: 从解封装的数据帧中获得所述数据帧的目的主机的地址; 利用所述目的主机的地址来查询目录服务器;以及 从所述目录服务器获得与所述目的主机的地址相对应的所述全局虚拟局域网的标识符。
13.根据权利要求11所述的方法,其中所述数据帧包括广播帧,并且其中,获取所述全局虚拟局域网的标识符包括: 从所述数据帧中获得与所述全局虚拟局域网相对应的多播地址; 利用所述多播地址来查询目录服务器;以及 从所述目录服务器获得与所述多播地址相对应的所述全局虚拟局域网的标识符。
14.一种实现虚拟局域网的装置,其包括: 接收单元,其被配置为接收在全局虚拟局域网上传输的数据帧,其中,所述数据帧来自于第一交换机所服务的一个或多个第一本地虚拟局域网之一; 获取单元,其被配置为根据所述数据帧来获取所述全局虚拟局域网的标识符;以及 确定单元,其被配置为至少部分地基于所述全局虚拟局域网的标识符,确定第二交换机所服务的一个或多个第二本地虚拟局域网之一的标识符,以便将解封装的数据帧发送到由所确定的标识符标识的第二本地虚拟局域网。
15.根据权利要求14所述的装置,其中所述数据帧包括单播帧,并且其中,获取所述全局虚拟局域网的标识符包括: 从解封装的数据帧中获得所述数据帧的目的主机的地址; 利用所述目的主机的地址来查询目录服务器;以及 从所述目录服务器获得与所述目的主机的地址相对应的所述全局虚拟局域网的标识符。
16.根据权利要求14所述的装置,其中所述数据帧包括广播帧,并且其中,获取所述全局虚拟局域网的标识符包括: 从所述数据帧中获得与所述全局虚拟局域网相对应的多播地址; 利用所述多播地址来查询目录服务器;以及 从所述目录服务器获得与所述多播地址相对应的所述全局虚拟局域网的标识符。
17.一种配置虚拟局域网的方法,其包括: 响应于侦测到主机进入第一交换机所服务的第一本地虚拟局域网,确定所述主机所属的全局虚拟局域网,以便在所述全局虚拟局域网上将来自所述主机的数据帧传输到至少一个第二交换机,其中,第二交换机服务于一个或多个第二本地虚拟局域网; 将第一交换机的地址添加到目录服务器,以便与所述目录服务器上存储的所述主机的地址相对应;以及 如果所述主机是第一本地虚拟局域网中的第一台主机,则在第一交换机处创建映射记录,其记录了第一本地虚拟局域网的标识符与所述全局虚拟局域网的标识符之间的对应关系O
18.根据权利要求17所述的方法,其进一步包括: 响应于侦测到所述主机离开第一本地虚拟局域网,清除在所述目录服务器上存储的与所述主机的地址相对应的第一交换机的地址;以及 如果所述主机是第一本地虚拟局域网中的最后一台主机,则删除所述映射记录。
19.一种配置虚拟局域网的装置,其包括: 确定单元,其被配置为响应于侦测到主机进入第一交换机所服务的第一本地虚拟局域网,确定所述主机所属的全局虚拟局域网,以便在所述全局虚拟局域网上将来自所述主机的数据帧传输到至少一个第二交换机,其中,第二交换机服务于一个或多个第二本地虚拟局域网; 添加单元,其被配置为将第一交换机的地址添加到目录服务器,以便与所述目录服务器上存储的所述主机的地址相对应;以及 创建单元,其被配置为如果所述主机是第一本地虚拟局域网中的第一台主机,则在第一交换机处创建映射记录,其记录了第一本地虚拟局域网的标识符与所述全局虚拟局域网的标识符之间的对应关系。
20.根据权利要求19所述的装置,其进一步包括: 清除单元,其被配置为响应于侦测到所述主机离开第一本地虚拟局域网,清除在所述目录服务器上存储的与所述主机的地址相对应的第一交换机的地址;以及删除单元,其被配置为如果所述主机是第一本地虚拟局域网中的最后一台主机,则删除所述映射 记录。
全文摘要
本发明提供了实现虚拟局域网的方法和装置,该方法包括响应于在第一交换机处接收到数据帧,确定用于传输数据帧的全局虚拟局域网,至少部分地基于所述确定来封装该数据帧,以便经由所确定的全局虚拟局域网将其发送到至少一个第二交换机。相应地,在第二交换机处接收该数据帧,并据此获取全局虚拟局域网的标识符,至少部分地基于该全局虚拟局域网的标识符,确定要将解封装的数据帧发送到第二交换机服务的哪个本地虚拟局域网。利用本发明的方法和装置,可以满足虚拟局域网在多租户和多站点数据中心的应用环境下对隔离性和连通性的需求。
文档编号H04L12/70GK103139037SQ20111038936
公开日2013年6月5日 申请日期2011年11月30日 优先权日2011年11月30日
发明者刘航, 郑凯, 张跃, 戈弋 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1