用于层间绑定检验的方法和装置的制作方法

文档序号:7864302阅读:322来源:国知局
专利名称:用于层间绑定检验的方法和装置的制作方法
技术领域
本发明涉及信息网络领域,更具体地涉及用于对由层间绑定协议(inter-layer binding protocol)的分组所创建的绑定进行检验的方法和装置。
背景技术
可用于保护和穿透联网环境的工具库在数量和能力两方面都非常出色。这些工具中的一些是非常专门化的,而另一些是多目的的,并且作为用于更大的工具包的构建模块。这种工具中的一种是网络“嗅探器”(sniffer)。最一般形式的网络“嗅探”包括从网络拦截通信(例如帧或分组)和查看其内容。此能力的普及已经有一段时间,并且已被网络管理员(例如故障检修问题)、所谓的“破解者”(cracker,拦截密码和文件的人)等所采用。应当注意到,相对而言,网络嗅探近来才在交换网络上成为可能。正如人们可能希望的那样,如今出现了允许在交换网络上进行网络嗅探的工具。以下简要说明非交换网络的工作方式和如何对这种网络进行嗅探,以及交换网络的工作方式和如何对这些网络进行嗅探。
图1A是一般地示出非交换网络环境的体系结构的框图,所述体系结构在图1A中示出为网络100。网络100包括多个节点(节点102(1)-(N)),这些节点由集线器106耦合到路由器104。节点102(1)-(N)中的每个节点都耦合到集线器106的一个单独的端口(未示出)。在图1A所示的非交换网络环境中,存在网段的概念。段(segment)是一种存在于路由器、桥接器、集线器或交换机背后的网络体系结构,其中每个节点是从每个其他节点直接可寻址的。在某些网络中这也称为子网。于是,在图1A中将节点102(1)-(N)示出为在一个段中(在图1A中示出为子网108)。
在非交换环境中,以广播的方式来处理帧。即,当一个节点发送帧时,该帧就被段上的每个节点“看见”。而每个节点又大致地检查该帧,以了解该帧是否被定址到给定节点。如果不是,则给定节点丢弃所述帧。然而,如果所述节点是预期的接收者,则所述节点接受所述帧以进行处理。为了这里的讨论,将节点102(2)指定为采用嗅探主体(sniffingagent)的主机。节点102(1)和102(3)代表仅仅试图相互通信的“无辜者”。
图1B的流程图示出了当非交换网络中的一个和多个数据流被嗅探到时,该网络中流量的流动。为了让节点用作嗅探主体,该节点的网络接口被设置为“混杂”(promiscuous)模式。设置此模式通常需要在该节点处的根访问或管理员访问。在设置此模式之后,该节点的网络接口就会将这些帧传递到更高的网络层,并希望更高层处的某个软件会处理这些帧。
图1B所示的过程开始于节点102(1)发送帧,并在该帧中指示出该帧将被发送到节点102(3)(步骤150)。集线器106随后将所述帧广播到它的每个活动端口(步骤155)。节点102(2)接收所述帧,并检查该帧中的目的地址(步骤160和165)。因为节点102(2)被设置成“混杂”模式(步骤170),所以节点102(2)接受所述帧(虽然该帧并未定址到节点102(2))(步骤175)。如上所述,将节点的网络接口设置成“混杂”模式使该网络接口可以接受任意帧,而不管该帧中的地址(例如MAC(媒体访问控制)地址)如何。然而,即使所述接口将会保存所述帧,通常也需要某种更高级的软件来处理数据。接下来,节点102(1)-(N)中的其他节点(例如耦合到集线器106上的活动端口的其他节点)接收所述帧,并确定它们不是预期的主机(步骤160、165和170),因此丢弃所述帧(步骤180)。(当然,如果节点102(2)的网络接口未被设置成“混杂”模式,节点102(2)就也会忽略所述分组。)如果是预期目的地(节点102(3)),则节点102(3)也接收所述帧,并检查该帧的目的地址(步骤160和165)。在节点102(3)确定它是预期的主机之后(步骤165),节点102(3)进一步处理所述帧(步骤185)。
为全面起见,应当注意,步骤160/165/170/180,160/165/170/175以及160/165/185可以进行种种调换或者同时发生,正如为了这里的讨论,对哪个节点将会首先接收所述帧进行的预测并不重要一样。为了实用,可以假定这些操作同时发生,而不失一般性。
从图1A和1B中可以看出,非交换环境易受到嗅探。这种环境几乎无需嗅探主体一方做出额外的努力,因为集线器将帧广播到所有活动端口。前面已经暗示了,几种这样的嗅探实用程序(utility)是存在并且公开可以获得的。这种可能性使得不道德者在被称为“中间人”(man-in-the-middle)攻击的设置中,当信息在“无辜”节点传递的时候查看该信息,而不被这些节点或其用户注意到。而且,一旦对数据流进行嗅探的黑客(hacker)将其自身插入到无辜方之间,该黑客就可以以完全透明的方式,自由地对任意一方生成各种回复。
图2A是一般地示出交换网络环境的体系结构的框图,所述体系结构在图2A中示出为网络200。在交换网络环境中,网段的概念仍然存在,但这种网段仅包括交换机和所关心的节点,并且以直接的方式来处理帧。即,从第一节点到第二节点的帧仅通过在所述第一和第二节点之间完成连接所必需的交换机中的电路而发送。
网络200包括多个节点(节点202(1)-(N)),这些节点由交换机206耦合到路由器204。节点202(1)-(N)中的每个节点都耦合到交换机206的一个单独的端口(未示出)。在图2A所示的交换网络环境中,存在网段的概念。段是一种存在于路由器、桥接器或交换机背后的网络体系结构,其中每个节点是从每个其他节点直接可寻址的。在某些网络中这也称为子网。于是,在图1A中将节点202(1)和202(3)示出为在一个段中(在图2A中示出为子网208)。
图2B的流程图示出了交换网络中流量的正常流动。首先,节点202(1)发送帧,并在该帧中指示出该帧将被发送到节点202(3)(步骤210)。交换机206随后检查所述帧,并确定应对哪个节点(端口)进行连接(步骤220)。一旦做出了这一确定,交换机206就在节点202(1)和节点202(3)所分别耦合的端口之间配置连接(步骤230)。交换机206随后将所述帧转发到其预期节点,即节点202(3)(步骤240)。一旦节点202(3)接收到所述帧,节点202(3)就检查所述帧的目的地址,以确定节点202(3)是不是该帧的预期目的地(步骤250)。如果此地址确定指示出节点202(3)不是正确的目的地,则不处理所述帧。否则,节点202(3)就对所述帧执行理所当然的处理(步骤260)。
这种操作模式具有某些固有的优点1)较低的网络流量,因为不将帧广播到每个节点,换句话说是通过减少冲突域而带来较高的带宽。
2)较低的节点处理开销,这是由于每个节点仅需处理要去往该节点的帧而导致的。
然而,也存在一些折衷。例如,给交换机带来了更高的开销处理要求,因为交换机必须忙于创建机器之间的虚拟连接。
可见,因为交换网络不广播大多数帧,所以交换网络不像非交换网络那样易遭受嗅探。然而,也有若干方法可用来对交换网络进行嗅探。这种方法的一个例子是地址解析协议(ARP)哄骗(spoofing),下面将对其进行简要论述。
互联网协议(IP)的基本操作之一是围绕ARP(地址解析协议)请求和回复来进行的。一般而言,当网络上的第一节点想要与第二节点进行通信时,第一节点发送ARP请求。第二节点将会发送包括其MAC地址在内的ARP回复。即使在交换网络中,这个初始ARP请求也是以广播的方式发送的。第三节点可以制作并发送未经请求的假的ARP回复到第一节点。此假ARP回复将会指明,第三节点具有第二节点的IP地址。由于第三节点将其自身表示为具有预期的IP地址,因此第一节点随后无意地将流量发送到第三节点。某些可用的工具专门用于向某些类别的机器(例如NFS服务器、HTTP服务器等)发送假的ARP回复。一种这样的工具是“dsniff”,它适于对特定类型的流量进行嗅探。其他工具监听一般的ARP请求,并在该时刻发送假的ARP回复,并且非常适于对整个网络进行嗅探。要使这类攻击起作用,需要能够将接收到的帧继续转发到其预期目的地。这通常是通过某种内核级或应用级的IP转发来实现的。
尽管存在若干防御这种攻击的方法,但其中每种方法都有其自身的缺点。(应当注意,这些方法中的一些同时适用于非交换网络环境和交换网络环境。)这些方案包括IP过滤、端口安全性和路由安全性。
通过在交换机上实现IP过滤,用户直接指定允许哪些流量从每个端口流入和流出。尽管可能有效,但这种方法可能需要极大的努力来设置和管理,尤其是在动态环境的情况下。
可替换地,如果集线器或者交换机有能力实现端口安全性,这种措施可以帮助网络的节点防御MAC泛滥(flooding)和MAC哄骗攻击。此特征有效地防止集线器或交换机承认一个物理端口上的多于一个MAC地址。然而,像许多安全性程序一样,这对环境造成了约束,并且增加了对管理过程和审核过程的要求。
而且,不希望将安全性推进到网络节点级,这有以下几个原因。首先,其使得安全性的源对于能够访问这种节点的任何人可用。而且,其还大大增加了对这种安全性措施进行管理的任务,因为每个节点必须被单独配置为支持这种安全性措施。在节点的连接性动态变化的网络环境中(例如膝上型计算机),这被证明是尤其复杂的。

发明内容
在一种实施方式中,公开了一种网络设备。该网络设备包括转发引擎和检验引擎,检验引擎耦合到转发引擎。转发引擎被配置为如果分组是层间绑定协议分组,则将所述分组转发到检验引擎。检验引擎被配置为检验层间绑定协议分组。
在一种实施方式中,公开了一种用于检验分组的方法。该方法包括通过确定分组是不是层间绑定协议分组来处理所述分组,并且如果所述分组是层间绑定协议分组,则检验所述分组。层间绑定协议分组指示第一网络层地址和第二网络层地址之间的绑定。
以上是对发明内容的概述,因此包含了对细节的必要简化、概括和省略;因此,本领域技术人员应该理解到,所述发明内容仅仅是说明性的,而绝非想要进行限制。在下文所阐述的非限制性的具体实施方式
中,本发明的其他方面、创造性特征和优点将会变得清楚,这些方面、创造性特征和优点仅由权利要求书来定义。


通过参考附图,本领域技术人员将会更好地理解本发明,并且清楚许多目的、特征和优点。
图1A是示出现有技术的非交换网络的框图。
图1B是示出现有技术的非交换网络的操作的框图。
图2A是示出现有技术的交换网络的框图。
图2B是示出现有技术的交换网络的操作的框图。
图3的流程图一般地示出了根据本发明实施方式的层间绑定检验的处理。
图4A是示出根据本发明实施方式的网络的框图。
图4B是更详细地示出图4A的网络的部分的框图。
图5是示出根据本发明实施方式的交换机的框图。
图6的框图更详细地示出了根据本发明实施方式的转发引擎的特征。
图7的流程图示出了在图5的网络元件上实现的例如图3所示的处理。
图8是根据本发明的对层间绑定协议分组进行速率限制处理的流程图。
不同附图中相同的标号用来指示相似或相同的项目。
具体实施例方式
以下希望提供对本发明实施例的详细描述,而不用被理解为限制发明本身。确切地说,多种变化可以落入所附权利要求书所定义的本发明的范围之内。
引言根据本发明实施方式的系统和方法提供了对层间绑定协议(ILBP)分组的检验,以防止出现以下情况,即错误的和/或未经授权的绑定生效,因而导致受到影响的网络中信息(例如分组)的错误路由。ILBP的一个例子是地址解析协议(ARP),其将互联网协议(IP)地址(第3层)绑定到媒体访问控制(MAC)地址(第2层)。ILBP的另一个例子是IP版本6的网络发现协议(NDP)。这种系统和方法通过识别ILBP分组并仅分析这些分组来提供所述的保护,从而使该方法对吞吐率的影响最小。如果由于恶意或错误动作而导致分组不合法,则丢弃不合法的分组。而且,通过在分析之前丢弃(多个)ILBP分组,通过关闭发送大量这种分组的端口,或者其他适当的响应,可以实现速率限制。这防止了分组风暴(storm)和对这种分组进行分析的检验引擎的过载。
根据本发明的层间绑定检验的实施例图3的流程图一般地示出了根据本发明实施方式的层间绑定检验的处理。该处理开始于对协议分组(或者帧或其他通信单元)的接收(步骤300)。首先确定接收到的分组是绑定协议分组并且因而需要分析(步骤310)。如果接收到的分组不是绑定协议分组,则传递该分组以用于进一步处理(或者将其转发到下一网络节点或目的节点) (步骤320)。反之,如果接收到的分组是绑定协议分组,则基于过滤规则来分析该分组(步骤330)。接下来,基于所采用的过滤规则,确定是否可接受该分组(步骤340)。如果接收到的分组是可接受的分组,则再次传递该分组以用于进一步处理(或者将其转发到下一网络节点或目的节点) (步骤320)。然而,如果基于所采用的过滤规则,接收到的分组是不可接受的(步骤340),则响应于所述坏分组的接收而采取适当的动作(步骤350)。这些动作包括仅仅丢弃坏分组,将坏分组的接收记入日志,或者中断来自给定源节点的分组流,或者上述动作的组合,以及其他这种可能的动作。
如上所述,图3的流程图示出了根据本发明实施方式的处理。应该意识到,这里所讨论的操作可能包括由计算机系统的用户直接输入的命令或由专用的硬件模块执行的步骤,但优选实施方式包括由软件模块执行的步骤。这里所提及的步骤的功能可以对应于模块或模块的部分的功能。
这里所提及的操作可以是模块或模块的若干部分(例如软件、固件或硬件模块)。例如,虽然所描述的实施方式包括软件模块和/或包括手动输入的用户命令,但多个示例模块可以是专用的硬件模块。这里所讨论的软件模块可以包括脚本、批处理或其它可执行文件,或者这种文件的组合和/或部分。软件模块可以包括编码于计算机可读介质上的计算机程序或其例程。
另外,本领域技术人员将会认识到,模块之间的边界仅仅是说明性的,替换性的实施例可以合并模块或者实施替换性的对模块功能的分解。例如,这里所讨论的模块可被分解成子模块以作为多个计算机进程来执行,并且还可以选择在多个计算机上执行。而且,替换性的实施方式可以将特定模块或子模块的示例组合起来。此外,本领域技术人员将会认识到,在示例性实施方式中所描述的操作仅用于说明。根据本发明,可以组合多个操作,或者可以将操作的功能分布到更多的操作中。
可替换地,这种操作可以包含在实现了这种功能的电路结构中,例如复杂指令集计算机(CISC)的微代码、被编程到可编程或可擦除/可编程器件中的固件、现场可编程门阵列(FPGA)的配置、门阵列或完全定制专用集成电路(ASIC)的设计,等等。
流程图中的每个框可以由模块(例如软件模块)或软件模块的一部分或者计算机系统用户使用诸如随后描述的计算机系统800之类的计算机系统来执行。因此,上述方法及其操作以及用于所述方法的模块可以在计算机系统上执行和/或从计算机可读介质执行,所述计算机系统被配置为执行所述方法的操作。所述方法可以包含在用于将计算机系统配置为执行所述方法的机器可读介质和/或计算机可读介质中。因此,软件模块可以被存储在和/或发送到计算机系统存储器,以配置计算机系统来执行该模块的功能。
这种计算机系统通常根据程序(在内部存储的指令列表,例如特定的应用程序和/或操作系统)来处理信息,并产生作为结果的经由I/O设备输出的信息。计算机进程通常包括执行(运行)程序或程序的一部分、当前程序值和状态信息,以及由操作系统用来管理进程执行的资源。父进程可以派生其他子进程,以帮助执行父进程的整体功能。因为父进程具体地派生子进程以执行父进程的整体功能中的一部分,所以子进程(以及孙子进程等等)所执行的功能可能有时被描述为是由父进程执行的。
这种计算机系统通常包括多个“并发”执行的多个计算机进程。计算机系统常常包括能够交替支持许多活动进程的单个处理单元。虽然多个进程可能看起来是被并发执行的,但是在任意给定时刻,单个处理单元实际上只执行一个进程。通过快速改变进程的执行,计算机系统看起来好像在并发执行进程。计算机系统在执行的不同阶段中,在多个进程之间复用计算机系统资源的能力称为多任务操作(multitasking)。具有多个处理单元的系统确切地说可以支持真正的并发处理,这种系统被称为多处理系统。当活动进程在多任务操作和/或多处理环境中执行时,这些进程常常被称为并发执行。
这里所描述的软件模块可以由这种计算机系统例如从计算机可读介质接收。所述计算机可读介质可以永久性地、可移动地或远程地耦合到所述计算机系统。计算机可读介质例如可以包括以下多种介质,但不局限于此包括磁盘和磁带存储介质在内的磁存储介质。诸如光盘介质(例如CD-ROM,CD-R等)和数字视频盘存储介质之类的光存储介质。包括基于半导体的存储器单元在内的非易失性存储器存储介质,例如FLASH存储器、EEPROM,EPROM,ROM或专用集成电路。易失性存储介质,包括寄存器、缓冲器或缓存、主存储器、RAM等。还有包括计算机网络、点到点电信和载波传输介质在内的数据传输介质。在基于UNIX的实施方式中,软件模块可以包含在文件中,所述文件可以是设备、终端、本地或远程文件、套接口、网络连接、信号或其他通信或状态改变的手段。其他新的和各种类型的计算机可读介质可用来存储和/或发送这里所描述的软件模块。
图4A示出了根据本发明实施方式的网络400。网络400包括多个用户节点(在图4A中示出为节点410(1)-(N)),ISP 420和互联网430。图4A所示的ISP 420使用路由器440和交换机450,支持节点410(1)-(N)和互联网430之间的连接性。交换机450支持根据本发明实施方式的处理,保护点410(1)-(N)以防御“中间人”攻击、嗅探和其他这种攻击,以及错误的层间绑定。应当注意的是,更一般而言,本发明的结构和处理可以包括在其他网络元件(例如路由器440)中,而不失其一般性或适用性,因为这种网络元件的功能可以组合。还应当注意,尽管这里的讨论利用了交换机(交换机450),但这仅仅是说明性的实施例——本发明可以实现在集线器或其他环境中。
图4B更详细地示出了网络400的部分。现在将交换机450示出为包括转发引擎460和检验引擎470。最简单地说,转发引擎460确定将分组转发(即发送)到哪个端口(因而发送到哪个节点)。检验引擎470所执行的功能是要检验这些由转发引擎460转发以进行检验的分组。图4B还示出了分组通过交换机450可能经过的两条路径正常路径480和检验路径490。显然,在通常情况下分组遵循正常路径480,例如从节点410(1)通过转发引擎460到预期目的地节点410(2)。这些分组是交换机450所处理的分组中的绝大多数,因此由交换机450所执行的如图3所示的处理对这种流量的流动几乎没有影响。然而,对于所关心的层间绑定协议分组,遵循的是另一条路径,即检验路径490。在以下的检验路径490中,例如将这种分组从给定节点(例如节点410(1))向另一个这种节点(例如节点410(2))发送,但由于它们是层间绑定协议分组,因此被转发引擎460转发到检验引擎470以进行检验。如果检验引擎470发现所述分组是可接受的,则检验引擎470随后将当前被检验的分组返回到转发引擎460,以用于转发到其目的地(例如节点410(2))。
图5的流程图更详细地示出了交换机450和与本发明实施方式的描述有关的细节。如图5所示,交换机450包括多个线路卡(线路卡500(1)-(N)),所述线路卡经由数据总线530和结果总线540(和图4B一样)耦合到转发引擎(FE)510(和图4B中的转发引擎460一样)和处理器520(和图4B中的检验引擎470一样)。线路卡500(1)-(N)中的每个线路卡都包括多个端口设备(在图5中示出为端口ASIC 550(1,1)-(N,N)),所述端口设备由端口控制器来控制(在图5中示出为由端口ASIC控制器560(1)-(N)中的各个端口ASIC控制器来控制),所述线路卡还可包括其他结构。
如结合图4B所述,在根据本发明的系统中,尽管非ILBP分组仅仅被转发到其预期端口,但ILBP分组被识别并分析。根据图5,在接收时,将(任意类型的)分组从端口ASIC 550(1,1)-(N,N)当中接收到该分组的那一个端口ASIC发送到耦合于数据总线530的设备(例如端口ASIC 550(1,1)-(N,N)当中的其他端口ASIC和FE 510)。FE 510随后确定该分组是不是ILBP分组。如果不是,则FE 510将该(非ILBP)分组转发到端口ASIC550(1,1)-(N,N)当中预期的那一个端口ASIC,这是通过向端口ASIC控制器560(1)-(N)中相应的一个端口ASIC控制器指示出“保存在端口ASIC550(1,1)-(N,N)中给定的一个端口ASIC当中的分组的拷贝应当在相应的端口上发出”来实现的。
然而,如果所述分组是ILBP分组,则将该(ILBP)分组转发到处理器520以进行检验。处理器520检验所述分组(在软件控制下(这取决于专用处理器520具有怎样的体系结构,硬件和软件实现之间的设计决定等等)检验到一定程度)。如果所述分组包含不合法的绑定(例如具有IP和MAC地址间不合法绑定的坏ARP分组),则处理器520向FE 510和端口ASIC控制器560(1)-(N)指示出“所考虑的分组应被丢弃”。因此,所述分组不会从交换机450发出。或者,如果所述分组包含合法绑定,则处理器520向FE 510和端口ASIC控制器560(1)-(N)指示出“所考虑的分组是可接受的”,并且FE 510向端口ASIC控制器560(1)-(N)中相应的一个端口ASIC控制器指示出“保存在端口ASIC 550(1,1)-(N,N)中给定的一个端口ASIC当中的分组的拷贝应当在相应的端口上发出”。
图6的框图更详细地示出了转发引擎(FE)510的特征。与图5相同,FE 510在图6中被示出为耦合到数据总线530和结果总线540。FE510经由数据总线接口600与数据总线530接口。以类似方式,FE 510经由结果总线接口610与结果总线540接口。FE 510中包含这样的结构,即查找表620在输入端处耦合到数据总线接口600,并在输出端处耦合到结果总线接口610,FE 510还可包含其他结构。查找表620经由数据总线接口600接受来自数据总线530的分组,并在对给定分组执行分析之后,经由结果总线接口610,在结果总线540上对交换机450的多种结构提供控制。查找表620由查找控制器630来控制,而查找控制器630又与处理器接口640相接口。
图7的流程图示出了在支持图5所示结构的网络元件上实现的例如图3所示的处理。因此,将根据图5和图6中所出现的结构来讨论图7所示的动作。图7所示的处理开始于端口ASIC(1,1)-(N,N)中的一个端口ASIC接收到分组(步骤700)。该分组将会预期去往附接到端口ASIC(1,1)-(N,N)中另一端口ASIC上的另一网络节点,所述另一端口ASIC通常是另一线路卡(1)-(N)上的端口ASIC(1,1)-(N,N)之一。
在本发明和交换机450的某些实施方式中,所考虑的分组被传递到交换机450内所有可能的目的地(例如包括处理器520、端口ASIC 550(1,1)-(N,N)当中的其他端口ASIC和FE 510)(步骤720)。在这种情形下,尽管所有(或者一部分)可能的位置接收到了给定分组,妨碍了对实际处理该给定分组的指令(或控制信号)的接收,但这些目的地将会仅仅丢弃或覆写所述分组,忽略其接收。接下来,接收到给定分组之后,FE 510接着对该分组进行预检验分析(步骤730)。取决于FE 510是如何编程的,以及要检验的层间绑定协议分组,FE 510此时可以采取多种动作。
尽管希望实现合理的大量这种处理,但对本领域技术人员来说很清楚的是,还希望能够以一种根据本发明实施方式的方式来加载在分析分组时所使用的规则,这是因为使用基于软件的规则可以容易地进行更新、动态分析、由于使用更简单的硬件而降低成本,还有其他这方面的优点。然后,确定接收到的分组是不是层间绑定协议分组(例如在图7的情况下是ARP/RARP分组)(步骤740)。通常,在多数情况下,接收到的分组不会是层间绑定协议分组,因而在转发引擎生成结果之后,就将所述分组发送到端口ASIC 550(1,1)-(N,N)中预期的一个端口ASIC,以用于传输到预期节点(步骤750)。这样,对分组进行的用于确定层间绑定是否可允许的分析不是典型分组的关键路径,因而不会对通过交换机450的分组流动产生大的影响。然而,如果所述分组是层间绑定协议分组(仍例如是ARP/RARP分组),则发送到处理器520的分组的拷贝由处理器520进行分析,以确保其中所断言(assert)的层间绑定是合法的(步骤760)。如果所述分组中所断言的层间绑定是可接受的(步骤770),则与从前一样,由预期的端口ASIC来发送所述分组(步骤750)。如果确定所述分组是不可接受的(步骤770),则对所述的坏分组进行处理(步骤780)。
这种处理可以采取多种形式中的一种,所述形式包括在分析之后仅仅丢弃分组。遗憾的是,一旦不友好者(例如黑客)掌握了这种区分伪造的层间绑定的能力,则该不友好者随后就可以通过发送过于大量的这种分组从而试图使对这种分组的分析泛滥,以试图压倒处理器520所执行的处理。在这种情况下,可以设计对坏分组的处理以应付这种情况,如参照图8而更详细地描述的那样。
图8是用于对层间绑定协议(ILBP)分组进行速率限制,以避免被这种分组的泛滥压倒的处理的流程图。图8的处理开始于确定这种分组的总数是否已超过一个限度,所述限度可以是预设的或动态的(步骤800)。前面提到过,这种基于软件的分析的优点在于能够动态地对不同的分组流量条件进行响应,因而在执行这种分析时考虑到网络状况。如果分组总数超过了这个限度(步骤800),则可以仅仅丢弃所述(多个)分组(步骤810) 。
应当注意到,FE 510可以基于规则来执行多种动作,所述规则例如指示出FE 510是否应丢弃分组(在其由处理器520分析之前),或者是使接收到坏分组的流入端口关闭。在图8所示的例子中,如果接收到的分组的总数(例如在给定单位时间内)超过了当前设置的限度(步骤800),则FE在将分组发送到处理器520以用于分析之前仅仅丢弃分组,并向端口ASIC控制器560(1)-(N)通知,端口ASIC 550(1,1)-(N,N)中的一个或多个端口ASIC所可能保存的坏分组的拷贝也应被丢弃(步骤810)。
如果接收到的分组的总数(例如在给定单位时间内)未超过当前设置的限度(步骤800),则确定是否超过了第二限度,所述第二限度在这里称为端口关闭限度(步骤820)。这种条件可以指示出多种问题中的任意一种,包括恶意或错误地引起的分组风暴。如果超过了端口关闭限度,则关闭引起麻烦的(流入)端口(步骤830)。这有效地将生成大量ILBP分组的节点与网络的其余部分以及交换机450的内部结构(具体而言,FE510和处理器520)断开。这例如防止了已经检测到发送以实现嗅探的分组已被丢弃的第三方造成过载情况,以便迫使交换机接受坏的ILBP分组等等。而且,如果接收到的分组的总数(例如在给定单位时间内)未超过当前设置的限度(步骤800),则还确定是否超过了第三限度,所述第三限度在这里称为端口丢弃阈值(步骤840)。这里,不合法的ILBP分组的数量超过了某个限度,因而应当丢弃引起麻烦的(多个)分组(步骤810)。如果并未超过端口丢弃阈值,并且未关闭端口,则将所述(多个)分组传递到检验引擎(例如处理器520)以进行检验(步骤850)。
尽管已经示出和描述了本发明的特定实施方式,但对本领域技术人员来说显而易见的是,基于这里的教导,可以进行变化和修改,而不会脱离本发明及其更广的方面,因此所附权利要求的范围应覆盖所有本发明真正精神和范围之内的所有这种变化和修改。而且,尽管参照这些具体实施方式
而具体示出和描述了本发明,但本领域技术人员将会理解到,可以对其中的形式和细节进行前述及其他变化,而不会脱离本发明的精神和范围。
权利要求
1.一种网络设备,包括转发引擎;和检验引擎,所述检验引擎耦合到所述转发引擎,其中所述转发引擎被配置为如果分组是层间绑定协议分组,则将所述分组转发到所述检验引擎,并且所述检验引擎被配置为检验所述层间绑定协议分组。
2.如权利要求1所述的网络设备,其中,所述检验引擎被配置为借助被配置来检验所述层间绑定协议分组中所代表的层间绑定,来检验所述层间绑定协议分组。
3.如权利要求2所述的网络设备,其中所述层间绑定协议分组是地址解析协议分组,并且所述层间绑定是互联网协议地址和媒体访问控制地址之间的绑定。
4.如权利要求1所述的网络设备,其中所述转发引擎被配置为确定所述分组是不是所述层间绑定协议分组。
5.如权利要求4所述的网络设备,其中所述转发引擎被配置为借助被配置来分析所述分组的头部来做出所述确定。
6.如权利要求1所述的网络设备,所述转发引擎还包括查找表;和查找表控制器,所述查找表控制器耦合到所述查找表,其中所述查找表控制器被配置为如果所述分组是所述层间绑定协议分组,则使所述转发引擎将所述分组转发到所述检验引擎。
7.如权利要求1所述的网络设备,其中所述转发引擎被配置为确定所述分组是不是所述层间绑定协议分组。
8.如权利要求1所述的网络设备,还包括第一端口设备,可通信地耦合到所述转发引擎;第二端口设备,可通信地耦合到所述转发引擎和所述第一端口设备;以及端口设备控制器,被耦合以控制所述第二端口设备,并且被耦合以由所述转发引擎来控制。
9.如权利要求8所述的网络设备,其中所述转发引擎被配置为从所述第一端口设备接收所述分组,所述第二端口设备被配置为从所述第一端口设备接收所述分组,所述转发引擎还被配置为如果所述分组不是所述层间绑定协议分组,则使得所述端口设备控制器让所述第二端口设备来处理所述分组。
10.如权利要求1所述的网络设备,还包括第一端口设备,可通信地耦合到所述转发引擎,其中所述转发引擎被配置为从所述第一端口设备接收所述分组,所述检验引擎被配置为如果所述分组是所述层间绑定协议分组,则从所述转发引擎接收所述分组,并向所述转发引擎指示出所述层间绑定协议分组是可接受的。
11.如权利要求10所述的网络设备,还包括第二端口设备,可通信地耦合到所述转发引擎和所述第一端口设备;和端口设备控制器,被耦合以控制所述第二端口设备,并且被耦合以由所述转发引擎来控制,其中所述转发引擎还被配置为如果所述分组是所述层间绑定协议分组并且如果所述层间绑定协议分组是可接受的,则使得所述端口设备控制器让所述第二端口设备来处理所述分组。
12.一种用于检验分组的方法,包括通过确定分组是不是层间绑定协议分组来处理所述分组,所述层间绑定协议分组指示出第一网络层地址和第二网络层地址之间的绑定;以及如果所述分组是层间绑定协议分组,则检验所述分组。
13.如权利要求12所述的方法,其中所述检验操作确定所述绑定是不是可接受的绑定。
14.如权利要求12所述的方法,其中所述分组是多个分组之一,并且所述方法还包括对所述分组执行所述处理;以及对处理所述分组的速率进行限制。
15.如权利要求14所述的方法,其中所述限制包括将所述分组的总数与一个限度进行比较;以及如果所述分组的所述总数大于所述限度,则丢弃所述分组。
16.如权利要求14所述的方法,其中所述分组是在端口上接收到的,并且所述限制包括将所述分组的总数与端口关闭阈值进行比较;以及如果所述分组的所述总数大于所述端口关闭阈值,则关闭所述端口。
17.如权利要求14所述的方法,其中所述限制包括将所述分组的总数与端口丢弃阈值进行比较;以及如果所述分组的所述总数大于所述端口丢弃阈值,则丢弃所述分组。
18.一种网络元件,包括处理器;耦合到所述处理器的计算机可读介质;以及用于检验分组的计算机代码,所述计算机代码被编码在所述计算机可读介质中,并被配置为使得所述处理器执行以下操作通过确定分组是不是层间绑定协议分组来处理所述分组,所述层间绑定协议分组指示出第一网络层地址和第二网络层地址之间的绑定;以及如果所述分组是层间绑定协议分组,则检验所述分组。
19.如权利要求18所述的计算机系统,其中所述检验操作确定所述绑定是不是可接受的绑定。
20.如权利要求18所述的计算机系统,其中所述分组是多个分组之一,并且所述计算机代码还被配置为使得所述处理器执行以下操作对所述分组执行所述处理;以及对处理所述分组的速率进行限制。
21.如权利要求20所述的计算机系统,其中被配置为使得所述处理器限制所述速率的计算机代码还被配置为使得所述处理器执行以下操作将所述分组的总数与一个限度进行比较;以及如果所述分组的所述总数大于所述限度,则丢弃所述分组。
22.如权利要求20所述的计算机系统,其中所述分组是在端口上接收到的,并且被配置为使得所述处理器限制所述速率的计算机代码还被配置为使得所述处理器执行以下操作将所述分组的总数与端口关闭阈值进行比较;以及如果所述分组的所述总数大于所述端口关闭阈值,则关闭所述端口。
23.如权利要求20所述的计算机系统,其中被配置为使得所述处理器限制所述速率的计算机代码还被配置为使得所述处理器执行以下操作将所述分组的总数与端口丢弃阈值进行比较;以及如果所述分组的所述总数大于所述端口丢弃阈值,则丢弃所述分组。
24.一种用于检验分组的计算机程序产品,包括第一组指令,所述第一组指令可在计算机系统上执行,并被配置为通过确定分组是不是层间绑定协议分组来处理所述分组,所述层间绑定协议分组指示出第一网络层地址和第二网络层地址之间的绑定;第二组指令,所述第二组指令可在所述计算机系统上执行,并被配置为如果所述分组是层间绑定协议分组,则检验所述分组;以及计算机可读介质,其中所述计算机程序产品被编码在所述计算机可读介质中。
25.如权利要求24所述的计算机程序产品,其中所述检验操作确定所述绑定是不是可接受的绑定。
26.如权利要求24所述的计算机程序产品,其中所述分组是多个分组之一,并且所述计算机程序产品还包括第三组指令,所述第三组指令可在所述计算机系统上执行,并被配置为对所述分组执行所述处理;以及第四组指令,所述第四组指令可在所述计算机系统上执行,并被配置为对处理所述分组的速率进行限制。
27.如权利要求26所述的计算机程序产品,其中所述第四组指令包括第一小组指令,所述第一小组指令可在所述计算机系统上执行,并被配置为将所述分组的总数与一个限度进行比较;以及第二小组指令,所述第二小组指令可在所述计算机系统上执行,并被配置为如果所述分组的所述总数大于所述限度,则丢弃所述分组。
28.如权利要求26所述的计算机程序产品,其中所述分组是在端口上接收到的,并且所述第四组指令包括第一小组指令,所述第一小组指令可在所述计算机系统上执行,并被配置为将所述分组的总数与端口关闭阈值进行比较;以及第二小组指令,所述第二小组指令可在所述计算机系统上执行,并被配置为如果所述分组的所述总数大于所述端口关闭阈值,则关闭所述端口。
29.如权利要求26所述的计算机程序产品,其中所述第四组指令包括第一小组指令,所述第一小组指令可在所述计算机系统上执行,并被配置为将所述分组的总数与端口丢弃阈值进行比较;以及第二小组指令,所述第二小组指令可在所述计算机系统上执行,并被配置为如果所述分组的所述总数大于所述端口丢弃阈值,则丢弃所述分组。
30.一种用于检验分组的装置,包括用于通过确定分组是不是层间绑定协议分组来处理所述分组的装置,所述层间绑定协议分组指示出第一网络层地址和第二网络层地址之间的绑定;以及用于如果所述分组是层间绑定协议分组,则检验所述分组的装置。
31.如权利要求30所述的装置,其中所述用于检验的装置确定所述绑定是不是可接受的绑定。
32.如权利要求30所述的装置,其中所述分组是多个分组之一,并且所述装置还包括用于对所述分组执行所述处理的装置;以及用于对处理所述分组的速率进行限制的装置。
33.如权利要求32所述的装置,其中所述用于限制的装置包括用于将所述分组的总数与一个限度进行比较的装置;以及用于如果所述分组的所述总数大于所述限度,则丢弃所述分组的装置。
34.如权利要求32所述的装置,其中所述分组是在端口上接收到的,并且所述用于限制的装置包括用于将所述分组的总数与端口关闭阈值进行比较的装置;以及用于如果所述分组的所述总数大于所述端口关闭阈值,则关闭所述端口的装置。
35.如权利要求32所述的方法,其中所述用于限制的装置包括用于将所述分组的总数与端口丢弃阈值进行比较的装置;以及用于如果所述分组的所述总数大于所述端口丢弃阈值,则丢弃所述分组的装置。
全文摘要
本发明公开了一种用于检验分组的方法。该方法包括通过确定分组是不是层间绑定协议分组(310),并且如果所述分组是层间绑定协议分组(310),则检验所述分组(330),从而处理所述分组。层间绑定协议分组指示第一网络层地址和第二网络层地址之间的绑定。
文档编号H04L29/06GK1672387SQ03818330
公开日2005年9月21日 申请日期2003年7月31日 优先权日2002年7月31日
发明者马尔科·E·福斯基亚诺, 贾斯廷·Q·陈, 安巴里什·C·伦盖尔 申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1