利用mac限制来控制动态未知l2泛滥的制作方法

文档序号:7608769阅读:174来源:国知局
专利名称:利用mac限制来控制动态未知l2泛滥的制作方法
技术领域
本发明涉及数据联网,更具体地说,本发明涉及对包含在数据网络中的VLAN上的分组泛滥进行控制。
背景技术
数据网络是用于在诸如计算机等节点之间传输数据的互连的通信链路和网段在地理上的分布式集合。节点一般根据诸如传输控制协议/因特网协议(TCP/IP)或者电气电子工程师学会(IEEE)802.3协议等预定义的协议,通过交换包含数据的离散帧或分组来通过网络传输数据。在本上下文中,协议由一组定义了节点如何彼此交互来在它们之间传输数据的规则组成。
存在从局域网(LAN)到广域网(WAN)的很多种网络。LAN一般通过位于大体相同的物理位置(例如建筑物或园区)中的专用私有通信链路来连接多个节点(例如,个人计算机和工作站)来形成专用网络。另一方面,WAN一般通过长距离通信链路(例如,公共载波电话线路)来连接大量地理上分散的节点。互联网就是WAN的一个例子,其连接遍及全世界的不同的网络,从而提供包含在各种网络中的节点之间的全球通信。WAN通常包括中间网络节点的复杂网络,例如路由器或交换机,这些中间网络节点互连形成该WAN,并且通常配置为执行与将流量发送过WAN相关联的各种功能。
一些组织在他们的专用网络中实现虚拟LAN(VLAN)来对该组织内的例如用户、服务器和其他资源等实体进行分组。VLAN是诸如末端节点和服务器之类的实体的逻辑群组,即使这些实体分布在包括许多不同物理网段的大网络上,它们彼此看起来也象在同一个物理LAN网段上。VLAN工作在作为开放系统互连(OSI)参考模型的第2层(L2)的在数据链路层。
一个组织可以利用一个或多个中间节点,例如,L2交换机,来耦合属于特定VLAN的网络中的各种实体。这些中间节点可以采用特定的硬件或软件,该硬件或软件配置为“获知”关于属于该VLAN的实体的各种信息,并且将该信息置于转发数据库中,转发数据库由中间节点用来将该节点获取的分组转发到各个实体。所获知的信息可能包括与实体相关的VLAN和媒体访问控制(MAC)地址、以及中间节点上的端口的端口标识符(ID),其中该端口是通过其可以到达该实体的端口。
通常中间节点采用内容可寻址存储器(CAM)来存储转发数据库信息。CAM通常作为专用存储器器件实现在硬件中,其允许在单个时钟周期内对其全部内容进行搜索。两种常用类型的CAM包括二元CAM和三元CAM(TCAM)。二元CAM执行精确匹配搜索,而TCAM则允许在搜索中使用“不关心”作为通配符来实现模式匹配。因此,在一定程度上TCAM比二元CAM更通用,中间节点通常采用一个或多个TCAM器件来实现中间节点的转发数据库。
TCAM器件的存储容量通常有限。例如,一般的TCAM器件可能至多包含32,768(32K)个条目。在一般的转发数据库布置中,TCAM配置为每个条目保存与中间节点可访问的一个特定实体相关联的转发数据库信息。因此,利用TCAM器件实现转发数据库通常被限制为仅包含至多32K个条目的信息。
转发数据库中的条目一般利用一种称作“获知”的技术来填充。获知包括识别出关于网络中的实体的信息,例如,与实体相关联的MAC地址、VLAN和目的地端口,然后将该信息放置到转发数据库条目中。例如,假设中间节点在源端口“C”上获得一个分组,该分组包含源MAC地址“A”。还假设该端口与VLAN“B”相关联。中间节点就将MAC地址“A”应用到它的转发数据库,来确定在该数据库中是否已存在与实体“A”相关联的条目。假定不存在这样的条目,则中间节点通过将该实体的地址、与该实体相关联的源端口信息和VLAN放置到它的转发数据库中的一个条目中,从而“获知”该实体。因此,在上述示例中,中间节点在转发数据库中创建了与该实体相关联的条目,该条目包含分别代表与该实体相关联的地址、VLAN和源端口的“A”、“B”和“C”。稍后中间节点可以使用该信息来转发去往该实体的分组。
除了获知之外,中间节点还可以通过执行“查找”操作来识别出与分组相关联的目的地端口并且将该分组转发往该目的地端口,从而处理分组。查找操作可能包括将分组中包含的目的地地址应用到转发数据库,来确定该数据库是否包含具有与目的地地址匹配的地址的条目。如果发现了匹配条目,则中间节点经由在该匹配条目中指定的目的地端口将分组转发到目的地节点。如果未发现匹配条目,则中间节点可以另行将分组“泛滥”出所有端口,来试图到达目的地节点。泛滥通常包括在除了中间节点的获取到分组的源端口之外的每个端口上发送该分组的拷贝。
上述获知技术的一个问题是属于一个VLAN的条目可能占用转发数据库中的全部或过多数量的条目,从而可能致使中间节点不断获知属于其他VLAN的实体。例如,如果属于一个特定VLAN的实体的数量比转发表中的条目的数量多,则转发表可能仅包含与该VLAN相关联的条目。与来自其他VLAN的实体相关联的条目最终被取代并且因此必须被重获知。这将导致取代和重获知连续循环进行,从而可能极大地影响中间节点的分组处理性能。
在一个VLAN的实体占用转发表中的全部或过多数量的条目后可能发生的另一个问题是过度的泛滥,尤其是在对去往属于其他VLAN的实体的分组进行处理时。这种过度泛滥可能致使网络的性能极大地下降。例如,如上所述,假设第一VLAN具有比转发数据库中的条目多的实体,并且这些实体都是活动的,并且整个数据库都被与这些实体相关联的条目占用。则从第二VLAN获取的分组将必须被泛滥,因为转发数据库将不会包含与所获取的分组的目的地地址相关联的条目。如果在来自第二VLAN的分组被获取到并被处理之前第一VLAN继续占用转发数据库中的所有条目,则第二VLAN的分组不得不继续被泛滥,从而可能导致在处理第二VLAN的分组时产生过多的流量并且将流量引入到网络中。这些过多的流量可能进一步导致网络拥塞和网络恶化。

发明内容
本发明通过提供下述技术克服了现有技术的缺点该技术可由中间节点用来对泛滥数据网络中包含的虚拟局域网(VLAN)上的分组进行控制。根据该技术,针对每个VLAN建立限制,其中该限制指示可与VLAN相关联的转发数据库条目的数目。生成指示转发数据库中与VLAN相关联的条目的的计数。将该计数与该限制相比较,以确定该计数是否与该限制匹配。如果匹配,则执行动作来对泛滥该VLAN上的分组进行控制。
在所示实施例中,中间节点包含一个或多个编码地址识别逻辑(EARL)器件,每个EARL器件配置为获知和转发由中间节点从数据网络获取的分组。另外,每个EARL器件包含转发数据库和媒体访问控制(MAC)限制数据库。转发数据库配置为保存VLAN、MAC地址和由中间节点处理的分组的端口关系。MAC限制数据库配置为保存关于网络中包含的VLAN的各种信息,包括每个VLAN的MAC限制和MAC计数。MAC限制是一个预定义的值,指示转发数据库中可以与一个特定的VLAN相关联的条目数目的“天花板”。MAC计数是指示转发数据库中与VLAN相关联的条目的实际数目的值。
每个EARL执行MAC限制过程,即,对转发数据库进行监控并且确定VLAN的MAC计数的软件过程。此外,MAC限制过程确定VLAN的MAC计数是否与该VLAN的MAC限制匹配,并且如果匹配,则采取预定义的动作。该动作可以包括发布警告到系统日志、限制获知该VLAN的条目、限制泛滥该VLAN的分组、或者关闭该VLAN。
有益地,本发明提供了一种技术,该技术限制转发数据库中可以与VLAN相关联的条目的数目,从而避免单个或一小组VLAN使用全部或大部分转发数据库条目。通过以此方式限制条目的数目,该创造性技术限制了可能由于处理下述VLAN的分组而生成的泛滥流量的数量,所述VLAN是由例如与占转发数据库全部或大部分的条目相关联的VLAN替换掉的VLAN。


通过结合附图参考下面的描述可以更好地理解本发明的上述和其他优点,在附图中,相似的标号指示相同或功能上类似的元素图1是可以有益地与本发明一起使用的示例性网络的示意框图;图2是可以有益地与本发明一起使用的中间节点的高层部分示意框图;图3是可以有益地与本发明一起使用的监督引擎的高层部分示意框图;图4是可以有益地与本发明一起使用的线路卡的高层部分示意框图;图5是可以有益地与本发明一起使用的编码地址识别逻辑(EARL)的高层部分示意框图;图6是可以有益地与本发明一起使用的转发数据库的示意框图;图7是可以有益地与本发明一起使用的媒体访问控制(MAC)限制数据库的示意框图;图8A~B是根据本创造性技术用于处理分组的步骤序列的流程图;以及图9A~B是根据本创造性技术用于处理MAC限制数据库的步骤序列的流程图。
具体实施例方式
图1是可以有益地与本发明一起使用的计算机网络100的示意框图。计算机网络100包括连接到多个节点(例如,末端节点110和中间节点200)的通信链路和网段的集合。网络链路和网段可以包括由中间节点200互连来形成计算机节点的互连网络的局域网(LAN)120。这些互连的节点通过根据预定义的协议集合交换数据分组来通信,所述协议例如是传输控制协议/因特网协议(TCP/IP)、以及电气电子工程师学会(IEEE)802.3协议。
图2是可以有益地与本发明一起使用的中间节点200的高层部分示意框图。可以与本发明一起使用的合适的中间节点包括可从Cisco SystemsIncorporated,San Jose,CA获得的Cisco 6500系列路由器和Cisco 7600系列路由器。中间节点200包括由数据总线220互连的一个或多个线路卡400、交换结构卡230、以及监督引擎卡300。节点200配置为执行各种传统的第2层(L2)和第3层(L3)交换和路由功能等,包括交换和路由数据分组。此外,节点200还配置为对通信协议的各种组合提供支持,所述通信协议例如是TCP/IP、以太网、异步传输模式(ATM)和多信道T3。
数据总线220包括点到点互连总线,该总线互连各种卡,并且允许数据和信号从一个卡被传送到另一个。交换结构230是传统的交换结构设备,配置为结合线路卡400和监督引擎300工作来提高系统的带宽。就此而言,交换结构230包含以下逻辑该逻辑配置为从监督引擎300和线路卡400获取分组,确定该分组的目的地(例如,线路卡400),并且将该分组传送到该目的地。
线路卡400将中间节点200与网络100相连(相接口)。线路卡400利用各种协议(例如,ATM、以太网、T3),分别经由输出端口217和输入端口215,将数据分组传递到网络和获取来自网络的数据分组。在功能上,线路卡400经由输入端口215获取来自网络100的数据分组,然后将数据分组转发到数据总线220上;并且经由输出端口217将从数据总线220接收到的数据分组传送到网络100。端口215、217可以例如包括ATM、以太网、快速以太网(FE)、千兆比特以太网(GE)和帧中继(FR)端口。
监督引擎300包括配置为执行管理节点200、并且对其分发给线路卡400的集中的转发数据库进行维护等功能的逻辑。图3是可以有益地与本发明一起使用的监督引擎的高层部分示意框图。监督引擎300包括处理器320、系统控制器330、接口逻辑360和存储器340。存储器340包括可由系统控制器330寻址的随机访问存储器(RAM)位置,用于存储数据结构和软件程序等。操作系统342的多个部分一般驻留在存储器340中并由处理器320执行,操作系统342在功能上通过对在监督引擎300上执行的软件过程所支持的网络操作进行调用等来组织中间节点200。这些过程可以包括实现由中间节点200支持的各种路由和交换协议的软件功能,以及实现由监督引擎执行的各种功能(例如,管理中间节点)的过程。接口逻辑360耦合到数据总线220,并且配置为在数据总线220和处理器320之间传送数据。
存储器340例如是利用动态随机访问存储器(DRAM)器件实现的128M(Mb)存储器,其包含由处理器320使用的各种软件和数据结构。这些数据结构包括转发数据库344,转发数据库344包含各种转发信息,例如,网络中的节点的媒体访问控制(MAC)地址、以及与这些节点相关联的虚拟局域网(VLAN)标识符(ID)和目的地端口ID。系统控制器330耦合到处理器320和存储器340,并且包括配置为使处理器320能够访问(例如,读、写)存储器340中包含的存储器位置的电路。
处理器320是传统的路由处理器,配置为执行存储器340中包含的指令来维护和分发转发数据库344等。具体而言,处理器320执行获取关于由各个线路卡400处理的分组的信息(例如,与分组相关联的MAC地址、端口和VLAN ID)的指令,然后利用该信息来维护转发数据库344。此外,处理器320执行指令来将其转发数据库344分发给各个线路卡400,如下面将描述的那样,线路卡400可以处理该信息来更新并维护它们的转发数据库版本。
图4是可以有益地与本发明一起使用的线路卡400的高层部分示意框图。线路卡400包括输入接口逻辑420、编码地址识别逻辑(EARL)500、数据总线接口逻辑460、输出接口逻辑430和输出排队逻辑440。每个线路卡可以包含耦合到网络100的多个输入215和输出217端口。输入接口逻辑420和输出接口逻辑430分别经由输入215和输出217端口将线路卡接口到网络100,并且使线路卡能够将数据传送到网络和获取来自网络的数据。就此而言,逻辑420和430包括传统的接口电路,该接口电路可以结合用于将线路卡400与网络的物理介质和在该介质上运行的协议相接口所需的信号、电气和机械特性、以及交换电路。
数据总线接口逻辑460包含接口电路,该接口电路将线路卡接口到数据总线220,并且使线路卡400能够发送数据到耦合到总线220的其他卡和获取来自耦合到总线220的其他卡的数据。输出排队逻辑440包含诸如输出队列和调度控制逻辑之类的电路,并被配置为控制经由输出接口430到网络100的数据传送。
EARL 500例如实现在专用集成电路(ASIC)中,其包括配置为根据本创造性技术获取数据分组并且处理它们的电路。图5是可以有益地与本发明一起使用的EARL 500的高层部分示意框图。EARL 500包括输入接口逻辑510、数据总线接口逻辑550、程序存储器530和动态存储器540,它们都耦合到处理引擎520。输入接口逻辑510包含这样的电路,该电路配置为获取来自输入接口420的数据分组,并且使处理引擎520能够访问这些分组。类似地,数据总线接口逻辑550包含使处理引擎520能够将所获取的分组传送到数据总线接口460的电路。另外,输入接口逻辑510和数据总线接口逻辑550可以包含可由引擎520访问的缓冲器,这些缓冲器配置为保存所获取的分组。
处理引擎520是传统的处理器,包含各种逻辑,例如,算术逻辑单元(ALU)和执行单元(EU),其被配置为执行计算机可执行指令,并且操纵程序存储器530和动态存储器540中包含的数据。另外,引擎520包含这样的逻辑,该逻辑配置为访问由输入接口逻辑510从输入接口420获取的分组,并且经由数据总线接口逻辑550将这些分组传送到数据总线接口460。此外,引擎520还包含传统的定时器电路522,说明性地,定时器电路522是可编程间隔定时器,可由引擎520配置为在预定间隔处期满。
程序存储器530和动态存储器540说明性地是包含随机访问存储器位置的传统计算机可读介质,这些随机访问存储器位置配置为保存可由处理引擎520访问的数据和计算机可执行指令。存储器530包含多任务操作系统532,多任务操作系统532在功能上以使引擎520能够执行各种传统的操作系统功能的方式组织处理引擎520,所述操作系统功能例如是提供系统服务、定时器服务、以及调度各种用于执行的软件过程。程序存储器530还包含MAC限制过程534和计算机可执行指令,MAC限制过程534是在操作系统532控制下执行的一种软件过程,并且所述计算机可执行指令可由引擎520执行并将引擎520配置为执行各种功能,这些功能包括结合了本创造性技术的各个方面的功能。
类似地,动态存储器540也是包含可由处理引擎520访问的随机访问存储器位置的计算机可读介质。存储器540包含各种数据结构,例如,转发数据库600和MAC限制数据库700,这些数据结构例如由引擎520用来根据本创造性技术处理分组。应当注意,存储器540可以是利用可由引擎520访问的CAM器件实现的内容可寻址存储器(CAM)。
图6是转发数据库600的示意框图,其被示作包括一个或多个条目610的表,其中每个条目610代表可由中间节点200经由数据网络访问的一个节点。条目610包含有效字段620、MAC地址字段630、VLAN字段640、端口字段650和线路卡字段660。有效字段620例如是1位的字段,其保存指示条目610中的剩余字段是否包含有效信息的指示符。例如,如果条目610包含有效信息则该字段保存值1。
MAC地址字段630例如是48位的字段,其保存由条目610代表的节点的MAC地址。VLAN字段640保存标识与条目610相关联的VLAN的标识符。类似地,端口字段650和线路卡字段660保存标识与由条目610代表的节点相关联的端口和线路卡400的标识符。例如,线路卡字段660和端口字段650中包含的标识符分别代表线路卡400和线路卡400上的输出端口217,通过该端口217可以到达由条目610代表的节点。应当注意,数据库600中的各个条目610可能不与VLAN相关联。对于这种条目,VLAN字段640包含指示该条目不与VLAN相关联的值。
在功能上,处理器320将监督引擎300中包含的转发数据库信息344经由数据总线220分发到每个线路卡400。在每个线路卡处,信息被数据总线接口逻辑460获取到,并且被传送到EARL 500,EARL 500对该信息进行处理,该处理包括利用该信息来配置其转发数据库600。线路卡400在输入端口215处获取的分组被传送到输入接口420,输入接口420然后将该分组传送到EARL 500。EARL 500将分组中包含的目的地地址应用到转发数据库600,来确定转发数据库600中的条目610是否包含与该分组中的目的地地址匹配的MAC地址630。如果包含,则EARL 500检查线路卡字段660的内容,并且确定是将该分组交换到线路卡400上的输出端口217,还是该分组是去往耦合到数据总线220的另一块卡。如果该分组是去往另一块卡(例如,其他线路卡400),则EARL 500将该分组与端口信息650一起经由数据总线接口460传送到去往交换结构卡230的数据总线220上。交换结构230然后将分组和端口字段650传送到卡以进一步处理。
如果分组不是去往另一块卡,即,该分组是去往线路卡400自身包含的输出端口217,则EARL 500指示数据总线接口逻辑460将该分组传送到输出排队逻辑440。输出排队逻辑440将分组放置到适当的输出队列上,以经由输出端口217传送到网络上。
本发明结合了这样的技术,该技术可以用来限制针对数据网络中的特定虚拟局域网(VLAN)发生的泛滥的数量。根据该技术,针对由网络中包含的中间节点处理的每个VLAN建立限制。该限制指示可以与VLAN相关联的转发表条目的数量。中间节点确定转发表中与VLAN相关联的条目的实际数目,并且将该数目与限制相比较来确定该数目是否与限制匹配。如果匹配,则采取包括限制针对该VLAN发生的泛滥的数量在内的动作。
MAC限制数据库数据结构700例如是包括一个或多个条目710的表,其中每个条目保存与特定VLAN相关联的信息。图7是可以有益地与本发明一起使用的MAC限制数据库700的高层示意框图。MAC限制数据库700例如是包括一个或多个条目710的表,其中每个条目710与一个VLAN相关联,并且包含VLAN字段730、MAC计数字段740、MAC限制字段750、动作字段760和状态字段770。VLAN字段730保存标识与该条目相关联的VLAN的标识符。MAC计数字段保存表示转发数据库600中与该VLAN相关联的转发表条目610的数目的值。MAC限制字段750保存例如代表转发表数据库600中可以与该VLAN相关联的条目610的最大数目的值。动作字段760包含标识在MAC计数740与MAC限制750匹配时采取的动作的标识符。例如,该动作可以包括在日志中记录警告、终止对该VLAN的“获知”(例如,停止将新的条目610关联到该VLAN)、终止为该VLAN泛滥分组和/或关闭该VLAN(例如,终止为该VLAN转发的流量)。
状态字段770保存与VLAN相关联的状态,该状态代表VLAN的状态。例如,该状态包括“关闭”状态、“不获知”状态、“不泛滥”状态和“活动”状态。“关闭”状态指示中间节点已关闭该VLAN,并且不为该VLAN转发流量。“不获知”状态指示中间节点不添加用于该VLAN的新的条目到转发数据库600。“不泛滥”状态指示中间节点不将流量泛滥到该VLAN上,“活动”状态指示中间节点正为该VLAN转发流量。
MAC限制过程534监控转发数据库600,维护在MAC限制数据库700中表示的每个VLAN的MAC计数740,并且如果一个VLAN的MAC计数740与针对该VLAN建立的MAC限制750匹配则采取动作。图8A~B是如果必要的话,可以根据本创造性技术用于监控转发数据库600、更新MAC限制数据库700和采取动作的步骤序列的流程图。该序列开始于步骤805,然后前进到步骤180,在该步骤中处理引擎520初始化定时器522,使其在预定间隔处期满,所述间隔例如为3分钟的间隔。接下来,在步骤815处,引擎520利用由中间节点200处理的各个VLAN的信息来初始化MAC限制数据库700中的条目710。例如,条目710中MAC计数字段740的内容被设置为零,并且利用从例如由网络管理员在节点200中配置的预定数据生成的信息来初始化条目710的VLAN字段730、MAC限制字段750和动作字段760。
在步骤820处,引擎520执行检查来确定定时器522是否已期满。如果未期满,则该序列返回步骤820。否则,该序列前进到步骤825,在该步骤中,引擎520访问转发数据库600中的第一条目610。在步骤830处,引擎520通过检查条目610的有效字段620来确定该字段是否包含例如1,从而确定条目610是否有效。如果无效,则该序列前进到步骤850。否则,在步骤832和835处,引擎520在MAC限制数据库700中定位与该转发数据库条目610的VLAN 640相关联的条目710,并且例如通过将该条目的MAC计数字段740的内容与该条目的MAC限制字段750的内容相比较,来确定与转发数据库条目610相关联的VLAN的MAC计数740是否与该VLAN的MAC限制750匹配。如果不存在匹配,则该序列前进到步骤840,在该步骤中,例如通过将MAC计数字段740的内容加1并且用该结果替换该内容,从而更新该字段的内容。该序列然后前进到步骤850。
但是,如果VLAN条目的MAC计数740与该条目的MAC限制750匹配,则该序列前进到步骤845,在该步骤中,引擎520执行由该条目的动作字段760指示的动作。例如,如上所述,该动作可以包括将该状况记录为在可由中间节点200访问的系统日志中的消息、禁止对该VLAN的获知、禁止为该VLAN泛滥数据分组和/或通过将该VLAN关闭来暂停针对该VLAN的全部流量。此外,引擎520更新与该VLAN相关联的状态字段770的内容来指示所采取的动作。例如,如果所采取的动作包括关闭VLAN,则引擎520更新状态770来指示“关闭”。类似地,如果所采取的动作包括禁止泛滥和/或禁止获知,则引擎更新状态770来分别指示“不泛滥”和/或“不获知”。
在步骤850处(图8B),引擎520访问下一个转发数据库条目610,然后在步骤855处,检查条目610来确定该条目610是否是数据库600中的最后一个条目。如果是,则该序列前进到步骤895,在该步骤中,该序列结束;否则,该序列返回步骤830。
图9A~B是根据本创造性技术可用于配置EARL 500来获取和处理分组的步骤序列的流程图。该序列开始于步骤905,然后前进到步骤910,在该步骤中,分组被输入端口215获取,并且最终被传送到输入接口逻辑510。接下来,在步骤915中,引擎520确定与该分组相关联的VLAN的状态770是否指示该VLAN已被关闭。例如,“与分组相关联的VLAN”是与在其上获取该VLAN的输出端口217相关联的VLAN。或者,分组可以与这样的VLAN相关联,该VLAN与分组中包含的VLAN标签或与分组中包含的源地址相关联。如果与分组相关联的VLAN已被关闭,则该序列前进到步骤965(图9B),在该步骤中该分组被丢弃(抛弃)。然后该序列在步骤995中结束。
如果VLAN的状态770未指示该VLAN被关闭,则该序列前进到步骤920,在该步骤中,定位与该分组相关联的VLAN的MAC限制条目710。接下来,在步骤925和930中,引擎520将分组中包含的源地址和转发数据库600中包含的MAC地址630相比较,以确定条目610是否包含与该分组中包含的源地址匹配的MAC地址630。如果包含,则该序列前进到步骤945(图9B)。否则,该序列前进到步骤935,在该步骤中,引擎520通过检查与VLAN相关联的状态字段770来确定该字段是否指示“不获知”,从而确定对该分组的VLAN的获知是否被禁止。如果是,则该序列前进到步骤945。如果不是,则该序列前进到步骤940,在该步骤中,引擎520生成包含分组的源地址、VLAN、端口和线路卡信息的转发数据库条目610。具体而言,引擎520将分组的源地址和标识与该分组相关联的VLAN的标识符分别放置到转发数据库600中的可用(无效)条目610的MAC地址字段630和VLAN字段640中。另外,引擎520例如将标识线路卡和该线路卡上的获取分组的端口的标识符分别放置到条目610的线路卡字段660和端口字段650中。然后,引擎520设置该条目的有效字段620的内容来指示该条目610是有效的(例如,将该字段的内容设置为1)。
在步骤945和950处,将目的地地址与转发数据库600中包含的MAC地址630相比较,来确定该目的地地址是否与数据库600中包含的条目610的MAC地址630匹配。如果匹配,则该序列前进到步骤955,在该步骤中,利用匹配条目610中包含的信息以传统方式转发该分组;例如,该分组被转发到由匹配条目610的端口字段650和线路卡字段660指示的端口和线路卡400。该序列然后在步骤995处结束。
如果未发现匹配条目610,则该序列前进到步骤960,在该步骤中,引擎520通过检查与VLAN相关联的状态770来确定该状态是否指示“不泛滥”,从而确定针对该分组的VLAN的泛滥是否被禁止。如果被禁止,则该序列前进到步骤965,在该步骤中分组被丢弃(抛弃)。否则,该序列前进到步骤970,在该步骤中,分组被泛滥。然后该序列在步骤995处结束。
应当注意,尽管在这里描述的说明性实施例中所描述的各种数据结构都被说明为表,但是,也可以使用其他类型的数据结构来实现这些数据结构,例如,链表或数组。
还应当注意,本创造性技术可以实现在硬件、软件(固件)或硬件和软件的组合中。例如,硬件实现可以实现数据结构(例如,硬件CAM中的转发数据库600和MAC限制数据库700)、以及在一个或多个硬件状态机中的由处理引擎520执行的函数。此外,软件实现可以实现作为软件定义的数据结构的数据库和由硬件执行的作为软件函数或例程的各种函数。
前面的描述集中于本发明的特定实施例。很清楚,可以对所述实施例作出其他变动和修改,同时保留它们的一些或全部优点。因此,所附权利要求书的一个目的是只要这种变动和修改在本发明的真实精神和范围内,就要覆盖所有这种变动和修改。
权利要求
1.一种在包括一个或多个虚拟局域网(VLAN)的数据网络的中间节点中用于对泛滥VLAN上的分组进行控制的方法,所述中间节点包含转发数据库并且所述转发数据库包括一个或多个转发数据库条目,该方法包括以下步骤建立指示可与所述VLAN相关联的转发数据库条目的数目的限制;确定与所述VLAN相关联的转发数据库条目的数目是否与针对所述VLAN建立的限制匹配;以及如果匹配则执行动作来对泛滥所述VLAN上的分组进行控制。
2.如权利要求1所述的方法,其中,所述中间节点包含媒体访问控制(MAC)限制数据库,所述MAC限制数据库包括一个或多个MAC限制数据库条目,其中每个条目与一个VLAN相关联,并且包含指示与所述VLAN相关联的转发数据库条目的数目的MAC限制和指示与所述VLAN相关联的转发数据库条目的数目的MAC计数。
3.如权利要求2所述的方法,包括以下步骤定位与所述VLAN相关联的MAC限制数据库条目;以及将所述MAC限制数据库条目的MAC计数与所述MAC限制数据库条目的MAC限制相比较来确定与所述VLAN相关联的转发数据库条目的数目是否与针对所述VLAN建立的所述限制匹配。
4.如权利要求2所述的方法,包括以下步骤访问与所述VLAN相关联的转发数据库条目;定位与所述VLAN相关联的MAC限制数据库条目;将所述MAC限制数据库条目的MAC计数与所述MAC限制数据库条目的MAC限制相比较,以确定所述MAC计数是否与所述MAC限制匹配;以及如果不匹配,则更新所述MAC计数。
5.如权利要求1所述的方法,其中,所述动作包括将消息记录到所述中间节点可访问的日志。
6.如权利要求1所述的方法,其中,所述动作包括禁止为所述VLAN进行泛滥。
7.如权利要求1所述的方法,其中,所述动作包括禁止为所述VLAN转发分组。
8.如权利要求1所述的方法,其中,所述动作包括禁止获知所述VLAN。
9.如权利要求1所述的方法,包括以下步骤获取分组,其中所述分组与所述VLAN相关联;确定所述VLAN是否被关闭;以及如果被关闭则丢弃所述分组。
10.如权利要求1所述的方法,包括以下步骤获取分组,其中所述分组与所述VLAN相关联;确定所述转发数据库是否包含以下条目所述条目包含与所述分组中包含的源地址匹配的MAC地址;如果不包含,则确定是否禁止获知所述VLAN;以及如果不包含,则生成包含所述分组的源地址的转发数据库条目。
11.如权利要求1所述的方法,包括以下步骤获取分组,其中所述分组与所述VLAN相关联;确定所述转发数据库是否包含以下条目所述条目包含与所述分组中包含的目的地地址匹配的MAC地址;如果不包含,则确定为所述VLAN进行的泛滥是否被使能;以及如果包含,则泛滥所述分组。
12.一种耦合到包含一个或多个VLAN的数据网络的中间节点,所述中间节点包括转发数据库,其包含一个或多个条目,其中每个条目与可由所述中间节点访问的节点相关联,并且其中每个条目与一个虚拟局域网(VLAN)相关联;以及处理器,其配置为针对每个VLAN,(i)建立对所述VLAN的限制,其中所述限制指示可以与所述VLAN相关联的转发数据库条目的数目,(ii)确定所述转发数据库中与所述VLAN相关联的条目的数目是否与针对所述VLAN建立的限制匹配,以及(iii)如果匹配,则执行动作来对泛滥所述VLAN上的分组进行控制。
13.如权利要求12所述的中间节点,还包括媒体访问控制(MAC)限制数据库,其具有一个或多个MAC限制数据库条目,其中每个条目与一个VLAN相关联,并且包含指示与所述VLAN相关联的转发数据库条目的数目的MAC限制,以及指示所述转发数据库中与所述VLAN相关联的条目的数目的MAC计数。
14.如权利要求13所述的中间节点,其中,所述处理器针对所述转发数据库中的每个条目被配置为将所述MAC计数和与所述转发数据库条目相关联的VLAN的MAC限制相比较,以确定所述MAC计数是否与所述MAC限制匹配。
15.如权利要求13所述的中间节点,其中,所述处理器配置为如果所述MAC计数与所述MAC限制不匹配,则更新所述MAC计数。
16.如权利要求12所述的中间节点,其中,所述动作包括将消息记录到所述中间节点可访问的日志。
17.如权利要求12所述的中间节点,其中,所述动作包括禁止为所述VLAN进行泛滥。
18.如权利要求12所述的中间节点,其中,所述动作包括禁止为所述VLAN转发分组。
19.如权利要求12所述的中间节点,其中,所述动作包括禁止获知所述VLAN。
20.一种系统,包括转发数据库,其包括与VLAN相关联的一个或多个转发数据库条目;用于建立限制的装置,其中所述限制指示所述转发数据库中包含的与所述VLAN相关联的条目的数目;用于确定所述转发数据库中与所述VLAN相关联的条目的数目是否与针对所述VLAN建立的限制匹配的装置;以及用于如果所述转发数据库中与所述VLAN相关联的条目的数目与针对所述VLAN建立的限制匹配,则执行动作来对泛滥所述VLAN上的分组进行控制的装置。
21.如权利要求20所述的系统,包括媒体访问控制(MAC)限制数据库,其包括一个或多个MAC限制数据库条目,其中每个条目与一个VLAN相关联,并且包含指示与所述VLAN相关联的转发数据库条目的数目的MAC限制,以及指示所述转发数据库中与所述VLAN相关联的条目的数目的MAC计数。
22.如权利要求20所述的系统,包括用于访问所述转发数据库中与所述VLAN相关联的条目的装置;用于将MAC计数和与所述VLAN相关联的MAC限制相比较来确定所述MAC计数是否与所述MAC限制匹配的装置;以及用于如果所述MAC计数与所述MAC限制不匹配则更新所述MAC计数的装置。
23.一种包含用于对泛滥VLAN上的分组进行控制的计算机可执行指令的计算机可读介质,所述计算机可读介质包含用于以下操作的计算机可执行指令建立对与所述VLAN相关联的转发数据库条目的数目的限制;确定所述转发数据库中与所述VLAN相关联的条目的数目是否与针对所述VLAN建立的限制匹配;以及如果匹配则执行动作来对泛滥所述VLAN上的分组进行控制。
全文摘要
一种技术可以用来对针对数据网络中的特定虚拟局域网(VLAN)发生的泛滥的数量进行限制。针对由中间节点处理的VLAN建立限制。每个限制指示可以与一个特定VLAN相关联的转发数据库条目的数量。如果转发数据库中条目数量达到针对特定VLAN建立的限制,则采取动作,所述动作可以包括限制针对该VLAN发生的泛滥的数量。
文档编号H04L12/56GK1875585SQ200480032156
公开日2006年12月6日 申请日期2004年10月18日 优先权日2003年11月4日
发明者迈克尔·T·吴, 阿努萨卡·埃兰戈万, 拉梅什·M·桑塔纳克瑞斯南, 钱戈拉派特·V·拉梅什, 韦福·L·登格 申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1