智能附属网络设备的制作方法

文档序号:7634784阅读:226来源:国知局
专利名称:智能附属网络设备的制作方法
技术领域
本发明涉及联网,更具体而言,涉及减少网络中的管理点数量。
背景技术
为了提供更高的网络可靠性,网络中经常包括冗余交换机和链路。如果某个交换机或链路出现故障,则网络中已存在的冗余交换机或链路可被快速启用,以替换出故障的交换机或链路。由于启用冗余交换机或链路作为替换一般比替换或修复出故障的组件要快,因此冗余链路和/或交换可提供更可靠的网络。
当网络中包括冗余组件时,往往希望在相应组件出现故障之前,在正常网络操作期间也能使用冗余组件。例如,如果在一对交换机之间实现了两条链路,则希望使用这两条链路(而不是令一条链路空闲)来提供更高的带宽。但是,如果多条冗余链路同时活动,则对那些链路的管理可能相当复杂(例如由于需要避免桥接环路)。类似地,如果出于冗余目的而在网络中包括额外的网络设备,则对那些网络设备的管理可能变得过于复杂。例如,如果需要向一类网络设备应用配置改变,则服务人员将需要将所述改变应用到该类中的所有网络设备。如果网络设备的数量被加倍以提供更高的冗余,则服务人员应用这些改变所需的人力也要加倍。因此,希望能够在不过多增加管理和维护网络的开销的情况下在网络中包括冗余组件。

发明内容
本发明公开了用于实现智能附属网络设备的方法和系统的多个实施例。智能附属网络设备包括一个或多个附属转发引擎,每个附属转发引擎都被用来执行本地转发和/或路由选择;一个或多个端口,用于与本地附接的网络客户端和/或服务器通信;以及一个或多个上行链路接口,用于与一个或多个网络设备通信。智能附属网络设备经由上行链路接口接收来自网络设备的配置信息。智能附属网络设备还经由上行链路接口将不能被本地转发的分组,或者智能附属设备不知道如何转发的分组转发到网络设备。
由附属网络设备执行的方法包括经由几个端口中的第一端口接收分组。分组包括目的地地址。如果目的地地址不与多个端口中的任何一个相对应,则将分组发送到上行链路接口。如果所述目的地地址与端口之一相对应,则将所述分组发送到端口之一。可执行来执行这种方法的程序指令可被存储在计算机可读介质上。
该方法可包括将路由选择信息经由上行链路接口下载到转发引擎上。该方法还可包括响应于检测到本地转发信息与经由上行链路接口接收的转发信息之间的冲突,将差错通知发送到上行链路接口。在一个实施例中,差错通知包括转发信息的正确值。
如果分组被发送到上行链路接口,则与分组相关联的信息也可被发送到上行链路接口。该信息标识了经由其接收到分组的端口。该信息还可包括通过针对目的地地址执行查找而生成的目的地标识符。
在一个实施例中,上行链路接口耦合到虚拟链路束中的链路。在这样的系统中,如果经由上行链路接口发送的分组在虚拟网络设备处被接收,则虚拟网络设备将不被允许经由虚拟链路束发送该分组。
在一些实施例中,附属网络设备包括几个端口、上行链路接口和耦合到端口和上行链路接口的附属转发引擎。第一端口被配置为接收包括目的地地址的分组。附属转发引擎被配置为如果目的地地址不与端口中的任何一个相关联则将分组发送到上行链路接口。如果目的地地址与端口之一相关联,则将分组发送到端口之一。
附属网络设备还可包括控制器,其被配置为在分组被发送到上行链路接口之前将头部附加到分组。头部包括标识第一端口的信息。头部还可包括通过针对目的地地址执行查找而生成的目的地标识符。
以上内容是概括,因此必然包含对细节的简化、归纳和省略,因此,本领域的技术人员将理解,该概括仅是说明性的而绝非限制性的。这里公开的操作可以用多种方式实现,并且这种变化和修改可在不脱离本发明及其更广方面的情况下作出。从下面的非限制性详细描述中,仅由权利要求限定的本发明的其他方面将变得很清楚。


参考下面的描述和附图可获得对本发明的更完整理解,在附图中,相似的标号指示相似的特征。
图1是根据本发明一个实施例的网络的框图。
图2A根据本发明一个实施例示出了智能附属网络设备如何耦合到其他网络设备。
图2B根据本发明一个实施例示出了智能附属网络设备作为虚拟线路卡是如何工作的。
图3A-3C根据本发明一个实施例示出了两个网络设备作为单个虚拟网络设备是如何工作的。
图4是根据本发明一个实施例的智能附属网络设备的框图。
图5是根据本发明一个实施例示出智能附属网络设备执行本地转发的方式的流程图。
图6是根据本发明一个实施例示出智能附属网络设备经由上行链路接口接收转发信息的方式的流程图。
图7根据本发明一个实施例示出了利用L2和L3信息配置智能附属网络设备的方法。
图8根据本发明一个实施例示出了智能附属网络设备如何转发分组。
虽然本发明允许各种修改和替换形式,但是在附图和详细描述中,提供了本发明的特定实施例作为示例。应当理解,附图和详细说明并不将本发明限制于所公开的特定形式。相反,本发明将覆盖落在由所附权利要求限定的本发明的精神和范围内的所有修改、等同物和替换。
具体实施例方式
图1是包括若干智能附属设备的网络的框图。在图1中,若干客户端102(1)-102(n)经由网络彼此通信和与若干服务器104(1)-104(n)通信。客户端102(1)-102(n)可包括访问联网服务的多个不同设备。例如,客户端(1)可以是蜂窝电话,客户端102(2)是个人计算机,客户端102(n)是个人数字助理(PDA)。服务器104(1)-104(n)提供各种服务,例如各种基于软件的服务和/或对共享存储设备的访问。
以若干网络层的形式来描述耦合了客户端102(1)-102(n)和服务器104(1)-104(n)的网络。距离客户端102(1)-102(n)最近的层是接入层110。接入层110包括几个附属网络设备102(1)-120(n)。在本示例中,接入层110是分组从客户端102(1)-102(n)进入网络的初级层。
分布层112聚集经由接入层110接收的流,并将这些聚集后的流提供给核心层114。在本示例中,分布层112包括网络设备122(1)-122(n)。核心层114在逻辑上是网络的集中部分,各个聚集后的流都经过核心层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所示不同的方式耦合到网络(例如,一些客户端和/或服务器可耦合到核心和/或分布层中的个体网络设备)。此外,设备彼此的相对物理位置可以不同于图1所示的逻辑位置。例如,同一网络层中的两个设备可以在物理上位于不同楼层、不同建筑或不同园区中。另一方面,不同网络层中的两个设备可以位于同一房间中。
附属网络设备120(1)-120(n)、智能附属设备128(1)-128(n),以及网络设备122(1)-122(n)、124(1)-124(n)和126(1)-126(n)可以包括各种路由器、交换机、网关,和其他网络设备。在很多实施例中,为了让网络工作,每层可能只需要一个网络设备、智能附属网络设备,或附属网络设备。但是,如图1所示,每层可包括多个这种设备,以便提供冗余和/或提供额外带宽。
不同网络层中的设备之间可以实现多条链路,以便提供额外的冗余。例如,如图1所示,接入层110中的附属网络设备120(1)-120(n)中的每一个由两条(或更多条)不同链路耦合到分布层112。类似地,分布层112中的网络设备122(1)-122(n)中的每一个由两条(或更多条)不同链路耦合到核心层114。数据中心116中的智能附属网络设备128(1)-128(n)中的每一个由两条(或更多条)不同链路耦合到数据中心116中的网络设备126(1)-126(n)。在一个实施例中,每条链路都是以太网链路。
分别包括在接入层110和数据中心116中的附属网络设备120(1)-120(n)和智能附属网络设备128(1)-128(n)以与网络设备122(1)-122(n)、124(1)-124(n)和126(1)-126(n)不同的方式操作。耦合到附属网络设备的非附属网络设备控制附属网络设备的操作。例如,网络设备126(1)-126(n)可以根据各种路由协议来配置智能附属网络设备128(1)-128(n),并对智能附属网络设备128(1)-128(n)执行控制协议处理。类似地,网络设备122(1)-122(n)可以配置附属网络设备120(1)-120(n)。如图1所示,相比于位于网络边缘层(即提供对客户端和服务器的直接接入的层)处的附属和智能附属网络设备,控制网络设备位于内网络层(即比附属和智能附属设备距离核心层更近的层)。
通过允许附属和智能附属网络设备被其他网络设备控制,网络中的管理点的数量减少了。例如,如果需要对图1网络中的每个网络设备应用升级,则技师可以手工升级控制附属网络设备的每个网络设备。例如,技师可以升级数据中心116中的网络设备126(1)-126(n)中的每一个。然后,网络设备可以自动地将升级应用(例如通过发送升级的转发表值)到由网络设备126(1)-126(n)控制的智能附属网络设备128(1)-128(n)。因此,技师可以仅升级网络设备126(1)-126(n)并允许那些网络设备自动分发对附属网络设备128(1)-128(n)的升级,而不必手工升级网络设备126(1)-126(n)中的每一个和智能附属网络设备128(1)-128(n)中的每一个。
为了减少附属网络设备120(1)-120(n)的远程管理复杂度,附属网络设备120(1)-120(n)可以被实现为不具有任何关于如何通过网络运送分组的判决能力(例如转发和/或路由能力)。由于附属网络设备120(1)-120(n)缺乏判决能力,因此附属网络设备120(1)-120(n)的操作仅仅是将接收自客户端102(1)-102(n)的分组发送到网络设备122(1)-122(n)。然后,网络设备122(1)-122(n)决定(例如通过转发和/或路由分组)如何通过网络运送分组。这种配置在接入层110中执行得很好,其中给定附属网络设备所接收的大部分流量未被寻址到附接到给定附属网络设备的其他设备。相反,数据中心116中的网络流量倾向于在本地交换。例如,从本地附接的服务器(或未示出的客户端)进入智能附属网络设备128(1)的大量流量将被寻址到其他本地附接的服务器或客户端(而不是寻址到附接到其他网络设备的设备)。为了能够在不需要网络设备126(1)-126(n)的帮助的情况下处理这种流量,智能附属网络设备128(1)-128(n)具有判决能力(例如转发和/或路由能力)。
图2A示出了在数据中心116中,两个智能附属网络设备128(1)和128(2)如何耦合到网络设备126(1)和126(2)。在本示例中,网络设备126(1)和126(2)提供网络中的冗余功能。智能附属网络设备128(1)和128(2)中的每一个都具有到网络设备126(1)和126(2)的冗余连接。如图所示,智能附属网络设备128(1)和128(2)中的每一个可被配置以到网络设备126(1)和126(2)中的每一个的至少一个连接。这样,如果智能附属网络设备与网络设备126(1)和126(2)之间的链路之一出现故障,或者如果网络设备126(1)和126(2)之一出现故障,则智能附属网络设备将仍能够与网络的其余部分通信。
图2B示出了智能附属网络设备作为虚拟线路卡是如何工作的。这里,网络设备126(1)-126(2)操作智能附属网络设备128(1)-128(2),如同智能附属网络设备128(1)-128(2)是网络设备126(1)-126(2)的线路卡一样,尽管智能附属网络设备128(1)-128(2)实际上实现在与网络设备126(1)-126(2)物理上独立的硬件中。
如图所示,网络设备126(1)可以将智能附属网络设备128(1)和128(2)中的每一个的至少一部分操作为网络设备126(1)的虚拟线路卡。网络设备126(1)中的控制单元220(1)可以向每个智能附属网络设备的该部分中的每个端口分配端口标识符。控制单元220(1)还执行控制协议处理,以及生成供智能附属网络设备128(1)和128(2)使用的路由选择信息。
当智能附属网络设备向网络设备126(1)发送分组时,智能附属网络设备可将信息与该分组相关联。例如,智能附属网络设备可将包含信息的头部附加到分组。头部可包括由控制单元220(1)指定的最初接收分组的智能附属网络设备的端口的端口标识符。网络设备126(1)可使用头部来确定发送分组的设备相对于智能附属网络设备的端口的位置。然后,网络设备126(1)可以将被寻址到该设备的后续接收的分组转发到智能附属网络设备的适当端口。例如,如果分组被寻址到该设备,则网络设备126(1)将标识智能附属网络设备的适当端口的头部附加到分组上,并发送分组和头部到智能附属网络设备。然后,智能附属网络设备可以执行本地转发表查找,并经由在附加到分组的头部中标识的端口来发送分组。
类似地,网络设备126(2)可以将每个智能附属网络设备的至少一部分操作为虚拟线路卡。例如,网络设备126(2)中的控制单元220(2)可以配置每个智能附属网络设备中的一个或多个端口。控制单元220(2)还执行控制协议处理,以及生成供智能附属网络设备128(1)和128(2)在经由那些端口转发分组时使用的路由选择信息。在一个实施例中,网络设备126(1)和126(2)中的每一个控制每个智能附属网络设备中的一个不同的端口子集。在一个实施例中,网络设备126(1)和126(2)彼此协调,以便共同控制每个智能附属网络设备中的相同端口。诸如网络设备126(1)和126(2)等控制智能附属网络设备的网络设备被称为控制网络设备。
在每个网络层中可以配置多个冗余网络设备,以共同作为单个虚拟网络设备工作。图3A示出了网络设备126(1)和126(2)彼此协调以实现虚拟网络设备202的实施例。在所示示例中,网络设备126(1)和126(2)由一对被称为虚拟网络设备链路360的冗余链路360耦合。注意,在其他实施例中,可以使用更少或更多的链路来实现虚拟网络设备链路360。注意,在其他实施例中,虚拟网络设备202可包括多于两个组件网络设备。
智能附属网络设备128(1)-128(2)中的每一个通过两条链路(在其他实施例中使用不同数量的链路)耦合到虚拟网络设备202。在本示例中,两条链路中的每一条耦合到网络设备126(1)和126(2)中不同的一个。将智能附属网络设备128(1)和128(2)中的每一个耦合到虚拟网络设备202的虚拟链路可作为单个逻辑链路工作,在这里称为虚拟链路束。例如,智能附属网络设备128(1)将把该智能附属网络设备耦合到虚拟网络设备202的两条链路操作为虚拟链路束350(1)。在该实施例中,智能附属网络设备128(1)中的耦合到链路之一的每个接口被包括在针对相应的虚拟链路束的接口束中。智能附属网络设备128(2)类似地使把智能附属网络设备128(2)耦合到虚拟网络设备202的两条链路作为虚拟链路束350(2)被操作。在一些实施例中,虚拟链路束350(1)和350(2)中的每一个都作为以太信道(TM)或聚集链路工作,如IEEE 802.3中定义的那样。在其他实施例中,每个虚拟链路束中的每条信道都独立于该虚拟链路束中的其他信道进行操作(而不是作为单个逻辑链路的一部分工作)。
虚拟链路束350(1)和350(2)中的链路是专门链路,这里称为上行链路。类似地,网络设备126(1)或126(2)中或智能附属网络设备128(1)或128(2)中的耦合到上行链路的接口在这里称为上行链路接口。每条上行链路都能够运送在网络设备之一中生成的分组和额外信息。例如,如果分组在上行链路上从智能附属网络设备128(1)或128(2)之一被运送到网络设备126(1)或126(2)之一,则与分组一起在上行链路上运送的额外信息可包括标识附属网络设备的哪些端口接收分组的信息。额外信息还可包括指示发送设备是否已对分组执行任何判决(例如转发或路由)的信息。在一些实施例中,使用上行链路允许网络设备126(1)和126(2)将智能附属网络设备128(1)和128(2)操作为虚拟链路卡。使用上行链路还可允许网络设备126(1)-126(2)能够在某些情况下对智能附属网络设备128(1)和128(2)的分组执行判决(例如路由和/或转发)。
在一个实施例中,两个接口束耦合到每个虚拟链路束。这些接口束之一位于单个智能附属网络设备中,而另一接口束跨过控制网络设备级别上的多个网络设备。例如,虚拟链路束350(1)耦合到智能附属网络设备128(1)中的两个上行链路接口。虚拟链路束350(1)还耦合到包括网络设备126(1)中的一个上行链路接口和网络设备126(2)中的一个上行链路接口的接口束。
网络设备126(1)和126(2)可在经由虚拟链路束350(1)和350(2)发送分组时协调某些行为,以充当虚拟网络设备202,从智能附属网络设备128(1)-128(2)的角度来看,虚拟网络设备202呈现为单个逻辑网络设备。例如,一旦网络设备单元126(2)从智能附属网络设备之一接收分组,并且该分组的目的地地址在虚拟链路束350(2)之后,网络设备单元126(2)就从标识出的上行链路接口束中的本地上行链路接口发送该分组。网络设备单元126(2)还可以向网络设备单元126(1)提供分组的拷贝,但是网络设备单元126(1)不会经由标识出的上行链路接口束中的其本地上行链路接口输出该分组。这样,智能附属设备仅从虚拟网络设备202接收分组的一份拷贝(而不是从包括在虚拟网络设备202中的网络设备126(1)和126(2)中的每一个都接收一份),维护了虚拟网络设备202作为单个实体的表象。
智能附属网络设备128(1)-128(n)可以智能附属网络设备与单个物理设备的交互方式相同的方式与虚拟网络设备202交互。因此,出于诸如生成树这样的路由选择协议的考虑,每个智能附属网络设备被耦合到单个设备,虚拟网络设备202,如图3B所示。在实施例中(例如图3B所示),智能附属网络设备128(1)和128(2)操作为仿佛智能附属网络设备连接到单个网络设备一样,简化了虚拟链路束350(1)和350(2)的使用。例如,如果智能附属网络设备128(1)意识到虚拟链路束350(1)端接于两个不同的网络设备,则智能附属网络设备128(1)可基于生成树协议选择在哪条链路上发送特定分组。与智能附属网络设备128(1)仅把虚拟网络设备202视为单个实体的情况相比,使用生成树协议可能包括更多的开销和/或对可用来发送给定分组的链路的要求更为严格(例如,生成树协议可能阻塞除一条链路外的所有链路,使得除一条未被阻塞的链路之外的所有链路都不可用)。当把虚拟网络设备202视为单个实体时,例如,智能附属网络设备128(1)可以简单地基于负载共享约束来选择在哪条链路上发送分组。类似地,如果虚拟链路束350(1)出现故障,则智能附属网络设备128(1)不必改变生成树协议的应用方式。相反,智能附属网络设备128(1)可以简单地继续使用虚拟链路束350(1)中的无故障链路。
图3C示出了在网络设备126(1)和126(2)彼此协调以作为虚拟网络设备被操作并且智能附属网络设备128(1)和128(2)中的每一个都作为网络设备126(1)和126(2)的虚拟线路卡被操作的情形下,虚拟网络设备202可有效地包括网络设备126(1)和126(2)和智能附属网络设备128(1)和128(2)的方式。当以此方式操作时,对虚拟网络设备202的每个方面的管理可集中于网络设备126(1)和126(2)之一中。在一些实施例中,网络设备126(1)和126(2)中的每一个都控制虚拟网络设备202的一个不同方面。例如,网络设备126(1)可管理针对经由虚拟链路束350(1)连接的接口的路由选择协议,而网络设备126(2)管理针对经由虚拟链路束350(2)连接的接口的路由选择协议。在其他实施例中,虚拟网络设备202的所有方面都由同一网络设备126(1)或126(2)控制。
通过集中虚拟网络设备202的管理,可以简化虚拟网络设备202的用户管理。例如,如果需要更新配置信息,则服务人员可以手工升级当前控制虚拟网络设备202的网络设备126(1)上的配置信息。然后,网络设备126(1)可以自动将更新后的信息分发到网络设备126(2),网络设备126(1)和126(2)可以类似地将信息分发到智能附属网络设备128(1)和128(2)。
图4是智能附属网络设备的框图。如图所示,智能附属网络设备128(1)可包括几个端口402(1)-402(3)、附属转发引擎404,和几个上行链路接口406(1)-406(2)。注意,其他实施例中可包括更少或更多的端口、附属转发引擎,和/或上行链路接口。例如,在一个实施例中,智能附属网络设备包括几个线路卡,每个线路卡可包括其自己的端口、附属转发引擎,和/或上行链路接口。还要注意,智能附属网络设备128(2)的组件之间的物理布置和/或互连可以不同于图4所示的逻辑表示(例如在一些实施例中,端口402(1)-402(3)和上行链路接口406(1)-406(2)可以通过内部总线耦合到附属转发引擎404)。
端口402(1)-402(3)可被配置为耦合到将由网络互连的诸如服务器104(1)-104(n)这样的设备。端口402(1)-402(3)可提供入口、出口,和/或入口和出口功能,以便发送分组到这些设备或接收来自这些设备的分组。端口402(1)-402(3)被视为控制智能附属网络设备128(1)的虚拟网络设备202的本地端口(或者在不实现虚拟网络设备的实施例中被视为控制网络设备126(1)或126(2)的本地端口)。上行链路接口406(1)-406(2)被配置为耦合到到控制网络设备的上行链路。在本示例中,上行链路接口406(1)-406(2)中的每一个耦合到图3A-3C的虚拟链路束350(1)中的各条链路。附属转发引擎404对于如何通过网络运送由智能附属网络设备128(1)接收的分组执行判决。
当经由上行链路接口406(1)-406(2)之一发送分组时,头部被附加到分组。头部可包括标识端口402(1)-402(3)中的哪一个最初接收到分组的信息。头部还可包括附属转发引擎404执行的查找的结果(例如,如果附属转发引擎404没能在查找表中找到分组目的地地址的匹配,则头部可指示查找结果为分组由智能附属网络设备128(1)泛播(flood))。该头部可由发送分组的上行链路接口406(1)或406(2)中的控制器或由附属转发引擎404中的控制器附加到分组。
当分组经由上行链路接口406(1)-406(2)之一被接收时,分组还可包括头部,头部由控制网络设备126(1)或126(2)或其他智能附属网络设备(例如智能附属网络设备128(2))生成。该头部可包括标识已对分组执行了什么转发和/或路由和/或所述转发和/或路由的结果的信息。例如,考虑接收自网络设备126(1)的分组和头部。如果网络设备126(1)在查找表中针对分组目的地地址执行了查找,并且确定端口402(2)是分组的适当目的地,则头部可包括标识端口402(2)的信息。相反,如果网络设备126(1)没能在查找表中找到目的地地址的匹配,则网络设备126(1)可泛播分组。在此情况下,附加到分组的头部可指示分组应被泛播。
在一些实施例中,附属转发引擎404仅能执行在非附属设备中的转发引擎所执行的任务的一个子集。例如,网络设备126(1)和126(2)中包括的转发引擎转发分组,并主动参与各个第3层(L3)路由选择和第2层(L2)控制协议。相反,附属转发引擎404可以转发分组,但是不能主动参与所有(或任何)各个第3层(L3)路由选择和第2层(L2)控制协议。在这样的实施例中,附属转发引擎404被配置为从控制智能附属网络设备128(1)的网络设备(例如虚拟网络设备202)下载L3路由选择信息和/或L2控制信息。例如,附属转发引擎404可经由上行链路接口406(1)和/或406(2)接收一个或多个包括网络设备126(1)和/或126(2)生成的L3路由选择信息的分组。附属转发引擎404在本地存储该信息,并使用存储的信息对经由端口402(1)-402(3)接收的分组执行L3路由选择。在附属转发引擎404仅能执行转发和/或路由选择任务的一个子集的实施例中,可使用比实现转发和/或路由选择任务的全集所必需的硬件复杂度更低和/或更便宜的硬件来实现附属转发引擎404。
附属转发引擎404执行其自己的第2层(L2)获知和转发。例如,如果经由端口402(1)从具有MAC(媒体访问控制)地址A的设备接收到分组,则附属转发引擎404可通过将MAC地址A与端口402(1)相关联来“获知”MAC地址A在端口402(1)后面。附属转发引擎404可通过向MAC地址A分配查找表条目并在该条目中存储标识端口402(1)的信息来关联MAC地址A和端口402(1)。如果后来经由另一端口或经由上行链路接口接收到分组,并且该分组指定MAC地址A作为其目的地,则附属转发引擎404将发送该分组到端口402(1)。
当附属转发引擎404不能在本地转发分组时,附属转发引擎404致使分组经由上行链路(例如通过发送分组到耦合到适当上行链路的上行链路接口)被发送到控制网络设备。因此,如果分组的目的地地址不对应于端口402(1)-402(3)之一,或者如果附属转发引擎404不知道分组的目的地地址的位置,则附属转发引擎404可使得分组被发送到上行链路接口406(1)和406(2)之一。例如,如果目的地接口在不同的智能附属设备上或者在控制网络设备126(1)和126(2)之一的本地端口上,则附属转发引擎404将选择上行链路接口406(1)和406(2)之一。类似地,如果分组具有多播目的地地址并且如果由该地址所标识的多播组中的设备中的任意一个都没有本地附接到智能附属网络设备128(1),则附属转发引擎404可使得分组被发送到对应于多播组的每个端口,还被发送到上行链路接口406(1)和406(2)之一。
附属转发引擎404还可维护本地生成的转发信息和由控制网络设备维护的转发信息之间的一致性。例如,假设智能附属网络设备128(1)经由上行链路接口406(1)和406(2)之一接收分组和头部。头部中包括的转发信息与由附属转发引擎404维护的转发信息不一致。响应于检测到不一致,智能附属网络设备128(1)使得差错通知被回送到发送网络设备(例如通过发送差错通知到适当的上行链路接口)。该差错通知可以指示已经检测到不一致,并且可以标识不一致的特定信息。在一些实施例中,差错通知还可包括信息的正确值。
作为示例,考虑连接到端口402(2)的设备被移除和重附接到端口402(1)的情况。智能附属网络设备128(1)已检测到这一变化,但是其他网络设备(例如控制网络设备126(1)和/或126(2))尚未更新本地转发信息以反映这一变化。智能附属网络设备128(1)经由上行链路接口406(1)接收分组。该分组的头部指示端口402(2)是分组的目的地,但是附属转发引擎404所维护的转发信息指示端口402(1)是正确的目的地。响应于该不一致,附属转发引擎404使得差错通知被发送到发送设备。该差错通知例如包括分组的目的地地址和端口402(1)的逻辑标识符。在类似示例中,如果经由上行链路接口接收到分组,并且分组的头部指示分组正被泛播,而且如果附属转发引擎404知道分组的目的地地址的位置在端口402(3)后面,则发送差错通知。该差错通知例如包括端口402(3)的逻辑标识符和分组的目的地地址。
在一些实施例中,经由上行链路接口406(1)和406(2)接收的分组具有指示已对那些分组执行了路由选择的头部。在此情况下,智能附属网络设备128(1)不对那些分组执行额外的路由选择。
注意,如果智能附属网络设备128(1)已经经由本地端口402(1)-402(3)中的任意一个转发了分组,则智能附属网络设备128(1)不应在以后经由其任何本地端口转发该分组的另一拷贝。例如,假设智能附属网络设备128(1)在每个外出端口上(除了最初接收分组的端口)都泛播分组,并经由上行链路接口406(1)发送分组的拷贝和适当头部。假设上行链路接口406(1)耦合到网络设备126(1),则网络设备126(1)接收分组和头部。网络设备126(1)还泛播分组,以使得分组的拷贝被发送到本地附接到网络设备126(1)的任何设备、经由虚拟链路束350(2)发送到智能附属网络设备128(2),以及经由虚拟网络设备链路360发送到网络设备126(2)(如图3A所示)。当网络设备126(2)接收分组时,它更新头部中的值,以指示分组是从网络设备126(1)接收的(或者网络设备126(1)可更新该值)。如果网络设备126(2)也泛播分组,则如有必要的话,网络设备126(2)将防止分组的任何拷贝经由虚拟链路束350(1)和350(2)被发送,因为网络设备126(1)已经在那些虚拟链路束上发送了分组的拷贝。因此,虚拟网络设备202中的网络设备可协调操作,以防止从特定智能附属网络设备接收的分组被回送到该特定智能附属网络设备。
图5是示出了智能附属网络设备执行本地转发的方式的流程图。如501所示,经由智能附属网络设备的端口接收分组。例如,经由以太网链路从连接到该端口的服务器接收分组。响应于接收到分组,智能附属网络设备获知分组的源地址是本地附接的,如503所示。因此,智能附属网络设备可获知发送设备的地址在接收分组的端口后面(在501)。智能附属网络设备例如可通过分配查找表中的条目来获知该位置。该条目可包括分组的源MAC地址和经由其接收到分组的端口的逻辑标识符。
在505,智能附属网络设备判断智能附属网络设备是否知道分组被寻址到的目的地设备的位置。例如,智能附属网络设备可向查找表输入分组的目的地地址。如果在查找表中找到匹配条目,则智能附属网络设备就知道了分组的目的地设备的位置。如果没有找到匹配条目(例如如果查找表中缺失目的地地址),则智能附属网络设备不知道分组的目的地设备的位置。
如果知道了目的地设备的位置,则智能附属网络设备判断是否分组的所有目的地设备都是本地附接的,如507所示。例如,如果分组是单播分组,则智能附属网络设备可在查找表中查找分组的目的地地址。如果在查找表中找到了目的地地址的匹配条目,则如果匹配条目标识智能附属设备的本地端口,则智能附属网络设备可从标识出的端口输出分组,如509所示。如果相反,匹配条目标识控制网络设备上的端口(例如在虚拟网络设备中)或另一智能附属网络设备上的端口,则智能附属网络设备用头部封装分组,并将分组经由上行链路接口发送到控制网络设备,如511所示。头部包括查找结果和/或标识经由其接收到分组的端口的信息(在501)。
一般地,如果分组的任何目的地设备都不是本地附接的,则智能附属网络设备封装分组,并经由上行链路接口发送封装后的分组,如511所示。如果存在多个上行链路将智能附属网络设备耦合到控制设备(例如图3A-3C所示的虚拟网络设备),则智能附属网络设备选择用于发送封装后的分组的单个上行链路。如果分组的一些目的地设备也是本地附接的,则智能附属网络设备也可发送分组的拷贝到每个本地附接的目的地设备。例如,假设分组的目的地地址是标识具有3个成员设备的多播组的多播目的地地址。多播组中有两个设备本地附接到智能附属网络设备,而其余设备不是这样。在此情况下,智能附属网络设备发送分组的拷贝到多播组中每个本地附接的设备。智能附属网络设备还经由上行链路接口发送分组的封装后的拷贝,以便转发到多播组中的最后一个设备。
如果智能附属网络设备不知道目的地设备是否是本地附接的(例如如果分组的目的地地址在查找表中缺失),则智能附属网络设备泛播分组,如513所示。当分组被泛播时,智能附属网络设备经由每个本地端口(除了在501接收到分组的端口之外的端口)发送分组的拷贝。注意,在实现VLAN(虚拟局域网)的实施例中,分组仅被泛播到与接收分组的端口处于相同VLAN中的端口。智能附属网络设备还经由上行链路之一发送分组的封装后的拷贝。
图6是示出了智能附属网络设备经由上行链路接口接收转发信息的方式的流程图。在601,智能附属网络设备经由上行链路接口接收封装后的分组。该分组被封装以包括转发信息(例如通过访问查找表获得的端口标识符)的头部。
在603,智能附属网络设备判断附加到分组的转发信息是否与智能附属网络设备维护的本地转发信息一致。例如,智能附属网络设备可向查找表提供分组的目的地地址。如果找到匹配条目,则智能附属网络设备可将匹配条目中包括的信息与分组头部中包括的信息相比较。如果信息不一致(例如如果头部标识的端口与匹配转发表条目标识的不同),则智能附属网络设备经由上行链路接口发送不一致指示,如605所示。用于发送该指示的上行链路接口可以与接收分组(在601)的上行链路接口相同,或者是与接收分组的上行链路接口处于相同接口束中的另一上行链路接口。
不一致指示可包括标识哪些信息不一致的信息。例如,指示可包括分组的目的地地址。不一致指示还可包括转发信息的正确值。例如,如果智能附属网络设备已经获知目的地设备在本地端口后面,但是经由上行链路接口接收的头部指示分组正在被泛播,则智能附属网络设备可将分组的目的地地址和本地端口的端口标识符包括在不一致指示中。不一致指示在一些实施例中是MAC通知。
如果信息一致(例如如果信息相同),则智能附属网络设备不需要经由上行链路发送不一致指示。此外,如果智能附属网络设备尚不知道分组目的地的位置,但是附加到分组的头部标识了该位置,则智能附属网络设备可更新其本地转发信息,以包括附加到分组的转发信息,如607所示。
图7示出了利用L2控制信息和L3路由选择信息来配置智能附属网络设备的方法。如图所示,在701,智能附属网络设备经由上行链路接口下载L3路由选择信息(例如以一个或多个转发表的形式)和L2控制协议信息。该下载可由智能附属网络设备发起(例如在被加电或检测到可能的不一致时),或由控制网络设备发起(例如周期性地或响应于控制网络设备更新其信息拷贝)。然后,智能附属网络设备可使用下载的信息来执行本地转发。
在703,智能附属网络设备生成用于本地附接设备的L2转发信息。例如,响应于从本地附接服务器接收到分组,智能附属网络设备获知服务器位于本地端口后面。然后,智能附属网络设备使用该信息来转发分组。因此,智能附属网络设备可基于本地生成的转发信息和基于从控制网络设备下载的转发信息来转发分组。
图8示出了根据本发明一个实施例智能附属网络设备是如何转发分组的。这里,两个智能附属网络设备128(1)和128(2)耦合到虚拟网络设备202。智能附属网络设备128(1)由虚拟链路束350(1)耦合到虚拟网络设备202,智能附属网络设备128(2)经由虚拟链路束350(2)耦合到虚拟网络设备202。智能附属网络设备128(1)和智能附属网络设备128(2)都可作为虚拟网络设备202的虚拟线路卡工作,如上所述。这样,虚拟网络设备202可执行用于智能附属网络设备的路由选择和转发。虚拟网络设备202还可配置为执行用于智能附属网络设备的控制协议处理。
在本示例中,示出了步骤1-8。在步骤1,智能附属网络设备128(1)经由端口P1接收来自本地附接设备的分组。在步骤2,智能附属网络设备判断分组是否可在本地转发。例如,智能附属网络设备128(1)在转发表中查找分组的目的地地址。
在本示例中,智能附属网络设备128(1)不知道分组的目的地设备的位置(例如分组的目的地地址在转发表中缺失)。因此,智能附属网络设备128(1)泛播分组,如步骤3所示。当分组被泛播时,分组的拷贝从P1以外的每个端口输出。分组的另一拷贝经由包括在虚拟链路束350(1)中的上行链路之一输出。
虚拟网络设备202接收经由虚拟链路束350(1)发送的分组拷贝。在步骤4,虚拟网络设备202确定如何转发分组。这里,虚拟网络设备202也不知道分组的目的地的位置,因此虚拟网络设备202泛播分组,如步骤5所示。在泛播分组时,虚拟网络设备202选择在虚拟链路束350(2)中的哪条链路上将分组拷贝发送到智能附属网络设备128(2)。该分组拷贝被封装以指示分组正被泛播的头部。在该示例中,由于分组是经由虚拟链路束350(1)接收的,因此虚拟网络设备202在泛播分组时不发送分组的另一拷贝到智能附属网络设备128(1)。
智能附属网络设备128(2)经由虚拟链路束350(2)接收封装后的分组。在步骤6,智能附属网络设备128(2)判断头部中的转发信息是否与智能附属网络设备128(2)生成的本地转发信息一致。在本示例中,智能附属网络设备128(2)知道分组的目的地地址位于端口P2后面。因此,智能附属网络设备128(2)经由端口P2输出分组,如步骤7所示。
由于头部中的转发信息与本地转发信息不一致,智能附属网络设备128(2)还经由虚拟链路束350(2)中的上行链路之一输出差错通知,如步骤8所示。该差错通知可包括分组的目的地地址和端口P2的逻辑标识符。响应于接收到差错通知,虚拟网络设备202可获知目的地设备的位置。因此,被寻址到目的地设备的后续分组将不会被虚拟网络设备202泛播。虚拟网络设备还可将差错通知转发到智能附属网络设备128(1),从而智能附属网络设备128(1)将不再泛播被发送到该目的地设备的分组。
注意,在一些实施例中,实现执行本地转发和/或路由同时还由另一网络设备控制的智能附属网络设备所需的一些功能在执行于智能附属网络设备上的软件中实现。例如,每个智能附属网络设备可包括存储有可用来执行图5,6和7所示的一个或多个方法的程序指令和/或数据的计算机可读介质。这些程序指令可被执行来检测分组的接收,所述分组由附属网络设备经由接口接收。计算机可读介质的示例性类型包括CD(致密盘)、DVD(数字多用盘)、硬盘、光盘、磁带设备、软盘,以及存储器(例如各种RAM(随机访问存储器)、ROM(只读存储器)、闪存、MEMS(微机电系统)存储器,等等)。这种网络设备可包括配置为执行存储在计算机可读介质中的程序指令的一个或多个处理器(例如微处理器、PLD(可编程逻辑器件)或ASIC(专用集成电路))。程序指令和/或数据还可经由诸如因特网这样的网络或在承载介质上被传送到智能附属网络设备。在一些实施例中,计算机可读介质是诸如网络和/或无线链路这样的承载介质,其上运送编码有数据和指令的电、电磁或数字信号这样的信号。
应当注意,这里描述的图中多次使用了变量标识符“n”,以便更简单地指代一系列相关或相似元件的最后一个元件。这种变量标识符的重复使用不一定意味着在这些元件系列的大小之间存在关联,虽然这种关联可能存在。使用这种变量标识符并不需要每个元件系列都与由相同变量标识符标记的其他系列具有相同数量的元件(例如每个网络层中的网络设备数量可以有变化)。相反,在每种使用情形下,由“n”(或任意其他这种标识符)标识的变量可以与相同变量标识符的其他情形具有相同或不同的值。
虽然已经参考本发明的特定实施例描述了本发明,但是本领域的技术人员可作出多种变化和修改。这些变化和修改都应落在所附权利要求的范围内。
实用性本发明的实施例可用于联网领域。
权利要求
1.一种方法,包括经由多个端口中的第一端口接收分组,所述分组包括目的地地址;以及如果所述目的地地址不与所述多个端口中的任何一个相对应,则将所述分组发送到上行链路接口。
2.如权利要求1所述的方法,还包括如果所述目的地地址与所述端口之一相对应,则将所述分组发送到所述端口之一。
3.如权利要求1所述的方法,还包括响应于检测到本地转发信息和经由所述上行链路接口接收的转发信息之间的冲突,发送差错通知到所述上行链路接口。
4.如权利要求3所述的方法,其中所述差错通知包括指示所述转发信息的正确值的信息。
5.如权利要求1所述的方法,还包括将与所述分组相关联的信息发送到所述上行链路接口,其中所述信息标识所述第一端口。
6.如权利要求5所述的方法,其中所述信息包括通过针对所述目的地地址执行查找而生成的目的地标识符。
7.如权利要求1所述的方法,还包括经由所述第一端口接收第二分组,所述第二分组包括多播目的地地址;将所述第二分组的拷贝发送到所述端口中的一个或多个;以及将所述第二分组的额外拷贝发送到所述上行链路接口。
8.如权利要求1所述的方法,还包括经由所述第一端口接收第二分组,所述第二分组包括未知的目的地地址;以及泛播所述第二分组,其中所述泛播包括将所述第二分组的拷贝发送到所述上行链路接口和到所述端口中的一个或多个。
9.一种系统,包括多个端口;上行链路接口;以及耦合到所述端口和所述上行链路接口的附属转发引擎。
10.如权利要求9所述的系统,其中所述端口中的第一端口被配置为接收包括目的地地址的分组,以及所述附属转发引擎被配置为如果所述目的地地址不与所述端口中的任何一个相关联,则将所述分组发送到所述上行链路接口。
11.如权利要求10所述的系统,其中如果所述目的地地址与所述端口之一相关联,则将所述分组发送到所述端口之一。
12.如权利要求10所述的系统,还包括控制器,其被配置为在所述分组被发送到所述上行链路接口之前将头部附加到所述分组,其中所述头部包括标识所述第一端口的信息。
13.如权利要求12所述的系统,其中所述头部包括通过针对所述目的地地址执行查找而生成的目的地标识符。
14.如权利要求10所述的系统,还包括耦合到所述上行链路接口的上行链路,其中所述上行链路被包括在虚拟链路束中;耦合到所述虚拟链路束的虚拟网络设备,其中所述虚拟网络设备被配置为经由所述上行链路接收所述分组;以及所述虚拟网络设备被配置为防止所述分组随后经由所述虚拟链路束被发送。
15.如权利要求10所述的系统,其中所述附属转发引擎被配置为响应于检测到本地转发信息和经由所述上行链路接口接收的转发信息之间的冲突,将差错通知发送到所述上行链路接口。
16.如权利要求15所述的系统,其中所述差错通知包括指示所述转发信息的正确值的信息。
17.如权利要求15所述的系统,其中所述附属转发引擎被配置为经由所述上行链路下载转发信息。
18.如权利要求9所述的系统,还包括控制器,其被配置为将与所述分组相关联的信息发送到所述上行链路接口,其中所述信息标识所述第一端口;以及所述信息包括通过针对所述目的地地址执行查找而生成的目的地标识符。
19.如权利要求18所述的系统,其中所述端口中的第一端口被配置为接收包括目的地地址的分组,以及所述附属转发引擎被配置为如果所述目的地地址不与所述端口中的任何一个相关联,则将所述分组发送到所述上行链路接口。
20.如权利要求9所述的系统,其中所述端口中的第一端口被配置为接收分组,所述分组包括多播目的地地址;所述附属转发引擎被配置为将所述分组的拷贝发送到所述端口中的一个或多个;以及所述附属转发引擎被配置为经由所述上行链路接口发送所述分组的额外拷贝。
21.如权利要求9所述的系统,其中所述端口中的第一端口被配置为接收分组;以及所述附属转发引擎被配置为泛播所述分组,其中泛播所述分组包括将所述分组的拷贝发送到所述上行链路接口和所述端口中的一个或多个中的每一个。
22.一种系统,包括用于经由多个端口中的第一端口接收分组的装置,所述分组包括目的地地址;以及用于如果所述目的地地址不与所述多个端口中的任何一个相对应,则将所述分组发送到上行链路接口的装置。
23.如权利要求22所述的系统,还包括用于如果所述目的地地址与所述端口之一相对应,则将所述分组发送到所述端口之一的装置。
24.如权利要求22所述的系统,还包括用于响应于检测到本地转发信息和经由所述上行链路接口接收的转发信息之间的冲突,发送差错通知到所述上行链路接口的装置。
25.如权利要求22所述的系统,还包括用于将与所述分组相关联的信息发送到所述上行链路接口的装置,其中所述信息标识所述第一端口,并且所述信息包括通过针对所述目的地地址执行查找而生成的目的地标识符。
26.一种包括程序指令的计算机可读介质,所述程序指令可执行来检测经由多个端口中的第一端口对分组的接收,所述分组包括目的地地址;以及如果所述目的地地址不与所述多个端口中的任何一个相对应,则将所述分组发送到上行链路接口。
27.如权利要求26所述的计算机可读介质,其中所述程序指令还可执行来如果所述目的地地址与所述端口之一相对应,则将所述分组发送到所述端口之一。
28.如权利要求26所述的计算机可读介质,其中所述程序指令还可执行来响应于检测到本地转发信息和经由所述上行链路接口接收的转发信息之间的冲突,发送差错通知到所述上行链路接口。
29.如权利要求28所述的计算机可读介质,其中所述程序指令还可执行来经由所述上行链路接口将路由选择信息下载到转发引擎。
30.如权利要求26所述的计算机可读介质,其中所述程序指令还可执行来将与所述分组相关联的信息发送到所述上行链路接口,其中所述信息标识所述第一端口。
31.如权利要求30所述的计算机可读介质,其中所述信息包括通过针对所述目的地地址执行查找而生成的目的地标识符。
32.如权利要求26所述的计算机可读介质,其中所述程序指令还可执行来经由所述第一端口接收第二分组,所述第二分组包括多播目的地地址;将所述第二分组的拷贝发送到所述端口中的一个或多个;以及将所述第二分组的额外拷贝发送到所述上行链路接口。
33.如权利要求26所述的计算机可读介质,其中所述程序指令还可执行来检测经由所述第一端口对第二分组的接收,所述第二分组包括未知的目的地地址;以及泛播所述第二分组,其中泛播所述第二分组包括将所述第二分组的拷贝发送到所述上行链路接口和到所述端口中的一个或多个。
全文摘要
本发明公开了一种附属网络设备。该附属网络设备包括几个端口、上行链路接口和耦合到端口和上行链路接口的附属转发引擎。第一端口被配置为接收包括目的地地址的分组。附属转发引擎被配置为如果目的地地址不与端口中的任何一个相关联则将分组发送到上行链路接口。如果目的地地址与端口之一相关联则将分组发送到该端口之一。
文档编号H04L12/28GK1943173SQ200580011923
公开日2007年4月4日 申请日期2005年4月26日 优先权日2004年4月28日
发明者迈克尔·R·史密斯, 道格拉斯·艾伦·古尔利, 杰弗里·伊·王, 艾力·戈尔杉 申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1