用于在分布式网络交换机中的路由表管理的系统和方法
【专利摘要】提供了用于管理在分布式网络交换机中的路由表的技术。该分布式网络交换机被划分为可以共享路由表的逻辑交换分区或逻辑网络。共享的路由表被配置计数器和阈值以在每一个逻辑网络的基础上控制路由表的利用。当计数器超过特定阈值时,修改路由表以减少在路由表内的路由项或者暂停新的路由项的插入。
【专利说明】用于在分布式网络交换机中的路由表管理的系统和方法
[0001]
【技术领域】
[0002]本发明的实施例总体上涉及计算机网络的领域。
【背景技术】
[0003]计算机系统经常使用在公共的机座中耦合在一起的多个计算机。该计算机可以是通过在机座内的公共主干(Backbone)耦合的独立服务器。每个服务器是可插入板,其包括至少一个处理器、板上存储器和输入/输出(I/O)接口。而且,服务器可以连接到交换机以扩展服务器的能力。例如,交换机可以允许服务器访问另外的以太网网络或外围部件互连快速(PCIe)插槽,并且允许在相同或不同机座中的服务器之间的通信。另外,也可以组合多个交换机以建立分布式网络交换机。
【发明内容】
[0004]本发明的实施例提供了用于执行用于在具有多个交换模块的分布式网络交换机中的路由表管理的操作的方法、产品和系统,其中,所述交换机模块至少包括第一交换模块。所述交换模块 包括多个电桥元件和路由表。在相应的交换模块中的所述多个电桥元件之间共享在每一个交换模块中的所述路由表。所述多个交换模块被逻辑地划分到多个逻辑网络内。所述操作包括:所述第一交换模块接收具有源地址和目的地地址的第一帧。所述第一帧与所述多个逻辑网络的第一逻辑网络相关联。所述操作进一步包括:在确定所述第一交换模块的所述路由表不包括用于所述源地址的路由项时,修改在所述第一交换模块中的所述路由表以包括具有对于所述源地址确定的路由信息的第一路由项和所述第一逻辑网络。所述操作包括:更新在与所述第一逻辑网络相关联的所述路由表中的路由项的计数。所述操作进一步包括:在确定与所述第一逻辑网络相关联的路由项的所述计数超过与所述第一逻辑网络相关联的第一阈值时,基于与所述第一逻辑网络相关联的所述第二路由项修改所述路由表以使得在所述路由项中的第二路由项无效。
【专利附图】
【附图说明】
[0005]为了获得和可以详细理解上述方面,可以参考附图提供如上简要汇总的本发明的实施例的更具体的说明。
[0006]然而,应当注意,附图仅图示了本发明的典型实施例,并且因此不被认为限制其范围,因为本发明可以允许其他等同有效的实施例。
[0007]图1图示了根据本发明的一个实施例的、包括分布式网络交换机的系统架构。
[0008]图2图示了根据本发明的一个实施例的、实现分布式网络交换机的系统的硬件表
/Jn ο
[0009]图3是描述根据本发明的一个实施例的交换模块的转发数据库的框图。[0010]图4是描述根据本发明的一个实施例的、用于在分布式网络交换机中逻辑划分基于散列的路由表的方法的流程图。
[0011]图5是描述根据本发明的一个实施例的、用于减少在由不同的逻辑交换分区共享的路由表中的特定逻辑交换分区的路由项的方法的流程图。
[0012]图6是描述根据本发明的一个实施例的、用于保持由不同的逻辑交换分区共享的路由表的方法的流程图。
[0013]为了便于理解,已经在可能时使用相同的附图标号来指示对于附图公共的相同元件。可以预期的是,在一个实施例中公开的元素可以有益地用在其他实施例上,而没有特定的说明。在此引用的附图不应当被了解为根据比例绘制,除非具体说明。而且,为了演示和说明的清楚,附图经常被简化并且细节或部件被省略。附图和说明用于解释下面描述的原理,其中,相似的指定表示相似的元件。
【具体实施方式】
[0014]本公开的实施例提供了用于管理在分布式网络交换机中的共享路由表的技术。在一个实施例中,可以将分布式网络交换机划分为共享公共的转发数据库(FDB)的逻辑交换分区或逻辑网络(LN)。在具有较大数量的MAC地址的给定的LN上的终端站可以支配共享FDB,并且填充路由表,由此使得在其他LN上的其他终端站使用请求来充满网络。在本发明的一个实施例中,分布式网络交换机在共享FDB中保存项目的多个计数器,以控制每一个逻辑网络的共享FDB的使用。根据一个实施例,分布式网络交换机可以动态地设置用于计数器的阈值。在一个示例中,当用于给定LN的计数器达到阈值水平时,分布式网络交换机可以根据各种标准来选择和无效来自用于给定LN的共享FDB的现有路由项。在另一个示例中,当用于给定的LN的计数器达到阈值水平时,分布式网络交换机可以限制在共享FDB中的用于给定LN的新的网络地址的学习。
[0015]下面,参考本发明的实施例。然而,应当明白,本发明不限于特定的描述的实施例。相反,下面的特征和元素的任何组合不论是否与不同的实施例相关预期实现和实施本发明。而且,虽然本发明的实施例可以相对于其他可能的解决方案和/或相对于现有技术实现优点,但是是否通过给定的实施例实现特定的优点不限制本发明。因此,下面的方面、特征、实施例和优点仅是说明性的,并且不被认为是所附的权利要求的元素或限制,除了在权利要求中明确地说明。同样,对于“本发明”的引用不应当被解释为在此公开的任何发明主题的一般化,并且不应当被认为是所附的权利要求的元素或限制,除了在权利要求中明确地说明。
[0016]例如,虽然本公开的特定方面可能讨论转发数据库以找到外出接口以转发在输入接口上接收的数据帧,但是应当认识到,在此所述的技术和实施例可以被扩展到其他分组交换系统,诸如路由表、路由信息库(RIB )、路由数据库等。如此一来,可以在此可交换地使用术语“转发”和“路由”。
[0017]所属【技术领域】的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0018]可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0019]计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0020]计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括一但不限于一无线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0021]可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言一诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0022]下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
[0023]也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)0
[0024]也可以将计算机形成指令安装到使得在计算机上执行一系列操作步骤的计算机、其他可编程数据处理设备或其他装置、用于产生计算机实现的处理的其他可编程设备或其他装置,使得在计算机或其他可编程设备上执行的指令提供用于实现在流程图和/或框图的一个或多个方框中指定的功能/行为的处理。[0025]附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0026]图1图示了根据本发明的一个实施例的、包括分布式网络交换机180的系统架构100。系统架构100包括连接到分布式网络交换机180的第一和第二服务器105、106。在一个实施例中,第一服务器105可以包括耦合到存储器110的至少一个处理器109。处理器109可以表示一个或多个处理器(例如,微处理器)或多核处理器。存储器110可以表示:随机存取存储器(RAM)装置,该装置包括服务器105的主存储器;以及,补充级的存储器,诸如高速缓存、非易失性或备份存储器(例如,可编程或快闪存储器)和只读存储器等。另外,存储器110可以包括物理地位于服务器105中或耦合到服务器105的另一个计算装置上的内存存储器。服务器105可以在操作系统(未示出)的控制下运行,并且执行各种计算机软件应用、部件、程序、对象、模块和数据结构,诸如虚拟机111。
[0027]服务器105可以包括网络适配器115(例如,聚合式网络适配器或CNA)。聚合式网络适配器可以包括单根I/o虚拟(SR-1OV)适配器,诸如外围部件互连快速(PCIe)适配器,该PCIe适配器支持聚合式增强以太网(CEE)。系统100的另一个实施例可以包括多根I/O虚拟(MR-1OV)适配器。网络适配器115可以进一步用于实现以太网光纤信道(FCoE)协议、以太网RDMA和因特网小计算机系统接口(iSCSI)等。通常,网络适配器115使用基于以太网和PCI的通信方法来传送数据,并且可以耦合到虚拟机111的一个或多个。具体地说,可以将以太网用作对于分布式网络交换机的协议,而可以将PCI用作用于从主存储器向网络适配器115传送数据,或者从网络适配器115向主存储器传送数据的协议。另外,适配器可以促进在虚拟机111之间的共享访问。虽然将适配器115示出为被包括在服务器105内,但是在其他实施例中,适配器可以物理地区分与服务器105分离的不同装置。
[0028]如图1中所示,第二服务器106可以包括耦合到存储器110的处理器109,处理器109包括与在第一服务器105中找到的那些类似的一个或多个虚拟机111。服务器106的存储器110可以包括超管理器113,超管理器113被配置为管理在不同的虚拟机111之间共享的数据。超管理器113可以包括虚拟电桥114,虚拟电桥114允许在连接的虚拟机111之间的直接通信,而不要求虚拟机111使用电桥元件120或交换层130来向可通信地耦合到超管理器113的其他虚拟机111发送数据。
[0029]在一个实施例中,每一个网络适配器115可以包括聚合式适配器虚拟电桥(未示出),其通过协调向虚拟机111的访问促进了在适配器115之间的数据传送。每个聚合式适配器虚拟电桥可以识别在其域(即,可寻址空间)内流动的数据。可以直接地路由所识别的域地址,而不向特定的聚合式适配器虚拟电桥的域的外部发送数据。
[0030]每一个网络适配器115可以包括耦合到电桥元件120—在此也被称为桥接元件——之一的一个或多个以太网端口。另外,为了促进PCIe通信,服务器可以具有PCI主桥117。PCI主桥117可以连接到在分布式网络交换机180上的交换元件上的上游PCI端口122。数据然后经由交换层130被路由到正确的下游PCI端口 123,下游PCI端口 123可以位于与上游PCI端口 122相同或不同的交换模块上。该数据然后被转发到PCIe装置152。
[0031]分布式网络交换机180包括多个电桥元件120,该多个电桥元件120可以位于多个虽然互连但是独立的硬件部件上。在一个实施例中,电桥元件120可以被配置来贯穿分布式网络交换机180转发数据帧。电桥元件120向交换层130转发由网络适配器115发送的数据帧。电桥元件120可以包括查找表,该查找表存储用于转发所接收的数据帧的地址数据。例如,电桥元件120可以将与接收的数据帧相关联的地址数据与在查找表内存储的地址数据作比较。因此,网络适配器115不必知道分布式网络交换机180的网络拓扑。从网络适配器115的视点看,分布式网络交换机180作为一个单个交换机,即使分布式网络交换机180可能由物理上位于诸如不同的机座或机架的不同部件上的多个交换机构成。向多个电桥元件120内分布网络交换机的操作在故障的情况下提供了冗余。
[0032]电桥元件120的每一个可以连接到一个或多个传送层模块125,该多个传送层模块125将接收的数据帧转换为由交换层130使用的协议。例如,传送层模块125可以将使用以太网或PCI通信方法接收的数据转换为经由交换层130 (即,单元构造)发送的一般数据类型(B卩,单元)。因此,包括分布式网络交换机180的交换模块与至少两个不同的通信协议一一例如,以太网和PCIe通信标准——兼容。即,至少一个交换模块具有用于在同一交换层130上传送不同类型的数据的必要逻辑。
[0033]在一个实施例中,交换层130可以包括:本地机架互连(LRI),其连接位于同一机座和机架内的电桥元件120 ;以及,连接到在其他机座和机架中的电桥元件120的链路。
[0034]在路由单元后,交换层130可以与传送层126进行通信,传送层126将单元转换回与它们各自的通信协议对应的数据帧。电桥元件120的一部分可以促进与以太网155的通信,该以太网155提供对于LAN或WAN (例如,因特网)的访问。而且,可以将PCI数据路由到连接到PCIe装置152的下游PCI端口 123。PCIe装置152可以是作为用于扩充板的扩展卡接口的无源背板互连或可以被连接到分布式网络交换机180的服务器的任何一个访问的公共存储器。
[0035]输入/输出管理控制器(IOMC) 140 (即,专用处理器)耦合到至少一个电桥元件120,该至少一个电桥元件120向10MC140提供对于交换层130的访问。10MC140的一个功能可以是从管理员接收命令以配置分布式网络交换机180的不同的硬件元件。在一个实施例中,可以从来自交换层130的分离的交换网络接收这些命令。虽然示出一个IOMCHOdS是系统100可以包括多个10MC140。在一个实施例中,可以以分层布置10MC140,使得将一个10MC140选择为主,并且将其他委派为成员。在另一个实施例中,可以在对等布局中布置10MC140,其中,IOMC140协作来监督和管理分布式网络交换机180的元件。
[0036]在一个实施例中,10MC140可以包括全局转发数据库(FDB) 150,其也被称为转发信息库(FIB)或转发表,其存储地址数据。转发数据库150可以被多个电桥原件120分享。在一个实施例中,转发数据库150可以被电桥元件120持续地更新。例如,电桥元件可以响应于学习了更新或新的MAC地址而向10MC140发送更新消息。可以随后更新在转发数据库150中的对应的MAC地址。相反,在转发数据库150中的地址数据可以用于更新电桥元件120。例如,每个电桥元件120被配置来向转发数据库150发送路由信息查找请求,并且转发数据库150被配置来向请求的电桥元件120发送具有地址数据的路由信息查找响应。在一个实施例中,每一个电桥元件120可以高速缓存接收的地址数据以用于未来使用。
[0037]图2图示了根据本发明的一个实施例的、具有连接到服务器的多个电桥元件120的分布式网络交换机180。如所示,多个服务器105可以物理地位于同一机座202中,并且另一个服务器106可以物理地位于不同的机座204中。应当认识到,机座202和204可以包括任何数量的服务器。如图2中所示,将多个电桥元件120组织为在不同的机座202、204上物理地定位和分布的多个交换模块210和子交换机214。在一个实施例中,在此公开的分布式网络交换机180被配置来经由多个交换模块210、互连交换模块210的交换层130、在诸如10MC140的管理控制器上执行的管理固件来提供层2以太网交换。如此进行可能消除对于单独以太网交换机互连在服务器105、106中的处理元件的需要。如此一来,也可以通过增加诸如交换模块210和其他处理元件的独立部件来以粒状和可扩展的方式来增强使用分布式网络交换机180联网的系统。
[0038]在一个实施例中,交换模块210 (例如,机座互连元件)可以是物理交换单元,其被配置来提供用于分布式网络交换机180的网络桥接。在一个实施例中,交换模块210和子交换机214是硬件部件(例如,PCB板、FPGA板、片上系统等),其提供在网络适配器115和电桥元件120之间的物理支持和连接。通常,交换模块210包括连接在所示的系统中的不同机座202、204与服务器105和106的硬件。虽然在在此所述的实施例中交换模块210被配置为用于路由数据帧(例如,基于MAC地址)的层2以太网电桥,但是应当认识到,本发明的实施例可以被应用到其他形式的分组交换。
[0039]在一个实施例中,交换模块210包括10MC140和一个或多个子交换机214。在一个实施例中,用于给定的交换模块210的10MC140维护由子交换机214的电桥元件120共享的转发数据库(FDB) 220。在一些实施例中,IOMC140可以维护用于在交换模块210中的每一个子交换机214的转发数据库220。在一个实施例中,转发数据库220包括通过与电桥元件120—并且在一些情况下为服务器105和106—的通信和合作而注册和保存的地址数据(例如,MAC地址)。在一些实施例中,可以与在图1中所示的转发数据库150类似地配置转发数据库220,其中,每一个交换模块210被配置来维护转发数据库的同步拷贝,以便以低的延迟和迅速的响应时间来向整个转发数据库给出本地电桥元件访问。
[0040]在一个实施例中,子交换机214可以包括电桥元件120的逻辑或物理分组。每一个电桥元件120可以是分布式虚拟以太网电桥(dVEB),其被配置为基于在转发数据库220中存储的地址数据来贯穿分布式网络交换机180转发数据帧。在一个实施例中,通过在IOMC140上执行的固件来管理电桥元件120。在所示的实施例中,在子交换机214中的至少一个电桥元件120可以连接到10MC140以向交换层130给出IOMC访问。
[0041]电桥元件120可操作地连接到多个电桥元件120。在一个实施例中,电桥元件120使用交换层130 (例如,经由网格连接模式)彼此连接。如此一来,不论是否使用电桥元件120。可以将数据分组路由到位于任何其他交换模块210上的另一个电桥元件120。在一些实施例中,可以通过直接地连接每一个电桥元件120来完成这一点,即,每一个电桥元件120具有到每一个其他电桥元件120的专用直接数据路径。替代地,在一些实施例中,交换层130可以使用干叶架构,其中,每一个电桥元件120 (即,叶节点)附接到至少一个干节点。干节点将从电桥元件120接收的数据分组路由到正确的干节点,该正确的干节点然后向正确的电桥元件120转发该数据分组。在一个实施例中,电桥元件120可以经由交换层130向在同一子交换机214中、在同一交换模块210的不同子交换机214中或甚至在不同的交换模块210中的其他电桥元件120转发数据帧。
[0042]在所示的实施例中,每一个电桥元件120具有至少两个端口,一个端口连接到交换层130并且另一个端口连接到服务器105和106 (例如,经由网络适配器115)。电桥元件120可以向交换层130转发由网络适配器115发送的数据帧。在一种实现方式中,可以使用两个40G比特以太网连接或一个100G比特以太网连接来连接网络适配器115和电桥元件120。在一个示例中,假定交换模块210包括四个子交换机214,每个子交换机214具有5个电桥元件120,并且每一个电桥元件120具有连接到服务器和连接到交换层130的两个端口,则交换模块210可以具有至少40个端口(例如,2x5x4=40),用于在分布式网络交换机180内接收和转发数据帧。
[0043]在运行中,在进入端口处接收到以太网帧时,电桥元件120访问转发数据库220以确定是否在转发数据库中存在源或目的地地址(例如,MAC地址)。例如,每一个电桥元件120向转发数据库产生每一个帧的目的地地址查找和源地址查找。每一个电桥元件120然后使用从该查找接收的路由信息来向适当的接口(例如,目的地端口)发送巾贞。对于不成功的查找,电桥元件120可以学习点年的网络地址,并且向转发数据库220内插入新的路由项。在此使用的通过交换模块的帧的网络地址的学习可以指的是从在交换模块中的配置字段与其上接收帧的物理端口和逻辑端口两者获得用于网络地址的路由信息。例如,电桥元件可以学习其上电桥元件首先看到特定的源地址的接口,并且将那个接口与那个源地址相关联。当电桥元件120随后接收到具有在其转发数据库中的目的地地址的帧时,电桥元件可以将该帧发送出在转发数据库中存储的接口。
[0044]在一个实施例中,交换模块210被配置来交换路由信息和共享新的路由项。交换模块210同步相应的转发数据库220的内容使得所有的转发数据库220包含类似的路由信息。如此一来,转发数据库220和其路由信息对于其中包含的所有交换模块210和电桥元件120是有效地共同的,虽然每一个交换模块210可以管理转发数据库220的至少一个本地拷贝。
[0045]逻辑交换分区
[0046]在一个实施例中,交换模块210是可以被逻辑地划分为多个逻辑交换分区的物理单元。每一个逻辑交换分区——可交换地被称为逻辑网络(LN)——可以具有各自的LN标识符,并且可以包括分布式网络交换机的相应的逻辑指定的网络部分。逻辑网络作为独立的层2域,即使该域可能共存在同一交换模块210上,并且提供一层流量分离。在一个示例中,交换模块210可能支持多达4个不同的逻辑交换分区。在一个实施例中,逻辑交换分区可能跨越几个交换模块210,甚至跨越在由交换层130互连的不同的机座202和204中的交换模块。逻辑交换分区使得交换模块210的硬件资源能够在逻辑网络之间灵活地被分配。
[0047]如上所述,交换模块210实际上使用公共的转发数据库220,并且如此一来,转发数据库220可以包括用于在所有的逻辑交换分区中的端口的路由项。在一些情况下,被指配到给定的逻辑网络(例如,逻辑交换分区)的终端站(例如,服务器105)可以具有通过分布式网络交换机180的大量的MAC地址或大量的流量。结果,用于逻辑网络的路由项可能支配或填满在转发数据库220中的可获得空间,为用于其他网络的项目留下很少的空间,并且强制在其他逻辑网络上的终端站充满网络。因此,本公开的实施例提供了一种用于在每一个逻辑网络的基础上控制转发数据库的利用的方法。
[0048]在一些实施例中,可以使用提供路由信息的快速查找的内容可寻址存储器(CAM)或三元内容可寻址存储器(TCAM)来实现转发数据库220。在这样的实施例中,可以将TCAM划分为与每一个逻辑交换分区对应的独立空间。在TCAM中的每个划分的空间可以被配置来存储预定数量的路由项,由此限制给定的逻辑网络可以在转发数据库220中存储的路由项的数量。
[0049]在其他实施例中,可以使用多个基于散列的转发表和一组散列函数来实现转发数据库220。虽然基于散列的实现方式允许大量的路由项(例如,512,000个项目),但是对于控制在每一个逻辑网络基础上的转发数据库的利用存在挑战。例如,基于散列的转发数据库可能不被划分为分离的物理空间(与基于TCAM的转发数据库一样),因为用于给定的逻辑网络的项目可能因为散列函数的使用而被大大分散或分布。如此一来,本公开的实施例提供了用于使用计数器和阈值来控制在每一个逻辑网络基础上的转发数据库的利用的方法。在图3中更详细地示出基于散列的转发数据库220。
[0050]图3是描述根据本发明的一个实施例的交换模块的转发数据库220的框图。在一个实施例中,转发数据库220可以包括被配置为存储多个路由项304 (有时被称为FDB项目)的一个或多个散列表3021-4和多个路由项计数器306。路由项计数器306通过对于每一个逻辑网络保持在整个转发数据库220内存储的用于那个逻辑网络的路由项304的数量的独立计数来跟踪转发数据库220的使用。在一个实施例中,当路由项计数器306超过特定阈值时,可以执行补救行为,包括选择和清除与给定的逻辑网络相关联的特定路由项304或暂停与给定的逻辑网络相关联的新的网络地址的学习,如下更详细所述。
[0051]在一个实施例中,每一个散列表302卜4可以与被选择来例如降低路由项的冲突的频率的散列函数相关联。在一些实施例中,通过使用与给定的散列表相关联的散列函数来向给定的散列表302内插入、更新和检索路由项304,以基于路由项的路由密钥310来产生散列值。在一个实施例中,当用于给定的逻辑网络的路由项被插入散列表302卜4之一内时,可以递增用于该逻辑网络的路由项计数器306,并且当用于那个逻辑网络的路由项被无效和从转发数据库220被去除时,可以递减路由项计数器306。
[0052]在一个实施例中,路由密钥310包括层2路由信息,诸如虚拟局域网(VLAN)标签、逻辑网络(LN)标识符和介质访问控制(MAC)地址。在一个实施例中,例如由管理员或计算机系统设置的10MC140可以产生和指配MAC地址。VLAN标签可以指示指配的VLAN,其可以用于分离流量并且允许大于一个的上行链路。可以在单个上行链路上有多个VLAN。在一些实施例中,每一个VLAN仅使用一个上行链路端口。换句话说,仅一个物理上行链路端口可以在给定的时间用于转发与给定的VLAN相关联的数据帧。在其他实施例中,虽然使用逻辑网络,但是VLAN可以使用多个物理端口来转发流量,同时也保持流量分离。在一个实施例中,每一个逻辑网络可以具有各自的逻辑网络标识符,并且可以提供另一层的流量分离。当如此配置时,逻辑网络可以允许不同的客户端使用相同的VLAN标签,并且每一个客户端的VLAN可以通过不同的逻辑网络而保持被分离。
[0053]在一个实施例中,路由项304将网络地址(例如,目的地MAC地址)与数据帧要被转发到的网络接口(例如,端口)相关联。在一个实施例中,如在图3的放大视图中所示,由路由密钥310识别的每一个路由项304可以包括多个字段,包括逻辑网络字段312、拥有者字段314、静态字段316、有效状态字段318、老化字段320和复制字段322。
[0054]在一个实施例中,逻辑网络字段312使得用于给定网络地址(例如,源、目的地)的每一个路由项304能够指定与该给定的网络地址相关联的逻辑网络(LN)标识符。在一些实施例中,逻辑网络字段312可以包括用于对应的逻辑网络的数值标识符(例如,“ 1”、“3”)。例如,假定交换模块210被划分为被标注为LN0-3的四个逻辑网络,其中,第一逻辑网络LNO被映射到网络地址192.168.0.1至192.168.0.10,则用于网络地址192.168.0.3的路由项可以指定逻辑网络“O”。
[0055]在一个实施例中,每一个路由项304具有被指定为相应的路由项的“拥有者”的对应的交换模块。在此使用的具有给定的网络地址的路由项的拥有者指的是被配置来学习给定的网络地址并且向转发数据库220内插入用于给定的网络指定的新的路由项的交换模块(和对应的转发数据库)。在一个实施例中,具有给定的路由密钥310的路由项的拥有者是具有电桥元件120的交换模块,该电桥元件120具有与路由密钥310的VLAN、LN和MAC地址的组合匹配的物理端口。在一个实施例中,路由项的拥有者负责通知其他交换模块,并且同步在其他交换模块的转发数据库中的对应的路由项。在一种实现方式中,通过在拥有交换模块的转发数据库220中将比特字段(例如,拥有者字段314)设置为I (或非O)来表示路由项的拥有者。同时,在其他转发数据库中的路由项的同步的拷贝可以将在拥有者字段314中的比特字段设置为O以指定对应的交换模块不是拥有者。
[0056]在一个实施例中,一个或多个路由项304可以是静态路由项。在此使用的静态路由项指的是被软件设置并且不与其他交换模块和转发数据库同步或共享的路由项。在一个实施例中,可以通过将在路由项中的静态比特(例如,静态字段316)设置为I或非O来指定静态路由项,而可以通过将静态字段316设置为O来指定非静态路由项(称为动态项目)。
[0057]交换模块210可以实现老化策略以维护其转发数据库220。在一个实施例中,每一个路由项304可以包括老化属性,其指定相应的路由项被认为已经老化或陈旧的程度。在一些实施例中,通过在路由项中的老化比特(例如,老化字段320 )来表示老化属性。在一个实施例中,在运行期间,当后台定时器期满时可以将路由项的老化比特设置为I。如果后台定时器再一次期满,则将无效将老化比特设置为I的路由项(例如,由有效状态字段318指定)。当路由项初始被插入转发数据库内时或当在查找期间从转发数据库检索路由项时可以将路由项设置为或复位为O (例如,从电桥元件120的接收路径出现的源地址查找击中)。在一个实施例中,当路由项“老化”并且从转发数据库被去除时,可以递减与去除的路由项相关联的用于逻辑网络的路由项计数器306。
[0058]在一个实施例中,每一个路由项304可以包括有效状态字段318,其指定例如因为转发数据库的老化导致何时路由项不再有效,如上所述。在一个实施例中,每一个路由项可以被设置为无效,以便限制在用于给定的逻辑网络的转发数据库220中的路由项的数量。在一些实施例中,可以通过将比特字段(例如,有效状态字段318)设置为I或O来表达路由项的有效状态。在一些实施例中,交换模块210可以被配置来向其他模块发送指示,该指示指定应当通过无效指定的路由项来同步转发数据库。
[0059]在一个实施例中,转发数据库220可以被配置为将在一个散列表中的一个或多个路由项304复制到另一个散列表302,以增大访问带宽和改善性能。例如,转发数据库可以获取从散列表3021的一部分重复地检索的路由项,有时被称为“片”,并且将该路由项复制到在另一个散列表302中的不常使用的片。如此一来,每一个路由项可以包括复制字段322,用于指示路由项304是否被复制或是在共享的转发数据库220内的原始路由项。在一些实施例中,原始路由项和复制项可能老化(例如,如老化字段320所示)并且被无效(例如,经由有效状态字段318)。在一些实施例中,转发数据库可能不发送指示以将复制的路由项与其他转发数据库同步。
[0060]每一个转发数据库220保持多个路由项计数器306以跟踪该多个逻辑交换分区(例如,逻辑网络)如何使用共享的转发数据库。在一个实施例中,路由项计数器306包括与给定的逻辑网络相关联的在转发数据库220中的路由项304的数量的、用于每一个给定的转发数据库的计数,在此被称为FDB计数。例如,当转发数据库220包括可能来自四个逻辑网络0-3的路由项时,保持四个独立的FDB计数(用于LNO、LNl、LN2和LN3)。在被配置来复制路由项的交换模块的实施例中,路由项计数器306可以包括用于每一个转发数据库的总的FDB计数,该转发数据库包括动态和静态路由项(例如,如静态字段316所示),但是排除复制的路由项(如复制字段322所示)。
[0061]在一个实施例中,路由项计数器306进一步包括“高水印”计数,其保持由对应的FDB计数达到的最高历史值。在一些实施例中,可以对于动态路由项、对于静态路由项和对于包括动态和静态路由项两者的总的项目配置独立的高水印计数。对于被配置来复制路由项的交换模块,用于断头台路由项、静态项目和总的动态和静态路由项的高水印计数可以排除由复制字段322指定的复制路由项。在一些实施例中,被配置来复制路由项的交换模块可以包括用于复制路由项的高水印计数。在一些实施例中,高水印计数可以可访问(例如,经由具有读取和写入访问的构建的寄存器)高层处理(例如,软件)以允许将高水印计数复位为O以确定新的高水印值。
[0062]图4是描述根据本发明的一个实施例的、用于逻辑地划分在分布式网络交换机中的基于散列的路由表的方法的流程图。如所示,方法400在步骤402开始,其中,分布式网络交换机的第一交换模块接收具有源地址、目的地地址和逻辑网络标识符的第一数据帧。在一些实施例中,第一交换模块的电桥元件120 (例如,dVEBO)之一在例如连接到服务器105的其进入端口之一处接收数据帧。在一些实施例中,源地址和目的地地址是被分配到服务器(例如,服务器105、106)的接口的MAC地址。
[0063]在步骤404处,第一交换模块确定共享的转发数据库(例如,转发数据库220)不包括用于网络地址之一的任何路由项。例如,电桥元件dVEBO使用所接收的数据帧的源MAC地址、VLAN标签和LN标识符来执行共享的转发数据库的查找,并且该查找操作返回用于指示在共享的转发数据库内不包括源MAC地址的路由项的“丢失”。为了说明,可以在这个示例中假定电桥元件dVEBO在转发数据库中执行目的地地址查找,其返回用于目的地地址的路由信息。电桥元件可以使用返回的路由信息来处理和转发数据帧,例如向交换层130传送该帧以传递。电桥元件dVEBO进行到处理用于源MAC地址的丢失的路由项。
[0064]在步骤406处,第一交换模块基于所确定的路由信息来产生用于网络地址的路由项。在一个实施例中,第一交换模块产生路由项,该路由项包括源地址和对于源地址和转发数据库标识符确定的路由信息。在一些实施例中,产生包括基于数据帧的VLAN标签、LN标识符和MAC地址的路由密钥(例如,路由密钥310)的路由项。在一些实施例中,第一交换模块可以配置所产生的路由项以指定(例如,通过逻辑网络字段312)路由项与给定的逻辑网络相关联。在一些实施例中,用于源地址的路由项与由接收的数据帧提供的逻辑网络标识符相关联。在一个实施例中,第一交换模块可以基于下面的条件的满足来配置产生的路由项以指定(例如,通过设置拥有者字段314)用于该路由项的拥有者是第一交换模块:第一交换模块接收第一数据帧中,确定在转发数据库中不包括源地址,并且产生给定的路由项。
[0065]在步骤408处,第一交换模块基于散列函数修改或请求修改共享的转发数据库220以包括用于网络地址的路由项。例如,第一交换模块的电桥元件dVEBO使用基于诸如VLAN标签、逻辑网络标识符和MAC地址的路由信息的路由密钥来向转发数据库内插入路由项。
[0066]在步骤410处,第一交换模块基于所包括的路由项的逻辑网络标识符来更新路由项计数器(例如,路由项计数器306)。例如,对于交换模块当用于给定的逻辑网络的路由项被插入转发数据库220时递增用于那个逻辑网络的路由项计数器。在一个实施例中,用于给定的逻辑网络的路由项计数器可以跟踪给定的逻辑网络在转发数据库中具有的、包括静态和动态路由项两者的项目的数量。在一个实施例中,第一交换模块可以更新与更新的路由项计数器对应的高水印计数。在一些实施例中,第一交换模块可以确定更新的路由项计数器是否超过高水印计数的当前值,并且然后更新高水印计数以指定对应的路由项计数器已经达到的新的最高值。
[0067]在一个实施例中,第一交换模块可以强制在共享的转发数据库中的对于用于逻辑网络的路由项的限制。在步骤412,第一交换模块确定在用于给定的逻辑网络的共享的转发数据库中的项目的数量是否超过与该给定的转发数据库相关联的阈值。在一个实施例中,第一交换模块检索用于第一逻辑网络(例如,LN0)的路由项计数(例如,路由项计数器306),并且确定用于第一逻辑网络的路由项计数器是否大于停止学习阈值。在一个实施例中,在此被称为“减少阈值”的阈值指定在交换模块启动补救行为之前特定逻辑网络可以在共享的转发数据库中具有的路由项的最大数量,该补救行为例如是从转发数据库选择性地减少与对应的逻辑网络相关联的路由项,如下结合图5所述。与给定逻辑网络相关联的减少阈值可以是能够编程的,例如在配置寄存器中被设置。在一些实施例中,第一交换模块包括用于每一个逻辑网络的独立的减少阈值,每一个减少阈值与对应的逻辑网络相关联。在一个实施例中,可以基于由不同的逻辑交换分区对于共享的转发数据库的使用来对于每一个逻辑网络动态地确定减少阈值。例如,可以分析高水印值的值和用于逻辑网络的FDB计数以确定更好地适应于特定的使用情况或网络配置的新的阈值。
[0068]在一些实施例中,第一交换模块可以被配置来使用可配置的比特开关在减少阈值过大的情况下使能或禁止检测用于对应的逻辑网络的FDB计数。例如,支持多达4个逻辑交换分区的交换模块可以包括四个使能开关比特,用于将用于四个逻辑交换分区的FDB计数限制为减少阈值。如此一来,通过使能用于一些逻辑网络而不是用于其他逻辑网络的FDB计数限制,交换模块可以被配置为允许特定的交换机在转发数据库中插入许多路由项,同时限制来自其他逻辑交换分区的路由项的数量。在运行中,第一交换模块被配置为在进行到如下所述的“减少转发数据库”功能之前,基于用于给定的逻辑网络的对应的可配置比特来确定是否使能FDB计数限制[0069]在步骤414,如果用于转发数据库的任何一个的路由项计数超过对应的减少阈值,则第一交换模块执行减少用于那个逻辑网络的路由项的数量的处理。在一个实施例中,第一交换模块执行后台处理,该后台处理穿过共享的转发数据库,以选择性地去除用于对应的逻辑网络的在转发数据库中的路由项,如下结合图5所述。
[0070]虽然在此描述了用于基于从进入帧的源地址的学习来插入新的路由表的本发明的实施例,但是本公开的特定方面可以被应用到从多个来源在共享的转发数据库中插入新的路由项。例如,第一交换模块可以插入用于从在广播域上泛滥的帧学习的MAC地址的新的路由项。在另一个示例中,较高层处理(例如,软件)可以向共享的转发数据库内直接地插入用于网络地址的在此被称为静态路由项的新的路由项。在另一个示例中,第一交换模块可以基于由请求第一更新其转发数据库的其他交换模块发送的同步消息来修改共享的转发数据库以插入新的路由项。第一交换模块可以向被其他交换模块学习的转发数据库内插入路由项,并且递增对应的路由项计数器。
[0071]图5是用于描述根据本发明的一个实施例的、用于减少用于在由不同的逻辑交换分区共享的转发数据库中的逻辑交换分区的路由项的方法的流程图。在一个实施例中,通过与如上所述的第一交换模块的转发和学习操作同时运行的后台处理来执行方法500。如所示,方法500在步骤502开始,其中,第一交换模块从共享的转发数据库检索第一路由项。在一些实施例中,第一交换模块可以从共享的转发数据库的散列表检索顺序的路由项。在步骤504处,第一交换模块基于用于路由表的属性的一个或多个标准来确定是否可以选择所检索的路由项来用于去除,所述路由项的属性包括路由项的逻辑网络、老化、有效状态、静态状态、复制状态和拥有者的至少一个。
[0072]在一些实施例中,如在步骤506中所示,第一交换模块被配置为如果路由项是与匹配具有过量的路由项计数的第一逻辑网络的转发数据库相关联的有效路由项,则选择该路由项来用于去除。例如,第一交换模块可以选择去除匹配第一逻辑网络的逻辑网络标识符的逻辑网络字段312值并且具有被设置为I的有效状态字段318的路由项。
[0073]在一些实施例中,在步骤508处,第一交换模块可以进一步查看如例如由拥有者字段314指定那样,第一交换模块是否拥有路由项。即,每一个交换模块210可以被配置来从其对应的转发数据库220选择性地去除作为拥有者的路由项的路由项304。
[0074]在一些实施例中,在步骤510处,路由项可以基于用于指示相应的路由项已经或变为陈旧的老化属性(例如,老化字段320)来进一步选择用于去除的路由项。在一些实施例中,可以基于相应的路由项是否是复制的或者再生的路由项(例如,复制字段322 = O)来进一步选择用于去除的路由项。在一些实施例中,可以基于相应的路由项是否不是静态路由项(例如,静态字段316 = O)来进一步选择用于去除的路由项。
[0075]在步骤512处,如果检索的路由项不满足用于去除的一个或多个标准,则第一交换模块将操作返回步骤502,以从转发数据库220检索另一个路由项以用于可能的减少。如果所检索的路由项满足用于去除的指定标准,则在步骤514,第一交换模块将相应的路由项无效,并且基于在该路由项中找到的逻辑网络标识符来递减路由项计数器。在一个实施例中,第一交换模块通过复位有效状态字段318来标注用于去除的相应的路由项。第一交换模块可以通过从FDB计数递减无效的路由项来更新FDB计数(例如,路由项计数器306)。在一些实施例中,第一交换模块可以被配置来向其他交换模块发送同步无效指示,以无效在相应的转发数据库中的选择的路由项,而不管老化策略或其他交换模块的FDB计数阈值如何。如此进行可以迅速地减少在多个交换模块上的用于给定逻辑网络的FDB计数。在其他实施例中,交换模块可以被配置来允许用于给定的逻辑网络的过量的路由项被每一个交换模块独立地无效。
[0076]在步骤516处,第一交换模块可以重新检查用于具有过量的项目的逻辑网络的FDB计数是否继续超过减少阈值。如果如此,第一交换模块返回到步骤502,并且从转发数据库检索另一个路由项用于可能的减少。如果否定,后台减少处理可以终止,用于对应的逻辑网络的FDB计数已经减少到低于减少阈值。在一些情况下,在图5中所示的减少处理可能不能足够快地从共享的转发数据库去除路由项,以将路由项计数降低得低于可接受的水平。在这样的情况下,本发明的实施例提供了用于使用具有对应的补救行为的第二阈值的机构,如图6中所示。
[0077]图6是描述根据本发明的一个实施例的、用于维护由不同的逻辑交换分区共享的转发数据库的方法600的流程图。如所示,方法600在步骤602开始,其中,分布式网络交换机的第一交换模块接收具有源地址、目的地地址和逻辑网络标识符的第一数据帧。在步骤604,第一交换模块确定共享的转发数据库(例如,转发数据库220)不包括用于网络地址之一的任何路由项。
[0078]在步骤606处,第一交换模块确定是否已经对于与进入帧相关联的逻辑网络暂停了新的网络地址的学习。如下所述,在一些实施例中,第一交换模块可以确定是否已经进入了“停止学习”逻辑状态。如果如此,则第一交换模块拒绝学习用于逻辑网络的新的网络地址,并且不在转发数据库中插入新的路由项。如果否定,则第一交换模块可以进行到下面的步骤610。在步骤608处,第一交换模块可以通过引发错误或发送通知来传达用于给定逻辑网络的路由项因为“停止学习”逻辑状态而还没有被插入转发数据库内。在一些实施例中,第一交换模块可以当用于给定的逻辑网络的路由项未因为“停止学习”逻辑状态而未被插入时设置与给定的逻辑网络相关联的通知字段来用于通知其他元件(例如,软件)。在一些实施例中,第一交换模块可以具有用于每个对应的逻辑网络(例如,LN0-3)的独立的通知字段。如所示,第一交换模块可以然后返回步骤602,以等待在进入端口上接收另外的数据帧。
[0079]在步骤610处,第一交换模块基于确定的路由信息来产生用于网络地址的路由项。在一个实施例中,第一交换模块产生路由项,该路由项包括源地址和对于源地址和转发数据库标识符确定的路由信息。在步骤612处,第一交换模块基于散列函数修改或请求修改共享的转发数据库220,以包括用于网络地址的路由项。例如,第一交换模块的电桥元件dVEBO使用基于诸如VLAN标签、逻辑网络标识符和MAC地址的路由信息的路由密钥来向转发数据库内插入路由项。在步骤614,第一交换模块基于插入的路由项的逻辑网络标识符来更新路由项计数器(例如,路由表计数器306 )。
[0080]在步骤616处,第一交换模块确定在用于给定的逻辑网络的共享转发数据库中的项目的数量是否超过与该给定的逻辑网络相关联的第二阈值。在此被称为“停止学习阈值”的这个第二阈值指定在交换模块启动停止用于对应的逻辑网络的新的路由项的插入的补救行为之前特定的逻辑网络可以在共享的转发数据库中具有的路由项的最大数量。在一个实施例中,第一交换模块检索用于第一逻辑网络(例如,LN0)的路由项计数(例如,路由项计数器306),并且确定用于第一逻辑网络的路由项计数器是否大于停止学习阈值。与给定逻辑网络相关联的停止学习阈值可以是能够编程的,例如在配置寄存器中被设置。在一些实施例中,第一交换模块包括用于每一个逻辑网络的独立的停止学习阈值,每一个停止学习阈值与对应的逻辑网络相关联。在一个实施例中,可以基于由不同的逻辑交换分区对于共享的转发数据库的使用来对于每一个逻辑网络动态地确定阈值。例如,可以分析高水印值的值和用于逻辑网络的FDB计数以确定更好地适应于提过到使用情况或网络配置的新的停止学习阈值。
[0081]如果路由项计数超过用于给定逻辑网络的停止学习阈值,在步骤618处,则第一交换模块暂停用于第一逻辑网络的新的网络地址的学习。在一个实施例中,第一交换模块可以进入“停止学习”逻辑状态,该状态指定转发数据库应当停止插入用于第一逻辑网络的新的路由项。在“停止学习”逻辑状态下的转发数据库220被配置来基于通过第一交换模块的电桥元件在本地进入端口上接收的数据帧来暂停新的网络地址的学习(例如,源地址学习)。在一些实施例中,转发数据库220进一步被配置来暂停经由同步操作来自其他转发数据库的新的网络地址的学习。在一个实施例中,在“停止学习”逻辑状态下的转发数据库220可以甚至通过静态路由项的较高层处理(例如,软件)来防止插入。替代地,第一交换模块可以被配置来虽然在“停止学习”逻辑状态中但是接受要插入到转发数据库内的静态路由项。
[0082]在一个实施例中,第一交换模块可以被配置来使用可配置的比特开关使能或禁止用于对应的逻辑网络的“停止学习”逻辑状态。例如,支持多达四个逻辑交换分区的交换模块可以包括用于“停止学习”逻辑状态的四个使能比特。在运行中,第一交换模块被配置为在暂停用于给定的逻辑网络的新的网络地址的学习之前,基于用于给定的逻辑网络的对应的可配置比特来确定是否使能“停止学习”逻辑状态。
[0083]在一个实施例中,可以与减小阈值相结合地使用停止学习阈值。例如,减小阈值可以被设置为小于停止学习阈值的值的值,以实现试图经由后台处理(例如,如图5中所示)来减少用于逻辑网络的项目的数量的策略,并且如果减少处理不能足够快地减少路由项,则执行停止学习过程。
[0084]本发明的实施例提供了用于管理用于分布式网络交换机的转发数据库的技术。在一个实施例中,分布式网络交换机可以被逻辑地划分为多个逻辑网络或逻辑交换分区。在一个实施例中,分布式网络交换机的交换模块实现计数器,该计数器跟踪被插入到转发数据库的散列表内的每一个逻辑网络的路由项的数量。当交换模块检测到用于给定逻辑网络的计数器已经超过阈值时,交换模块可以采取多个补救行为,诸如从转发数据库选择性地去除用于对应的逻辑网络的路由项,或者暂停用于对应的逻辑网络的新的路由项向转发数据库内的插入。因此,分布式网络交换机可以有效地管理由不同逻辑网络共享的转发数据库的使用,同时继续享受转发数据库的基于散列表的实现的益处。如此一来,分布式网络交换机可以至少在一些情况下更有效地运行。
[0085]虽然上面涉及本发明的实施例,但是在不偏离其基本范围的情况下可以设计本发明的其他和另外的实施例,并且由所附的权利要求确定其范围。
【权利要求】
1.一种计算机实现的方法,用于在具有多个交换模块的分布式网络交换机中的路由表管理,其中,每一个交换模块包括多个电桥元件和路由表,其中,在相应的交换模块中的所述多个电桥元件之间共享在每一个交换模块中的所述路由表,其中,所述多个交换模块被逻辑地划分到多个逻辑网络内,所述方法包括: 所述第一交换模块接收具有源地址和目的地地址的第一帧,其中,所述第一帧与所述多个逻辑网络的第一逻辑网络相关联; 在确定所述第一交换模块的所述路由表不包括用于所述源地址的路由项时,修改在所述第一交换模块中的所述路由表以包括具有对于所述源地址确定的路由信息的第一路由项和所述第一逻辑网络; 更新在与所述第一逻辑网络相关联的所述路由表中的路由项的计数;并且 在确定与所述第一逻辑网络相关联的路由项的所述计数超过与所述第一逻辑网络相关联的第一阈值时,基于与所述第一逻辑网络相关联的所述第二路由项修改所述路由表以使得在所述路由表中的第二路由项无效。
2.根据权利要求1所述的计算机实现的方法,其中,所述修改所述路由表以将所述第二路由项无效基于根据所述路由表的预定老化策略的、所述第二路由项被认为已经老化的程度。
3.根据权利要求1所述的计算机实现的方法,其中,所述修改所述路由表以将所述第二路由项无效进一步包括: 确定所述第二路由项是非静态路由项; 确定所述第二路由项不是从所述路由表的其他部分复制的;并且· 确定所述第一交换模块是所述第二路由项的拥有者,其中,网络地址的路由项的拥有者被表征为具有学习了所述网络地址的转发数据库的交换模块。
4.根据权利要求1所述的方法,进一步包括: 基于已经在所述路由表中被无效的、与所述第一逻辑网络相关联的路由项的数量来递减与所述第一逻辑网络相关联的在所述路由表中的路由项的计数。
5.根据权利要求1所述的方法,进一步包括: 在确定与所述第一逻辑网络相关联的路由项的更新的计数大于用于所述计数的最高历史值时,将所述最高历史值更新得等于对应的更新计数。
6.根据权利要求1所述的方法,进一步包括: 在确定与所述第一逻辑网络相关联的路由项的所述计数超过与所述第一逻辑网络相关联的、大于所述第一阈值的第二阈值时,修改所述路由表以暂停与所述第一逻辑网络相关联的新的路由项的插入。
7.根据权利要求6所述的方法,进一步包括: 所述第一交换模块接收具有源地址和目的地地址的第二帧,其中,所述第二帧与所述第一逻辑网络相关联; 在确定所述第一交换模块的所述路由表不包括用于所述第二帧的所述源地址的路由项时,并且在进一步确定所述路由表已经被修改以暂停与所述第一逻辑网络相关联的新的路由项的插入时,发送通知,所述通知指示新的路由项还没有被插入所述路由表内以超过与所述第一逻辑网络相关联的所述第二阈值。
8.根据权利要求1所述的方法,其中,所述修改在所述第一交换模块中的所述路由表以包括所述第一路由项进一步包括: 基于散列函数来修改在所述第一交换模块中的所述路由表以包括所述第一路由项,其中,所述第一路由项存储基于虚拟局域网(VLAN)标签的路由密钥、逻辑网络(LN)标识符和介质访问控制(MAC )地址。
9.一种系统,用于在具有包括第一交换模块的多个交换模块的分布式网络交换机中的路由表管理,包括: 一个或多个计算机处理器; 存储器,其包含程序,所述程序当被所述一个或多个计算机处理器执行时被配置为执行操作,所述操作包括: 所述第一交换模块接收具有源地址和目的地地址的第一帧,其中,每一个交换模块包括多个电桥元件和一个路由表,其中,在相应的交换模块中的所述多个电桥元件之间共享在每一个交换模块中的所述路由表,其中,所述多个交换模块被逻辑地划分到多个逻辑网络内,其中,所述第一帧与所述多个逻辑网络的第一逻辑网络相关联; 在确定所述第一交换模块的所述路由表不包括用于所述源地址的路由项时,修改在所述第一交换模块中的所述路由表以包括具有对于所述源地址确定的路由信息的第一路由项和所述第一逻辑网络; 更新在与所述第一逻辑网络相关联的所述路由表中的路由项的计数;并且 在确定与所述第一逻辑网络相关联的路由项的所述计数超过与所述第一逻辑网络相关联的第一阈值时,基于与所述第一逻辑网络相关联的所述第二路由项修改所述路由表以使得在所述路由表 中的第二路由项无效。
10.根据权利要求9所述的系统,其中,所述修改所述路由表以将所述第二路由项无效基于根据所述路由表的预定老化策略的、所述第二路由项被认为已经老化的程度。
11.根据权利要求9所述的系统,其中,所述修改所述路由表以将所述第二路由项无效进一步包括: 确定所述第二路由项是非静态路由项; 确定所述第二路由项不是从所述路由表的其他部分复制的;并且 确定所述第一交换模块是所述第二路由项的拥有者,其中,网络地址的路由项的拥有者被表征为具有学习了所述网络地址的转发数据库的交换模块。
12.根据权利要求9所述的系统,其中,所述操作进一步包括: 在确定与所述第一逻辑网络相关联的路由项的所述计数超过与所述第一逻辑网络相关联的、大于所述第一阈值的第二阈值时,修改所述路由表以暂停与所述第一逻辑网络相关联的新的路由项的插入。
13.根据权利要求9所述的系统,其中,所述操作进一步包括: 在确定与所述第一逻辑网络相关联的路由项的更新的计数大于用于所述计数的最高历史值时,将所述最高历史值更新得等于对应的更新计数。
14.根据权利要求9所述的系统,其中,所述操作进一步包括: 在确定与所述第一逻辑网络相关联的路由项的所述计数超过与所述第一逻辑网络相关联的、大于所述第一阈值的第二阈值时,修改所述路由表以暂停与所述第一逻辑网络相关联的新的路由项的插入。
15.根据权利要求14所述的系统,其中,所述操作进一步包括: 所述第一交换模块接收具有源地址和目的地地址的第二帧,其中,所述第二帧与所述第一逻辑网络相关联; 在确定所述第一交换模块的所述路由表不包括用于所述第二帧的所述源地址的路由项时,并且在进一步确定所述路由表已经被修改以暂停与所述第一逻辑网络相关联的新的路由项的插入时,发送通知,所述通知指示新的路由项还没有被插入所述路由表内以超过与所述第一逻辑网络相关联的所述第二阈值。
16.根据权利要求9所述的系统,其中,所述修改在所述第一交换模块中的所述路由表以包括所述第一路由项进一步包括: 基于散列函数来修改在所述第一交换模块中的所述路由表以包括所述第一路由项,其中,所述第一路由项存储基于虚拟局域网(VLAN)标签的路由密钥、逻辑网络(LN)标识符和介质访问控制(MAC )地址。`
【文档编号】H04L12/24GK103856406SQ201310632168
【公开日】2014年6月11日 申请日期:2013年11月29日 优先权日:2012年11月29日
【发明者】D.L.安格斯特, C.巴索, J.科斯, M.Q.利亚库纳, D.A.谢迪维, C.B.维里尔利 申请人:国际商业机器公司