首页> 中国专利> 用于使用第二层源地址的选择性的第二层端口阻塞的方法、系统和计算机程序产品

用于使用第二层源地址的选择性的第二层端口阻塞的方法、系统和计算机程序产品

摘要

本发明公开了一种使用第二层源地址的选择性的第二层端口阻塞的方法、系统和计算机程序产品。根据一种方法,接收第二层帧。基于该第二层帧中的第二层源地址来识别I/O端口阻塞列表。识别该第二层帧将要被转发到的端口的集合。阻止将帧转发到既在该集合中又在I/O端口阻塞列表中的端口。

著录项

  • 公开/公告号CN101433029A

    专利类型发明专利

  • 公开/公告日2009-05-13

    原文格式PDF

  • 申请/专利权人 极进网络公司;

    申请/专利号CN200780013515.3

  • 发明设计人 D·B·格罗塞尔;D·V·韦德;

    申请日2007-02-06

  • 分类号H04L12/56;

  • 代理机构永新专利商标代理有限公司;

  • 代理人张扬

  • 地址 美国加利福尼亚

  • 入库时间 2023-12-17 21:53:28

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-02-06

    授权

    授权

  • 2009-07-08

    实质审查的生效

    实质审查的生效

  • 2009-05-13

    公开

    公开

说明书

相关申请

本申请要求2006年2月17日提交的美国专利申请号11/356,614的权利,这里将以上公开完整引入本文作为参考。

技术领域

本文所述主题包括用于实现第二层端口阻塞的方法、系统和计算机程序产品。更具体地,本文所述主题包括用于使用第二层源地址来实现第二层端口阻塞的方法、系统和计算机程序产品。

背景技术

在第二层交换设备中,例如以太网交换机,当在端口接收分组或帧时,典型地在第二层转发表中执行查找。基于帧中的第二层目的地址执行该查找。如果在表中出现用于目的地址的条目,则可以将帧转发到输出端口或对应于该条目的端口。如果在表中没有出现用于该帧的条目,则帧可以泛洪到除了用于接收该帧的端口之外的所有输出端口。

可以使用虚拟局域网(VLAN)来限制帧的第二层泛洪域。例如,如果第二层帧包括VLAN标签,并且在转发表查找期间,未针对帧的第二层目的地址定位条目,则该帧仅泛洪到与该帧中所识别的VLAN标签相同的VLAN的成员端口。

另一种查找被称为学习阶段查找,该查找典型地发生在当帧到达第二层分组转发设备时。在该学习阶段期间,当帧到达第二层交换设备的端口处时,则读取帧中的第二层源地址。可以使用第二层源地址在第二层转发表中执行查找,以确定是否存在用于第二层源地址的转发表条目。如果在转发表中没有出现对应于第二层源地址的转发表条目,则通过将第二层源地址添加到转发表来对该地址进行学习,其中将条目的转发信息设置到用于接收该帧的端口。该信息可以传递到交换中的其它端口,以便可以将具有与学习的源地址相对应的第二层目的地址的分组转发到正确的端口。如果第二层源地址已经出现在转发表中,则它已被学习,并且学习阶段结束。

在一些实例中,期望执行第二层端口阻塞。例如,期望允许端口A和B互相通信,但不与端口C通信,即便端口A-C都是同一VLAN的成员。用于执行这样的端口阻塞的一种方法是硬连线第二层交换设备,以便来自一个端口的帧仅去向允许与该端口通信的端口。这样的解决方案的精细度不够,并且缺乏弹性。例如,可能期望允许将来自端口A的一些分组转发到端口C,并且阻止其它分组从端口A转发到端口C。

本文所述主题的受让人将用于提供第二层端口阻塞的两个其它方法称为限制学习和MAC锁定。根据限制学习,一个VLAN接个VLAN地配置预定数量的可学习的MAC地址。一旦已经学习了该数量的MAC地址,如果新的MAC源地址的帧到达了,则将黑洞条目添加到用于该MAC源地址的转发表,以便丢弃所具有与该黑洞条目对应的MAC目的地址的任意接收分组。在MAC锁定特征中,操作者向第二层交换发出运行时间的命令以锁定第二层转发表,从而在命令之后不能学习额外的条目。将要尝试学习的后续MAC地址作为黑洞条目添加到该表,以便丢弃具有与该黑洞条目对应的MAC目的地址的分组。

尽管这些安全特征中的每一个都适合它们的预期目的,一直以来都需要一种用于使用第二层源地址来执行选择性的第二层端口阻塞的改进的方法、系统和计算机程序产品。

发明内容

根据一个方面,本文所述主题包括用于使用第二层源地址执行选择性的第二层端口阻塞的方法。该方法包括接收第二层帧,以及基于第二层帧中的第二层源地址来识别I/O端口阻塞列表。执行转发阶段查找,以识别该第二层帧所应该转发到的端口的集合。阻止将第二层帧转发到既在子集合中又在阻塞列表中的端口。

本文使用了可互换的术语“分组”和“帧”,并且其指的是在网络上发送的协议数据单元,其具有至少一个头部和有效载荷。术语“第二层”指的是网络通信协议栈的媒体访问控制(MAC)层。适用于本文所述主题的第二层实现的实例是以太网层。术语“第三层”指的是网络通信协议栈的网络层。适用于本文所述主题的第三层实现的实例是因特网协议层。

可以使用包括了包含在计算机可读介质中的计算机可执行指令的计算机程序产品来实现本文所述的基于第二层源地址来实现的选择性的第二层端口阻塞的主题。适合实现本文所述主题的示例性计算机可读介质包括盘片存储设备、芯片存储设备、可编程的逻辑设备、专用集合成电路和可下载的电气信号。另外,可以将用于实现本文所述主题的计算机可读介质置于单个设备或者计算机平台上,或者交叉分布在多个物理设备和/或者计算机平台中。

附图说明

现在参考附图来解释本文所述主题的优选实施例,其中:

图1是根据本文所述主题的实施例,示出了用于基于第二层源地址来实现选择性的第二层端口阻塞的第二层/第三层分组转发设备的方框图;

图2是根据本文所述主题的实施例,示出了使用第二层源地址来实现选择性的第二层端口阻塞的示例性步骤的流程图;以及

图3是根据本文所述主题的实施例,示出了用于实现第二层和第三层分组的选择性的第二层端口阻塞的示例性步骤的流程图。

具体实施方式

可以在包括第二层交换能力的任意合适的处理平台上实现本文所述的使用第二层源地址来实现选择性的第二层端口阻塞的主题。这种平台的实例包括以太网交换机,以及包括了以太网交换能力的IP路由器。图1是示出了可用于实现本文所述主题的平台的实例的方框图。在图1中,第二层交换机/第三层路由器100执行第二层交换和第三层路由。在示出的实例中,交换机/路由器100包括多个输入/输出(I/O)模块102、交换结构104和交换管理模块106。每个I/O模块102包括一个或多个I/O端口108A-114B,用于将每个I/O模块102连接到外部网络,以将分组发送到网络以及从网络接收分组。为了执行第二层和第三层分组转发,每个I/O模块102包括查找引擎116、第二层转发数据库118和第三层转发数据库120。查找引擎116基于第二层和第三层目的地址,在数据库118和120中执行查找,以确定将每个接收的分组转发到哪里。第二层转发数据库118包括第二层地址和对应的转发信息的表。第三层转发数据库120包括第三层地址和对应的转发信息的表。如下文将更详细的描述的,对于一些条目,第二层转发数据库118可以包括I/O端口阻塞列表。

虽然在图1中,单个查找引擎116执行第二层和第三层转发阶段查找两者,但是本文所述主题不限于这种实现。在可替换的实现中,可以使用分离的硬件、软件或者固件组件来实现第二层和第三层查找引擎。

另外,虽然在图1中显示了分离的第二层和第三层转发数据库,但是本文所述主题不限于这种实施例。在不脱离本文所述主题的范围的前提下,可以将第二层和第三层转发数据库实现为作为同一数据库的一部分的分离的表。

交换结构104在I/O模块102和交换管理模块106之间交换分组。交换管理模块106包括主第三层转发数据库122、软件查找引擎124和第三层路由协议软件126。主第三层转发数据库122包括第三层转发数据库120中的所有条目的拷贝,加上使用第三层路由协议来学习的任意额外的条目,其中第三层转发数据库120是由I/O模块所维护的,第三层路由协议是由软件126所实现的。软件查找引擎124在主第三层转发数据库122中查找I/O模块102所接收的不能使用第三层转发数据来转发的分组,其中第三层转发数据是通过每个I/O模块本地维护的。

在图1中示出的设备中,期望实现选择性的第二层端口阻塞。例如,期望基于每个第二层源地址,选择性地阻止分组在图1中示出的I/O端口的组之间发送。在一个实现中,I/O端口108A、108B、112A、112B、114A和114B可以是同一VLAN的成员。然而,可能期望阻止将到达端口108A和108B的特定分组转发到I/O端口114A和114B,并且阻止将其它的分组转发到端口112A和112B。为了实现这种需要,可以基于每个源地址来配置第二层阻塞表。下文显示的表1示出了根据本文所述主题用于实现选择性的第二层端口阻塞的示例性第二层转发表。

 

MAC地址VLAN成员端口端口阻塞列表MAC15112A,112B,114A,114B114A,114BMAC25112A,112B,114A,114B112A,112BMAC35112A,112B,114A,114B112A,112B

表1:具有通过端口阻塞列表来索引的源的第二层转发数据

表1中的条目用于实现上文所述的阻塞实例,用于基于每个第二层源地址,选择性地阻止将到达在端口108A和108B的分组转发到端口112A、112B、114A或114B。在表1中,第一列包括MAC地址。随着MAC地址的学习,可以增加该列中的条目。通过交换操作者可以静态地配置一些条目。第二列包括VLAN识别码、第三列包括用于每个条目的转发信息,以及第四列包括I/O端口阻塞列表。

除了用于学习阶段查找之外,诸如表1的转发表也可以用于转发阶段查找。例如,如果在具有表1中的数据的端口处接收两个分组,将可以发生以下步骤。参考图2,在步骤200中,接收第二层帧。为了这个实例的目的,假设第一个第二层帧的MAC源地址(SA)=MAC1,MAC目的地址(DA)=MAC2以及VLAN标签为5。在步骤202中,可以基于第二层源地址来识别I/O端口阻塞列表。使用表1中的数据作为实例,如果MACSA=MAC1,则提取的I/O端口阻塞列表将包含端口114A、114B。

在步骤204中,执行转发阶段查找以识别该帧所应该被转发到的端口的集合。使用MAC DA=MAC2在表1中执行的查找,该帧所应该被转发到的成员端口是112A、112B、114A和114B。在步骤204中,阻止将该帧转发到既在集合中又在阻塞列表中的端口。使用当前实例,由于114A和114B在阻塞列表中,仅仅将帧转发到112A和112B。

可以通过另一个实例来示出端口阻塞的选择性,在该实例中接收MACSA=MAC3、MAC DA=MAC2以及VLAN=5的帧。如果接收了这种帧,则提取包含端口112A和112B的端口阻塞列表。目的地址用于定位与先前的实例中的端口相同的端口。然而,将帧转发到端口114A和114B,而不是将帧转发到端口112A和112B,因为端口112A和112B在MAC SA=MAC3的I/O端口阻塞列表中。因此,通过使用MAC源地址作为鉴别符来选择端口阻塞列表,并且使用该列表以确定该帧所应该被转发到的端口,可以达到微量端口阻塞。另外,因为可以在学习阶段查找中定位I/O端口阻塞列表,所以第二层的安全应用减少了查找的数量,其中该应用需要学习之外的查找和转发阶段查找以实现安全特征。

虽然关于图2所描述的实例对仅基于第二层信息来转发的分组的第二层转发域进行限制,但是本文所述主题不限于这种实例。可以对使用任意协议来识别的第二层端口的集合,实现使用端口阻塞列表的选择性的第二层端口阻塞。图3是根据本文所述主题的实施例,示出了用于基于第二层和第三层帧的第二层源地址来执行选择性的第二层端口阻塞的示例性步骤的流程图。参考图3,在步骤300处,最初将用于接收的帧的I/O端口阻塞列表设置为空(NULL)。在步骤302中,基于接收的第二层帧中的第二层源地址来执行学习阶段查找。如上文所述,第二层学习阶段查找可以包括在用于接收帧或分组的端口处执行第二层转发表中的查找,以确定对应于第二层源地址的条目是否出现。在步骤304中,如果对应于第二层源地址的条目出现在转发数据库中,则不需要学习,并且控制前进到步骤306,在步骤306提取了对应于分组源地址的I/O端口阻塞列表,并且将其存储在称为PBL的变量中。

在步骤308中,确定分组是否是第三层组播分组。可以通过第二层目的地址0X01005E来识别第三层组播分组。如果出现了这个地址,则该帧是第三层组播帧,并且控制前进到步骤310,在步骤310执行第三层查找以识别该帧所应该被转发到的出站端口列表(EPL)。在步骤308中,如果确定该帧不是第三层组播帧,则控制前进到步骤312,在步骤312确定第二层分组目的地址是否出现在转发数据库中。如果第二层分组目的地址没有出现在转发数据库中,则控制前进到步骤314,在步骤314将出站端口列表设置给与接收分组相关联的VLAN的成员。

在步骤312中,如果第二层分组目的地址在转发数据库中,则控制前进到步骤315,在步骤315确定是否将分组寻址到接收路由器的MAC地址。如果将分组寻址到路由器的MAC地址,则控制前进到步骤316,在步骤316确定分组是否是第三层单播分组。如果分组是第三层单播分组,则控制前进到步骤318,在步骤318基于第三层目的地址执行第三层查找,以识别该帧所应该被转发到的出站端口列表。在步骤315中如果不将分组寻址到路由器的MAC地址,或者在步骤316中如果确定分组不是第三层单播分组,则控制前进到步骤320,在步骤320从与分组中的第二层目的地址相匹配的第二层转发数据库中的条目提取出站端口列表。

一旦在步骤310、314、318或320中识别了出站端口列表,控制就前进到步骤322,在步骤322使用I/O端口阻塞列表来遮掩来自出站端口列表的条目。可以使用与出站端口列表和I/O端口阻塞列表相对应的位图来实现该步骤。出站端口列表位图可以包括一个与该分组所应该被转发到的每个端口相对应的1和用于余下的端口的零。类似地,I/O端口阻塞列表位图可以包括用于每个阻塞的端口的1和用于余下端口的零。相应地,为了针对该帧所应该被转发到的每个端口产生1s的位图,可以将I/O端口阻塞列表位图进行位反转,并且用出站端口列表位图来对它进行与(AND)操作。结果所得的位图包括与该帧所要被转发到的端口相对应的比特。使用简单计算,例如逻辑与操作,可以在硬件中轻易地识别最终的出站端口列表。

返回到步骤304,如果第二层源地址不出现在转发数据库中,则控制前进到步骤324,在步骤324在接收端口上学习MAC源地址。然后,控制前进到步骤308和310、312和314或者315-320,以识别了出站端口列表,然后到步骤322,在步骤322如上文所述对列表进行遮掩。因此,使用图3中示出的步骤,可以对基于第二层或第三层信息来转发的帧执行选择性的第二层端口阻塞。

要理解的是,可以在不脱离本发明的范围的前提下改变本发明的各种细节。此外,前述描述仅仅为了说明的目的,不是为了限制的目的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号