具有mac表溢出保护的网络的制作方法

文档序号:7625075阅读:208来源:国知局
专利名称:具有mac表溢出保护的网络的制作方法
技术领域
本发明涉及计算机网络,并且更特别地针对具有MAC表溢出保护的网络。
背景技术
由于各种原因,网络领域中的很多应用都支持以太网。例如,以太网是广泛使用并且成本有效的媒介,具有大量接口并且速度容量高达10+Gbps的范围。以太网可以用于由诸如公司等之类的一个单独的实体在一个单独的位置组建的应用中,或者作为替代的实体可以将不同的局域网(LAN)连接到一起以形成一个更大的网络,有时称为广域网(WAN)。再进一步,以太网技术还经常用于形成有时称为城域以太网(MEN)的网络,MEN通常是可以公开访问的网络,通常与城市区域有关,因此使用了术语“城域”以太网。MEN提供所谓的城域(metrodomain),典型地由诸如因特网服务提供商(ISP)之类的一个单独的管理者控制。MEN典型地用于在接入网和核心网之间进行连接。接入网通常包括操作为到私人用户或端用户的网桥的边缘节点即用户节点,使得网络具有连通性。核心网用于连接到其他城域以太网,并且核心网主要提供帧交换功能。
以太网典型地包括多个网桥,有时也指代为其他名称,诸如交换机。网桥典型地操作为接收帧,有时将帧指代为其他名称,诸如包或消息,在任何情况下帧都包括具有源地址和目的地地址的一个部分,诸如头。帧可以包括其他信息,诸如从源地址处的装置传送到目的地地址处的装置的有效载荷或数据。网桥在一个端口上从该源接收该帧并经由到该目的地的一个端口对其进行转发,其中源和目的地可以是以太网中的另一网桥或用户或其他节点。通过建立(或“得知”)连接到并对应于其每个端口的每个地址的表,并接着在之后查询其表,从而通过从在表中指示为连接到具有该地址的目的地的端口将帧转发出去而将该帧转发到期望的地址,由此网桥执行其路由功能。此处这样引入的表在本文献中称为MAC地址转发表,其中MAC是“Media Access Control”(媒体接入控制)的缩写,并且每个MAC地址都是唯一地标识网络中其相应硬件的硬件地址。确切地说,在IEEE 802网络中,OSI参考模型的数据链路控制(DLC)层分为两个子层,即(i)逻辑链路控制(LLC)层和(ii)MAC层。MAC层通过接口直接与网络媒介(即OSI中的物理层或第1层)相连。因此,到网络媒介的每个不同的连接需要不同的MAC地址。最后,当网桥接收到帧时,网桥从帧中的头信息中读取目的地MAC地址,建立源端口和目的地端口之间的临时连接,从其目的地端口将该帧转发出去,并接着终止连接。
在当代的计算中对网络的频繁使用上的负面发展就是坏人进行了很多努力以给网络的运行带来麻烦或获得对网络资源的未授权的访问。在以太网的环境中,一种恶意的行为就是用户连接到网络并接着以异常大量的帧来对网桥进行泛洪(flood),从而添加不同的且未知的MAC地址。当网桥接收到每一帧时,该网桥检查其MAC地址转发表以确定该表是否已将该帧中的源MAC地址记录在该转发表中。如果未这样存储该地址,则该表存储该地址并将其与接收到携带该源地址的帧的端口相关联,因此,之后源地址就与网桥上的一个端口相关联了。因此,当接收到随后的帧,该帧具有与转发表中已经存储的MAC地址相匹配的目的地地址时,网桥沿与该地址相关联的端口转发该帧。因此,根据前述内容,应当注意到,网桥起初在其转发表中为尚未存储于该表中的每个源地址存储一个条目。随着这类未知的源地址的数目的增加,最后用于这些地址的存储器会变满。然而,此时,根据现有技术,如果网桥接收到其目的地地址不在已经充满的转发表中的帧,则该网桥通常“广播”每个这种帧,这意味着该网桥从其所有端口(除了接收到该帧的端口)将该帧传送出去,希望目的地能够接收到该帧并以一个确认来对发出广播的网桥进行响应,从而使得该网桥可以更新其MAC地址转发表,以便之后该表具有与接收到具有该目的地MAC地址的确认的端口相关联的条目。然而,应当注意到,该方法是有局限性的,根据现有技术,该局限性特别是被对网桥进行泛洪的坏人所利用。例如,MAC表具有有限的空间。在另一个示例中,MAC地址转发表将超时窗(timeoutwindow)与所存储的每个MAC地址相关联,因此如果在超时周期期间没有对相应地址的活动,就从该MAC表中去掉该地址。假设有这些局限性,则坏人有可能在相对较短的时间周期内发送数千个不同的MAC地址到同一个网桥。由于其大小限制,网桥的MAC地址转发表将达到其地址极限并且如果广播的话会给网络增加大量业务。此外,一旦MAC地址转发表充满,具有该表的网桥就不再接受新的MAC地址,也就是说,该网桥将具有未知的MAC地址的所有到来业务都广播到由该帧所定义的VLAN中的端口。作为结果,该网桥被迅速淹没(overwhelmed),并且不能执行其桥接功能,同时还开始丢弃来自其他源的帧。因此,该网桥被此次攻击所淹没,并且整个网络有可能被此次攻击所淹没。
在现有技术中,已经尝试了两种方法来处理上述原理和网桥局限性。在第一种方法中,在网桥的MAC地址转发表中统计地改变MAC地址。在该方法中,手工地建立MAC地址转发表,并且当网桥接收到具有尚未包括的MAC目的地地址的新帧时,将这些帧丢弃,并且因此不会在稍后以将作为对广播该帧的响应的内容来更新该表。然而,由于网桥没有广播所丢弃的帧,因此减小了以这些帧来加重网络负担的可能性。在第二种方法中,每当一个节点加入该网络或启动一个节点时,都采用基于MAC的认证。在该方法中,当一个MAC地址实体加入该网络或启动一个MAC地址实体时,该MAC地址实体发布有时称为注册帧的帧,以便网桥可以接收到该帧并且该网桥可以相应地更新其MAC地址。
上述现有技术的方法可以减小由于以MAC帧对网桥进行泛洪而使该网桥负担过重的可能性,但这些方法也存在可以由本领域的普通技术人员发现的缺陷。作为第一种方法的缺陷示例,网桥可以接收到合法的帧,但如果这些帧包括尚未在该网桥的表中的目的地MAC地址,则这些帧将被丢弃,并且因此网络拒绝为这些帧提供服务。作为第二种方法的缺陷示例,由于设备有可能定期关闭或启动,所以需要一次注册的多个实例,并且这还使得坏人可以用大量的注册帧来对网络及其网桥进行泛洪。在以上情况下,需要通过优选实施例来解决现有技术的缺陷,下面将进行更详细的描述。

发明内容
在优选实施例中,有一种操作网络系统中的网桥节点的方法。网桥节点包括多个端口。该方法包括在多个端口中的一个端口处从在网络系统中且不同于该网桥节点的设备接收帧的步骤。该帧包括源网络地址。该方法还对与该端口相关联的至少一个条件进行响应,即如果满足至少一个条件,该方法就将该源地址存储于与该网桥相关联的转发表中。该至少一个条件包括该帧是否是在时间窗TW内接收到的以及这些帧的相应源网络地址是否已存储于该表中,时间窗TW是关于在该端口处接收到门限数目的先前帧的时间的时间窗。
在此还描述和要求了其他方面。


图1示出根据优选实施例的示例的网络系统。
图2示出根据优选实施例具有用于执行MAC地址认证(即确定可靠性)的各种数据块的帧。
图3示出根据优选实施例由网桥节点进行认证的方法。
图4示出根据优选实施例操作网桥节点来更新MAC地址转发表的方法。
图5示出根据优选实施被网桥用作转发表的存储器空间的逻辑描述。
图6示出图4的方法的替代性优选实施例。
具体实施例方式
图1示出可以实现优选实施例的网络系统10的框图。一般来说,在图1所示的级别上,系统10中的每一项在本领域中都是已知的,其中可以采用各种形式的硬件和软件编程来构造在此所示出的节点,以执行根据本文献中的讨论的步骤。然而,如下所述,该操作方法以及添加到网桥节点的某些功能用于本优选实施例并从整体上改善了系统10,并且可以较为容易地将这些方法和功能添加到诸如系统10之类的系统的现有的硬件和软件编程中。实际上,作为结果,本优选实施例是比较灵活的并且可扩展到不同大小的网络。
系统10通常代表包括多个节点的桥接网络,诸如以太网。在以太网的环境中,可以将一些节点称为以太网网桥或交换机,并且为一致起见,本文献中将使用术语“网桥”。应当注意,可以用各种方式来指代系统10中的网桥和其他设备之间的物理连接,并且可以用各种方式来实现这些物理连接,但在任何情况下,这些物理连接都允许在每一组两个相连接的网桥之间进行双向通信。通过数据块来进行通信,这些数据块通常称为帧、包或消息,并且为一致起见,本文献中将使用术语“帧”。在网络的一部分中,并且同样在本领域中已知,可以采用附加的路由层,从而定义在网络中传送帧的路径。然后,参见系统10,一般来说,系统10包括三个网桥B0至B2。在系统10中,每个网桥Bx还经由相应的端口连接到一个或多个其他的网桥。例如,网桥B0经由端口BP0.0连接到网桥B1,网桥B1经由端口BP1.1连接到网桥B2。应当注意到,所示出的网桥的连接可以通过直接连接来实现或者可以存在不具有网桥功能的中间节点。在任何情况下,根据图1所示,本领域的普通技术人员将意识到,可以将图1中的相应网桥之间的其余连接以及上述连接总结于下面的表1中

表1除上述网桥连接之外,网桥B1连接到网络服务器NS,由于下面将更清楚地说明的原因,网络服务器NS有时称为认证服务器并且连接到数据库DB。
继续参考系统10,为了进行示例,图中还将多个网桥示出为连接到用户站节点USx,可以将用户站节点指代为其他名称,诸如用户节点或用户站。用户站是节点的示例,在同一网络或处在位于远端的网络处,诸如在商业实体、大学、政府机构等不同物理位置处,用户站可以实现于LAN、WAN或全球因特网中。典型地,某些用户站希望与其他用户站进行通信,并且因此网桥的一个关键功能就在于以不打扰这些用户站的方式或甚至以这些用户站可识别的方式来促进这种通信。作为结果,系统10中的一个用户站可以在较大的距离上相对于网络层和用户站之间的节点透明地与系统10中的另一用户站进行通信。此外,在图1中,将一些用户站示出为分别连接到一个网桥节点的相应端口,而将其他用户站连接到局域网(LAN),其中该LAN支持一组本地用户站。作为前者的一个示例,用户站US1连接到网桥B0的端口BP0.1,而LAN LN0连接到网桥B0的端口BP0.2。同时,至于LAN LN0,其包括用户站US3、US4和US5以及共享的传输媒介,其中有时将该共享的传输媒介实现为汇总集线器。将图1中的用户站的这些示例和其余示例的连接关系总结于下面的表2中

表2现在已经介绍了系统10,应当注意到,在不同的操作下,可以根据现有技术来对系统10进行操作,而此外本优选实施例提高了对网桥节点Bx处的MAC溢出攻击的抵抗能力。通过“背景技术”到这些不同方面,每个网桥维护通常实现于内容可寻址存储器(CAM)中的一个存储器存储区域,在此将CAM称为MAC地址转发表(或简称为“转发表”)。在本优选实施例中,现在介绍每个网桥的MAC地址转发表的数据结构。当根据本优选实施例的网桥接收到具有源MAC地址的帧时,如果达到某些条件(稍后将详细描述),则将来自该帧的各种地址信息存储于该网桥的MAC地址转发表中。为简化对该信息的理解,考虑一个实例,其中首先激活诸如以网桥B0为例的网桥,该网桥的MAC地址转发表是空的,之后将第一个条目加入该表中。在此情况下,转发表的数据采取下面的表3的形式

表3(MAC转发表)表3的第一行不是必须包括在实际的数据表中,但此处包括该行以便提供对包括在表中的数据值的可理解的描述。观察表3的列,在第一列中,网桥优选地存储了来自所接收的帧的源MAC地址。为简单起见,在本文献中,当实现实际的MAC地址时将大写字母用作示例性的MAC地址,或者可以存储其他形式。在第二列中,网桥优选地存储了接收到接收帧的端口的标识符。在本例中,其中表3是网桥B0的表,于是将该表示出为已经在其端口PB0.1处接收到帧。当然,本例中的特定标识“0.1”是为了与图1的标识符相匹配,而在实际应用中,可以用各种方式来标识端口。在任何情况下,该端口信息为区分相对于同一网桥的其他端口在网桥的一个端口处对多个帧的接收提供了基础,稍后将详细描述该基础。在第三列中,网桥可以存储接收到接收帧的端口类型的标识符。该信息为稍后确定是否需要关于相应的MAC地址进行认证提供了基础,并为调整确定给定接收帧中的信息是否存储于MAC地址转发表中的参数提供了基础。在第四列中,网桥优选地存储了接收到当前接收帧的时戳。最后,在第五列中,如同下面结合图2和图3所述的那样,网桥还优选地采取了关于其转发表中的一些条目或全部条目的认证方法,因此第五列指示了任意给定时刻的认证状态,“是”意味着已经确定相应的MAC地址是可靠的,“否”意味着尚未检查相应MAC地址的可靠性,“N/A”意味着将不会确定相应MAC地址的可靠性。
图2和图3针对源MAC地址认证的本优选实施例的方法,在表3的第五列已引入了该方法。特别地,优选地关于转发表中从用户站接收到的任意帧执行认证,但由于稍后将讨论的原因,不会对一个网桥从另一网桥接收到的帧进行认证。关于对从用户站接收到的帧的认证,图2示出了其中具有各种数据块的优选的帧FR,图3示出了认证的优选方法100。下面将更详细地描述这些图示中的每一个。
首先从左到右观察图2的帧FR,该帧包括在某种程度上可以与其他网络帧相对照的头。然而,该帧头优选地包括表明将对帧FR进行帧认证的标识符以及其他部分,其中该标识符有可能指示发出请求的网桥节点的认证请求或对该请求的响应,下面将结合图3对此进行进一步讨论。帧FR中的下一部分是网桥标识符(ID),其中所标识的是发送帧FR请求的网桥或将接收对这种请求的响应的网桥。帧FR中的最后一部分是MAC地址标识符的数目N,示出为MAC1到MACN,其中N优选地大于1,以便使网桥节点可以在一个单独的帧中请求一次对多个MAC地址进行认证。最后,应当注意到,当将帧FR返回发出请求的网桥时,可以将一个标记添加到N个MAC地址标识符中的每一个上,其中以示例的方式将帧FR中的每个MAC地址标识符都示出为具有附加到其上的标记Fx(例如,MAC1具有标记F1,MAC2具有标记F2,等等)。该标记表明在认证期间发现相应的MAC地址是可靠的(即标记设置为第一状态)还是不可靠的(即标记设置为第二不同状态)。可以用某种其他形式来提供这些标记,诸如通过在帧FR的其他地方(例如在帧头中)包括这些标记。
如上所述,图3示出认证的方法100,其中现在应当注意到,方法100优选地由系统10中的多个网桥执行,而在一些实例中,有可能有一些不执行该方法的网桥。以示例的方式,可以在网桥中将方法100实现为包括足够的硬件、软件和数据信息以便执行下述步骤的计算机程序。因此,以示例的方式,考虑连接到一个或多个用户站但不直接连接到网络服务器的网桥,诸如图1中的不连接到网络服务器NS但连接到用户站US1、US2和US8的网桥B0。方法100开始于步骤110,其中网桥(例如B0)确定该网桥自己的MAC转发表中的一组N个MAC地址的可靠性。在本优选实施例中,由从其转发表中收集N个MAC地址的网桥基于稍后将详细描述的定时考虑来执行步骤110,并且以图2中示出的方式在帧FR中将这N个MAC地址传送到该网络。帧FR的头指示了该帧的性质并且其直接连接或通过中间网桥连接到提供地址认证的网络服务器。因此,在本例中,网桥B0发布将由网桥B1接收的帧FR,该帧FR直接连接到网络服务器NS。作为响应,网桥B1为该认证请求提供服务。因此,使用来自本领域中已知的其他认证过程的术语,则发出请求的网桥节点(例如B0)是请求方,接收其请求并能够经由网络服务器来为其提供服务的网桥(例如B1)称为认证方。实际上,请求方请求认证方进行认证,如果通过认证,则由于相信所认证的信息而允许请求方采取进一步的动作。响应于请求方的请求,认证方与网络服务器NS进行通信。因此,在图1的示例中,网桥B1成为请求方网桥B0的认证方并与帧FR相联系,并且因此网桥B1与网络服务器NS和数据库DS进行通信。在本优选实施例中,诸如由网络管理者等预先设置数据库DS,以便为系统10存储可靠的或有效的MAC地址的列表。作为结果,直接连接到网络服务器NS的网桥能够经由该网络服务器NS访问该列表或能够使得该网络服务器NS访问该列表。因此,在当前的环境下,诸如通过确定每个MAC地址MAC1至MACN是否已经预先存储到数据库DS,来评估这些地址中的每一个以确定其是否可靠。作为响应,网络服务器NS向直接连接的认证方网桥(例如B1)返回对N个MAC地址中每一个的指示,其中如上所述,该指示可以采取附加标记的形式或对应于帧FR中的每个MAC地址的其他形式。然后,认证方将该信息转发回请求方(即发起请求的一方)网桥。然后,返回图3的方法100,当请求方网桥接收到对其认证请求的响应时,就完成了步骤110并且方法100继续到步骤120。
在步骤120中,请求方网桥(例如B0)对其从步骤110的可靠性确定中接收到的响应中的每个可靠性指示作出响应。因此,对于由认证方指示为可靠的每个MAC地址,方法100从步骤120继续到步骤130。相反,对于由认证方指示为不可靠的每个MAC地址,方法100从步骤120继续到步骤140。
由于发现了可靠的MAC地址而到达步骤130,在该步骤中,请求方网桥(例如B0)更新其转发表以指示其中的相应MAC地址是可靠的。那么暂时返回表3,应当注意到,根据表3的第五列,到表3所示的时刻为止还没有检查MAC地址A的可靠性,也就是说,到该时刻为止还没有完成步骤110或对其的响应。然而,如果根据步骤120,已经发现MAC地址A是可靠的(即根据数据库DS是有效的)并且将流程导向步骤130,那么在步骤130中相应地更新第五列,该列可以如表3的形式所示,但要将指示“否”改为指示“是”。当然,可以采用其他方式来指示可靠的地址,诸如为一个状态设置一个单独的二进制值,其中应当理解,这种状态指示一个可靠的地址而其补码指示一个不可靠的地址。在步骤130进行表更新之后,方法100返回步骤110以检查另一组N个MAC地址的可靠性。
由于发现了不可靠的MAC地址(可以从直接连接的站点或从连接到汇总集线器或隐藏在汇总集线器之后的一些站点得知)而到达步骤140,在该步骤中,关于转发表中的MAC地址的条目采取相应的动作。那么暂时返回表3,可以再次回想到,到表3所示的时刻为止还没有检查MAC地址A的可靠性。然而,当到达步骤140时,其中所讨论的地址是不可靠的(例如不是可靠的或未存储于数据库DS中),则采取步骤以使表3中的该条目无效,以便释放用于该条目的存储空间以在将来用于其他地址。以示例的方式,对于发现为不可靠的这种地址,可以将请求方的MAC转发表中用于该地址的条目标记为无效并在稍后将其覆盖,或者可以在确定不可靠性质时将转发表中的该条目从该表中去掉。因此在任何情况下都应当注意到,会随时间对不可靠的条目进行识别并将其从转发表中清除,从而使得当请求方网桥接收到具有对应MAC地址的另外的帧时,该表的有效存储空间可用于稍后的条目。在步骤140进行表更新之后,方法100返回步骤110以检查另一组N个MAC地址的可靠性。
根据前述内容,关于方法100可以进行多种研究。一般来说,该方法使得网桥可以请求一次认证多达N个MAC地址,并且当确定了这些地址的可靠性时,该网桥相应地更新其MAC地址转发表,并且通过以一个单独的帧FR来确定多个地址的可靠性,可以减小开销。在本领域中公知,对于更新为可靠的地址,之后网桥可以关于这些地址进行操作,诸如将以后的帧路由到认证后的地址。对于发现为不可靠的地址,网桥可以用之前由该地址信息所使用的存储空间来容纳新接收到的地址。以这种方式,并且下面将进一步描述,可以定期释放存储空间以容纳另外的地址。此外,如果坏人试图以不可靠的地址来对MAC转发表进行泛洪,则方法100随时间清除这些地址,从而减小由于接收到不可靠地址而淹没该网桥的可能性。最后,应当注意到,进一步考虑到下述事项,本领域的普通技术人员可以调整认证发生及对其响应的发生频率的定时。
图4示出根据本优选实施例操作网桥节点的方法200,其中方法200优选地由系统10中的多个网桥节点执行,而在一些实例中,有可能有一些不执行该方法的网桥节点。以示例的方式,可以在网桥中将方法200实现为包括足够的硬件、软件和数据信息以便执行下述步骤的计算机程序。方法200开始于开始步骤210,该步骤表明该网桥开始了并行的方法,一般地以步骤220和步骤230示出。确切地说,图4左边的步骤220所示的这些方法之一就是图3的方法100。因此,图4的方法220拟用于说明方法100优选地由所讨论的网桥连续执行,而同时还执行了一般地示出于方法220右边的单独的方法230。换句话说,当执行方法230时,也执行了方法220,方法220执行图3的方法100。因此,随时间监控该网桥的转发表,其中一次检查多达N个MAC地址的可靠性,对识别为可靠的地址进行标记并将识别为不可靠的地址标为无效、去掉这些地址和/或用新接收到的地址覆盖这些地址。下面将详细描述在同一时间期间一般地进行操作的方法230。
方法230(方法200中的并行方法)开始于步骤240中示出的等待状态。确切地说,继续步骤240直到所讨论的网桥接收到帧为止。对于方法230的讨论,除非另有说明,否则拟讨论的帧就是以太网中的普通类型的帧,其中包括的源地址和目的地地址为某种类型的另外的数据,在现有技术中,当接收到这样的帧时,通常将该帧的源地址和接收到该帧的端口添加到接收网桥的MAC地址转发表中,并且之后将这些值用于将业务路由回该地址,那时该地址作为目的地地址。然而,相反,操作于该环境中的本优选实施例实现了某些条件,从而减小了网桥用未知的(或不合法的)MAC地址来充满其MAC地址转发表的可能性。为继续上述同一示例,于是假定由网桥B0来执行方法200及其并行方法。因此,网桥B0等待来自任意LAN LN0或用户站US1、US2或US8以及稍后将连接到网桥B1的一个端口的任意其他节点的帧。一旦接收到帧,方法230就从步骤240继续到步骤250。
在步骤250中,施加了一个条件,其首先确定是否有可能将当前所接收的帧的MAC地址存储在了该网桥的MAC地址转发表中,但应当注意到,该条件是基于接收到该帧的端口的。确切地说,在步骤250中,接收到当前帧的网桥确定是否已经在同一端口处在另一个帧中接收到并在表中(在转发表中)存储了当前帧中的源MAC地址。换句话说,步骤250确定相对于已经在接收到当前的接收帧的同一端口的转发表中的其他源MAC地址,当前的接收帧中的源MAC地址是否唯一。如果在同一端口处接收到具有这样一个重复源地址的帧并将其存储于表中,则方法230将流程从步骤250返回到步骤240以等待接收下一个帧。同样,虽然在此未讨论以便集中于本优选实施例的方面,但根据现有技术,如果所接收的帧具有有效的经认证的源地址和目的地地址,则可以将该帧转发到其目的地。然而,根据步骤250,如果未在同一端口上接收到具有已知源地址的帧并将其存储于表中,则方法230从步骤250继续到步骤260。
在步骤260中,引入了一个概念,即时间窗,在本文献中表示为TW,其成为可以施加的另一个条件,以确定是否有可能将当前所接收的帧的MAC地址存储于该网桥的MAC地址转发表中,并且应当注意到,该条件也是基于接收到该帧的端口的。本领域的普通技术人员可以建立时间窗TW的持续时间,并且如同稍后将描述的,对于不同的网桥节点、一个单独的网桥节点的不同端口,并且甚至对于给定网桥或给定端口的不同时间(times of day),可以改变时间窗TW的持续时间。在任何情况下,在步骤260中,利用已经从同一端口接收到具有先前未存储于其MAC地址转发表中的源地址的当前帧的网桥,对于接收到当前的接收帧的端口,该网桥确定在TW内存储于该MAC地址转发表中并从该同一端口接收到的帧的数目,其中在本文献中将该数目缩写为NFPTW(“N”代表数目,“F”代表帧,“P”代表同一端口,“TW”代表所经历的时间窗期间TW)。另外,处于这种考虑,再次返回表3,可以回想到,此处的另一个条目就是接收每个对应帧的端口,如在该单独的示例中示出为等于0.1的端口ID。因此,假定表3具有大量条目,则步骤260查找时戳,确定在该同一端口处接收并在表中存储了多少其他的具有唯一源地址的帧,结果是值NFPTW,该时戳相对于当前所接收的帧的到达时间示出所经历的TW中的持续时间内的时间。接着,方法230从步骤260继续到步骤270。
在步骤270中,网桥将NFPTW与指定为THRFPTW的门限进行比较。这种比较有效地提供了对在TW期间在同一端口处是否已经接收到不可接受并有可能是可疑的大量帧的度量,并且由于步骤250之前的发现,具有了(相对于彼此)唯一的地址。换句话说,将门限THRFPTW设置为有可能出现这种可疑情况的某个数值。作为结果,在步骤270中,如果来自同一端口并且在时间TW内并且相对于彼此具有唯一地址(如同在步骤250中所检测到的)的由NFPTW所反映的帧的数目超过了门限THRFPTW,则所讨论的网桥端口非常有可能正在受到以具有不可靠的地址的帧而进行的恶意的泛洪。因此,如果NFPTW超过了门限THRFPTW,则方法230从步骤270返回到步骤240,以等待下一个帧。因此,应当注意到,如果该可疑事件发生了,则在紧接着要进行的步骤240中接收到并接着由步骤250、260和270处理的帧不会引起向该网桥的MAC地址转发表进行新的写入,并且同样不会将该帧的地址广播到网络。因此,该帧并没有显著地影响网桥。此外,如果在TW内接收到具有相同的可疑属性的另外的帧,则以相同的方式来处理这些帧并且使每个帧对接收网桥的影响最小化,对应地减小了这些帧淹没该网桥的可能性。
仅当NFPTW未超过THRFPTW时到达步骤280,在该步骤中,网桥节点向其MAC地址转发表写入关于当前所接收的帧的各种数据,其中该数据与表3中示出的描述符一致。因此,根据该帧写入MAC地址,如端口ID、端口类型以及接收到该当前接收帧的时戳。最后,将经认证的MAC地址指示符设置为指示尚未进行认证的值,而并行的方法100可以在之后的某个时候尝试对该条目进行认证从而改变该值(或者如果确定该MAC地址是不可靠的,则去掉整个条目)。之后,方法230将流程返回步骤240,以等待下一个接收帧,此时关于该帧并根据之前的描述继续进行方法230。
根据前述内容,通过考虑一个示例,可以进一步描述本优选实施例的各方面,在该示例中系统10已经运行了一段时间并且网桥B0已经进一步扩展了其MAC地址转发表。因此,在这样一个示例中,假定将表3进一步扩展为包括如下面在表4中所示的另外的条目,并且假定在耗费在接收帧并将其添加到表3上的附加时间期间,已经确定T1处的MAC地址的第一条目A是可靠的,如同表4中的第五列所示,与表3中的该相同条目不同,该列指示为“是”

表4利用表4,通过沿循方法200的步骤,多个示例是有启发性的,并且下面将研究这些示例,而本领域的普通技术人员可以想到大量的其他示例。
考虑关于表4的第一示例,其中网桥B0在其端口BP0.1处接收到具有源MAC地址A并在时刻T7之后的时刻T8到达的帧。因此,根据步骤250,应当注意到,已经在同一端口(即BP0.1)处接收到并成功地得知并且在表中存储了源MAC地址A,表4的第一行示出了这样一个帧。作为结果,相对于表中所存储的用于同一端口的条目,当前所接收的帧的MAC地址并不是唯一的,因此,网桥B0不会在其MAC地址转发表中形成另外的条目,并且相反地,方法的流程返回到步骤240。
考虑关于表4的第二示例,其中网桥B0在其端口BP0.3处接收到具有源MAC地址A并在时刻T7之后的时刻T9到达的用户站的帧,同样假定TW大于T1和T9之间的时间。根据步骤250,尽管在时刻T1接收到了相同的MAC地址,但应当注意到,先前是在相对于当前所接收的帧不同的端口处进行接收的。因此,流程继续到步骤260和步骤270。因此,假定在经历的TW期间在端口BP0.3处接收到的帧的数目小于或等于用于该端口的门限(即THRFPTW),则将该最新的帧添加到表4,体现在下面的表5中。应当注意到,该未认证的MAC地址将不会用于转发帧,直到对其进行了认证为止。如果这种认证成功了,则会更新表5中的第8行的该新条目,以便将其认证指示从“否”改为“是”。

表5考虑关于表4的第三示例,其中网桥B0在其端口BP0.4处接收到具有源MAC地址H并在时刻T7之后的时刻T10到达的帧,并且同样假定TW大于T1和T10之间的时间。根据步骤250,该MAC地址相对于已经在转发表中的MAC地址是唯一的,因此,流程继续到步骤260和步骤270。然而,假定在此情况下,THRFPTW等于2,尽管在实际应用中这样一个数值低得不切实际。在步骤260中,确定NFPTW,即存储于网桥B0的MAC地址转发表中并从与当前所接收的帧相同的端口BP0.4接收到的帧的数目。从表4的角度来看,所确定的数目等于3(即从三个MAC地址C、D和E,在时刻T3、T4和T5,全部在端口BP0.4处接收)。作为结果,由于NFPTW的值大于THRFPTW的值,因此在步骤270中,其所确定的数目得到肯定的答案。因此,由于是在所经历的TW期间在接收到具有唯一MAC地址的其他帧的同一端口处接收到该帧的,因此实际上将该新接收的帧视为会加重网桥节点负担的一种风险。因此,不将来自该帧的MAC地址信息存储于该网桥的MAC地址转发表中,并且流程返回到步骤240以等待下一个帧。
上面已经描述了图4的方法200中的并行方法并给出了前述示例,现在可以关于本优选实施例进行各种研究并且可以与现有技术进行比较。因此,下面将分别讨论这些研究的示例。
作为第一研究,考虑一种情况,其中执行方法200的网桥节点接收非常大量的帧,每个帧都具有一个未认证的源MAC地址,发送这些帧很有可能是为了淹没或甚至击溃该网桥。如上所述,现有技术的网桥将接受这些帧,直到其存储器完全充满为止,并且还在此后开始进行广播,从而大大加重了该网桥的负担并扰乱了该网络上的业务。相反,在本优选实施例中,在每端口的基础上并且对于时间窗限制这些帧对网桥节点的影响。因此,实际上,如果在时间窗TW内接收到非常大量的具有唯一地址的帧,则步骤270将禁止将这些帧存储于表中以及在每端口上对其进行广播。因此,就不会淹没网桥节点的整个存储器,并且实际上可以保留其表的存储器的某个部分用于在其他端口处接收到的MAC地址,这全都通过调整TW和THRFPTW的值来实现。
作为关于本优选实施例的另一研究,方法230示出一个单独的门限THRFPTW,超出该门限的帧不会被记录。然而,应当注意到,可以采用多个门限,从而对每个门限都作出不那么强烈的响应。例如,可以设置较低的第一门限THRFPT1W,以便一旦NFPTW超过该门限,网桥节点就可以减小在对应端口处接收帧的速率以同样减小淹没该网桥的可能性,并且如果NFPTW超过较大的第二门限THRFPT2W,则可以将这些帧全部丢弃。同样,对于一个或两个门限,当NFPTW到达了这些门限,则在另一优选实施例中,向网络管理者发送一个警告或指示,从而可以另外地调查在一个单独的网桥端口处接收到的唯一MAC地址大量增加的原因。因此,在任何情况下,在本优选实施例中,对于在设定的时间内到达同一端口的第一组唯一地址,进行转发表存储器的第一处理,但随着具有这些唯一地址的帧数目的增加,为稍后接收的多个这种帧提供第二不同处理。如示例所示,这种变化的处理可以是丢弃稍后的帧,以降低接收这些帧的速率,和/或向网络管理者发布该状态的警报或指示等。还有其他的处理可以由本领域的普通技术人员确定。
作为关于本优选实施例的又一研究,应当注意到TW和方法100的并行操作的优点。特别地,随时间经历TW,方法100可以很好地识别MAC地址转发表中的各种可靠的MAC地址,但同时其还可以识别该表中的不可靠的地址,从而从存储器中去掉这些不可靠的地址(或至少使这些地址可以被覆盖)。因此,在经历TW的同时,可以释放存储器以容纳新接收到的具有唯一地址的帧,其中出现该结果是因为一些地址被标记为不可靠,接收到这些地址的端口的稍后的NFPTW值减小了。因此,利用减小的NFPTW,步骤270将更经常得到否定的答案,从而将同样在同一端口处接收到的其他MAC地址存储于表中。另外,基于在经历TW期间应当用未认证的地址来填充一些存储空间而从该同一存储空间中去掉其他未认证地址的概念,可以将TW设置为所期望的值。再者,应当注意到,如果在没有对网桥端口进行帧的泛洪的时间期间经历TW,则有充足的时间来进行关于这些已经存储的MAC地址的认证,因此很有可能只有合法的MAC地址会留在MAC地址转发表中,从而使其余存储空间对稍后接收的MAC地址开放。
作为最后的研究,在本优选实施例中,应当注意到,MAC地址转发表包括端口类型指示,其中以示例的方式在表4中表示出,由于MAC地址G到达了连接到另一网桥节点即网桥B1的端口BP0.0,因此将MAC地址G示出为网络类型。在本实例中,经由网络的另外的连接来接收帧而不是直接地从用户站接收帧,并且可以假定接收该帧的其他网桥节点也已经执行了本优选实施例的方法,从而减小了该帧具有不可靠的MAC地址的可能性。因此,对于这种MAC地址,即由一个网桥从另一网桥接收到的那些MAC地址,可以将其视为可靠的并将其从方法200的分析中排除。
图5示出拟作为存储器的逻辑描述的存储空间MS的框图,其中根据本优选实施例的网桥存储其MAC地址转发表,并且图5还示出了根据上述优选实施例的方法产生的有效逻辑划分。以示例的方式,画出存储空间MS并将其指定为对应于图1的网桥B0。在本优选实施例中,实际上将存储空间MS划分为具有多个部分,以存储在维护该存储器的网桥的每个端口处接收到的帧的MAC源地址。因此,在具有五个端口BP0.0至BP0.4的网桥B0的示例中,实际上将存储空间MS划分成了指定为GBP0.0至GBP0.4的五个存储组,分别对应于在网桥端口BP0.0至BP0.4处接收到的MAC地址。为进行示例,将每个组GBPx.y示出为具有相同或近似相同的大小,即具有相同或近似相同的存储空间量。在实际的实现中,基于不同的考虑,诸如端口类型,一个或多个组可以大小不同,这里可以回想到端口类型是根据本优选实施例由网桥来存储的并且在上面的表3中以示例的方式示出。此外,如同所示出的,用于一个给定组GBPx.y的每个单独的存储空间不必是连续的,因此图5仅拟作为一种方法的逻辑描述。
图5对存储空间MS的示意有助于对本优选实施例的另外方面的理解,即结合了前述内容又有关于下面结合图6而讨论的另外的方面。可以回想到,根据优选实施例的网桥接收到帧并且仅当满足一个或多个条件并且这些条件与接收该帧(及其源MAC地址)的端口有关时才存储其相应的源MAC地址。那么参见图5,其逻辑地描述了实际上希望每个网桥端口都在存储空间MS中具有对于其可用的大致有限的存储空间,其中每端口的THRFPTW值设置将防止该网桥存储某些地址,这些地址来自一个端口,相对于网桥基于其其他端口而接收和存储的地址数目,这些地址消耗了异常大量的存储空间MS。换句话说,由于每个端口具有其自己的条件,这些条件与该端口相关联并与恰当设置的THRFPTW相关联,因此当执行本优选方法时,将存储基于在一个端口处接收到的帧而存储于存储空间MS中的MAC地址,而不管在同一网桥的其他端口处接收到的帧。相反,在现有技术中,在一个端口处接收到的帧中的MAC地址有可能阻止对在同一网桥的另一端口处接收到的帧中的MAC地址进行存储。确切地说,在现有技术中,如果用帧对一个端口进行泛洪,则整个转发表存储器都会充满,从而阻止了对在同一网桥的其他端口处接收到的地址进行存储,因此实际上在一个端口处接收到的MAC地址的存储受到了在其他端口处接收到的帧的影响。然而,在本优选实施例中,通过将条件与每个端口相关联,实际上网桥就不会让对来自一个端口的MAC地址的存储淹没整个存储空间MS。另外,对于每个GBP,对存储器进行进一步的逻辑划分以容纳在认证过程期间得知的MAC地址,即未成功认证的MAC地址和经认证的那些MAC地址。未认证的MAC地址有可能与经认证的MAC地址来自同一物理端口。然而,经认证的帧会通过逻辑上未受控的端口。因此,未认证的MAC地址是从端口的未受控部分得知的并且不用于转发过程中。此外,GBP的未认证部分不应影响网桥的转发决定。
图6示出替代性实施例的方法200’,其拟用于描述对与图4的方法200相同的步骤的使用,但仅示出了一些步骤以简化该图,从前述的方法200可以理解还包括另外的步骤。此外,图6在步骤250和步骤260之间包括步骤255。因此,当步骤250确定为否定的答案并且在到达步骤260之前,到达步骤255。在步骤255中,网桥(例如B0)将另一值与另一门限进行比较,其中该值是存储于存储空间MS中的用于相应端口的未认证地址的数目,并且在此将该数目指定为NUNAP(“N”代表数目,“UN”代表未认证,“A”代表地址,“P”代表端口)。此外,将用于比较的门限指定为THRUNAP。如果NUNAP超过了门限THRUNAP,则方法200’不会继续到步骤260,而是返回到步骤240以等待另一个帧。因此,在本实例中,不可能最终前进到步骤280,在该步骤280中应当已经将所接收的帧的源MAC地址存储于转发表中。相反,如果NUNAP未超过门限THRUNAP,则方法200’继续到步骤260,在此如上所述按照方法200继续流程,并且读者可以参考先前的讨论以得到更多的细节。
然后,着眼于在图6的方法200’中添加步骤255的效果,还可以结合图5的存储空间MS并且还可以参考图1的示例网络系统10来理解该效果。再次考虑网桥B0,可以再次回想到本优选实施例实际上在每端口的基础上施加了条件,其中这些条件影响了在给定端口处在帧中所接收的源MAC地址是否存在于转发表中。以这种方式,本优选实施例有效地限制了在网桥上对该网桥的一个单独的端口所尝试的攻击,而将网桥的另外的资源(例如存储空间MS的另外的资源)留给其他端口使用。然而,还应当认识到,当多个用户可以连接到一个单独的端口时,例如以示例的方式在网桥端口BP0.2处,该端口BP0.2经由LAN LN0连接到多个用户(即用户站US3、US4和US5),就有可能出现这种情形。根据有可能出现于LAN或其他多用连接(例如集线器)中的这种可能性,应当注意到,连接到一个端口的多个用户中仅有一个有可能是试图以具有相应的不同源MAC地址的大量帧来对该端口进行泛洪的坏人。因此,实际上,搞破坏的那一个用户站有可能使用图5的用于该端口的全部存储组GBP。例如,用户站US3有可能对端口BP0.2进行泛洪,从而消耗组GBP0.2的较大一部分。由于采取了该动作,因此为来自用户站US4和US5的将很有可能是可靠的源MAC地址留下很少的空间或没有为之留下空间。因此,再次关注方法200’的步骤255,应当注意到,现在这实际上在存储空间MS中为已认证的MAC地址保留了一些空间。换句话说,如果已经有异常大量的当前未认证的MAC地址存储于转发表的存储空间MS中,那么这就阻止了将源地址写入该存储空间MS。因此,一旦达到门限THRUNAP,就不再写入另外的源地址,因此本领域的普通技术人员可以建立门限以在用于存储的物理存储器中留下可以存储已认证地址的足够空间。此外,应当进一步注意到,如果存在基于到该端口的多站连接而攻击一个端口的破坏性站点(例如经由共享的传输媒介),则此次攻击的任何负面影响都仅限于分配给所连接的端口的资源,而不是整个网桥。因此,与现有技术相比,用于阻止由于在一个单独的端口处进行攻击而扰乱整个网桥的可能性更高。
通过考虑进一步扩展前述示例的两个实例,其中用户站US3试图对端口BP0.2进行泛洪,而用户站US4和US5试图对其提供可靠的地址,可以进一步理解以上对步骤255的添加。在第一实例中,假定在用户站US4和US5向该同一端口发送其可靠地址的时刻之前的时刻,该用户站以不可靠的地址对端口BP0.2进行泛洪。在此情况下,如果在接收到具有可靠地址的来自用户站US4或US5的帧时NUNAP超过了THRUNAP,则网桥B0有可能会丢弃该帧。然而,可以回想到方法200(或方法200’)的并行方法,当对于具有可靠地址的帧到达步骤255时,此时该并行的认证方法100有可能具有减小的NUNAP。如果情况是这样,则方法200’将关于具有可靠地址的帧前进到步骤255之外,并且之后会将该帧的源MAC地址存储于转发表的存储空间MS中。之后,当认证了该地址本身时,用户站US3就不能用另外的泛洪尝试来覆盖该地址。在第二实例中,如果在来自用户站US3的泛洪尝试之前将具有可靠地址的来自用户站US4或US5的帧传送到网桥B0,则步骤255将流程向前传递到步骤260,原因是到接收到这样一个帧之时为止,用于该端口的未认证地址的数目(NUNAP)将为零,低于门限THRUNAP。因此,在第一实例或第二实例中,为可靠的源MAC地址提供了另外的保护,从而提高了可以将这些地址写入转发表(并且之后可以基于这些可靠地址来转发稍后接收到的帧)的可能性。
根据以上说明和描述,本领域的普通技术人员应当意识到,本优选实施例提供了具有MAC表溢出保护的网络。相对于现有技术,这些优选实施例包括大量优点,上面已经详细描述了其中一些优点并且本领域的普通技术人员可以确定其他优点。作为又一个优点,尽管已经详细地描述了本优选实施例,但可以对上述描述进行各种替代、修改或变更而不脱离发明范围。例如,可以改变关于图3的方法100的步骤110来确定所讨论的帧的可靠性的方式,使得在本地分布到每个网桥节点,而不是具有中心网络服务器NS和数据库DB。在这种变型中,网桥将所接收的用户站的MAC地址与保留在该网桥处的所缓存的经认证的/可靠的MAC表进行比较。作为另一个示例,可以根据特定的端口配置文件来灵活地设置TW和THRFPTW,这种设置的一个示例体现为在工作日开始时,例如由于在工作日开始时有可能有很多计算机起动,因此可以期望在职员办公室中用于端口的唯一的MAC地址的数目较高,并且之后该数目变小,从而为网桥节点提供新的(用于当天的)MAC地址。因此,为适应这种期望,在早晨可以将THRFPTW设置为较高的值。根据端口特性,可以动态地安排TW和THRFPTW,以便能够将使客户的MAC地址重新有效的可能性限制在可接受的范围内。实际上,应当注意到,在替代性的实施例中,用于同一网桥或不同网桥的不同端口的TW或THRFPTW或者TW和THRFPTW可以不同,从而为有可能随时间存储于表中用于该端口的具有唯一地址的帧增加了灵活性。作为另一个示例,本优选实施例可以应用于除以太网之外的网络。作为又一个示例,尽管前面的讨论已经详细描述了由网桥节点提供的各种方法,但应当理解,可以将这些方法与由这种网桥节点现在提供的或将来提供的其他方法相结合。因此,这些示例还阐明了发明范围及其优点,这些发明范围及其优点减小了MAC地址表溢出的可能性。作为结果,如下面的权利要求所定义的那样,这些优点以及前面的描述还用于对发明范围进行示例。
权利要求
1.一种操作网络系统中的网桥节点的方法,所述网桥节点包括多个端口,所述方法包括在所述多个端口中的一个端口处,从在所述网络系统中且不同于所述网桥节点的设备接收一帧,所述帧包括源网络地址;对与所述端口相关联的至少一个条件进行响应,如果满足所述至少一个条件,就将所述源地址存储于与所述网桥相关联的转发表中;以及其中所述至少一个条件包括所述帧是否是在时间窗TW内接收到的以及这些帧的相应源网络地址是否已存储于所述表中,所述时间窗TW是关于在所述端口处接收到门限数目的先前帧的时间的时间窗。
2.根据权利要求1所述的方法其中所述多个端口中的每个端口都具有相关联的门限数目;以及其中与所述多个端口中的一个端口相关联的门限数目不同于与所述多个端口中的另一端口相关联的门限数目。
3.根据权利要求1所述的方法,还包括在不同时刻调整所述时间窗TW。
4.根据权利要求1所述的方法其中所述多个端口中的每个端口都具有相关联的时间窗TW;以及其中与所述多个端口中的一个端口相关联的时间窗TW在持续时间上不同于与所述多个端口中的另一端口相关联的时间窗TW。
5.根据权利要求1所述的方法,还包括所述网桥确定所述转发表中的多个源地址是否可靠。
6.根据权利要求5所述的方法,响应于所述确定步骤还包括如下步骤在所述表中为所述表中确定为可靠的每个源地址提供一个可靠指示;以及允许覆盖所述表中确定为不可靠的每个源地址。
7.根据权利要求6所述的方法,其中所述至少一个条件还包括所述表中具有不可靠指示的源地址的数目是否超过门限。
8.根据权利要求5所述的方法,还包括响应于与所述端口相关联的所述至少一个条件,存储与所述帧相关联的一组参数,所述的这组参数包括所述端口的标识符和接收到所述帧的时间的标识符。
9.根据权利要求8所述的方法,其中所述参数还包括所述端口的类型的指示和表明是否已经确定所述源地址的可靠性的指示符。
10.一种网络系统中的网桥节点,所述网桥节点包括多个端口,其中将每个端口操作为从在所述网络系统中且不同于所述网桥节点的设备接收一帧,所述帧包括源网络地址;以及电路,根据所述源地址是否不同于已经存储于所述转发表中的先前在所述端口处在相应的帧中接收到的每个和任何源地址,用于在满足至少一个条件时,将所述源地址存储在与所述网桥相关联的转发表中。
全文摘要
一种操作网络系统中的网桥节点(B
文档编号H04L12/56GK1822565SQ200510108369
公开日2006年8月23日 申请日期2005年10月13日 优先权日2004年10月15日
发明者葛安, 吉里什·奇鲁沃洛, 马赫·阿利 申请人:阿尔卡特公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1