CN1947390B - 虚拟网络设备集群 - Google Patents
虚拟网络设备集群 Download PDFInfo
- Publication number
- CN1947390B CN1947390B CN2005800130911A CN200580013091A CN1947390B CN 1947390 B CN1947390 B CN 1947390B CN 2005800130911 A CN2005800130911 A CN 2005800130911A CN 200580013091 A CN200580013091 A CN 200580013091A CN 1947390 B CN1947390 B CN 1947390B
- Authority
- CN
- China
- Prior art keywords
- network device
- virtual network
- grouping
- subelement
- interface
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/46—Cluster building
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/48—Routing tree calculation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/48—Routing tree calculation
- H04L45/484—Routing tree calculation using multiple routing trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
虚拟网络设备集群包括若干个不同的虚拟网络设备子单元,它们集体作为一个逻辑网络设备进行操作。虚拟网络设备集群标识出给定的分组进入该虚拟网络设备集群所经由的虚拟网络设备子单元。基于为分组标识了哪个虚拟网络设备子单元,来通过虚拟网络设备集群转发分组。在一个实施例中,一种方法涉及经由虚拟网络设备的若干虚拟网络设备子单元中的第一虚拟网络设备子单元的第一接口接收分组,并将该分组与所述第一虚拟网络设备子单元相关联。所述方法还涉及响应于所述分组与所述第一虚拟网络设备子单元相关联,禁止所述分组被经由所述虚拟网络设备子单元之一的接口发送。
Description
技术领域
本发明涉及网络,尤其涉及虚拟网络设备。
背景技术
为了提供更高的网络可靠性,网络中通常包括冗余交换机和链路。如果交换机或链路发生故障,则可以快速地使能已经位于网络中的冗余交换机或链路以替换故障交换机或链路。由于使能冗余交换机或链路作为替换通常可以比替换或修复故障组件更快,因此具有冗余的链路和/或交换机提供了更可靠的网络。
当在网络中包括冗余组件时,常常希望能够在相应组件发生故障之前,在正常网络操作期间使用冗余组件。例如,如果在一对交换机之间实现两条链路,则希望使用这两条链路(而非让一条链路空闲)来提供更高的带宽。然而,如果多条冗余链路同时活动,则对这些链路的管理可能复杂(例如由于避免桥接循环的需求),这是不希望的。这一复杂性延伸到了在正常操作期间使用多个冗余组件的其他情况。例如,如果在一个网络中同时使用多个冗余路由器,则对该网络的管理可能由于对每个网络设备具有不同的管理点的需求而变得更加复杂。这些示例表明,希望能够降低在网络内使用多个冗余组件时产生的复杂性。
发明内容
公开了各种用于实现虚拟网络设备集群的方法和系统的实施例。虚拟网络设备集群包括若干个不同的虚拟网络设备子单元,这些虚拟网络设备子单元集体作为一个逻辑网络设备进行操作。虚拟网络设备集群标识出给定的分组进入该虚拟网络设备集群所经由的虚拟网络设备子单元。基于为分组标识了哪个虚拟网络设备子单元,来通过虚拟网络设备集群转发分组。
在一些实施例中,一种方法涉及将若干个虚拟网络设备子单元作为一个虚拟网络设备来操作,并且如果这些虚拟网络设备子单元之一已经接收过分组,则防止该分组被发送到该虚拟网络设备子单元。将虚拟网络设备子单元作为一个虚拟网络设备操作涉及经由一条或多条虚拟网络设备链路,将控制信息从一个虚拟网络设备子单元传送到一个或多个其他虚拟网络设备子单元。
在其他实施例中,一种方法涉及:经由虚拟网络设备的若干个虚拟网络设备子单元中的第一虚拟网络设备子单元的第一接口接收分组,并将该分组与第一虚拟网络设备子单元相关联。该方法还涉及响应于所述分组与第一虚拟网络设备子单元相关联,禁止该分组被经由一个虚拟网络设备子单元的接口发送。仅将一份特定分组发送到被耦合到虚拟网络设备的设备。
将分组与第一虚拟网络设备子单元相关联涉及给所述分组指定标识符。该标识符与第一虚拟网络设备子单元相关联。可以通过向分组附加包括标识符的头部,来将标识符指定给分组。响应于所述标识符,禁止该分组被经由第二虚拟网络设备子单元的接口发送(例如,通过将分组从要经由接口发送的分组流中滤去)。
可以为虚拟网络设备计算若干个生成树。每个生成树与相应的一个虚拟网络设备子单元相关联。根据相关联的一个生成树,通过虚拟网络设备发送一个虚拟网络设备子单元接收到的每个分组。
在一些实施例中,一种系统包括虚拟网络设备。所述虚拟网络设备包括若干个虚拟网络设备子单元和若干条网络设备链路。每个虚拟网络设备子单元通过一条虚拟网络设备链路耦合到至少一个其他虚拟网络设备子单元。虚拟网络设备子单元被配置为如果一个虚拟网络设备子单元已经接收过分组,则防止该分组被发送到该一个虚拟网络设备子单元。虚拟网络设备被配置为响应于第一虚拟网络设备子单元的第一接口接收到分组,将该分组与所述第一虚拟网络设备子单元相关联。一个虚拟网络设备子单元的接口被配置为响应于分组与第一虚拟网络设备子单元相关联,禁止该分组被经由该接口发送。
在一个实施例中,网络设备的接口包括外出过滤器设定存储装置和被耦合到该外出过滤器设定存储装置的外出过滤器单元,所述外出过滤器设定存储装置包括若干个外出过滤器设定,其中每个外出过滤器设定都对应于相应的进入标识符值。所述接口还包括标识符单元和被耦合到该标识符单元的进入标识符值存储装置。所述进入标识符值存储装置包括进入标识符值。所述标识符单元被配置为向分组附加进入标识符值。进入标识符值标识出分组进入虚拟网络设备所经由的虚拟网络设备子单元。外出过滤器单元被配置为响应于特定的进入标识符被附加到分组上,将该分组从要经由接口输出的分组流中滤去。
以上是发明内容,因此其根据需要而包含了简化、归纳和对细节的省略;因此,本领域技术人员将会意识到,该发明内容仅是说明性的,而非要以任何方式进行限制。这里公开的操作可以以多种方式实现,并且这种变化和修改可以在不脱离本发明及其更广的技术方案的情况下进行。在下面进行的非限制性详细描述中,本发明的其他技术方案将变得清楚,这些技术方案仅由权利要求书来限定。
附图说明
通过参照以下描述和附图,可以获得对本发明更透彻的理解,在附图中相似的标号指示相似的特征。
图1是本发明一个实施例的网络的框图。
图2A和图2B示出了根据本发明的一个实施例,同一网络层中的两个网络设备如何集体作为一个虚拟网络设备进行操作。
图3示出了根据本发明一个实施例,虚拟网络设备中所包括的每个虚拟网络设备子单元内的更多细节。
图4示出了根据本发明一个实施例,包括4个虚拟网络设备子单元的虚拟网络设备集群的示例。
图5A-5C示出了本发明的可替换实施例的其他虚拟网络设备集群配置。
图6A示出了本发明一个实施例的虚拟网络设备集群的示例。
图6B示出了用于图6A的虚拟网络设备集群的每个接口的进入ID设定和外出过滤器值的示例。
图6C示出了本发明一个实施例的虚拟网络设备子单元的接口。
图7是根据本发明一个实施例,示出在虚拟网络设备集群内转发分组的方式的流程图.
图8A-8D示出了根据本发明一个实施例,如何为同一虚拟网络设备集群内的每个虚拟网络设备子单元计算不同的生成树。
图9A-9C示出了如何通过图8A-8D的虚拟网络设备集群来转发分组。
图10A-10D示出了根据本发明一个实施例,为每个进入点计算不同的生成树的网络。
图11A示出了根据本发明一个实施例,为每个进入点计算生成树的方法。
图11B示出了根据本发明一个实施例,根据与特定进入点相关联的生成树来转发分组的方式。
虽然本发明容许各种修改和可替换形式,但在附图和详细描述中提供了具体的实施例作为示例。应当理解的是,附图和详细描述并非要将本发明限制为所公开的特定形式。相反,希望覆盖落入所附权利要求书所限定的本发明精神和范围之内的所有修改、等同物和替换物。
具体实施方式
从两个或更多个虚拟网络设备子单元形成虚拟网络设备集群,所述的虚拟网络设备子单元集体作为一个逻辑设备而进行操作。图1-图3提供了可以包括一个或多个虚拟网络设备的环境的示例。图4-图7提供了虚拟网络设备集群和虚拟网络设备集群的操作的示例。图8A-图9C示出了可以如何用若干个进入专用生成树(ingress-specific spanning tree)来控制如何通过虚拟网络设备集群转发分组。图10A到图11B示出了在其他类型的网络中还可以如何用多个进入专用生成树来控制如何转发分组。
图1是包括若干虚拟网络设备的网络的框图。在图1中,若干个客户端102(1)-102(n)经由网络彼此通信及与若干个服务器104(1)-104(n)通信。客户端102(1)-102(n)包括各种可以访问联网服务的不同设备。例如,客户端102(1)可以是蜂窝电话,客户端102(2)可以是个人计算机,客户端102(n)可以是个人数字助手(PDA)。服务器104(1)-104(n)提供各种服务,例如各种基于软件的服务和/或对分担存储设备的访问。
利用若干网络层来描述网络耦合客户端102(1)-102(n)和服务器104(1)-104(n)。最接近客户端102(1)-102(n)的层是接入层(access layer)110。接入层110包括若干网络设备120(1)-120(n)。在此示例中,接入层110是分组从客户端102(1)-102(n)进入网络的基本层。
分布层(distribution layer)112将经由接入层110接收到的流汇聚起来,并将这些汇聚流提供给核心层(core layer)114。在此示例中,分布层112包括网络设备122(1)-122(n)。核心层114是网络的逻辑集中化部分,各个汇聚流经过该层。核心层114包括网络设备124(1)-124(n)。
在此示例中,数据中心116包括两组网络设备:网络设备126(1)-126(n)和网络设备128(1)-128(n)。网络设备128(1)-128(n)向各个服务器104(1)-104(n)提供对网络的接入。网络设备126(1)-126(n)将来自网络设备128(1)-128(n)的流汇聚起来,并将汇聚流提供到核心层114。
注意在一些实施例中,网络将不包括图1中所示的网络层(例如,些曾可以被合并和/或去除,也可以在图1所示的层之外另外包括和/或代替地包括其他层).另外,客户端和服务器可以与图1所示的方式不同地耦合到网络(例如,一些客户端和/或服务器可被耦合到核心和/或分布层中的各个网络设备).另外,设备相对于彼此的物理位置可以与图1所示的逻辑位置不同.例如,同一网络层中的两个设备可以物理上位于不同的楼层,不同的建筑物,或者不同的场所中.相反,不同网络层中的两个设备可以位于同一房间中.
在一些实施例中,位于网络外缘的网络设备120(1)-120(n)和128(1)-128(n)与位于网络内层的网络设备122(1)-122(n)、124(1)-124(n)和126(1)-126(n)不同地进行操作。例如,在一个实施例中,网络设备120(1)-120(n)是受控于或以其他方式从属于网络内层(例如分布层和核心层)中的网络设备的附属网络设备。在这种实施例中,非附属网络设备提供L2(第2层)和L3(第3层)转发和路由,而附属网络设备仅具有较有限的转发和/或路由能力。在其他实施例中,附属网络设备不执行任何L2转发或L3路由。相反,附属网络设备仅仅将所有分组转发到非附属网络设备以进行L2转发和L3路由。在一些实施例中,耦合到附属网络设备的非附属网络设备控制附属网络设备的操作。在一些实施例中,将附属网络设备作为附属网络设备所从属于的网络设备的远程线路卡来看待。还要注意在可替换的实施例中,在接入层和数据中心中使用非附属网络设备而不是附属网络设备。
网络设备120(1)-120(n)、122(1)-122(n)、124(1)-124(n)、126(1)-126(n)和128(1)-128(n)可以包括各种路由器、交换机、网关和其他网络设备。在许多实施例中,可能每层仅需要一个网络设备就可以让网络工作。然而,如图1所示,每层可以包括多个网络设备,以提供冗余。
将会注意到,这里描述的附图中的若干示例中使用了可变标识符“n”,以更简单地指定一系列相关或类似的元件当中最后的元件。这种可变标识符的重复使用并不一定想要暗示这种元件系列之间的相关性,虽然这种相关性可能存在。这种可变标识符的使用并不需要每一系列的元件与由相同的可变标识符界定的另一系列具有相同数量的元件(例如,每个网络层中的网络设备的数量可能不同)。确切地说,在每个使用的示例中,由“n”(或其他任何这种标识符)标识的变量可能与同一变量标识符的其他示例具有相同的值或不同的值。
在不同网络层中的设备之间实现多条链路,以提供另外的冗余度。例如,如图1所示,接入层110中的每个网络设备120(1)-120(n)被通过两条(或更多条)不同的链路耦合到分布层112。类似地,分布层112中的每个网络设备122(1)-122(n)被通过两条(或更多条)不同的链路耦合到核心层114。在一个实施例中,每条链路是以太网链路。
在每个网络层内,多个冗余网络设备被配置为集体作为一个虚拟网络设备进行操作.例如,如图1所示,分布层112中的两个或更多个网络设备作为虚拟网络设备202进行操作.类似地,两个或更多个网络设备124(1)-124(n)作为一个虚拟网络设备204进行操作,并且两个或更多个网络设备126(1)-126(n)作为一个虚拟网络设备206进行操作.关于两个分布层网络设备如何集体作为分布层虚拟网络设备202进行操作的更多细节在图2A、图2B和图3中示出.如下所述,虚拟网络设备可以被耦合到其他虚拟网络设备,耦合到网络设备,和/或通过虚拟链路束耦合到客户端和/或服务器.一般而言,任何多端口设备(无论是诸如网络设备、客户端或服务器之类的物理设备,还是虚拟网络设备)都可以通过包括若干条链路在内的虚拟链路束而被耦合到虚拟网络设备,所述若干条链路中的一些链路终止于虚拟网络设备内的不同子单元.
图2A示出了在接入层110中有两个网络设备120(1)和120(2)的网络示例。在分布层112中也有两个网络设备122(1)和122(2)。在此示例中,这两个网络设备122(1)和122(2)作为一个虚拟网络设备202进行操作。每个网络设备120(1)-120(2)通过两条链路耦合到分布层112。在此示例中,这两条链路中的每一条耦合到网络设备122(1)和122(2)中不同的一个。这提供了冗余度,使得即使网络设备122(1)或122(2)中的一个发生故障或者给定的接入层网络设备与给定的分布层网络设备之间的链路中的一条发生故障,网络设备120(1)和120(2)也可以继续与分布层112通信。
将网络设备120(1)和120(2)中的每一个耦合到虚拟网络设备202的冗余链路可以作为一条逻辑链路而被操作,这里将所述的单一逻辑链路称为虚拟链路束。网络设备120(1)将把网络设备120(1)耦合到虚拟网络设备202的两条链路作为虚拟链路束250(1)而操作。在这种实施例中,网络设备120(1)中耦合到其中一条链路的每个接口都被包括在一个接口束中,所述接口束对应于虚拟链路束250(1)。网络设备120(2)类似地将把网络设备120(2)耦合到虚拟网络设备202的两条链路作为虚拟链路束250(2)而操作。在一些实施例中,虚拟链路束250(1)和250(2)中每个都被作为EtherChannel(TM)或作为汇聚(aggregated)链路(如IEEE 802.3所述)而操作。
如图2A所示,虚拟链路束250(1)和250(2)中每个都包括终止于分布层112中的不同网络设备的链路。例如,虚拟链路束250(1)将网络设备120(1)耦合到网络设备122(1)和网络设备122(2)两者。这不同于逻辑链路仅在一对网络设备之间被允许的传统实现方式。
在一些实施例中,网络设备120(1)和120(2)知道(例如,通过在每个网络设备内维护的各种状态信息)虚拟链路束250(1)和250(2)中每个都包括终止于分布层112中的不同网络设备的链路。在这种实施例中,网络设备120(1)和120(2)可以基于此知识,在特定的虚拟链路束内选择一条发送分组的链路。然而,在可替换实施例中,网络设备120(1)和120(2)不知道特定的虚拟链路束是否包括终止于分布层中不同网络设备的链路。
如图2A所示,网络设备122(1)和122(2)作为一个虚拟网络设备202进行操作。图2B示出了从接入层110的角度来看,网络设备120(1)如何通过一对冗余链路耦合到分布层112中的单个网络设备,虚拟网络设备202。网络设备120(2)具有对虚拟网络202的类似视角。
在诸如图2B所示的实施例中,网络设备120(1)和120(2)将它们自身看成是连接到单个网络设备,其中对虚拟链路束的使用被简化了。例如,如果网络设备120(1)知道虚拟链路束250(1)终止于两个不同的网络设备,则网络设备120(1)基于生成树协议(Spanning Tree Protocol)选择发送特定分组的链路.与网络设备120(1)仅仅将虚拟网络设备202看作单个实体的情况相比,对生成树协议的使用可能涉及更多的开销和/或在哪些链路可被用来发送给定的分组方面更受约束(例如,生成树协议可能阻塞除了其中一条链路之外的全部链路,防止利用除了一条非阻塞链路之外的全部链路).例如,当将虚拟网络设备202看作单个实体时,网络设备120(1)仅仅基于负载分担约束条件来选择发送分组的链路.类似地,如果虚拟链路束250(1)内的链路发生故障,则不需要网络设备120(1)改变生成树协议的应用方式.相反,网络设备120(1)仅仅是继续使用虚拟链路束250(1)内的非故障链路.
包括在虚拟网络设备202中的诸如网络设备122(1)和122(2)之类的各个网络设备中的每一个在这里被称为“虚拟网络设备子单元”。在一些实施例中,虚拟网络设备子单元122(1)和122(2)中的每一个被实现在单独的机壳(chassis)中(即每个机壳容纳一个虚拟网络子单元)。例如,在图2A中,网络设备122(1)和122(2)中的每一个可以实现在单独的机壳中。即使虚拟网络设备子单元122(1)和122(2)共用机壳,也可以使每个虚拟网络设备子单元作为独立的网络设备进行操作,使得如果虚拟网络设备中的一个虚拟网络设备子单元发生故障,则其他虚拟网络设备子单元继续进行操作。例如,虚拟网络设备子单元122(1)和虚拟网络设备子单元122(2)可以位于同一机壳中,但每个虚拟网络设备子单元可以具有独立的硬件、端口、上行链路接口和电源,并且每个都可独立地被从机壳中去除。如果虚拟网络设备子单元122(1)发生故障(例如由于电源故障或软件错误),则虚拟网络设备子单元122(2)可以继续运行。在这种实施例中,虚拟网络设备子单元122(1)可被去除以进行修复或替换,而不会打断虚拟网络设备子单元122(2)的操作。
在一些实施例中,将网络设备耦合到附属网络设备的虚拟链路束中的链路是被用来将附属网络设备耦合到虚拟网络设备的专门化的链路,这些链路在这里被称为上行链路。每个上行链路可以传送在网络设备之一中生成的分组和额外信息这两者。例如,在一个实施例中,如果要在从接入层附属网络设备到分布层网络设备的上行链路上传送分组,则在该上行链路上与所述分组一起传送的额外信息包括标识出附属网络设备的端口当中的哪个端口接收所述分组的信息。额外信息还包括指示出是否已由发送设备对所述分组进行了任何转发或路由的信息。在一些实施例中,上行链路的使用使得虚拟网络设备可以控制被耦合到该虚拟网络设备的附属网络设备。上行链路的使用还有助于使虚拟网络设备能够为从属的附属网络设备执行路由和/或转发。这里将网络设备或附属网络设备中耦合到上行链路的接口称为上行链路接口。
图3示出了包括在虚拟网络设备中的每个网络设备中的更多细节。这里,虚拟网络设备202包括两个虚拟网络设备子单元122(1)和122(2)。注意在其他实施例中,虚拟网络设备202包括多于两个组件网络设备。在此示例中,虚拟网络设备202位于网络的分布层。然而,类似的虚拟网络设备可以被实现在其他网络层中(例如,在数据中心和/或核心层中)。
虚拟网络设备202被耦合到若干个接入层网络设备120(1)-120(3).网络设备120(2)和120(3)中的每一个都通过两条上行链路耦合到虚拟网络设备202,其中每条上行链路通往一个虚拟网络设备子单元122(1)和122(2).网络设备120(2)通过虚拟链路束250(2)耦合到虚拟网络设备,网络设备120(3)通过虚拟链路束250(3)耦合到虚拟网络设备.因此,即使这些上行链路中的一条和/或虚拟网络设备子单元122(1)和122(2)中的一个发生故障,网络设备120(2)和120(3)也继续与分布层通信.网络设备120(1)通过三条上行链路耦合到虚拟网络设备202:两条到虚拟网络设备子单元122(1)的上行链路和一条到虚拟网络设备子单元122(2)的上行链路.这三条上行链路集体形成了虚拟链路束250(1).即使这三条上行链路中的两条和/或虚拟网络设备子单元122(1)和122(2)中的一个发生故障,网络设备120(1)也继续与分布层通信.网络设备120(1)-120(3)中的每一个都将通往虚拟网络设备202的多条上行链路作为一条逻辑上行链路来操作.另外,在一些实施例中,网络设备120(1)-120(3)中的每一个都以与该网络设备如果被耦合到单个分布层设备时相同的方式进行操作(而非以该网络设备如果被耦合到两个独立的分布层设备时的方式进行操作).
分布层虚拟网络设备子单元122(1)还通过一条链路耦合到服务器104(3)。在此示例中,如果网络设备122(1)或将服务器104(3)耦合到网络设备122(1)的链路发生故障,则服务器104(3)将无法与分布层通信。注意在其他实施例中,诸如服务器104(3)之类的但具有多个端口的服务器可能通过虚拟链路束耦合到多个虚拟网络设备子单元,并且这种服务器可能与虚拟网络设备子单元122(1)和122(2)进行交互,就好像这些子单元是单个虚拟网络设备202一样。
虚拟网络设备子单元122(1)包括若干个卡(card),包括控制卡302(1)和线路卡304(1)和304(3)。类似地,虚拟网络设备子单元122(2)包括控制卡302(2)和线路卡304(2)和304(4)。控制卡302(1)包括控制单元310(1)、转发引擎312(1),以及接口320(1)和320(3)。控制卡302(2)类似地包括控制单元310(2)、转发引擎312(2),以及接口320(2)和320(4)。
在虚拟网络设备子单元122(1)中,线路卡304(1)包括转发引擎314(1)以及接口320(5)、320(7)和320(9)。接口320(7)耦合到网络设备120(3)。接口320(9)耦合到网络设备120(1)。接口320(5)在此示例中未被使用。线路卡304(3)包括转发引擎314(3)以及接口320(11)、320(13)和320(15)。接口320(11)和320(13)分别耦合到网络设备120(2)和120(1)。接口320(15)耦合到服务器104(3)。在网络设备120(1)-120(3)是由虚拟网络设备202控制的附属网络设备的实施例中,接口320(7)、320(9)、320(11)和320(13)被作为上行链路接口而操作,而未被耦合到附属网络设备的接口320(15)被作为常规接口而操作。
在虚拟网络设备子单元122(2)中,线路卡304(2)包括转发引擎314(2)以及接口320(6)、320(8)和320(10)。接口320(8)耦合到附属网络设备120(2),并且接口320(6)和320(10)未被连接。线路卡304(4)包括转发引擎314(4)以及接口320(12)、320(14)和320(16)。接口320(12)和320(16)分别耦合到附属网络设备120(3)和120(1)。接口320(14)未被使用。在网络设备120(1)-120(3)是由虚拟网络设备202控制的附属网络设备的实施例中,接口320(8)、320(12)和320(16)被作为上行链路接口而操作。
注意,虽然将图3中的接口描述为进入和外出接口,但也可以使用充当只进入接口或只外出接口的接口。例如,图3所示的每个接口的功能可以使用一个只进入接口和一个只外出接口来实现。类似地,虚拟链路束250(1)-250(3)中的每一个都可以包括仅将分组从各个网络设备120(1)120(3)传送到虚拟网络设备202的若干条链路和仅将分组从虚拟网络设备202传送到网络设备120(1)-120(3)的若干条链路。
在所示出的实施例中,虚拟网络设备子单元122(1)中的控制卡302(1)经由虚拟网络设备链路360耦合到虚拟网络设备子单元122(2)中的控制卡302(2).在此示例中,虚拟网络设备链路360包括两条链路(两条链路被用来提供更高的故障容许度和/或带宽;然而,在其他实施例中可以使用一条链路).在此示例中这些链路是一种上行链路,除了分组之外还承载信息(例如与在线路卡之间发送的头部相类似的头部).虚拟网络设备链路360中的上行链路被用来在虚拟网络设备子单元122(1)和122(2)之间交换信息和分组,所述信息控制虚拟网络设备202的操作.通过经由这些上行链路进行通信,虚拟网络设备子单元122(1)和122(2)协调其行为,以使得虚拟网络设备子单元122(1)和122(2)对于网络设备120(1)-120(3)看起来是单个虚拟网络设备.
从而,在虚拟网络设备子单元122(1)和122(2)之间提供互连,这使得虚拟网络设备子单元122(1)和122(2)可以作为单个虚拟网络设备202进行操作。网络设备120(1)-120(3)以与网络设备120(1)-120(3)和单个物理设备进行通信时一样的方式与虚拟网络设备202进行通信。例如,如果网络设备120(2)正在处理去往服务器104(3)的分组,则网络设备120(2)在网络设备束250(2)的两条链路中选择一条来发送分组。在一些实施例中,此选择是基于负载分担准则的。在这种情况下,由于虚拟网络设备202看起来是单个网络设备,因此网络设备120(2)选择通往虚拟网络设备子单元122(2)的上行链路的可能性与选择通往虚拟网络设备子单元122(1)的上行链路的可能性相同,而不考虑仅虚拟网络设备子单元122(1)具有到服务器104(3)的直接连接这一事实。如果该分组被发送到虚拟网络设备子单元122(2),则网络设备120(2)使用包括在虚拟网络设备子单元122(1)和122(2)之间的虚拟网络设备链路360中的上行链路之一来将该分组发送到虚拟网络设备子单元122(1),虚拟网络设备子单元122(1)可以再将该分组提供到该分组的目的地服务器104(3)。
在其他实施例中,网络设备120(1)-120(3)知道虚拟链路束250(1)和250(3)实际上终止于两个不同的网络设备。网络设备120(1)-120(3)基于此信息控制分组传输。例如,在此情况下,网络设备120(2)通过基于网络设备120(2)认识到逻辑链路内通往两个不同网络设备的单独连接这一事实,选择耦合到虚拟网络设备子单元122(1)的上行链路而非耦合到虚拟网络设备子单元122(2)的上行链路,从而处理去往服务器104(3)的分组。
接口320(13)、320(9)和320(16)中的每一个都通过虚拟链路束250(1)耦合到网络设备120(1),这些接口形成了一个接口束(例如EtherChannel(TM)端口束)。类似地,接口320(11)和320(8)形成了通过虚拟链路束250(2)耦合到网络设备120(2)的另一接口束。接口320(7)和320(12)形成了通过虚拟链路束250(3)耦合到网络设备120(3)的第三接口束。在虚拟网络设备202内,同一接口束中的每个接口被指定了相同的逻辑标识符。例如,接口320(13)、320(9)和320(16)中的每一个都被指定了相同的逻辑标识符。在一些实施例中,用该逻辑标识符给经由这些接口中的一个接口接收到的分组加上标签,或者以其他方式使所述分组与所述逻辑标识符相关联,以指示这些分组是经由将虚拟网络设备202耦合到网络设备120(1)的虚拟链路束接收到的。注意,在网络设备120(1)-120(3)中的每一个内实现类似的接口束,并且包括在这种束中的接口也被每个网络设备(或者,在虚拟网络设备202控制网络设备120(1)-120(3)的配置的实施例中,由虚拟网络设备202)指定了相同的逻辑标识符。例如,网络设备120(1)可以将相同的标识符指定给被耦合到虚拟链路束250(1)的每个接口。
分组与特定的逻辑标识符之间的关联被虚拟网络设备202内的转发引擎用来将分组路由和转发到网络设备120(1)-120(3),以及从网络设备120(1)-120(3)路由和转发分组.例如,当经由上行链路接口320(13)接收到来自发送设备(例如,耦合到网络设备120(1)的客户端)的分组时,虚拟网络设备子单元122(1)通过将发送设备的MAC(媒体访问控制)地址与上行链路接口320(13)的逻辑标识符相关联,得知该MAC地址位于上行链路接口320(13)的“背后”.虚拟网络设备子单元122(1)将此关联通知给虚拟网络设备子单元122(1)中的每个转发引擎以及虚拟网络设备子单元122(2)中的每个转发引擎.基于该关联,去往该MAC地址的分组将被从具有相关联标识符的上行链路端口发送.由于在此情况下,上行链路接口320(9)(在虚拟网络设备子单元122(1)中)和320(16)(在虚拟网络设备子单元122(2)中)也具有与上行链路接口320(13)相同的逻辑标识符,因此去往该MAC地址的分组可能经由上行链路接口320(9)、320(13)和320(16)中的任意接口被转发.
相同的逻辑标识符被虚拟网络设备子单元122(1)和122(2)中的每一个用来标识上行链路接口束,并且这些虚拟网络设备子单元协调工作以将相同的逻辑标识符指定给同一上行链路接口束中的每个上行链路接口。当经由一个特定逻辑标识符所标识的上行链路接口转发分组时,虚拟网络设备子单元122(1)和122(2)中的每一个都生成哈希值,以在该上行链路接口束的上行链路接口中选择一条发送分组的链路。每个虚拟网络设备子单元使用这些哈希值来标识该虚拟网络中的本地上行链路接口。从而,每个虚拟网络设备子单元将仅选择该虚拟网络设备子单元本地的上行链路接口。例如,如果虚拟网络设备子单元122(1)将经由包括接口320(9)、320(13)和320(16)在内的上行链路接口束转发分组,则虚拟网络设备子单元所生成的哈希值将标识接口320(9)和320(13)中的一个。
在以上示例中,通过将每个哈希值与上行链路接口束中的本地上行链路接口相关联,减少了虚拟交换链路360的使用。基本上,虚拟网络设备子单元122(1)倾向于特定上行链路接口束中的本地上行链路接口,而非同一上行链路接口束中位于虚拟网络设备子单元122(2)上的远程上行链路接口。类似地,虚拟网络设备子单元122(2)倾向于特定上行链路接口束中的本地上行链路接口,而非包括在虚拟网络设备子单元122(1)中的上行链路接口。例如,如果虚拟网络设备子单元122(2)需要经由上行链路接口转发分组,则虚拟网络设备子单元122(2)将经由上行链路接口320(12)来发送该分组,而非将该分组通过虚拟网络设备链路360转发以经由上行链路接口320(7)来发送。通过倾向于本地接口,降低了通过虚拟网络设备链路360发送的流量,这是因为虚拟网络设备子单元122(1)和122(2)中的每一个都将从本地接口转发在本地接收到的分组(即经由除了耦合到虚拟网络设备链路360的接口以外的接口接收到的分组)。
在一些实施例中,对于一个给定的虚拟链路束,在一个中心位置管理(例如对于诸如L2协议之类的控制协议)该虚拟链路束。例如,所有对虚拟链路束250(1)的控制协议处理可以在虚拟网络设备子单元122(1)的控制单元310(1)中进行。然后将此控制协议处理的结果传送到虚拟网络设备子单元122(2)的控制单元310(2)和/或传送到网络设备120(1)中的控制器。然后,控制单元310(2)在对如何处理从上行链路接口320(16)(其位于耦合到虚拟链路束250(1)的上行链路接口束中)发送的分组以及经由上行链路接口320(16)接收到的分组进行控制时,使用(但不修改)此信息。例如,控制单元310(2)使用此信息在线路卡304(2)和/或304(4)上建立或修改查找表。这样,实际的控制协议处理被集中到控制单元310(1)中,而非被分布在虚拟网络设备202中的若干控制单元当中。
控制协议处理的中心点在虚拟链路束之间可能不同.例如,虽然对虚拟链路束250(1)的控制协议处理由控制单元310(1)管理,但对虚拟链路束250(2)的控制协议处理可以由控制单元310(2)管理.换言之,控制单元310(2)可以执行对虚拟链路束250(2)的所有控制处理,并且由控制单元310(2)生成的信息可以随后被传送到控制单元310(1)以在虚拟网络设备子单元122(1)中使用(但不修改).
在虚拟网络设备202内为每个虚拟链路束的控制协议处理实现了管理中心点的实施例中,可以跨越虚拟链路束运行L2协议和/或可以用接口束作为路由L3接口。如果虚拟网络设备202中的虚拟网络设备子单元彼此独立地执行对本地接口的控制协议处理,则无法获得这些能力。另外,在实现了控制协议处理中心点的实施例中,用户可以通过访问单个虚拟网络设备子单元来修改虚拟链路束的控制协议行为。在以上示例中,当更新虚拟链路束250(1)的控制协议行为时,用户可以仅仅访问虚拟网络设备子单元122(1)(而非访问虚拟网络设备子单元122(1)和122(2)两者)。然后,虚拟网络设备子单元122(1)将用户对控制协议进行的任何修改自动传播到网络设备122(2)。此外,由于虚拟链路束的使用使得可以将若干上行链路作为一条逻辑上行链路来管理,因此比不使用虚拟链路束时的需求相比,需要配置的上行链路接口更少。例如,如果每个虚拟链路束包括两条上行链路,则虚拟网络设备202中需要由用户配置的上行链路接口的数量减半。
虚拟网络设备子单元122(1)和122(2)实现某些行为,以充当从网络设备120(1)-120(3)的角度看起来是单个逻辑网络设备的虚拟网络设备202。例如,只要虚拟网络设备子单元122(2)接收到来自本地网络设备、客户端或服务器的分组,并且该分组的目的地逻辑标识符标识出一个上行链路接口束,虚拟网络设备子单元122(2)就从所标识的上行接口束中的本地上行链路接口发送该分组。虚拟网络设备子单元122(2)也可以将该分组提供给虚拟网络设备子单元122(1),但虚拟网络设备子单元122(1)不应在虚拟链路束上输出该分组。这样,目的地设备仅从虚拟网络设备202接收到一份该分组(而非从虚拟网络设备子单元122(1)和122(2)各接收到一份),保持了虚拟网络设备202作为单个实体的外观。
为了以这种方式进行操作,耦合到虚拟链路束中的链路的每个进入上行链路接口被配置为将经由虚拟网络设备链路360接收到的流量过滤掉。例如,经由虚拟网络设备链路360在虚拟网络设备子单元122(1)处接收到一个分组。接收到该分组的接口320(1)或320(3)更新与该分组相关联的信息(例如在头部中),以指示该分组是经由虚拟网络设备链路360接收到的(在可替换实施例中,虚拟网络设备子单元122(2)中的发送接口可以更新此信息)。当虚拟网络设备子单元122(1)在查找表中查找该分组的目的地地址时,查找表返回标识出逻辑上行链路接口320(9)和320(13)的逻辑标识符。然后将该分组转发到上行链路接口320(13)(例如是基于负载分担考虑而选择的)。当上行链路接口320(13)接收到该分组时,上行链路320(13)将仅在该分组不是经由虚拟网络设备链路360接收到的情况下才输出该分组,这是因为如果该分组是经由虚拟交换链路接收到的,那么另一虚拟网络设备子单元122(2)将已经经由虚拟链路束发送了该分组。从而,上行链路接口320(13)可以基于被附加在该分组上的指示该分组是经由虚拟网络设备链路360接收到的信息,将该分组从将要经由上行链路接口320(13)发送的分组流中滤去。
在一些实施例中,MAC通知帧被用来使虚拟网络设备子单元122(1)中的L2表的内容与虚拟网络设备子单元122(2)中L2表的内容保持同步,反之亦然.只要在虚拟网络设备子单元中生成了涉及虚拟链路束背后的端口或包括在上行链路接口束中的上行链路接口的MAC通知(例如,这种通知可以由一个线路卡生成以更新另一线路卡上的L2表),就将一份该MAC通知经由虚拟网络设备链路360发送.类似地,如果一个虚拟网络设备子单元确定一个分组应被洪泛扩散(flood),则该虚拟网络设备子单元将经由虚拟网络设备链路360发送一份该分组,确保虚拟网络设备子单元将接收到一份由对等方虚拟网络设备子单元中的转发引擎生成的任何MAC通知响应.
作为示例,假设因为包括在虚拟网络设备子单元122(1)中的转发引擎不知道哪个端口或上行链路接口与一个分组的目的地地址相关联,所以虚拟网络设备子单元122(1)对该分组进行洪泛扩散。作为洪泛扩散该分组的一部分,虚拟网络设备子单元122(1)经由虚拟交换链路360将一份该分组发送到虚拟网络设备子单元122(2)。如果虚拟网络设备子单元122(2)中的转发引擎已经知道该目的地地址位于一个特定的上行链路接口或端口背后(例如,如果转发表已经包括将该目的地地址与网络设备120之一的一个端口相关联的条目),则该转发引擎生成标识出该关联的MAC通知,该通知被分发到虚拟网络设备子单元122(2)内的其他任何转发引擎。由于所述分组最初是经由虚拟网络设备链路360接收到的,因此虚拟网络设备子单元122(2)还经由虚拟网络设备链路360将一份MAC通知发送回去。然后,在虚拟网络设备子单元122(1)中所包括的转发引擎当中分发此MAC通知。在基于MAC通知而被更新之后,虚拟网络设备子单元122(1)中的转发引擎现在知道目的地址所标识出的设备的位置了。因此,随后接收到的去往该设备的分组不被洪泛扩散。
当一个虚拟链路束中连接到一个虚拟网络设备子单元的所有物理链路都发生故障时,该虚拟链路束转变为被耦合到单个虚拟网络设备子单元的正常链路束。此时,修改每个虚拟网络设备子单元相对于该网络设备束的行为。例如,假设虚拟链路束250(1)中被耦合到虚拟网络设备子单元122(2)的所有上行链路发生故障。此时,虚拟网络设备子单元122(2)不再具有任何能经由虚拟链路束250(1)发送分组的逻辑上行链路接口。因此,虚拟网络设备子单元122(2)重新引导需要经由虚拟链路束250(1)发送的所有流量,使之通过虚拟网络设备链路360。另外,由于网络设备122(2)无法再经由虚拟链路束250(1)发送分组,因此虚拟网络设备子单元122(1)将停止滤去经由虚拟网络设备链路360接收到的要经由虚拟链路束250(1)发送的流量。如果虚拟链路束250(1)中被耦合到虚拟网络设备子单元122(2)的上行链路中的至少一条被恢复,则虚拟链路束250(1)将转变回正常操作模式,在所述正常操作模式中,虚拟网络设备子单元122(2)将经由虚拟链路束250(1)发送在本地接收到的分组,并且虚拟网络设备子单元122(1)将滤去经由虚拟网络设备链路360接收到的要经由虚拟链路束250(1)发送的分组。
虚拟网络设备集群
图4示出了包括四个虚拟网络设备子单元的虚拟网络设备集群。虚拟网络设备集群是包括两个或更多个虚拟网络设备子单元的虚拟网络设备。在此示例中,虚拟网络设备集群402是虚拟网络设备子单元122(1)-122(4)的集群。虚拟网络设备子单元122(1)-122(4)中的每一个都可以类似于图3的虚拟网络设备子单元。
虚拟网络设备集群中的每个虚拟网络设备子单元都通过虚拟网络设备链路耦合到同一虚拟网络设备集群中的至少一个其他虚拟网络设备子单元.在图4的示例中,虚拟网络设备子单元122(1)通过虚拟网络设备链路360(A)耦合到虚拟网络设备子单元122(2),并通过虚拟网络设备链路360(D)耦合到虚拟网络设备子单元122(3).虚拟网络设备子单元122(1)并不直接耦合到虚拟网络设备子单元122(4).虚拟网络设备子单元122(2)经由虚拟网络设备链路360(A)耦合到虚拟网络设备子单元122(1),并经由虚拟网络设备链路360(B)耦合到虚拟网络设备子单元122(4).虚拟网络设备子单元122(2)并不直接耦合到虚拟网络设备子单元122(3).虚拟网络设备子单元122(3)经由虚拟网络设备链路360(D)耦合到虚拟网络设备子单元122(1),并经由虚拟网络设备链路360(C)耦合到虚拟网络设备子单元122(4).虚拟网络设备子单元122(3)并不直接耦合到虚拟网络设备子单元122(2).虚拟网络设备子单元122(4)经由虚拟网络设备链路360(B)耦合到虚拟网络设备子单元122(2),并经由虚拟网络设备链路360(C)耦合到虚拟网络设备子单元122(3).虚拟网络设备子单元122(4)并不直接耦合到虚拟网络设备子单元122(1).
一对虚拟网络设备子单元之间的每条虚拟网络设备链路包括一条或多条链路。在此示例中,虚拟网络设备链路360(A)-360(D)中的每一个都包括两条链路。包括多条链路的虚拟网络设备链路360(A)-360(D)中的每一个都作为诸如EtherChannel(TM)之类的逻辑链路束而被操作。还要注意,虚拟网络设备链路也可被实现为将一个虚拟网络设备子单元耦合到若干个其他的虚拟网络设备子单元的虚拟链路束(例如,如图5B所示)。
在虚拟网络设备集群中提供多于两个虚拟网络设备子单元,这在某些情况下提供了额外的冗余度。例如,如果一个虚拟链路束包括通往图4中所示的四个虚拟网络设备子单元122(1)-122(4)中每一个的至少一条链路,则即使被耦合到其中三个虚拟网络设备子单元的链路发生故障,虚拟链路束也可继续进行操作。类似地,这种虚拟链路束即使四个虚拟网络设备子单元中的三个发生故障也可继续进行操作。
虚拟网络设备集群还使得可以增加虚拟网络设备中的接口数量。在某些情况下,希望增加使用虚拟网络设备实现的特定网络层处接口的数量。由于每个虚拟网络设备子单元的物理特性,可以包括在给定的虚拟网络设备子单元中的接口数量可能是有限的。在这种情况下,如果该网络层是从被限制为包括最多两个子单元的虚拟网络设备实现的,则将需要另一虚拟网络设备,以在网络层中提供所需数量的接口。这给用户带来了显著的成本增加,尤其是在仅需要少量额外接口(相对于每个虚拟网络设备中的总数)的情况下。另外,额外虚拟网络设备的使用会向网络层引入额外的管理点。此额外虚拟网络设备的使用还可能使试图防止整个网络中循环的路由算法(例如生成树算法)复杂化,这是因为这种路由算法将把每个虚拟网络设备作为单独的网络设备来处理。
通过使一个虚拟网络设备可以包括多于两个的虚拟网络设备子单元,减少或避免了以上问题。可以向虚拟网络设备集群添加虚拟网络设备子单元,以在特定网络层处提供额外的接口。然而,同时,额外的虚拟网络设备子单元将仍作为与原来的虚拟网络设备子单元相同的逻辑网络设备的一部分而工作。因此,不会影响网络中的管理点的数量。另外,在整个网络上运行的路由算法的行为将好像虚拟交换集群是单个逻辑网络设备一样。
在某些情况下,将虚拟网络设备扩展为多于两个虚拟网络设备子单元提供了比等同的一组多个协同定位的(co-located)虚拟网络设备所能提供的更有效的转发吞吐量,所述协同定位的虚拟网络设备中的每一个都仅包括两个虚拟网络设备子单元。另外,如果虚拟网络设备集群在每个接口束中使用每个虚拟网络设备子单元中的至少一个接口,则虚拟网络设备集群的最大转发容量与该虚拟网络设备集群中可以包括的虚拟网络设备子单元的最大数量成比例。
在一些实现了虚拟链路束的实施例中,附接于虚拟网络设备集群的每个虚拟链路束都被允许延伸到该虚拟网络设备集群中的多于两个不同的虚拟网络设备子单元.然而,一些虚拟链路束附接于虚拟网络设备中少于全部的虚拟网络设备子单元.
图5A-图5C示出了本发明可替换实施例的若干种其他虚拟交换集群配置。这些配置是作为示例而提供的。注意,在其他实施例中可以实现虚拟网络设备集群的多种其他配置。
如图5A所示,虚拟网络设备集群402包括N个虚拟网络设备子单元122(1)-122(N)。位于虚拟网络设备集群402的两“端”的虚拟网络设备子单元122(1)和122(N)中的每一个都耦合到一个其他的虚拟网络设备子单元。虚拟网络设备集群402中其余的虚拟网络设备子单元122(2)-122(N-1)(未示出)中的每一个都耦合到两个其他的虚拟网络设备子单元。虚拟网络设备子单元122(1)-122(N)被设置为彼此“串联”,以使得从虚拟网络设备的一“端”的设备发送到另一“端”的分组将经由该虚拟网络设备中的每个居间子单元而被传送。
图5B示出了包括六个虚拟网络设备子单元122(1)-122(6)的虚拟网络设备集群402。在此示例中,两个虚拟网络设备子单元122(3)和122(4)通过虚拟网络设备链路360(C)彼此耦合。虚拟网络设备子单元122(1)、122(2)、122(5)和122(6)中的每一个都通过虚拟网络设备链路360(A)、360(B)、360(D)和360(E)中相应的一条耦合到虚拟网络设备子单元122(3)和122(4)两者。如此示例所示,同一虚拟网络设备链路中的链路可以终止于不同的虚拟网络设备子单元。在一个实施例中,虚拟网络设备子单元122(1)、122(2)、122(5)和122(6)与虚拟网络设备子单元122(3)和122(4)进行交互,就好像虚拟网络设备子单元122(3)和122(4)是单个逻辑子单元一样。从而,虚拟网络设备集群可以被配置为具有若干个虚拟化级别。
在图5C中,示出了虚拟网络设备集群的另一示例。这里,虚拟网络设备集群402包括三个虚拟网络设备子单元122(1)-122(3)。在此示例中,虚拟网络设备集群402中的每个虚拟网络设备子单元都彼此耦合。虚拟网络设备子单元122(1)通过虚拟网络设备链路360(A)耦合到虚拟网络设备子单元122(2)。虚拟网络设备子单元122(2)通过虚拟网络设备链路360(B)耦合到虚拟网络设备子单元122(3)。虚拟网络设备子单元122(3)通过虚拟网络设备链路360(C)耦合到虚拟网络设备子单元122(1)。
每个虚拟网络设备集群402都作为单个逻辑网络设备而进行操作,而不管该虚拟网络设备集群内的虚拟网络设备子单元的内部配置如何。从而,像图3的虚拟网络设备一样,每个虚拟网络设备集群进行操作以确保多个虚拟网络设备子单元不会每个都向同一目的地设备发送一份相同的分组。另外,虚拟网络设备集群进行操作以防止分组在虚拟网络设备集群中“循环”。当虚拟网络设备子单元接收到一份已被该虚拟网络设备子单元转发过了的分组时,分组就“循环”了。
图6A示出了用虚拟网络子单元标识符来防止循环并确保虚拟网络设备集群不向同一目的地发送多份相同分组的虚拟网络设备集群的示例。具有诸如图4和图5A-图5C的不同配置的虚拟网络设备集群也可用虚拟网络子单元标识符来防止循环并确保虚拟网络设备集群不向同一目的地发送多份相同分组。
图6A的虚拟网络设备集群402包括多个虚拟网络设备子单元122(1)-122(3).在此示例中,虚拟网络设备集群402是耦合到若干个接入层网络设备120(1)-120(4)的分布层设备.虚拟网络设备链路360(A)将虚拟网络设备子单元122(1)耦合到虚拟网络设备子单元122(2).虚拟网络设备链路360(B)将虚拟网络设备子单元122(2)耦合到虚拟网络设备子单元122(3).
虚拟网络设备子单元122(1)具有若干个接口,包括被耦合到网络设备120(1)的端口P1和作为接口束IB1一部分的接口。虚拟网络设备子单元122(1)还包括被耦合到虚拟网络设备链路360(A)的接口V1。
虚拟网络设备子单元122(2)包括被耦合到虚拟网络设备链路360(A)的接口V2,以及被耦合到虚拟网络设备链路360(B)的接口V3。虚拟网络设备子单元122(2)还包括作为接口束IB1一部分的本地接口,以及被耦合到网络设备120(3)的接口P2。
虚拟网络设备子单元122(3)包括被耦合到虚拟网络设备链路360(B)的接口V4。虚拟网络设备子单元122(3)还包括被耦合到网络设备120(4)的接口P3。如图所示,虚拟网络设备子单元122(3)不包括接口束IB1中的本地接口(即,接口束IB1延伸到虚拟网络设备集群402中少于全部的虚拟网络设备子单元)。
注意,每个虚拟网络设备子单元122(1)-122(3)中的每个接口都可以包括若干个物理接口,并且耦合到虚拟网络设备子单元的每条链路都可以包括若干条物理链路。例如,虚拟网络设备链路360(A)可以是汇聚链路,从而接口V1可以包括若干个物理接口。
在图6A中,虚拟网络设备集群中的每个虚拟网络设备子单元被指定了唯一的虚拟网络设备子单元标识符。这里,向虚拟网络设备子单元122(1)指定了标识符“01”,向虚拟网络设备子单元122(2)指定了标识符“02”,向虚拟网络设备子单元122(3)指定了标识符“03”。这些标识符被用来跟踪虚拟网络设备集群中的哪些虚拟网络设备子单元已经处理了给定的分组。注意在可替换实施例中,向每个虚拟网络设备子单元指定若干个唯一标识符。例如,在一个实施例中,向每个虚拟网络设备子单元指定了每个本地接口一个标识符。在这种实施例中,这些唯一标识符可以既标识虚拟网络设备子单元又标识该虚拟网络设备子单元内的接口。
虚拟网络设备集群402所处理的每个分组都与所述标识符中的一个相关联。在一个实施例中,此关联是通过向虚拟网络设备集群402接收到的每个分组附加包含所示标识符中的一个的头部。包括在给定分组的头部中的特定标识符标识出虚拟网络设备集群402中第一个接收到该分组的虚拟网络设备子单元。例如,如果网络设备120(1)将一个分组发送到虚拟网络设备集群402的接口P1,则包括标识符“01”的头部将被附加到该分组上。
可以在分组进入和/或分组外出时,使标识符与虚拟网络设备子单元所接收到的分组相关联。例如,在一个实施例中,虚拟网络设备子单元122(1)中的每个接口(V1、P1和IB1中的本地接口)被配置为向经由该接口接收到的分组附加一个头部,以使得在进入虚拟网络设备子单元122(1)时将头部附加到分组上。在其他实施例中,虚拟网络设备子单元122(1)中的每个接口在分组被从该接口发送时向这些分组附加头部。所述头部除了虚拟网络设备子单元标识符之外,还可以包括其他信息。例如,头部还可以包括标识出最初接收到分组的接口的信息和/或标识出对该分组执行的查找结果的信息。注意在一个实施例中,如果还未在分组和标识符之间创建关联,则诸如接口V1之类的通往虚拟网络设备链路的接口将接收到的分组与标识符相关联(通过向该分组附加头部或者通过更新已有的头部)。
在一个实施例中,某些接口不向分组附加头部.在这种实施例中,另一接口向经由接口中无法向分组附加头部的一个接口接收到的分组附加适当的头部,即使该分组经由不同的虚拟网络设备子单元进入虚拟网络设备集群402时也是如此.例如,如果接口P1无法向从网络设备120(1)接收到的分组附加头部,并且如果该分组被转发到虚拟网络设备子单元122(2),则接口V2响应于对该分组的接收而向该分组附加头部.该头部包括标识符“01”,以指示该分组是经由虚拟网络设备子单元122(1)进入虚拟网络设备集群402的.可替换地,如果虚拟网络设备子单元122(1)的接口V1可以向离开接口V1的分组附加头部,则接口V1在该分组要被向虚拟网络设备子单元122(2)发送时向该分组附加头部.
在通过虚拟网络设备集群402转发分组时,保持标识符和分组之间的关联。从而,如果一个分组被经由端口P1接收然后转发到虚拟网络设备子单元122(2)和122(3),则包括标识符“01”的头部也会在整个虚拟网络设备集群402中与该分组一起被转发。当分组离开虚拟网络设备集群402时,头部被去除。
每个虚拟网络设备子单元使用标识符来确定是否可经由特定接口来发送分组。例如,诸如接口V1-V4之类的被耦合到虚拟网络设备链路的接口使用标识符来确定是否允许将特定分组经由该接口发送。如果与标识符“01”相关联的分组要经由接口V2而被发送,则接口V2使用该头部来检测到该分组已被虚拟网络设备子单元122(1)转发过。因此,接口V2可以通过将该分组从要经由接口V2发送的分组流中滤去,来防止将该分组循环回虚拟网络设备子单元122(1)。
图6B示出了图6A的虚拟网络设备集群402中的每个接口可以使用的进入标识符(ID)设定和外出过滤器。在此示例中,假设在分组进入时向分组附加了头部,所述头部中的每一个都包含适当的虚拟网络设备子单元标识符。另外,如果接口无法在分组中包括标识符,则被附加到该分组上的头部将具有指示出仍需将具体标识符值与该分组相关联的值(在此示例中是“00”)。
在图6B的实施例中,接口将从要经由该接口发送的输出流中滤去分组,除非与该分组相关联的标识符处于“允许”标识符的列表上。注意在可替换的实施例中,接口可以使用“不允许”标识符的列表来将分组从要经由该接口发送的输出流中滤去。
表中的“进入ID设定”列示出了将与经由特定接口接收到的分组相关联的虚拟网络设备子单元标识符的值。如上所述,可以通过向分组添加包括标识符的头部,将该标识符与该分组相关联。如图所示,标识符“01”将与经由接口P1接收到的分组相关联。标识符“02”将与经由接口P2接收到的分组相关联。标识符“03”将与经由接口P3接收到的分组相关联。如果接收接口不能生成适当的头部,则由特定接口P1-P3在该接口接收到分组时,或者由诸如接口V1-V4之一的另一组件(例如,如下所述),来创建关联。
经由虚拟网络设备子单元122(1)的作为接口束IB1一部分的接口接收到的分组将与标识符“01”相关联。类似地,经由虚拟网络设备子单元122(2)的作为接口束IB1一部分的接口接收到的分组将与标识符“02”相关联。
如果具体标识符值还未与经由虚拟网络设备链路接收到的分组相关联,则将这些分组与标识符相关联。在此示例中,如果标识符值“00”与一个分组相关联,所述值“00”指示出需要将具体的标识符值(即实际上标识出虚拟网络设备子单元的值)与该分组相关联。值“00”是非具体的(在此示例中),这是因为值“00”未标识出虚拟网络设备子单元122(1)-122(3)中特定的一个。
例如,如果标识符与分组的关联由进入接口执行,并且如果某些进入接口无法(例如由于这些进入接口缺少某些功能)将具体标识符值与分组相关联,则非具体值可能与分组相关联。例如,如果接口P1-P3无法生成具体标识符值,则非具体标识符值“00”将与经由接口P1-P3接收到的分组相关联。如果经由接口P1-P3接收到的分组被转发到另一虚拟网络设备子单元,则当该分组经由虚拟网络设备链路被接收到时,将具体标识符值与该分组相关联。注意,与具体标识符值“01”、“02”和“03”不同,非具体标识符值“00”在每个不同的虚拟网络设备子单元中具有不同的含义。另外,非具体标识符值“00”仅被用来标识给定的虚拟网络设备子单元内的本地接口。当在机壳间转移时,非具体标识符值“00”的含义(即由非具体标识符值“00”标识的接口)被重新指定。
从而,如果一个分组与“00”相关联,则该标识符的含义根据哪个虚拟网络设备子单元当前正在处理该分组而变化。例如,虚拟网络设备子单元122(1)内仅有的与非具体标识符值“00”相关联的分组(除了任何经由接口V1进入的这种分组以外,因为这些分组将被接口V1与具体标识符相关联)是经由虚拟网络设备子单元122(1)进入虚拟网络设备集群402的分组。类似地,虚拟网络设备子单元122(2)内仅有的与非具体标识符值“00”相关联的分组(同样,除了任何经由接口V2或V3之一进入的这种分组以外,因为这些分组将被接口V2和V3与具体标识符相关联)是经由虚拟网络设备子单元122(2)进入虚拟网络设备集群402的分组。最后,虚拟网络设备子单元122(3)内仅有的与非具体标识符值“00”相关联的分组(除了任何经由接口V4进入的这种分组以外,因为这些分组将被接口V4与具体标识符相关联)是经由虚拟网络设备子单元122(3)进入虚拟网络设备集群402的分组。
如图6B所示,如果接口V1接收到与标识符值“00”相关联的分组,则接口V1将该分组与标识符“02”相关联,以指示出该分组是经由虚拟网络设备子单元122(2)进入虚拟网络设备集群402的。类似地,如果接口V2接收到与标识符值“00”相关联的分组,则接口V2将该分组与标识符“01”相关联,以指示出该分组最初是经由虚拟网络设备子单元122(2)进入虚拟网络设备集群402的。如果接口V3接收到与标识符值“00”相关联的分组,则接口V3将该分组与标识符“02”相关联。如果接口V4接收到与标识符值“00”相关联的分组,则接口V4将该分组与标识符“03”相关联。当接口V1-V3接收到以与具体标识符值相关联的分组时,接口V1-V3将不更新这些具体标识符值。
表中的“外出过滤器”列示出了允许哪些分组经由特定接口被发送。不允许经由特定接口发送的分组将被从要经由该接口发送的输出流中滤去。在一些实施例中,虚拟网络设备子单元122(1)-122(3)中的每一个内的每个接口都使用寄存器来存储此外出过滤器信息。寄存器存储位图(bitmap),在该位图中,每个位与虚拟网络设备子单元标识符的一个可能的值相关联。当要从一个接口输出分组时,该接口将使用与该分组相关联的标识符来选择寄存器中的位。例如,如果该分组与标识符值“02”相关联,则接口将选择与标识符值“02”相关联的位。接口将基于所选位的值,从要经由该接口发送的输出流中过滤分组。例如,接口将把分组从输出流中滤去,除非与标识符值“02”相关联的位被设置为特定值(例如在图6B的表中是1)。
在此示例中,与标识符“00”、“01”、“02”和“03”相关联的分组被允许经由接口P1-P3输出.这表明,允许分组从这些接口输出,无论这些分组是从何处进入虚拟网络设备集群402的.这是合适的,因为接口P1-P3中的每一个是仅有的将虚拟网络设备集群402耦合到特定网络设备的接口.因此,不存在另一虚拟网络设备子单元中的另一接口已经将分组发送到被耦合到接口P1-P3的网络设备之一的风险.例如,由于接口P3是仅有的将虚拟网络设备集群402耦合到网络设备120(4)的接口,因此不存在虚拟网络设备子单元122(1)和122(2)将分组发送到网络设备120(4)的通路.因此,接口P3不需要将经由虚拟网络设备子单元122(1)和122(2)接收到的分组从要经由接口P3发送的输出流中滤去.
接口束IB1中包括有两个接口。这些接口中的每一个都具有包括该接口的虚拟网络设备子单元所专用的不同的外出过滤器设定。例如,包括在虚拟网络设备子单元122(1)中的本地接口将允许发送与标识符值“00”和“01”相关联的分组,但将滤去与标识符值“02”和“03”相关联的分组。这表明,虚拟网络设备子单元122(1)中的本地接口将仅发送经由虚拟网络设备子单元122(1)进入虚拟网络设备集群402的分组。类似地,虚拟网络设备子单元122(2)中的本地接口将仅发送经由虚拟网络设备子单元122(2)和122(3)进入虚拟网络设备集群402的分组。通过向允许从接口束IB1的每个接口发送的分组施加这些约束,不存在从两个接口发送一份相同分组的机会。
接口V1允许经由虚拟网络设备链路360(A)发送与标识符“00”和“01”相关联的分组。这表明,如果分组是经由虚拟网络设备子单元122(1)进入虚拟网络设备集群402的,则接口V1将把这些分组发送到虚拟网络设备子单元122(2)。然而,如果任何分组已被虚拟网络设备子单元122(2)转发过,则接口V1将不会允许这些分组被发送回虚拟网络设备子单元122(2)。如图6A所示,经由虚拟网络设备子单元122(2)或122(3)进入虚拟网络设备集群402的分组到达虚拟网络设备子单元122(1)的唯一通路是经由虚拟网络设备链路360(A)。因此,接口V1将与标识符“02”和“03”相关联的分组从输出流中滤去,以防止这些分组“循环”回虚拟网络设备子单元122(2)。由于类似的原因,接口V4滤去与标识符“02”和“01”相关联的分组而不经由接口V4发送。
接口V2滤去与标识符“01”相关联的分组,并允许其他分组(与标识符“00”、“02”和“03”相关联的分组)经由接口V2被发送到虚拟网络设备子单元122(2)。从而,接口V2将防止经由虚拟网络设备子单元122(1)进入虚拟网络设备集群402的分组循环回虚拟网络设备子单元122(1),但将允许经由虚拟网络设备子单元122(2)和122(3)进入虚拟网络设备集群的分组被发送到虚拟网络设备子单元122(1)。类似地,接口V3允许与标识符“00”、“01”和“02”相关联的分组经由虚拟网络设备链路360(B)被发送到虚拟网络设备子单元122(3),但防止与标识符“03”相关联的分组循环回虚拟网络设备子单元122(3)。
虽然以上示例集中于虚拟网络设备集群402如何处理数据分组,但也可使用相同的技术来处理在虚拟网络设备子单元122(1)-122(3)之间发送的控制分组.例如,虚拟网络设备子单元122(1)-122(3)中的每一个都可以执行以太网转发.虚拟网络设备子单元122(1)-122(3)向彼此发送MAC通知消息以保持在每个虚拟网络设备子单元中维护的转发表之间的一致性.当虚拟网络设备子单元最初生成MAC通知消息时,该MAC通知消息被与非具体标识符值(例如在以上示例中是“00”)相关联.如果该MAC通知消息被发送到另一虚拟网络设备子单元,则虚拟网络设备子单元随后以与使具体标识符与数据分组相关联相同的方式,使具体标识符值与MAC通知相关联.如果虚拟网络设备子单元122(2)经由虚拟网络设备链路360(A)接收到由虚拟网络设备子单元122(1)生成的与非具体标识符值相关联的MAC通知,则虚拟网络设备子单元122(2)将该MAC通知与标识符“01”相关联.如果虚拟网络设备子单元122(2)随后将该MAC通知发送到虚拟网络设备子单元122(3),则保持与标识符“01”的关联.从而,与MAC通知相关联的标识符值被设置为标识出生成该MAC通知的虚拟网络设备子单元的具体值.此标识符值被用来过滤来自某些接口的MAC通知,以防止虚拟网络设备集群内的循环.
在一个实施例中,虚拟网络设备集群402中每个接口的进入ID设定和外出过滤器值是由集中式控制器生成的。例如,虚拟网络设备子单元122(1)可以被指定为虚拟网络设备集群402中的“基本”虚拟网络设备子单元。基本虚拟网络设备子单元所执行的任务之一是为虚拟网络设备集群402中的每个接口生成进入ID设定和外出过滤器值。如果基本虚拟网络设备子单元发生故障,则其他虚拟网络设备子单元之一将担任基本虚拟网络设备子单元的角色。
图6C示出了虚拟网络设备子单元的接口600(其表示端口、上行链路接口或通往虚拟网络设备链路的接口)的示例。接口600使用外出过滤器值来过滤要经由接口600从虚拟网络设备子单元发送的分组。如图所示,接口600包括过滤单元610和外出过滤器值存储装置620。外出过滤器值存储装置620存储外出过滤器值,例如在图6B的“外出过滤器”列中所示的值(例如是由基本虚拟网络设备子单元生成并提供给接口600的)。外出过滤器值存储装置620可以是寄存器、存储单元,或其他用于存储适当的外出过滤器值的存储区域。过滤单元610将与每个分组相关联的信息和存储在外出过滤器值存储装置620中的外出过滤器值结合起来使用,以确定每个分组是否应被允许经由接口输出。过滤单元610接收外出分组流650。外出分组流650由与接口600位于同一虚拟网络设备子单元内的转发引擎发送到接口600。如果给定的分组被允许从接口600输出,则过滤单元610允许该分组被从接口600输出到链路上,作为经过滤的外出分组流660的一部分。如果基于与给定的分组相关联的信息和存储在外出过滤器值存储装置620中的信息,确定该分组不被允许从接口600输出,则过滤单元610禁止该分组经由接口600被作为经过滤的外出分组流660的一部分输出(例如,通过丢弃该份分组)。
接口600还包括进入标识符(ID)值存储装置630(例如寄存器或其他存储区域),以及标识符单元640。如果具体的标识符值还未与输入的分组相关联,则在该分组进入虚拟网络设备子单元时,进入标识符值存储装置630存储应与该输入的分组相关联的标识符值。标识符单元640使进入标识符值存储装置630中的值与进入分组流670中还未与具体进入标识符相关联的每个分组相关联。因此,进入分组流680中的每个分组都已与具体的标识符相关联。
图7是示出了在虚拟交换集群中转发分组的方式的流程图。在710,虚拟网络设备集群接收分组。如上所述,虚拟网络设备集群包括集体充当单个逻辑设备的若干个虚拟网络设备子单元。只要包括在该虚拟网络设备集群中的虚拟网络设备子单元接收到来自不是该虚拟网络设备集群一部分的设备的分组,该虚拟网络设备集群就接收到分组。
在720,使分组与第一个接收到该分组的虚拟网络设备子单元的标识符相关联.换言之,使该分组与标识出虚拟网络设备子单元之一的值相关联.所标识的虚拟网络设备子单元是该分组进入虚拟网络设备集群的子单元.标识符可由第一个接收到分组的接口生成.可替换地,标识符可以由将分组输出到同一虚拟网络设备集群内另一虚拟网络设备子单元的接口来生成.作为另一种替换,标识符可以由另一虚拟网络设备子单元内的接口生成,所述的另一虚拟网络设备子单元从所标识的虚拟网络设备子单元接收到所述分组.
将分组与第一个接收到该分组的虚拟网络设备子单元相关联可能涉及向分组附加头部。该头部包括适当的虚拟网络设备子单元的标识符。
在730,基于相关联的标识符,从要经由虚拟网络设备集群的接口发送的分组流中过滤分组。根据相关联的标识符标识出哪个虚拟网络设备子单元来从分组流中过滤分组。例如,发送分组所经由的接口可以是接口束的一部分,所述接口束包括多于一个虚拟网络设备中的接口。接口将经由除了包括该接口的虚拟网络设备子单元之外的任何虚拟网络设备子单元进入虚拟网络设备集群的分组滤去,以防止经由接口束发送多份该分组。
在一个实施例中,从分组流中过滤分组涉及访问与接口相关联的一组外出过滤器设定。例如,接口的外出过滤器设定可以被存储在寄存器中,所述寄存器对可与分组相关联的每个可能的标识符值包括一个位。该位的值指示出与特定标识符值相关联的分组是否可从接口中输出。例如,如果分组的标识符具有值“01”,并且如果与标识符值“01”相关联的位被设置为值“1”,则允许该分组从接口中输出。而如果该位被清除(即如果该位的值为零),则无法将该分组从接口中输出。因此,从要从接口输出的分组流中滤去该分组。
如上所述,计算各种外出过滤器设定(用于确定是否可经由特定接口发送分组),以防止分组在虚拟网络设备集群内循环。可以如此生成这些外出过滤器设定,以使得每个分组遵循虚拟网络设备集群内的生成树。在一个实施例中,每个虚拟网络设备集群计算一个生成树。在其他实施例中,如下所述,每个虚拟网络设备集群计算若干个生成树。
每个虚拟网络设备集群多个生成树
在虚拟网络设备集群中,每个虚拟网络设备子单元都提供进入虚拟网络设备集群的可能的进入点。每个生成树都与一个不同于其他生成树的进入点(或一组不同的进入点)相关联。当分组经由特定的进入点进入虚拟网络设备集群时,标识出该进入点的信息与该分组相关联。例如,如上所述,虚拟网络设备子单元标识符可以与该分组相关联。然后,以和与分组进入虚拟网络设备集群的进入点相关联的生成树一致的方式,通过虚拟网络设备集群转发分组。根据生成树来转发分组,这防止了分组在虚拟网络设备集群内“循环”,这是因为生成树阻塞一对给定的虚拟网络设备子单元之间除了一条路径之外的所有路径。
图8A-图8D每个都示出了被用来通过图4的虚拟网络设备集群传送分组的不同的生成树。在图8A-图8D中,虚拟网络设备集群402包括虚拟网络设备子单元122(1)-122(4)。虚拟网络设备链路360(A)耦合虚拟网络设备子单元122(1)和122(2)。虚拟网络设备链路360(B)耦合虚拟网络设备子单元122(2)和122(4)。虚拟网络设备链路360(C)耦合虚拟网络设备子单元122(3)和122(4)。虚拟网络设备链路360(D)耦合虚拟网络设备子单元122(3)和122(1)。
图8A示出了生成树800A。虚拟网络设备子单元122(1)是生成树800A的根(root)。在此示例中,生成树800A被用来传送经由虚拟网络设备子单元122(1)进入虚拟网络设备集群402的分组。用来传送经由特定进入点进入的分组的生成树被描述为与该进入点相关联。从而,生成树800A与虚拟网络设备子单元122(1)相关联。
使用生成树800A涉及基于特定接口是否被生成树阻塞,来确定是否可以经由该接口传送分组.用来表示生成树800A的箭头示出了可以经由非阻塞接口传送分组(其是经由虚拟网络设备子单元122(1)进入虚拟网络设备集群402的)的路径.当虚拟网络设备子单元对给定的分组进行转发和/或路由时,该分组将被基于转发或路由的出口而发送到该虚拟网络设备子单元内的一个或多个接口.然后,生成树800A被用来确定该分组是否将从该分组所被发送到的每个接口中输出.在一个实施例中,耦合到虚拟网络设备链路的每个接口被编程,以从该接口的输出流中过滤分组(其是经由虚拟网络设备子单元122(1)进入虚拟网络设备集群402的),以使得分组将仅被沿生成树800A而传送.例如,经由虚拟网络设备链路360(B)发送分组是与生成树800A不一致的.因此,虚拟网络设备子单元122(2)中耦合到虚拟网络设备链路360(B)的接口会将经由虚拟网络设备子单元122(1)进入的所有分组从该接口的输出流中滤去.
如图所示,经由虚拟网络设备子单元122(1)进入的分组经由虚拟网络设备链路360(A)被转发到虚拟网络设备子单元122(2),经由虚拟网络设备链路360(D)被转发到虚拟网络设备子单元122(3),并经由虚拟网络设备链路360(D)和360(C)被转发到虚拟网络设备子单元122(4)。然而,经由虚拟网络设备子单元122(1)进入虚拟网络设备集群402的分组不被经由虚拟网络设备链路360(B)传送。另外,经由虚拟网络设备子单元122(1)进入的分组仅可被沿图8A中的箭头所示的方向传送。从而,经由虚拟网络设备子单元122(1)进入虚拟网络设备集群402的分组不能被另一虚拟网络设备子单元122(2)-122(3)发送回虚拟网络设备子单元122(1)。通过阻塞虚拟网络设备链路360(B)的使用并防止分组经由其他虚拟网络设备链路360(A)、360(C)和360(D)被发送回虚拟网络设备子单元122(1),防止了循环(至少对于经由虚拟网络设备子单元122(1)进入虚拟网络设备集群402的分组)。注意,不用生成树800A来确定是否可经由除了耦合到虚拟网络设备链路的那些接口之外的接口传送分组。
图8B示出了生成树800B,该生成树被用来传送经由虚拟网络设备子单元122(2)进入虚拟网络设备集群402的分组。虚拟网络设备子单元122(2)是生成树800B的根。如图所示,经由虚拟网络设备子单元122(2)进入的分组可经由虚拟网络设备链路360(A)被转发到虚拟网络设备子单元122(1),经由虚拟网络设备链路360(B)被转发到虚拟网络设备子单元122(4),并经由虚拟网络设备链路360(B)和360(C)被转发到虚拟网络设备子单元122(3)。然而,经由虚拟网络设备子单元122(2)进入虚拟网络设备集群402的分组不被经由虚拟网络设备链路360(D)传送。以与生成树800A防止经由虚拟网络设备子单元122(1)进入的分组在虚拟网络设备集群402内循环相同的方式,生成树800B防止经由虚拟网络设备子单元122(2)进入的分组循环。
图8C示出了生成树800C.生成树800C被用来传送经由虚拟网络设备子单元122(3)进入虚拟网络设备集群402的分组.虚拟网络设备子单元122(3)是生成树800B的根.如图所示,经由虚拟网络设备子单元122(3)进入的分组可经由虚拟网络设备链路360(D)被转发到虚拟网络设备子单元122(1),经由虚拟网络设备链路360(C)被转发到虚拟网络设备子单元122(4),并经由虚拟网络设备链路360(D)和360(A)被转发到虚拟网络设备子单元122(2).然而,经由虚拟网络设备子单元122(3)进入虚拟网络设备集群402的分组不被经由虚拟网络设备链路360(B)传送.生成树800C防止经由虚拟网络设备子单元122(3)进入的分组循环.注意,虽然生成树800A和800C在某些方面类似(二者都防止经由各自的进入点进入的分组经由虚拟网络设备链路360(B)被发送,并且都允许在其他虚拟网络设备链路上传送分组),但是生成树800A和800C具有由于每个生成树中使用不同的根而引起的若干区别.例如,根据生成树800C传送的分组可以从虚拟网络设备子单元122(3)经由虚拟网络设备链路360(D)而被传送到虚拟网络设备子单元122(1),但根据生成树800D传送的分组无法沿该路径被传送.
图8D示出了生成树800D,该生成树被用来传送经由虚拟网络设备子单元122(4)进入虚拟网络设备集群402的分组。虚拟网络设备子单元122(4)是生成树800B的根。如图所示,经由虚拟网络设备子单元122(4)进入的分组可经由虚拟网络设备链路360(C)被转发到虚拟网络设备子单元122(3),经由虚拟网络设备链路360(B)被转发到虚拟网络设备子单元122(2),并经由虚拟网络设备链路360(B)和360(A)被转发到虚拟网络设备子单元122(1)。然而,经由虚拟网络设备子单元122(4)进入虚拟网络设备集群402的分组不被经由虚拟网络设备链路360(D)传送。生成树800D防止经由虚拟网络设备子单元122(4)进入的分组循环。
生成树800A-800D中的每一个都是该生成树与之相关联的进入点的最小生成树。最小生成树是使用最短可能路径将分组从进入点发送到每个可能的外出点的生成树。在此示例中,可能的外出点包括虚拟网络设备集群402内的虚拟网络设备子单元122(1)-122(4)中的任何一个。通过为每个进入点使用不同的生成树,经由任意进入点进入的分组将被经由最小生成树转发。这与用一个生成树来转发进入虚拟网络设备子单元122(1)的所有分组时可能的情况相比,提供了更高的效率。例如,如果用生成树800A来转发进入虚拟网络设备集群402的所有分组,则经由虚拟网络设备子单元122(4)进入并要被转发到虚拟网络设备子单元122(2)的分组将不得不被转发到生成树800A的根,即虚拟网络设备子单元122(1),然后经由生成树800A(即,经由虚拟网络设备链路360(A))转发到虚拟网络设备子单元122(2)。这将导致在进入点和外出点之间的最短距离为一个跳(hop)时,分组被经由三个跳(虚拟网络设备链路360(C)、360(D)和360(A))发送。相反,如果用生成树800D来传送经由虚拟网络设备子单元122(4)接收到的分组,则上述分组将沿最短路径被发送。
如上所述,在一些实施例中,被称为基本虚拟网络设备子单元的一个虚拟网络设备子单元计算要在虚拟网络设备集群402中使用的所有生成树。使用诸如Prim、Kruskal或Dijkstra的算法之类的生成树算法来计算生成树(注意,可以执行生成树计算而无需实现生成树协议)。在一些实施例中,向虚拟网络设备集群中的每个虚拟网络设备链路指定了权重。被指定给虚拟网络设备链路的权重是基于该虚拟网络设备链路的带宽的。基本虚拟网络设备子单元在生成树计算中使用所指定的权重。在一个实施例中,基本虚拟网络设备子单元在计算每个生成树之前调整权重,以确保虚拟网络设备链路之间适当的负载分布。
在其他实施例中,不是让一个虚拟网络设备子单元计算所有生成树,而是每个虚拟网络设备子单元计算用于该虚拟网络设备子单元的生成树.例如,虚拟网络设备子单元122(1)计算生成树800A,虚拟网络设备子单元122(2)计算生成树800B,等等.每个虚拟网络设备子单元可以通过以该虚拟网络设备子单元作为根运行生成树协议,来计算用于该虚拟网络设备子单元的单独的生成树.例如,虚拟网络设备子单元122(1)通过以虚拟网络设备子单元122(1)作为根来运行生成树协议,从而计算生成树800A.一旦计算出了生成树,每个虚拟网络设备子单元随后就计算用于该生成树的适当的外出过滤器设定,并将这些外出过滤器设定分发到虚拟网络设备内的其他虚拟网络设备子单元.
在一些实施例中,通过使用诸如图6B所示的外出过滤器设定的用于被耦合到虚拟网络设备链路的每个接口的外出过滤器设定,根据不同的生成树来传送分组。在为每个进入点计算了生成树之后,计算用于虚拟网络设备集群402内每个接口的外出过滤器设定,以使得经由给定的进入点进入的分组以与该进入点所关联的生成树一致的方式被传送。用于给定的接口的外出过滤器设定包括指示出经由特定进入点进入虚拟网络设备集群的分组是否可从该接口输出的信息。例如,如果与该特定进入点相关联的生成树阻塞了该接口,则用于该接口的外出过滤器设定将指示出,经由该特定进入点进入的分组不能从该接口输出。
使用上述技术中的一种,使每个分组与标识符值相关联,该标识符值标识出分组的进入点。然后,使用这些标识符值和外出过滤器设定来确定是否可从给定的接口转发特定分组。如果一个分组被发送到一个接口,则如果该接口的外出过滤器设定指示出具有该分组的进入点(其由与分组相关联的标识符值标识出来)的分组被允许从该接口输出,则该分组将输出该分组。注意,至少在每个生成树与单个进入点相关联的实施例中,用于标识分组进入点的唯一标识符还标识出特定的生成树(即与所标识的进入点相关联的生成树)。
作为可以如何用外出过滤器设定来根据特定生成树转发分组的示例,虚拟网络设备子单元122(3)内的转发引擎将分组发送到被耦合到虚拟网络设备链路360(C)的接口。该接口访问与该分组相关联的标识符值,以确定该分组进入虚拟网络设备集群402的进入点。如果该分组的进入点是虚拟网络设备子单元122(2),则根据生成树800B发送该分组。因此,该接口的外出设定将指示出不应经由该接口发送该分组,并且该接口将作为响应而将该分组从要经由该接口发送的分组流中滤去。而如果所述分组的进入点是虚拟网络设备子单元122(1)(从而要以与生成树800A一致的方式发送该分组),则该分组将不会被从要经由该接口发送的分组流中滤去。相反,允许该分组被从该接口中输出,这是因为经由虚拟网络设备链路360(C)发送该分组是与生成树800A一致的。
在一个实施例中,当特定的虚拟网络设备子单元转发分组时,该分组被发送到遍历该特定虚拟网络设备子单元的各个生成树的所有可能的路径中的接口。然后,给定分组进入虚拟网络设备集群所经由的进入点,使用外出过滤器设定来防止经由除了用于该分组的适当的生成树中的接口以外的接口发送该分组。
在一些实施例中,当任意虚拟网络设备链路发生故障时,被耦合到发生故障的虚拟网络设备链路的每个非基本虚拟网络设备子单元(即每个不负责生成树计算的虚拟网络设备子单元)将故障链路报告给基本虚拟网络设备子单元(或者报告给其他所有可以到达的虚拟网络设备子单元)。虽然在故障后,一些被耦合到故障链路的虚拟网络设备子单元可能无法与基本虚拟网络设备子单元通信,但虚拟交换集群被理想地配置以使得在故障后,被耦合到故障链路的虚拟网络设备子单元中的至少一个将仍能与基本虚拟网络设备子单元通信。
在接收到故障通知时,基本虚拟网络设备子单元重新计算所有受到影响的生成树.然后,基本虚拟网络设备子单元更新虚拟网络设备集群中的外出过滤器设定(如果需要的话),以使得外出过滤器设定与重新计算的生成树一致.为了避免在更新外出过滤器设定期间导致任何虚拟网络设备子单元无法与基本虚拟网络设备子单元通信,基本虚拟网络设备子单元在更新较远的虚拟网络设备子单元的外出过滤器设定之前更新最近的(例如就虚拟网络设备链路的数量而言)虚拟网络设备子单元的外出过滤器设定.例如,假设在链路故障后计算图8A的生成树,并且虚拟网络设备子单元122(1)是基本虚拟网络设备子单元.虚拟网络设备子单元122(1)首先更新虚拟网络设备子单元122(1)中的外出过滤器设定.然后,虚拟网络设备子单元122(1)更新虚拟网络设备子单元122(2)和122(3)中的外出过滤器设定,根据生成树800A,虚拟网络设备子单元122(2)和122(3)中的每一个都可以由基本虚拟网络设备子单元经由一条虚拟网络设备链路而到达.最后,虚拟网络设备子单元122(1)更新虚拟网络设备子单元122(4)中的外出过滤器设定,虚拟网络设备子单元122(4)可以由基本虚拟网络设备子单元122(1)经由两条虚拟网络设备链路而到达.基本虚拟网络设备子单元并行地更新处于生成树800A的相同“深度”的设备(例如,虚拟网络设备子单元122(2)和122(3)可以被并行地更新,虚拟网络设备子单元122(2)和122(3)中的每一个在生成树800A中距虚拟网络设备子单元122(1)都是一个虚拟网络设备链路的距离).应当注意,在一个实施例中,基本虚拟网络设备子单元仅对需要修改以与重新计算的生成树一致的外出过滤器设定进行修改.还要注意,类似的功能可以由多于一个虚拟网络设备子单元响应于故障而执行(例如,如果生成树计算是分布在虚拟网络设备子单元当中而非由一个基本虚拟网络设备子单元执行).
在一些实施例中,虚拟网络设备子单元122(1)-122(4)执行以太网转发。作为执行以太网转发的一部分,虚拟网络设备子单元通过将媒体访问控制(MAC)地址与标识出一个或多个接口的信息相关联,从而“得知”MAC地址。例如,以太网网络设备通过在转发表中向该MAC地址分配条目来得知MAC地址。所述条目包括标识出与MAC地址相关联的一个或多个接口。如果虚拟网络设备子单元得知了特定的MAC地址,则该虚拟网络设备子单元将把去往该MAC地址的分组转发到相关联的一个或多个接口。否则,如果还未得知MAC地址,则虚拟网络设备子单元将把分组洪泛扩散到该分组要被传送的VLAN中的所有接口(除了接收该分组所经由的接口以外)。
虚拟网络设备子单元响应于接收到具有作为源地址的该MAC地址的分组,将MAC地址与接口相关联。通常,以太网设备会将一个分组的源地址与接收该分组所经由的接口相关联。然而,在实现了若干不同的生成树的虚拟网络设备集群中,每个虚拟网络设备子单元以不同的方式得知经由虚拟网络设备链路接收到的分组的源地址。虚拟网络设备子单元不是将分组的源地址与通往虚拟网络设备链路的接口相关联,而是会将分组与该分组最初进入虚拟网络设备集群所经由的接口相关联。标识此接口的信息可以被承载在附加到该分组上的头部中。
图9A-图9C示出了如何通过图8A-图8D的虚拟网络设备集群402发送分组.如图9A所示,分组经由虚拟网络设备子单元122(1)的接口I1进入虚拟网络设备集群402.接口I1(或虚拟网络设备集群402的另一组件)向分组附加头部.该头部包括将接口I1标识为接收到该分组的接口的信息.所述头部还包括将虚拟网络设备子单元122(1)标识为该分组进入虚拟网络设备子单元122(1)所经由的进入点的信息.在此示例中,标识虚拟网络设备子单元122(1)的信息被接口I1包括在头部中.在其他实施例中,可以由虚拟网络设备集群402中的另一组件(例如虚拟网络设备子单元122(2)和122(3)中所包括的通往虚拟网络设备链路360A和360D的接口)将所述信息包括在头部中.
在此示例中,所述分组将被洪泛扩散,并且洪泛扩散分组被发送到虚拟网络设备集群402内的每个虚拟网络设备子单元。由于所述分组是经由虚拟网络设备子单元122(1)进入虚拟网络设备集群402的,因此该分组根据生成树800A(如图8A所示)被转发。如图9B所示,虚拟网络设备子单元内的转发引擎将分组和所附加的头部发送到被耦合到虚拟网络设备链路360(A)和360(D)的接口。给定分组的进入点是虚拟网络设备子单元122(1),每个接口的外出过滤器设定都指示出该分组可以被从该接口中输出。因此,该分组与生成树800A一致地分别经由虚拟网络设备链路360(A)和360(D)被输出到虚拟网络设备子单元122(2)和122(3)。
在图9C中,虚拟网络设备子单元122(2)已经从被附加到分组上的头部中抽取了标识接口I1的信息,并已将分组的源地址(SA)与接口I1相关联(而非将源地址与被耦合到虚拟网络设备链路360(A)的接口相关联)。类似地,虚拟网络设备子单元122(3)已将分组的源地址(SA)与接口I1相关联(而非将源地址与被耦合到虚拟网络设备链路360(D)的接口相关联)。如果I1是一个接口束的一部分,所述接口束还包括虚拟网络设备子单元122(2)和122(3)各自的至少一个接口,则虚拟网络设备子单元122(2)和122(3)将基于SA和I1之间的关联,将去往SA的后续分组经由该接口束内的本地接口转发(而非将这种分组转发到虚拟网络设备子单元122(1))。
如图9C所示,虚拟网络设备子单元122(3)内的转发引擎将分组发送到被耦合到虚拟网络设备链路360(C)的接口。此接口的外出过滤器设定指示出,允许经由虚拟网络设备子单元122(1)进入虚拟网络设备集群402的分组从该接口中输出。因此,与生成树800A一致地经由虚拟网络设备链路360(C)将分组和所附加的头部发送到虚拟网络设备子单元122(4)。
虚拟网络设备子单元122(2)内的转发引擎将分组发送到被耦合到虚拟网络设备链路360(B)的接口。然而,该接口响应于指示出该分组是经由虚拟网络设备子单元122(1)进入虚拟网络设备集群402的信息(位于被附加到分组的头部中),将所述分组从要经由虚拟网络设备链路360(B)发送的分组流中滤去。因此,与生成树800A一致,阻塞该分组而不从虚拟网络设备链路360(B)发送。
在以上示例中,对每个进入虚拟网络设备集群402的进入点仅计算一个生成树。然而,在其他实施例中,对每个进入点计算多个生成树(例如,可以在虚拟网络设备集群402中计算并使用若干个都以虚拟网络设备子单元122(1)作为根的生成树)。如果对每个进入点计算N个生成树,则在每个接口维护N组外出过滤器设定。算法(例如基于哈希散列的算法)为每个分组选择N值。在一个实施例中,算法的使用对不同生成树所定义的路径之间的流量进行负载平衡。
还要注意在一些实施例中,不为每个进入点计算不同的生成树.例如,在一个实施例中,虚拟网络设备集群包括8个进入点:进入点1-8(每个进入点是不同的虚拟网络设备子单元).为该虚拟网络设备集群计算4个不同的生成树A-D.这4个生成树中的每一个都与进入点中的2个相关联.例如,生成树A与进入点1和2相关联,生成树B与进入点3和4相关联,生成树C与进入点5和6相关联,生成树D与进入点7和8相关联.然后,以与相关联的生成树一致的方式,将经由特定的进入点接收到的分组通过虚拟网络设备集群进行转发.例如,经由进入点7接收到的分组将根据生成树D而被转发.类似地,经由进入点8接收到的分组也将以与生成树D一致的方式被转发.经由进入点5和6接收到的分组根据生成树C而被转发.经由进入点3或进入点4接收到的分组将类似地以与生成树B一致的方式被转发.经由进入点1和2接收到的分组以与生成树A一致的方式被转发.
每个虚拟网络设备子单元可以包括一个或多个类似于图6C的接口600的接口。例如,在一个实施例中,每个接口包括过滤单元和被耦合到过滤单元的外出过滤器值存储装置。外出过滤器值存储装置存储若干个外出过滤器值,其中每个值都标识出各自的一个生成树是否阻塞该接口。例如,外出过滤器值存储装置中的外出过滤器值可以标识出该接口是否被第一生成树阻塞,以及该接口是否被第二生成树阻塞,所述第一生成树与第一进入点相关联,所述第二生成树与第二进入点相关联。
每个网络多个生成树
除了虚拟网络设备集群以外的环境可以以与虚拟网络设备集群使用多个生成树相同的方式使用多个生成树。图10A-图10D示出了为进入网络的每个进入点计算一个不同的生成树的网络。在图10A-图10D中,网络1000包括4个网络设备1022(1)-1022(4)(注意,其他实施例可以包括与这里示出的不同数量的网络设备)。链路1060(A)将网络设备1022(1)耦合到网络设备1022(2)。链路1060(B)将网络设备1022(2)耦合到网络设备1022(4)。链路1060(C)将网络设备1022(4)耦合到网络设备1022(3)。链路1060(D)将网络设备1022(3)耦合到网络设备1022(1)。注意,虚拟网络设备集群可被认为是为进入网络的每个进入点计算一个不同的生成树的网络的一个示例。上述关于虚拟网络设备集群的技术适用于实现多个生成树的其他网络。
图10A示出了生成树1010A。网络设备1022(1)是生成树1010A的根。在此示例中,生成树1010A被用来传送经由网络设备1022(1)进入网络1000的分组。在整个此讨论中,将用于传送经由特定进入点进入网络1000的分组的生成树描述为与该进入点相关联。从而,生成树1010A与网络设备1022(1)相关联。
使用生成树1010A涉及基于网络100内的网络设备之一的特定接口是否被生成树所阻塞,来确定是否允许经由该接口传送分组。用来表示生成树1010A的箭头示出了可以经由非阻塞接口传送分组的路径。当网络设备对给定的分组进行转发和/或路由时,该分组将被基于该转发或路由的出口而发送到该网络设备内的一个或多个接口。然后,使用生成树1010A来确定是否将从该分组被发送到的每个接口输出该分组。在一个实施例中,每个接口被编程为从该接口的输出流中过滤分组,以使得经由网络设备1022(1)进入网络1000的分组将仅被沿生成树1010A传送。
如图所示,经由网络设备1022(1)进入的分组可经由链路1060(A)被转发到网络设备1022(2),经由链路1060(D)被转发到网络设备1022(3),并经由1060(D)和1060(C)被转发到网络设备1022(4).然而,经由网络设备1022(1)进入网络1000的分组不被经由链路1060(B)传送.另外,经由网络设备1022(1)进入的分组仅可被沿图10A的箭头所示的方向传送.从而,经由网络设备1022(1)进入网络1000的分组不能被另一网络设备1022(2)-1022(3)发送回网络设备1022(1).通过阻塞链路1060(B)的使用并防止分组经由其他链路1060(A)、1060(C)和1060(D)被发送回网络设备1022(1),防止了循环(至少对于经由网络设备1022(1)进入网络1000的分组).注意,不用生成树1010A来确定是否可经由除了耦合到将网络设备1022(1)-1022(4)彼此相连的链路的那些接口之外的接口传送分组.另外,不用生成树1010A来确定是否可以从特定接口中输出具有除了网络设备1022(1)以外的进入点的分组.
图10B示出了生成树1010B,该生成树被用来传送经由网络设备1022(2)进入网络1000的分组。网络设备1022(2)是生成树1010B的根。如图所示,经由网络设备1022(2)进入的分组被允许经由链路1060(A)被转发到网络设备1022(1),经由链路1060(B)被转发到网络设备1022(4),并经由1060(B)和1060(C)被转发到网络设备1022(3)。然而,经由网络设备1022(2)进入网络1000的分组不被经由链路1060(D)传送。以与生成树1010A防止经由网络设备1022(1)进入的分组在网络1000内循环相同的方式,生成树1010B防止经由网络设备1022(2)进入的分组在网络1000内循环。
图10C示出了生成树1010C。生成树1010C被用来传送经由网络设备1022(3)进入网络1000的分组。网络设备1022(3)是生成树1010C的根。经由网络设备1022(3)进入的分组被允许经由链路1060(D)被转发到网络设备1022(1),经由链路1060(C)被转发到网络设备1022(4),并经由1060(C)和1060(B)被转发到网络设备1022(2)。然而,经由网络设备1022(3)进入网络1000的分组不被经由链路1060(A)传送。生成树1010C防止经由网络设备1022(3)进入的分组循环。
图10D示出了生成树1010D,该生成树被用来传送经由网络设备1022(4)进入网络1000的分组。网络设备1022(4)是生成树1010D的根。经由网络设备1022(4)进入的分组被允许经由链路1060(C)被转发到网络设备1022(3),经由链路1060(B)被转发到网络设备1022(2),并经由1060(C)和1060(D)被转发到网络设备1022(1)。然而,经由网络设备1022(4)进入网络1000的分组不被经由链路1060(A)传送。生成树1010D防止经由网络设备1022(4)进入的分组在网络1000内循环。
在实现多个生成树的网络中,计算生成树的实体(或多个实体)知道网络的拓扑结构。例如,可以为了计算生成树而将网络设备1022(1)-1022(4)之一指定为“基本”网络设备。基本网络设备维护标识网络1000内的链路和网络设备的信息,以及标识所述链路和网络设备是如何互连的信息。此信息向基本网络设备提供了关于网络1000的拓扑结构的知识。在一个实施例中,将此信息提供给基本网络设备,作为基本网络设备对协议的参与的一部分,所述协议规定了对网络中所包括的每个网络设备的验证。
基本网络设备基于该基本网络设备对网络1000拓扑结构的知识,计算用于进入网络1000的不同进入点的生成树。然后,基本网络设备将与计算出的生成树一致的信息(例如外出过滤器设定)提供给其他每个网络设备。其他网络设备使用该信息,以与生成树一致的方式转发分组。
注意在其他实施例中,生成树计算分布在若干网络设备当中,而非由一个基本网络设备执行。例如,每个提供进入网络的进入点的网络设备都可以计算用于网络的生成树之一(例如,通过以该网络设备作为根来运行生成树协议)。在这种实施例中,也可以将对外出过滤器设定的计算分布在网络设备当中。
另外,网络1000内每个提供进入网络1000的进入点的网络设备都被指定了唯一标识符(或若干个唯一标识符).将经由特定进入点接收到的分组与该特定进入点的唯一标识符(或多个唯一标识符之一)相关联.例如,如上所述,可以向每个进入网络1000的分组附加头部.可替换地,可以通过将唯一标识符插入到被附加到分组上的L2头部中的特定Ethertype(以太网类型)字段中,将唯一标识符插入到被附加到分组上的多协议标签交换(MPLS)标签中,或者使用另一类似的机制,来将唯一标识符与分组相关联.
头部包含标识分组进入点的信息。另外,只要经由链路1060(A)-1060(D)之一接收到分组,网络设备1022(1)-1022(4)就将该分组的源地址与进入点(或与进入点内的接口)相关联,而非将源地址与被耦合到接收该分组所经由的链路的接口相关联。例如,网络设备1022(2)经由链路1060(A)接收到分组。被附加到分组的头部指示出,该分组是经由网络设备1022(1)的接口1进入网络1000的。因此,网络设备1022(2)将分组的源地址与网络设备1022(1)(或与接口1)相关联,而非将分组与网络设备1022(2)内耦合到链路1060(A)的接口相关联。如果网络设备1022(2)随后接收到去往该地址的分组,则网络设备1022(2)将基于该关联来转发该随后接收到的分组。
图11A示出了计算用于网络内的每个进入点的生成树,以及使用计算出的生成树来处理如何通过网络转发分组的方法。所述网络可以是互连的网络设备的任意关联。在一个实施例中,所述网络是第2层以太网网络。在另一实施例中,所述网络是虚拟网络设备集群。
在图11A的示例中,对网络内的每个进入点计算一个生成树。进入点是分组进入网络所经由的网络设备(即对于给定的分组,该分组的进入点是网络内第一个接收到该分组的网络设备)。在1110,选择还未对其计算生成树的进入点。然后,如1120所示,为所选择的进入点计算生成树。该生成树的根是所选择的进入点。如果在1130确定还未对网络中的每个进入点计算生成树,则选择另一进入点,并为新的进入点重复功能1110和1120。
在1140,基于在1120计算出的生成树,控制通过网络转发分组的方式。基于生成树控制如何通过网络转发分组可以涉及为网络内的每个接口生成一组外出过滤器值。每组外出过滤器值被提供给适当的接口,并且每个接口使用所提供的这组外出过滤器值,从要经由该接口发送的分组流中过滤分组。一组外出过滤器值指示出允许经由特定接口发送哪些分组。具体而言,外出过滤器值指示出经由特定进入点进入网络的分组是否被允许经由特定接口发送。如果一特定接口的外出过滤器值指示出具有某个进入点的分组不应被从该接口输出,则该接口将从要经由该接口输出的分组流中滤去经由该进入点接收到的分组。
图11B示出了根据与特定进入点相关联的生成树来转发分组的方式。在1150,接收到分组。将该分组与标识特定进入点的信息相关联。例如,在一些实施例中,向分组添加头部,该头部包括标识出该分组进入网络所经由的进入点的信息。如1160所示,所关联的信息被用来标识该分组进入网络所经由的进入点。
在1170,根据与在1160标识的进入点相关联的生成树,通过网络发送分组。根据特定的生成树发送分组可以涉及禁止将该分组从某些接口输出,而允许将该分组从其他接口输出,以使得仅在与生成树一致的路径上发送该分组。在一些实施例中,如上所述,使用外出过滤器值,通过将分组从要经由特定接口发送的输出流中滤去,来禁止将这些分组从该特定接口输出。
实现了多个生成树的网络中的每个网络设备都可以包括一个和多个类似于图6C的接口600的接口.例如,在一个实施例中,每个接口包括过滤单元和耦合到过滤单元的外出过滤器值存储装置.外出过滤器值存储装置存储若干个外出过滤器值,其中每个值都标识出各自的一个生成树是否阻塞该接口.例如,外出过滤器值存储装置中的外出过滤器值可以标识出该接口是否被第一生成树阻塞,以及该接口是否被第二生成树阻塞,所述第一生成树与第一进入点相关联,所述第二生成树与第二进入点相关联.
注意在一些实施例中,将虚拟网络设备子单元作为虚拟网络设备集群的一部分进行操作所需的功能被实现在该虚拟网络设备子单元上所执行的软件中。例如,每个虚拟网络设备子单元、网络设备,和/或附属网络设备可以包括计算机可读介质,在该介质上存储了可用于控制和/或使用虚拟链路束的程序指令和/或数据。类似地,将网络设备(或虚拟网络设备子单元)作为实现了多个生成树的网络(或虚拟网络设备集群)的一部分进行操作所需的功能可以被实现在每个网络设备上所执行的软件中。例如,网络中的基本网络设备可以包括计算机可读介质,在该介质上存储了可用于计算多个生成树和与多个生成树相对应的外出过滤器值的程序指令。典型的计算机可读介质包括CD(紧致盘)、DVD(数字多功能盘)、硬盘、光盘、磁带设备、软盘,以及存储器(例如各种RAM(随机存取存储器)、ROM(只读存储器)、闪速存储器、MEMS(微机电系统)存储器等等)。这种网络设备可包括被配置为执行存储在计算机可读介质中的程序指令的一个或多个处理器(例如微处理器、PLD(可编程逻辑器件)或ASIC(专用集成电路))。程序指令可包括用来执行对虚拟链路束的控制协议处理的程序指令,以及用来经由虚拟链路束中所包括的链路选择性地转发分组(例如,基于分组是否是经由虚拟网络设备链路接收到的)的程序指令。可以经由诸如因特网之类的网络或在承载介质上将程序指令和/或数据转移到虚拟网络设备子单元、网络设备,和/或附属网络设备上。在一些实施例中,计算机可读介质是诸如网络和/或无线链路之类的在其上传送诸如电、电磁或数字信号之类的信号的承载介质,在所述信号上编码了数据和指令。
公开了用于为网络计算若干不同的生成树的技术。所述网络具有分组可以经由来进入网络的若干不同的进入点。每个生成树与(至少)一个进入点相关联,以使得不同的生成树与不同的进入点相关联。根据与特定进入点相关联的生成树,将经由该特定进入点进入网络的分组通过网络转发。
在一个实施例中,一种方法涉及通过网络发送第一分组。如果第一分组是经由第一进入点进入网络的,则以与第一生成树一致的方式通过网络发送第一分组。而如果第一分组是经由第二进入点进入网络的,则以与第二生成树一致的方式通过网络发送该分组。若干个生成树中的每一个都与若干个进入点中各自的一个相关联,因此根据不同的生成树来通过网络发送经由不同进入点接收到的分组。
网络中的基本网络设备可以计算在该网络中使用的不同的生成树。基本网络设备维护标识网络拓扑结构的信息,并在计算生成树时访问此信息。基本网络设备将与生成树一致的信息(例如外出过滤器值)提供给网络中所包括的若干个辅助网络设备。
当分组进入网络时,将该分组与标识符相关联(例如,通过向分组附加包括标识符的头部)。该标识符标识出分组进入网络所经由的进入点。在通过网络发送分组时,所述标识符被用来标识该分组的进入点。
在另一实施例中,一种方法涉及将分组转发到第一接口;如果该分组是经由第一进入点进入网络的,则将该分组从第一接口输出;如果该分组是经由第二进入点进入网络的,则将该分组从要经由第一接口输出的分组流中滤去.第一接口未被第一生成树阻塞,但被第二生成树阻塞.第一生成树与第一进入点相关联,第二生成树与第二进入点相关联.
在一些实施例中,一种系统包括若干个网络设备,包括第一网络设备和第二网络设备。第一网络设备是进入网络的第一进入点,第二网络设备是进入网络的第二进入点。第一网络设备与第一生成树相关联,第二网络设备与第二生成树相关联。网络设备被配置为根据第一生成树发送经由第一进入点进入网络的分组,并根据第二生成树发送经由第二进入点进入网络的分组。
在一个实施例中,一种网络设备的接口包括过滤单元和外出过滤器值存储装置。外出过滤器值存储装置包括若干个外出过滤器值。每个外出过滤器值标识出若干个生成树中各自的一个是否阻塞接口。过滤单元被配置为访问与分组相关联的标识符以确定该分组是否是经由特定进入点进入网络的。外出过滤器值标识出接口是否被与该特定进入点相关联的生成树阻塞。
所述接口还包括标识符单元和标识符值存储装置。标识符值存储装置存储标识第一网络设备的值,所述第一网络设备提供进入网络的进入点。标识符单元被配置为响应于接口对分组的接收,将该值包括在被附加到分组上的头部中。
虽然针对本发明的具体实施例描述了本发明,但本领域技术人员可以想到各种变化和修改。这种变化和修改应落入所附权利要求书的范围之内。
实用性
本发明的实施例可以用在网络领域。
Claims (41)
1.一种用于控制通过虚拟网络设备的分组转发的方法,包括:
经由虚拟网络设备的多个虚拟网络设备子单元中的第一虚拟网络设备子单元的第一接口,接收分组;
将所述分组与所述第一虚拟网络设备子单元相关联;以及
禁止所述分组被经由所述多个虚拟网络设备子单元中的一个虚拟网络设备子单元的接口发送,
其中
所述禁止是响应于所述分组与所述第一虚拟网络设备子单元相关联而执行的。
2.如权利要求1所述的方法,还包括:
将仅一份特定分组发送到被耦合到所述虚拟网络设备的设备。
3.如权利要求1所述的方法,其中所述关联包括:
给所述分组指定标识符,其中
所述标识符与所述第一虚拟网络设备子单元相关联。
4.如权利要求3所述的方法,其中所述给分组指定标识符是由所述第一虚拟网络设备子单元执行的。
5.如权利要求3所述的方法,其中所述给分组指定标识符包括:
向所述分组附加头部,其中所述头部包括所述标识符。
6.如权利要求3所述的方法,还包括:
响应于所述标识符,禁止所述分组被经由所述多个虚拟网络设备子单元中的第二虚拟网络设备子单元的接口发送。
7.如权利要求6所述的方法,其中所述禁止分组被经由所述多个虚拟网络设备子单元中的第二虚拟网络设备子单元的接口发送包括:
将所述分组从要经由所述接口发送的分组流中滤去。
8.如权利要求3所述的方法,还包括:
将所述分组和所述标识符发送到所述多个虚拟网络设备子单元中的第三虚拟网络设备子单元。
9.如权利要求8所述的方法,还包括:
响应于所述标识符,禁止所述分组被从所述多个虚拟网络设备子单元中的第三虚拟网络设备子单元的接口发送。
10.如权利要求1所述的方法,还包括:
计算所述虚拟网络设备的多个生成树,其中每个生成树与所述多个虚拟网络设备子单元中相应的一个相关联;以及
根据所述多个生成树中相关联的一个生成树,通过所述虚拟网络设备发送由所述多个虚拟网络设备子单元中的一个虚拟网络设备子单元接收到的每个分组。
11.如权利要求10所述的方法,其中
所述多个生成树中的一个生成树的根是与该一个生成树相关联的相应的一个虚拟网络设备子单元。
12.如权利要求10所述的方法,其中
所述多个生成树中的每一个都具有根,并且
所述多个虚拟网络设备子单元中的每一个是所述多个生成树中一个生成树的根。
13.如权利要求10所述的方法,其中所述发送每个分组包括:
基于与给定的分组相关联的标识符来发送该给定的分组。
14.如权利要求13所述的方法,其中
与所述给定分组相关联的标识符标识出多个生成树中的一个生成树。
15.如权利要求13所述的方法,其中
与所述给定分组相关联的标识符标识出多个虚拟网络设备子单元中的一个虚拟网络设备子单元。
16.如权利要求15所述的方法,还包括:
根据多个生成树中的一个生成树来转发所述给定分组,其中
所述的一个生成树与所述的一个虚拟网络设备子单元相关联。
17.一种用于控制通过虚拟网络设备的分组转发的系统,包括:
虚拟网络设备,该虚拟网络设备包括:
多个虚拟网络设备子单元;以及
多个虚拟网络设备链路,其中
所述虚拟网络设备子单元中的每一个都通过所述虚拟网络设备链路中的一个耦合到所述虚拟网络设备子单元中的至少一个其他虚拟网络设备子单元,并且
所述多个虚拟网络设备子单元被配置为如果所述多个虚拟网络设备子单元中的一个虚拟网络设备子单元已经接收过分组,则防止该分组被发送到该一个虚拟网络设备子单元。
18.如权利要求17所述的系统,其中
所述虚拟网络设备被配置为响应于所述第一虚拟网络设备子单元的第一接口接收到分组,将该分组与所述第一虚拟网络设备子单元相关联。
19.如权利要求18所述的系统,其中
所述多个虚拟网络设备子单元中的一个虚拟网络设备子单元的接口被配置为响应于所述分组与所述第一虚拟网络设备子单元相关联,禁止所述分组被经由所述接口发送。
20.如权利要求18所述的系统,其中
所述多个虚拟网络设备子单元被配置为将一份特定分组发送到被耦合到所述虚拟网络设备的设备。
21.如权利要求18所述的系统,其中
所述虚拟网络设备通过给所述分组指定标识符,将所述分组与所述第一虚拟网络设备子单元相关联,并且
所述标识符与所述第一虚拟网络设备子单元相关联。
22.如权利要求21所述的系统,其中
所述第一虚拟网络设备子单元被配置为将所述标识符指定给所述分组。
23.如权利要求22所述的系统,其中
所述虚拟网络设备被配置为通过向所述分组附加头部来将所述标识符指定给所述分组,并且
所述头部包括所述标识符。
24.如权利要求22所述的系统,其中
所述多个虚拟网络设备子单元中的第二虚拟网络设备子单元的接口被配置为响应于所述标识符,禁止所述分组被经由所述接口发送。
25.如权利要求24所述的系统,其中
所述第二虚拟网络设备子单元的接口通过将所述分组从要经由所述接口发送的分组流中滤去,来禁止经由所述接口输出所述分组。
26.如权利要求22所述的系统,其中
所述多个虚拟网络设备子单元中的一个虚拟网络设备子单元被配置为计算所述虚拟网络设备的多个生成树。
27.如权利要求21所述的系统,其中
所述多个虚拟网络设备子单元被配置为根据所述多个生成树中的第一生成树,通过所述虚拟网络设备发送经由所述第一虚拟网络设备子单元接收到的分组,
所述第一生成树与所述第一虚拟网络设备子单元相关联,
所述多个虚拟网络设备子单元被配置为根据所述多个生成树中的第二生成树,通过所述虚拟网络设备发送经由所述虚拟网络设备子单元中的第二虚拟网络设备子单元接收到的分组,
所述第二生成树与所述第二虚拟网络设备子单元相关联。
28.如权利要求27所述的系统,其中
所述第一生成树的根是所述第一虚拟网络设备子单元,并且
所述第二生成树的根是所述第二虚拟网络设备子单元。
29.如权利要求26所述的系统,其中
所述多个生成树中的每一个都具有根,并且
所述多个虚拟网络设备子单元中的每一个是所述多个生成树中一个生成树的根。
30.一种网络设备,包括:
接口,该接口包括:
外出过滤器设定存储装置,其包括多个外出过滤器设定,其中
每个外出过滤器设定对应于一个相应的进入标识符值;以及
外出过滤器单元,其被耦合到所述外出过滤器设定存储装置,其中
所述外出过滤器单元被配置为响应于特定的进入标识符被附加到分组上,将该分组从要经由所述接口输出的分组流中滤去。
31.如权利要求30所述的网络设备,其中所述接口还包括:
标识符单元;以及
进入标识符值存储装置,其被耦合到所述标识符单元,其中
所述进入标识符值存储装置包括进入标识符值。
32.如权利要求31所述的网络设备,其中
所述标识符单元被配置为向分组附加所述进入标识符值,并且
所述标识符单元是响应于所述接口对所述分组的接收的。
33.如权利要求32所述的网络设备,其中
所述进入标识符值标识出虚拟网络设备子单元,并且
该虚拟网络设备子单元包括所述接口。
34.如权利要求32所述的网络设备,其中
所述进入标识符值标识出虚拟网络设备子单元,并且
该虚拟网络设备子单元被耦合到所述接口。
35.一种用于控制通过虚拟网络设备的分组转发的系统,包括:
用于检测经由虚拟网络设备的多个虚拟网络设备子单元中的第一虚拟网络设备子单元的第一接口对分组的接收的装置;
用于将所述分组与所述第一虚拟网络设备子单元相关联的装置;以及
用于禁止所述分组被经由所述多个虚拟网络设备子单元中的一个虚拟网络设备子单元的接口发送的装置,
其中
所述禁止是响应于所述分组与所述第一虚拟网络设备子单元相关联而执行的。
36.如权利要求35所述的系统,还包括:
用于将仅一份特定分组发送到被耦合到所述虚拟网络设备的设备的装置。
37.如权利要求35所述的系统,其中所述关联包括:
给所述分组指定标识符,其中
所述标识符与所述第一虚拟网络设备子单元相关联。
38.如权利要求37所述的系统,其中所述给分组指定标识符包括:
向所述分组附加头部,其中所述头部包括所述标识符。
39.如权利要求37所述的系统,还包括:
用于将所述分组和所述标识符发送到所述多个虚拟网络设备子单元中的第三虚拟网络设备子单元的装置。
40.如权利要求35所述的系统,还包括:
用于计算所述虚拟网络设备的多个生成树的装置,其中每个生成树与所述多个虚拟网络设备子单元中相应的一个相关联;以及
用于根据所述多个生成树中相关联的一个生成树,通过所述虚拟网络设备发送由所述多个虚拟网络设备子单元中的一个虚拟网络设备子单元接收到的每个分组的装置。
41.如权利要求40所述的系统,其中所述发送每个分组包括:
基于与给定的分组相关联的标识符来发送该给定的分组。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/848,896 US7706364B2 (en) | 2004-05-19 | 2004-05-19 | Virtual network device clusters |
US10/848,896 | 2004-05-19 | ||
US10/858,088 US7710957B2 (en) | 2004-05-19 | 2004-06-01 | System and method for implementing multiple spanning trees per network |
US10/858,088 | 2004-06-01 | ||
PCT/US2005/014962 WO2005117369A1 (en) | 2004-05-19 | 2005-04-29 | Virtual network device clusters |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101139028A Division CN101789907B (zh) | 2004-05-19 | 2005-04-29 | 虚拟网络设备集群 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1947390A CN1947390A (zh) | 2007-04-11 |
CN1947390B true CN1947390B (zh) | 2010-05-05 |
Family
ID=35456760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005800130911A Active CN1947390B (zh) | 2004-05-19 | 2005-04-29 | 虚拟网络设备集群 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7706364B2 (zh) |
CN (1) | CN1947390B (zh) |
Families Citing this family (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7751416B2 (en) * | 2003-09-18 | 2010-07-06 | Cisco Technology, Inc. | Virtual network device |
US7839843B2 (en) | 2003-09-18 | 2010-11-23 | Cisco Technology, Inc. | Distributed forwarding in virtual network devices |
US8526427B1 (en) | 2003-10-21 | 2013-09-03 | Cisco Technology, Inc. | Port-based loadsharing for a satellite switch |
US8990430B2 (en) | 2004-02-19 | 2015-03-24 | Cisco Technology, Inc. | Interface bundles in virtual network devices |
US8208370B1 (en) | 2004-03-31 | 2012-06-26 | Cisco Technology, Inc. | Method and system for fast link failover |
US7889733B2 (en) | 2004-04-28 | 2011-02-15 | Cisco Technology, Inc. | Intelligent adjunct network device |
US7706364B2 (en) | 2004-05-19 | 2010-04-27 | Cisco Technology, Inc. | Virtual network device clusters |
US7710957B2 (en) * | 2004-05-19 | 2010-05-04 | Cisco Technology, Inc. | System and method for implementing multiple spanning trees per network |
US7436836B2 (en) | 2004-06-30 | 2008-10-14 | Cisco Technology, Inc. | Method and apparatus for detecting support for a protocol defining supplemental headers |
US7808983B2 (en) | 2004-07-08 | 2010-10-05 | Cisco Technology, Inc. | Network device architecture for centralized packet processing |
JP4397292B2 (ja) * | 2004-07-09 | 2010-01-13 | 富士通株式会社 | 制御パケットループ防止方法及びそれを用いたブリッジ装置 |
US7562389B1 (en) | 2004-07-30 | 2009-07-14 | Cisco Technology, Inc. | Method and system for network security |
US7555774B2 (en) * | 2004-08-02 | 2009-06-30 | Cisco Technology, Inc. | Inline intrusion detection using a single physical port |
US8730976B2 (en) * | 2004-08-17 | 2014-05-20 | Cisco Technology, Inc. | System and method for preventing erroneous link aggregation due to component relocation |
US7725938B2 (en) * | 2005-01-20 | 2010-05-25 | Cisco Technology, Inc. | Inline intrusion detection |
US7620981B2 (en) | 2005-05-26 | 2009-11-17 | Charles William Frank | Virtual devices and virtual bus tunnels, modules and methods |
US8819092B2 (en) | 2005-08-16 | 2014-08-26 | Rateze Remote Mgmt. L.L.C. | Disaggregated resources and access methods |
US20070091828A1 (en) * | 2005-10-26 | 2007-04-26 | Nortel Networks Limited | Registration, look-up, and routing with flat addresses at enormous scales |
US8615599B1 (en) | 2006-03-31 | 2013-12-24 | Cisco Technology, Inc. | Method and apparatus for preventing loops in a network by controlling broadcasts |
US7594007B2 (en) * | 2006-06-29 | 2009-09-22 | Intel Corporation | Distributed service management for distributed networks |
US8396053B2 (en) * | 2008-04-24 | 2013-03-12 | International Business Machines Corporation | Method and apparatus for VLAN-based selective path routing |
US7787388B2 (en) * | 2008-05-23 | 2010-08-31 | Egenera, Inc. | Method of and a system for autonomously identifying which node in a two-node system has failed |
US8341271B2 (en) * | 2008-06-30 | 2012-12-25 | Sibeam, Inc. | Device discovery in a wireless communication system |
US8897719B2 (en) * | 2008-06-30 | 2014-11-25 | Sibeam, Inc. | Initializing a transceiver in a wireless communication system |
US9531986B2 (en) * | 2008-06-30 | 2016-12-27 | Sibeam, Inc. | Bitmap device identification in a wireless communication system |
US20090327572A1 (en) * | 2008-06-30 | 2009-12-31 | In Sung Cho | Exchanging information between components coupled with an a i2c bus via separate banks |
US9264762B2 (en) * | 2008-06-30 | 2016-02-16 | Sibeam, Inc. | Dispatch capability using a single physical interface |
US20090327547A1 (en) * | 2008-06-30 | 2009-12-31 | In Sung Cho | I2c bus compatible with hdmi |
US8116333B2 (en) * | 2008-06-30 | 2012-02-14 | Sibeam, Inc. | Connection control in a wireless communication system |
US8134922B2 (en) * | 2008-09-12 | 2012-03-13 | Cisco Technology, Inc. | Reducing flooding in a bridged network |
CN101478490B (zh) * | 2009-02-05 | 2011-04-20 | 中兴通讯股份有限公司 | 一种支持tipc的多集群网络通信的方法和装置 |
US8023404B1 (en) * | 2009-06-19 | 2011-09-20 | Juniper Networks, Inc. | No split virtual chassis based on pass through mode |
US8537831B2 (en) * | 2010-02-17 | 2013-09-17 | Alcatel Lucent | Method and system for common group action filtering in telecom network environments |
CN102143042B (zh) * | 2010-07-09 | 2014-04-16 | 华为技术有限公司 | 虚拟集群路由器系统及其流量分担方法、控制器和子路由器 |
US9531566B2 (en) | 2010-09-03 | 2016-12-27 | Nec Corporation | Control apparatus, a communication system, a communication method and a recording medium having recorded thereon a communication program including a control unit, a network configuration information management unit, and a path control unit |
US8619279B2 (en) | 2010-11-19 | 2013-12-31 | Xerox Corporation | Method and system for automatically redirecting jobs in a device community |
EP2713565B1 (en) | 2011-05-19 | 2017-02-01 | Huawei Technologies Co., Ltd. | Method and network device for generating tunneling forwarding entries |
US9736065B2 (en) | 2011-06-24 | 2017-08-15 | Cisco Technology, Inc. | Level of hierarchy in MST for traffic localization and load balancing |
US8971334B2 (en) * | 2011-08-02 | 2015-03-03 | Telefonaktiebolaget L M Ericsson (Publ) | Packet broadcast mechanism in a split architecture network |
US8954782B2 (en) | 2011-08-24 | 2015-02-10 | Dell Products, Lp | System and method for an integrated open network switch |
US8885462B2 (en) * | 2011-12-03 | 2014-11-11 | Cisco Technology, Inc. | Fast repair of a bundled link interface using packet replication |
US9935901B2 (en) | 2011-12-30 | 2018-04-03 | Dell Products, Lp | System and method of enabling a multi-chassis virtual switch for virtual server network provisioning |
US9426091B2 (en) * | 2012-03-06 | 2016-08-23 | Cisco Technology, Inc. | Distributed switch with conversational learning |
US8824338B2 (en) * | 2012-03-22 | 2014-09-02 | Fujitsu Limited | Distributed spanning tree protocol |
CN102685840B (zh) * | 2012-05-11 | 2015-12-16 | 中国联合网络通信集团有限公司 | 业务数据的传输方法及装置 |
US8996652B2 (en) * | 2012-06-15 | 2015-03-31 | Citrix Systems, Inc. | Systems and methods for cluster LAG |
US9582307B2 (en) * | 2012-11-01 | 2017-02-28 | International Business Machines Corporation | Efficient data transmission in an overlay virtualized network |
US9450981B2 (en) * | 2013-03-14 | 2016-09-20 | Radware, Ltd. | System and method thereof for mitigating denial of service attacks in virtual networks |
US10608957B2 (en) * | 2017-06-29 | 2020-03-31 | Cisco Technology, Inc. | Method and apparatus to optimize multi-destination traffic over etherchannel in stackwise virtual topology |
US10505899B1 (en) * | 2017-08-14 | 2019-12-10 | Juniper Networks, Inc | Apparatus, system, and method for applying firewall rules on packets in kernel space on network devices |
US11632268B2 (en) | 2021-03-30 | 2023-04-18 | Juniper Networks, Inc. | Generating route target values for virtual private network routes |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1035685A2 (en) * | 1999-03-05 | 2000-09-13 | Alcatel | Data communication system with distributed multicasting |
US20020080720A1 (en) * | 2000-12-21 | 2002-06-27 | Nortel Networks Limited | Method and apparatus for routing data traffic across a multicast-capable fabric |
CN1407762A (zh) * | 2001-09-04 | 2003-04-02 | 皇家菲利浦电子有限公司 | 选通滤波器 |
US20030142680A1 (en) * | 2002-01-28 | 2003-07-31 | Naoki Oguchi | Device, network, and system for forwarding frames between geographically dispersed user networks |
Family Cites Families (100)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2059724B (en) | 1979-09-28 | 1984-04-04 | Racal Datacom Ltd | Data transmission systems |
US5058110A (en) | 1989-05-03 | 1991-10-15 | Ultra Network Technologies | Protocol processor |
US5371852A (en) * | 1992-10-14 | 1994-12-06 | International Business Machines Corporation | Method and apparatus for making a cluster of computers appear as a single host on a network |
US5473599A (en) | 1994-04-22 | 1995-12-05 | Cisco Systems, Incorporated | Standby router protocol |
US5822512A (en) | 1995-05-19 | 1998-10-13 | Compaq Computer Corporartion | Switching control in a fault tolerant system |
US5684800A (en) * | 1995-11-15 | 1997-11-04 | Cabletron Systems, Inc. | Method for establishing restricted broadcast groups in a switched network |
US6064671A (en) | 1995-12-08 | 2000-05-16 | Killian; Michael G. | Multi-homed end system for increasing computers network bandwidth |
US6085238A (en) | 1996-04-23 | 2000-07-04 | Matsushita Electric Works, Ltd. | Virtual LAN system |
US20030110344A1 (en) | 1996-09-18 | 2003-06-12 | Andre Szczepanek | Communications systems, apparatus and methods |
US5864535A (en) | 1996-09-18 | 1999-01-26 | International Business Machines Corporation | Network server having dynamic load balancing of messages in both inbound and outbound directions |
EP0944981B1 (en) | 1996-10-23 | 2005-06-29 | Infoglobal S.L. | Apparatus for integration of several physical media for data communications |
US6236659B1 (en) | 1996-11-29 | 2001-05-22 | 3Com Technologies | Network configuration |
US6108300A (en) | 1997-05-02 | 2000-08-22 | Cisco Technology, Inc | Method and apparatus for transparently providing a failover network device |
US5959972A (en) | 1997-05-27 | 1999-09-28 | 3Com Corporation | Method of port/link redundancy in an ATM switch |
US5959989A (en) | 1997-06-25 | 1999-09-28 | Cisco Technology, Inc. | System for efficient multicast distribution in a virtual local area network environment |
US6081512A (en) * | 1997-06-30 | 2000-06-27 | Sun Microsystems, Inc. | Spanning tree support in a high performance network device |
US5959968A (en) | 1997-07-30 | 1999-09-28 | Cisco Systems, Inc. | Port aggregation protocol |
US6275953B1 (en) | 1997-09-26 | 2001-08-14 | Emc Corporation | Recovery from failure of a data processor in a network server |
US6032194A (en) | 1997-12-24 | 2000-02-29 | Cisco Technology, Inc. | Method and apparatus for rapidly reconfiguring computer networks |
US6181681B1 (en) | 1997-12-29 | 2001-01-30 | 3Com Corporation | Local area network media access controller layer bridge |
US6202114B1 (en) | 1997-12-31 | 2001-03-13 | Cisco Technology, Inc. | Spanning tree with fast link-failure convergence |
US5978852A (en) | 1998-01-06 | 1999-11-02 | 3Com Corporation | LAN switch interface for providing arbitration between different simultaneous memory access requests |
US6195351B1 (en) | 1998-01-28 | 2001-02-27 | 3Com Corporation | Logical switch set |
US6567403B1 (en) | 1998-04-30 | 2003-05-20 | Hewlett-Packard Development Company, L.P. | Virtual-chassis switch network topology |
US6421787B1 (en) | 1998-05-12 | 2002-07-16 | Sun Microsystems, Inc. | Highly available cluster message passing facility |
US6222820B1 (en) | 1998-05-28 | 2001-04-24 | 3Com Corporation | Method of VCC/VPC redundancy for asynchronous transfer mode networks |
US6604136B1 (en) | 1998-06-27 | 2003-08-05 | Intel Corporation | Application programming interfaces and methods enabling a host to interface with a network processor |
US6181699B1 (en) | 1998-07-01 | 2001-01-30 | National Semiconductor Corporation | Apparatus and method of assigning VLAN tags |
KR100484209B1 (ko) | 1998-09-24 | 2005-09-30 | 삼성전자주식회사 | 디지털컨텐트암호화/해독화장치및그방법 |
US6690668B1 (en) | 1998-10-19 | 2004-02-10 | Texas Instruments Incorporated | Modular interconnection of network switches |
US6657973B1 (en) * | 1998-10-27 | 2003-12-02 | Matsushita Electric Industrial Co., Ltd. | Communications node, network system and method of controlling network system |
US6487591B1 (en) | 1998-12-08 | 2002-11-26 | Cisco Technology, Inc. | Method for switching between active and standby units using IP swapping in a telecommunication network |
US6898189B1 (en) | 2000-08-23 | 2005-05-24 | Cisco Technology, Inc. | Restartable spanning tree for high availability network systems |
US6665304B2 (en) * | 1998-12-31 | 2003-12-16 | Hewlett-Packard Development Company, L.P. | Method and apparatus for providing an integrated cluster alias address |
JP3581589B2 (ja) | 1999-01-11 | 2004-10-27 | 株式会社日立製作所 | 通信ネットワークシステムおよび通信ネットワークシステムにおけるサービス管理方法 |
US6519231B1 (en) | 1999-01-12 | 2003-02-11 | Nortel Networks Limited | Method and apparatus providing a spanning tree protocol for a data communications network having a multi-link trunk |
US6674713B1 (en) | 1999-02-23 | 2004-01-06 | Cisco Technology, Inc. | Method and apparatus for providing continuous voice and call communications between a data network and a telephony network |
US6535490B1 (en) | 1999-03-04 | 2003-03-18 | 3Com Corporation | High availability spanning tree with rapid reconfiguration with alternate port selection |
WO2000052889A1 (en) | 1999-03-05 | 2000-09-08 | Allayer Technologies Corporation | Packet switching fabric having a segmented ring with token based resource control protocol and output queuing control |
US6460088B1 (en) | 1999-05-21 | 2002-10-01 | Advanced Micro Devices, Inc. | Method and apparatus for port vector determination at egress |
EP1181792B1 (en) | 1999-05-21 | 2010-07-14 | Broadcom Corporation | Stacked network switch configuration |
EP1181791B1 (en) | 1999-05-24 | 2009-12-02 | Broadcom Corporation | Apparatus for distributing a load across a trunk group |
US6678835B1 (en) | 1999-06-10 | 2004-01-13 | Alcatel | State transition protocol for high availability units |
US7315552B2 (en) | 1999-06-30 | 2008-01-01 | Broadcom Corporation | Frame forwarding in a switch fabric |
US6735198B1 (en) | 1999-12-21 | 2004-05-11 | Cisco Technology, Inc. | Method and apparatus for updating and synchronizing forwarding tables in a distributed network switch |
US6735205B1 (en) | 2000-01-10 | 2004-05-11 | Sun Microsystems, Inc. | Method and apparatus for fast packet forwarding in cluster networking |
US6687751B1 (en) * | 2000-01-28 | 2004-02-03 | 3Com Corporation | Multi-point link aggregation spoofing |
US7065096B2 (en) | 2000-06-23 | 2006-06-20 | Mips Technologies, Inc. | Method for allocating memory space for limited packet head and/or tail growth |
US6760776B1 (en) | 2000-04-10 | 2004-07-06 | International Business Machines Corporation | Method and apparatus for processing network frames in a network processor by embedding network control information such as routing and filtering information in each received frame |
GB2362538B (en) | 2000-05-20 | 2002-05-08 | 3Com Corp | Method for synchronising databases in stacked network units |
US6728780B1 (en) | 2000-06-02 | 2004-04-27 | Sun Microsystems, Inc. | High availability networking with warm standby interface failover |
US6738345B1 (en) | 2000-06-21 | 2004-05-18 | Motorola, Inc. | Method for failover management in a synchronous optical network using standard protocols |
US6938095B2 (en) | 2000-06-28 | 2005-08-30 | Pluris, Inc. | Method and apparatus for establishing and sharing a virtual change notification list among a plurality of peer nodes |
US6947963B1 (en) | 2000-06-28 | 2005-09-20 | Pluris, Inc | Methods and apparatus for synchronizing and propagating distributed routing databases |
US6966034B2 (en) | 2000-06-30 | 2005-11-15 | Microsoft Corporation | Supplemental request header for applications or devices using web browsers |
US6771673B1 (en) | 2000-08-31 | 2004-08-03 | Verizon Communications Inc. | Methods and apparatus and data structures for providing access to an edge router of a network |
US6829215B2 (en) | 2000-10-31 | 2004-12-07 | Marconi Intellectual Property (Ringfence) Inc. | IP multi-homing |
US6910148B1 (en) | 2000-12-07 | 2005-06-21 | Nokia, Inc. | Router and routing protocol redundancy |
US6856591B1 (en) * | 2000-12-15 | 2005-02-15 | Cisco Technology, Inc. | Method and system for high reliability cluster management |
US6868095B2 (en) | 2001-01-08 | 2005-03-15 | Zarlink Semiconductor V.N. Inc. | Control channel implementation in a packet switched communications network |
GB2371706B (en) | 2001-01-30 | 2003-04-23 | 3Com Corp | Link aggregation control for network devices |
US20020103921A1 (en) * | 2001-01-31 | 2002-08-01 | Shekar Nair | Method and system for routing broadband internet traffic |
US20020176450A1 (en) | 2001-01-31 | 2002-11-28 | Sycamore Networks, Inc. | System and methods for selectively transmitting ethernet traffic over SONET/SDH optical network |
US7054276B2 (en) * | 2001-02-07 | 2006-05-30 | International Business Machines Corporation | System and method for a multicast network messaging service |
AU2002306495A1 (en) | 2001-02-13 | 2002-08-28 | Candera, Inc. | Storage virtualization and storage management to provide higher level storage services |
US8429296B2 (en) | 2001-03-06 | 2013-04-23 | Pluris, Inc. | Method and apparatus for distributing routing instructions over multiple interfaces of a data router |
US7174390B2 (en) | 2001-04-20 | 2007-02-06 | Egenera, Inc. | Address resolution protocol system and method in a virtual network |
FI115271B (fi) | 2001-05-28 | 2005-03-31 | Nokia Corp | Menetelmä ja järjestelmä nopean elpymisprosessin toteuttamiseksi lähiverkossa |
JP3956685B2 (ja) | 2001-05-31 | 2007-08-08 | 古河電気工業株式会社 | ネットワーク間接続方法、仮想ネットワーク間接続装置およびその装置を用いたネットワーク間接続システム |
US7130305B2 (en) * | 2001-07-02 | 2006-10-31 | Stonesoft Oy | Processing of data packets within a network element cluster |
JP2003023444A (ja) | 2001-07-06 | 2003-01-24 | Fujitsu Ltd | 仮想ルータを利用した動的な負荷分散システム |
US20030007489A1 (en) | 2001-07-09 | 2003-01-09 | Ram Krishnan | Data extraction system for packet analysis |
US7139267B2 (en) | 2002-03-05 | 2006-11-21 | Industrial Technology Research Institute | System and method of stacking network switches |
US6980534B1 (en) * | 2001-07-20 | 2005-12-27 | Cisco Technology, Inc. | System and method for efficient selection of a packet data servicing node |
JP2003046594A (ja) * | 2001-08-01 | 2003-02-14 | Canon Inc | 無線データ通信装置およびその制御方法 |
US7173934B2 (en) | 2001-09-10 | 2007-02-06 | Nortel Networks Limited | System, device, and method for improving communication network reliability using trunk splitting |
US6910149B2 (en) | 2001-09-24 | 2005-06-21 | Intel Corporation | Multi-device link aggregation |
DE60109177T2 (de) | 2001-10-30 | 2005-07-28 | Alcatel | Weiterleitung von IP Paketen für Leitweglenkung-Protokolen |
FR2832006B1 (fr) * | 2001-11-05 | 2004-08-06 | Airbus France | Procede de mise en oeuvre d'un reseau de communication redondant de type ethernet full-duplex commute |
US7127633B1 (en) | 2001-11-15 | 2006-10-24 | Xiotech Corporation | System and method to failover storage area network targets from one interface to another |
US7061875B1 (en) | 2001-12-07 | 2006-06-13 | Cisco Technology, Inc. | Spanning tree loop guard |
US7145918B2 (en) | 2002-02-12 | 2006-12-05 | F 3 Incorporation | Bandwidth control method and device for network switch |
US20030223379A1 (en) * | 2002-05-28 | 2003-12-04 | Xuguang Yang | Method and system for inter-domain loop protection using a hierarchy of loop resolving protocols |
US7096383B2 (en) | 2002-08-29 | 2006-08-22 | Cosine Communications, Inc. | System and method for virtual router failover in a network routing system |
DE60223806T2 (de) | 2002-09-16 | 2008-10-30 | Agilent Technologies, Inc. - a Delaware Corporation -, Santa Clara | Messung von Netzwerkparametern wie sie von nicht künstlichem Netzwerkverkehr wahrgenommen werden |
US7483432B2 (en) | 2002-09-23 | 2009-01-27 | Alcatel Lucent Usa Inc. | Packet transport arrangement for the transmission of multiplexed channelized packet signals |
US7539185B2 (en) | 2002-10-07 | 2009-05-26 | Broadcom Corporation | Fast-path implementation for an uplink double tagging engine |
US8051211B2 (en) | 2002-10-29 | 2011-11-01 | Cisco Technology, Inc. | Multi-bridge LAN aggregation |
US7570643B2 (en) | 2003-02-12 | 2009-08-04 | Cisco Technology, Inc. | Efficient framing procedure for variable length packets |
CN100550955C (zh) | 2003-05-26 | 2009-10-14 | 华为技术有限公司 | 大容量宽带接入方法及系统 |
WO2005004490A2 (en) | 2003-06-13 | 2005-01-13 | Lumexis Corporation | Remote interface optical network |
US7317722B2 (en) | 2003-08-20 | 2008-01-08 | 3Com Corporation | System and method for distributed multicast routing |
US7522596B2 (en) * | 2003-08-25 | 2009-04-21 | Alcatel Lucent | Enhanced DVMRP for destination-based forwarding of multicast data |
US7178052B2 (en) | 2003-09-18 | 2007-02-13 | Cisco Technology, Inc. | High availability virtual switch |
US8493839B2 (en) * | 2003-11-20 | 2013-07-23 | Hewlett-Packard Development Company, L.P. | Method and system of teamed network adapters with offloaded connections |
US7391771B2 (en) | 2004-01-23 | 2008-06-24 | Metro Packet Systems Inc. | Method of sending information through a tree and ring topology of a network system |
US7460537B2 (en) | 2004-01-29 | 2008-12-02 | Brocade Communications Systems, Inc. | Supplementary header for multifabric and high port count switch support in a fibre channel network |
US7286853B2 (en) | 2004-03-24 | 2007-10-23 | Cisco Technology, Inc. | System and method for aggregating multiple radio interfaces into a single logical bridge interface |
US7889733B2 (en) | 2004-04-28 | 2011-02-15 | Cisco Technology, Inc. | Intelligent adjunct network device |
US7706364B2 (en) | 2004-05-19 | 2010-04-27 | Cisco Technology, Inc. | Virtual network device clusters |
-
2004
- 2004-05-19 US US10/848,896 patent/US7706364B2/en active Active
-
2005
- 2005-04-29 CN CN2005800130911A patent/CN1947390B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1035685A2 (en) * | 1999-03-05 | 2000-09-13 | Alcatel | Data communication system with distributed multicasting |
US20020080720A1 (en) * | 2000-12-21 | 2002-06-27 | Nortel Networks Limited | Method and apparatus for routing data traffic across a multicast-capable fabric |
CN1407762A (zh) * | 2001-09-04 | 2003-04-02 | 皇家菲利浦电子有限公司 | 选通滤波器 |
US20030142680A1 (en) * | 2002-01-28 | 2003-07-31 | Naoki Oguchi | Device, network, and system for forwarding frames between geographically dispersed user networks |
Also Published As
Publication number | Publication date |
---|---|
US20050259646A1 (en) | 2005-11-24 |
US7706364B2 (en) | 2010-04-27 |
CN1947390A (zh) | 2007-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1947390B (zh) | 虚拟网络设备集群 | |
CN101789907B (zh) | 虚拟网络设备集群 | |
CN1914867B (zh) | 虚拟网络设备中的接口束 | |
CN1939004B (zh) | 虚拟网络设备中的分布式转发 | |
CN102986175B (zh) | 在网络系统中建立转发路径的技术 | |
RU2530338C2 (ru) | Предварительно подготовленное сопряжение на основе состояния линий связи поставщиков (plsb) с маршрутизируемым резервированием | |
EP1741239B1 (en) | Intelligent adjunct network device | |
CN101843045B (zh) | 链路聚合组上的固定和保护 | |
CN101873306B (zh) | 在分级网络中的生成树的根选择 | |
CN104247341B (zh) | 分布式交换机及其多播树层次结构的动态优化方法 | |
CN105340230A (zh) | 虚拟机架拓扑管理 | |
US6996116B2 (en) | Switching nodes and interface modules for data networks | |
WO2016153506A1 (en) | Fast failover recovery in software defined networks |
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 |