著录项信息
专利名称 | 网络路由器和路由方法 |
申请号 | CN200910160048.8 | 申请日期 | 2009-07-20 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | 2010-02-17 | 公开/公告号 | CN101651622 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L12/56 | IPC分类号 | H;0;4;L;1;2;/;5;6;;;H;0;4;L;1;2;/;1;8;;;H;0;4;L;2;9;/;0;6查看分类表>
|
申请人 | 丛林网络公司 | 申请人地址 | 美国加利福尼亚州
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 瞻博网络公司 | 当前权利人 | 瞻博网络公司 |
发明人 | 卡纳安·瓦拉德汉;让-马克·弗拉伊朗;安贾恩·文卡特拉马尼 |
代理机构 | 北京康信知识产权代理有限责任公司 | 代理人 | 余刚;吴孟秋 |
摘要
可多播防火墙允许防火墙安全策略应用于多播通信。该可多播防火墙可以集成在路由装置中,从而允许单个装置提供包括多播支持的路由功能和防火墙服务。路由装置提供用户接口,通过该接口,用户指定在将状态防火墙服务应用于多播包时,由被集成的防火墙识别的一个或多个区域。该用户接口支持语法,该语法允许用户定义与区域相关联的多个接口的子集,以及定义将被应用于与多播组相关联的多播会话的单个多播策略。多播策略标识复制前将被应用的通用服务,以及指定复制后将被应用于一个或多个区域的多播包的拷贝的额外服务的例外。
1.一种网络路由器,包括:
多个接口,配置为发送和接收多播包;
防火墙,集成在所述网络路由器中,所述防火墙配置为将状态防火墙服务应用至所述多播包;
路由引擎,包括控制单元,所述控制单元执行路由协议以维护指定通过网络的路由的路由信息,其中所述控制单元执行至少一种多播协议来建立用于将所述多播包从多播源传递到多个多播接收器的多播组;
转发引擎,被所述路由引擎配置为根据所述路由信息来为所述多播包选择下一跳,所述转发引擎包括基于所选择的下一跳来将所述多播包转发到所述接口的交换结构,其中所述转发引擎包括流控制模块,一旦从所述网络接收到多播包,则所述流控制模块将一个或多个所述多播包引向所述防火墙以应用所述状态防火墙服务;以及
用户接口,用户通过所述用户接口指定在将所述状态防火墙服务应用于所述多播包时要由所述防火墙识别的一个或多个区域,其中所述用户接口支持这样的语法:
(1)允许所述用户定义与所述区域相关联的所述多个接口的子集;以及
(2)允许所述用户定义将被应用于与多播组相关联的多播会话的单一多播策略,其中所述多播策略指定将被应用于所指定的区域的多播会话的动作,
其中,所述语法允许所述用户定义所述单一多播策略以指定一个或多个通用服务,该一个或多个通用服务复制前将被应用于发往所述区域的一个或多个区域中的两个或更多接口的所述多播包的拷贝,并且所述语法允许所述用户定义所述单一多播策略以指定一个或多个例外,所述一个或多个例外指定所述区域中的一个或多个区域以及复制后将被应用于用于所述一个或多个区域的所述多播包的拷贝的额外服务,
其中所述防火墙配置为基于由所述用户指定的所述多播策略和所述区域将所述状态防火墙服务应用于所述多播包。
2.根据权利要求1所述的网络路由器,其中所述语法允许所述用户使用单一命令来定义所述单一多播策略。
3.根据权利要求1所述的网络路由器,其中所述路由引擎配置为创建多播复制树并将所述多播复制树安装到与所述转发引擎相关联的多播转发信息库(FIB),其中所述多播复制树指定对多播包进行复制以传输至所述多播接收器的方式。
4.根据权利要求3所述的网络路由器,其中所述路由引擎配置为一旦所述网络路由器接收到与所述多播组相关联的多播会话的第一多播包,则创建用于多播组的多播复制树并将所述多播复制树安装至所述多播FIB。
5.根据权利要求3所述的网络路由器,进一步包括:
服务守护进程,
其中,在创建所述多播复制树之前,所述路由引擎配置为向所述服务守护进程提供外发接口(OIF)列表,其中所述服务守护进程基于所定义的多播策略来修改所述OIF列表,并将所修改的OIF列表作为多个独立的OIF子列表提供给所述路由引擎,所述多个独立的OIF子列表表示将被应用通用服务的那些OIF和对应于指定将被应用额外服务的例外的那些OIF,并且其中所述路由引擎创建用于每个所述OIF子列表的多播复制树并将其安装到所述多播FIB。
6.根据权利要求5所述的网络路由器,其中一旦接收到来自所述多播接收器之一的表示与多播组有关的成员状态改变的多播动作请求,则所述服务守护进程配置为基于所述改变向所述路由引擎提供更新的OIF子列表。
7.根据权利要求1所述的网络路由器,其中当所述防火墙配置有允许转发那些不存在匹配策略的包的缺省策略时,所述路由引擎创建转发OIF列表,该OIF列表独立地指定那些不需要防火墙提供状态防火墙服务的OIF。
8.根据权利要求1所述的网络路由器,其中所述防火墙维护包括条目的多播会话表,所述条目指定:(a)一个或多个通用服务,将被应用于发往所述网络路由器的两个或更多外发接口的所述多播包的拷贝,以及(b)一个或多个例外,指定一个或多个外发接口以及将被应用于所述一个或多个外发接口的所述多播包的拷贝的额外服务。
9.根据权利要求8所述的网络路由器,其中一旦接收到来自所述多播接收器之一的表示与多播组有关的成员状态改变的多播动作请求,则所述防火墙配置为更新所述多播会话表以反映成员状态的所述改变。
10.根据权利要求1所述的网络路由器,其中所述防火墙存储指定由所述用户定义的所述区域和所述多播策略的配置数据。
11.根据权利要求1所述的网络路由器,
其中所述防火墙基于由所述用户定义的所述区域来确定用于每个所述多播包的一个输入区域和一个或多个输出区域,以及
其中根据所定义的多播策略,所述防火墙基于为所述多播包确定的所述输入区域,将一个或多个所述状态防火墙服务应用至每个所述多播包。
12.根据权利要求1所述的网络路由器,
其中,基于所述路由信息,所述路由引擎使用转发信息和指向所述防火墙的特定下一跳为所述转发引擎编程,所述转发信息将网络目的地与特定下一跳和所述路由器的接口卡的相应接口端相关联,
其中所述路由引擎使用所述转发信息的至少一部分来为所述防火墙编程,以及其中所述路由引擎使用多个特定下一跳和所述路由器的接口卡的相应接口端来为所述转发引擎编程,其中多个所述特定下一跳中的每个对应于被所述防火墙应用的多个状态防火墙服务之一。
13.根据权利要求12所述的网络路由器,其中所述路由引擎使用将被所述防火墙应用的多个所述状态防火墙服务来为所述防火墙编程。
14.根据权利要求1所述的网络路由器,其中所述用户接口是基于文本的接口,其支持允许所述用户指定所述区域的命令语法。
15.根据权利要求1所述的网络路由器,其中所述状态防火墙服务包括所述多播包携带的应用层数据的病毒扫描。
16.根据权利要求1所述的网络路由器,其中所述网络路由器包括以下各项之一:提供商边缘路由器、宽带远程接入服务器(BRAS)、宽带网络网关(BNG)、电缆调制解调器终端系统(CMTS)、多业务边缘路由器(MSE)、网关GPRS(通用无线分组业务)支持节点(GGSN)、分组数据服务节点(PDSN)、或公共数据网络网关(PDN-GW)、为流入或流出数据中心的包提供路由和安全功能的数据中心装置、作为网络服务提供商之间的互联点服务的对等路由器。
17.一种网络路由方法,包括:
使用路由器的路由引擎执行至少一种多播协议来建立用于将所述多播包从多播源传递到多个多播接收器的多播组;
使用路由器呈现用户接口,用户通过所述用户接口指定将被由集成在所述路由器中的防火墙识别的一个或多个区域,其中所述用户接口支持这样的语法:
(i)允许用户定义与所述区域相关联的所述多个接口的子集;以及
(ii)允许所述用户定义将被应用于与多播组相关联的多播会话的单一多播策略,其中所述多播策略指定将被应用于所指定的区域的多播会话的动作,
其中,所述语法允许所述用户定义所述单一多播策略以指定一个或多个通用服务,该一个或多个通用服务复制前将被应用于发往所述区域的一个或多个区域中的两个或更多接口的所述多播包的拷贝,并且所述语法允许所述用户定义所述单一多播策略以指定一个或多个例外,所述一个或多个例外指定所述区域中的一个或多个区域以及复制后将被应用于用于所述一个或多个区域的所述多播包的拷贝的额外服务,
在所述路由器的多个接口处接收来自网络的多播包;
使用所述路由器的转发引擎的流控制模块将一个或多个所接收的多播包引向所述防火墙以应用状态防火墙服务;
基于由所述用户指定的所述多播策略和所述区域,使用所述路由器的所述防火墙将状态防火墙服务应用于所述多播包;
在应用状态防火墙服务之后,将来自所述防火墙的至少一些所述多播包转发至所述转发引擎;
使用所述转发引擎在所述网络中选择用于所述多播包的下一跳;以及
根据所选择的下一跳将所述多播包转发至所述接口。
18.根据权利要求17所述的方法,进一步包括:
对于所接收的多播包,基于接收所述多播包的输入接口确定用于所接收的多播包的输入区域;以及
基于为所述多播包确定的所述输入区域,将一个或多个所述状态防火墙服务应用于所述多播包。
19.根据权利要求17所述的方法,进一步包括在所述路由器中存储指定由所述用户定义的所述区域和所述多播策略的配置数据。
20.根据权利要求17所述的方法,进一步包括:
接收与多播组相关联的多播会话的第一多播包;
一旦接收到所述第一多播包,则使用在所述路由器上执行的所述路由引擎来创建用于所述多播组的多播复制树;以及
将所述多播复制树安装至与所述转发引擎相关联的多播转发信息库(FIB)。
21.根据权利要求20所述的方法,进一步包括:
在创建所述多播复制树之前,所述路由引擎向在所述防火墙上执行的服务守护进程提供外发接口(OIF)列表;
使用所述服务守护进程,基于所定义的多播策略修改所述OIF列表;
将所修改的OIF作为多个独立的OIF子列表提供给所述路由引擎,所述多个独立的OIF子列表表示将被应用所述通用服务的那些OIF和对应于指定将被应用的所述额外服务的所述例外的那些OIF;
使用所述路由引擎创建用于每个所述OIF子列表的多播复制树;以及
将所述多播复制树安装至所述多播FIB。
网络路由器和路由方法 \n技术领域\n[0001] 本发明涉及计算机网络,更特别地,涉及计算机网络中的多播通信的传输。 背景技术\n[0002] 计算机网络是交换数据和共享资源的互联计算装置的集合。存在多种方法来在网络内的计算装置之间通信数据。通常被称为“多播”的一种方法,使用多播树,在多播树中源装置将用于发布的单个数据包发送至一个或多个接收计算装置的组。使用多播,源装置向数据分配多播标识符,使得该组中的每个计算装置接收数据的拷贝。在一些情况下,源装置经由网络将多播包发送至为多播配置的路由器。进而,路由器复制包并将包的拷贝转送至其他多播使能的路由器。其他路由器进而复制这些包并重复转发处理,使得每个接收装置接收到包的拷贝。以该方式,使用多播树,经由一个或多个网络传送多播包。 [0003] 消费者可以通过提交“多播动作请求”来在由一个内容提供商或多个内容提供商提供的不同多播内容之间进行切换。更具体地,多播动作请求使得消费者加入以及离开与多播标识符相关联的各种多播组。用于发布多播动作请求(例如加入请求)的示例性协议是互联网组管理协议(IGMP)。为了加入特定多播组,接收装置将 多播加入请求发送至上游(即中间的)路由器,其进而将加入请求发送至源装置。 \n[0004] 由于增加了对可接入网络的计算机的依赖,网络安全已经成为组织和个人的主要问题。为了有助于保证他们的计算机的安全,组织和个人经常在公共网络和私有网络之间安装安全装置。这些安全装置的目的在于防止来自公共网络的不需要的或恶意的信息侵袭私有网络中的装置。 \n[0005] 这些安全装置通常被称作防火墙装置。典型地,防火墙是配置为基于组织的安全策略允许或拒绝通信流的专用装置。典型的高端防火墙通过动态地将流向一组服务卡的包进行负荷均衡来提供包转发。这些服务卡提供基于流的安全服务,例如,流分块、网络地址转换(NAT)、防病毒(AV)扫描和检查、侵入检测保护(IDP)和/或其他任何安全服务。该防火墙装置通常拦截进入和离开私有网络的包,并使用这些服务卡处理这些包以基于包括在每个包中的可以定义与该包相关联的流的状态的信息来确定是否允许或拒绝该包。 [0006] 然而,传统的防火墙因为各种原因而在将安全服务应用于多播通信时有困难。例如,一些防火墙可能在复制多播通信之前应用服务,这就导致对所有多播通信非常统一的处理且缺少丰富性。其他防火墙可以在复制多播通信之后应用服务,这就导致不能伸缩(scalable)的多播,特别是对于在高端防火墙环境中可能需要的大量的复制。此外,当前系统的表达性趋向于关注将多播分成单独应用安全服务的n路单播流,这就导致防火墙中的资源的浪费。 \n发明内容\n[0007] 一般地,本发明旨在用于提供用于多播流的可伸缩防火墙服务的技术。该技术可以改进将安全服务应用于防火墙网络装置中的多播传输的可伸缩性。此外,防火墙可以集成在路由装置中,从而允许单个装置提供包括多播支持的路由功能以及防火墙服务。例如,服务提供商可以如在此所述的配置单个装置来提供多播服务给消费者并应用防火墙策略至消费者多播通信。集成的防火墙可以是基于区域的防火墙,其提供基于区域的防火墙服务,允许基于区域的安全策略被定义和被应用于路由器的不同网络接口,从而允许基于区域的防火墙提供不同信任等级的网络之间的可伸缩的安全连接。 \n[0008] 根据本发明的技术,基于区域的防火墙提供具有命令语法的用户接口,该命令语法允许用户定义对多播包复制前服务和复制后服务的应用。该技术可以影响用于有效复制多播包的集成服务网络装置的转发面构造。此外,在此描述的技术可以允许表达性和缩放结合至集成服务网络装置的多个平面中,例如管理面、控制面、服务面以及数据面。 [0009] 例如,集成服务网络装置的管理面支持命令语法,该语法允许网络管理员定义反映多播行为的多播策略。该语法提供了用于每个多播策略的单一容器(container),并使用了直观和用户友好的表达性。该语法允许用户相对于在基于区域的防火墙上定义的不同区域为将要应用的服务类型进行分类,这就得到可伸缩的服务处理。 \n[0010] 根据在此描述的技术,集成服务网络装置的控制面负责创建“服务意识的”外发接口(OIF),即以符合并有助于有效地将防火墙服务应用于多播包的方式复制并转发多播包。\n为了实现这些,在路由器的控制面内的路由协议守护进程(RPD)和服务守护进程(SD)协作来保证路由协议守护进程创建用于每个多播组的多播复制树 的集合。在RPD和SD之间的协作期间,当RPD接收到多播加入和离开请求时,RPD基于由RPD维护的多播信息向SD呈现外发接口(OIF)列表。SD可以基于防火墙策略消减OIF列表,并且还确定将被应用于OIF列表的多播包的复制后服务的集合。SD参考反映由管理员输入的多播策略的多播会话表确定复制后服务的集合。每个复制后服务产生子树,对于该子树中的所有OIF一致地应用服务。可以在RPD开始多播树创建的时刻由SD进行评估,例如,接收到多播组的第一多播内容包的时刻。SD也可以在后续加入或离开消息的时刻为该多播组重新评估该分解。 [0011] 基于区域的防火墙的服务面基于多播包执行复制前服务。对于每个复制后服务处理组,服务面将该处理组中的每个服务应用至多播包的拷贝。服务面识别用于该处理组的子树,并将处理的多播包发送至转发面来复制该子树。 \n[0012] 本发明的技术自动促使在基于区域的防火墙的数据面内当前使用的任何有效复制技术。在从服务面返回时,根据多播转发信息库(FIB),数据面使用已有复制技术来有效地将每个服务包复制到用于该服务包的子树。 \n[0013] 在一个实施例中,网络路由器包括多个接口,用于发送和接收多播包;防火墙,与网络路由器集成,该防火墙用于将状态防火墙服务应用至多播包;以及路由引擎,包括控制单元,执行路由协议以维护指定通过网络的路由的路由信息,其中,控制单元执行至少一种多播协议来建立用于将多播包从多播源发送到多个多播接收器的多播组。网络路由器还包括转发引擎,由路由引擎配置以根据路由信息来选择用于多播包的下一跳,转发引擎包括交换结构,基于所选择的下一跳来将多播包转发至接口,其中转发引擎包括流控制模块,其基于从网络接收的多播包,将一个或多个多播包引向应用状态防火墙服务的防火墙。网络路由器还包括用户接口,通过该 用户接口,用户指定在将状态防火墙服务应用至多播包时将被防火墙识别的一个或多个区域,其中用户接口支持语法:(i)允许用户定义与区域相关联的多个接口的子集,以及(ii)允许用户定义将被应用于与多播组相关的多播会话的单个多播策略,其中该多播策略指定将被应用于指定区域的多播会话的动作。其中,所述语法允许所述用户定义所述单一多播策略以指定一个或多个通用服务,该一个或多个通用服务复制前将被应用于发往所述区域的一个或多个区域中的两个或更多接口的所述多播包的拷贝,并且所述语法允许所述用户定义所述单一多播策略以指定一个或多个例外,所述一个或多个例外指定所述区域中的一个或多个区域以及复制后将被应用于用于所述一个或多个区域的所述多播包的拷贝的额外服务,其中防火墙用于基于由用户指定的多播策略和区域将状态防火墙服务应用于多播包。 \n[0014] 在另一实施例中,一种网络路由方法包括:使用路由器的路由引擎执行至少一个多播协议来建立用于从多播源至多个多播接收器传递多播包的多播组,并且使用路由器呈现用户接口,通过该用户接口用户指定将被集成在路由器内的防火墙识别的一个或多个区域。用户接口支持语法:(i)允许用户定义与区域相关的多个接口的子集,以及(ii)允许用户定义将被应用于与多播组相关的多播会话的单个多播策略,其中该多播策略指定将被应用于指定区域的多播会话的动作。其中,所述语法允许所述用户定义所述单一多播策略以指定一个或多个通用服务,该一个或多个通用服务复制前将被应用于发往所述区域的一个或多个区域中的两个或更多接口的所述多播包的拷贝,并且所述语法允许所述用户定义所述单一多播策略以指定一个或多个例外,所述一个或多个例外指定所述区域中的一个或多个区域以及复制后将被应用于用于所述一个或多个区域的所述多播包的拷贝的额外服务,该方法还包括:在路由器的多个接口处从网络接收多播包,以及使用路由器的转发引擎的流控 制模块来将一个或多个所接收的多播包引向应用状态防火墙服务的防火墙。该方法还包括基于用户指定的多播策略和区域,使用网络路由器的防火墙将状态防火墙服务应用于多播包,以及在应用状态防火墙服务之后,将来自防火墙的至少一些多播包转发至转发引擎。该方法还包括使用转发引擎在网络中选择用于多播包的下一跳,并根据所选择的下一跳将多播包转发至接口。 \n[0015] 在另一实施例中,计算机可读存储介质包括使处理器执行以下操作的程序指令:\n使用路由器的路由引擎执行至少一个多播协议来建立用于从多播源至多个多播接收器传递多播包的多播组,以及使用路由器呈现用户接口,通过该用户接口用户指定将被集成在路由器内的防火墙识别的一个或多个区域。用户接口支持语法:(i)允许用户定义与区域相关的多个接口的子集,以及(ii)允许用户定义将被应用于与多播组相关的多播会话的单个多播策略。该多播策略识别:(a)将被应用于前往一个或多个区域中的两个或多个接口的多播包的拷贝的一个或多个共同服务;以及(b)指定将被应用于一个或多个区域的多播包的拷贝的一个或多个区域和额外服务的一个或多个例外(exception)。 \n[0016] 下面附图和说明书中阐述了本发明的一个或多个实施例的细节。本发明的其他特性、目标和优点将通过说明书和附图以及权利要求而显而易见。 \n附图说明\n[0017] 图1是示出了根据本发明原理的具有集成的基于区域的防火墙的示例性路由器的框图,该防火墙为多播提供可伸缩服务。 \n[0018] 图2是示出了根据本发明原理的路由器的示例性结构部件的框图。 \n[0019] 图3是示出了图2的路由器的逻辑抽象操作的框图。 \n[0020] 图4是更具体地示出了示例性多播会话表的框图。 \n[0021] 图5是示出了根据本发明原理的图1的路由器的示例性操作的流程图。 [0022] 图6A-6B是示出了根据本发明原理的图1的路由器的示例性操作的流程图。 具体实施方式\n[0023] 图1是示出了示例性网络环境2的框图,其中可以代表任何路由装置的示例性多播使能路由器20包括集成的防火墙(FW)22。在该实例中,FW 22提供基于区域的防火墙服务,其允许定义基于区域的安全策略并应用于路由器的不同网络接口。在图1的实例中,路由器20包括进入接口23A-23N以及外发接口25A-25N,用于经由物理网络连接将多播通信和多播动作请求发送至客户端24和服务提供商网络27,以及接收来自客户端和服务提供商网络的多播通信和多播动作请求。路由器20提供用户接口,其允许服务提供商定义关于这些物理接口的区域和相应的安全策略。此外,用户接口支持命令语法,其允许配置将被FW \n22应用至在这些区域之间通信的多播通信的安全策略。 \n[0024] 通常,路由器20在多播源27和多播目的地24之间传输多播通信。尽管在图1中仅示出了路由器20,网络环境2可以经由高速网络连接与内部路由器和其他网络装置互连作为部分网络,例如服务提供商网络。 \n[0025] 路由器20包括具有进入接口23A-23N和外发接口25A-25N的集成防火墙(FW)22,其可以是连接到与连接防火墙22至源27和目的地24的不同区域相关的多个连接的物理接口。防火墙22可以提供基于区域的防火墙服务,其允许基于区域的安全策略被定义并被应用于不同网络接口、子接口以及支持路由器20的标记切换路径。 \n[0026] 通常,防火墙22截取在不同信任等级的网络之间通信的通信流,并可以基于组织的安全策略和包括在通信流的每个包中的信息来允许或拒绝这些通信流。路由器20包括进入接口23A-23N和外发接口25A-25N(即,物理或逻辑接口),并且管理员可以将不同的进入和外发接口子集相关联以定义不同的区域。例如,管理员可以定义具有与多播源27相关联的接口的第一区域,以及可以定义具有与不同多播目的地24相关联的接口的不同区域。 [0027] 此外,如图1中所示,防火墙12可以集成在路由器20中,从而允许单个装置提供包括多播支持的路由功能和防火墙服务两者。以该方式,在此所述的技术可以允许服务提供商避免在路由器20和多播目的地24之间配置单独的非多播可用的防火墙的需要。 [0028] 如在此所述的,路由器20可以提供具有命令语法的用户接口,允许诸如网络管理员的用户来配置路由器20以定义与每个区域相关联的输入和输出接口。用户也可以基于每个区域配置识别将被应用于不同区域的特定安全服务的策略。例如,来自不信任区域并前往信任区域的网络通信可能比来自一个信任区域至另一同样信任等级的区域的通信要经受更仔细的审查。例如,路由器20的防火墙22可以提供基于流的安全服务,例如流分块、网络地址转换(NAT)、防病毒(AV)扫描和检查、侵入检测保护(IDP)和/或任何其他安全服务。 \n[0029] 路由器20可以接收来自多播目的地24中多播接收器的加入或离开由多播服务器提供的各种多播组(例如多播源27)的多播动作请求。组成员资格可以是完全动态的,并且多播接收器可以任意加入或离开。可以通过多播标识符在加入/离开请求中识别多播组,多播标识符指定特定的源、组对。路由器20可以将例如互联网协议(IP)视频服务、IP电视(IPTV)、桌面会议、公司广播、或其他内容的多播内容从多播源27传输至接收器多播目的地24。例如,路由器20可以在与特定区域相关联的输入接口上接收来自多播源27的多播内容。多播源27可以以多播数据包流的形式将多播内容提供给多播内容的接收器已经加入的一个或多个多播组。每个多播数据包包括识别各个多播组的多播标识符。路由器\n20可以维护将接收器与多播组相关联的信息,以及将来自多播源27的多播数据包的拷贝发送至接收器。 \n[0030] 根据本发明的技术,路由器20支持命令语法,其允许管理员或软件主体定义指定将被应用于从一个区域接收并前往多个输出区域的多播通信的服务的多播策略。换句话说,使用该语法定义的多播策略描述将被应用于一到N的多播通信的多播策略。该语法可以允许该策略被定义为将防火墙22配置为在复制多播包之前,将一些通用服务集合应用于多播包,以及在复制将被发送给与不同区域相关联的多播接收器的多播包之后,还将以每个区域为基础所需的其他服务应用于多播包的拷贝。 \n[0031] 在一些情况下,在与源区域相关联的输入接口接收到的通信至与不同目的地区域相关联的多个输出接口可以需要应用相同的服务。例如,防火墙22可需要将通用安全服务的集合应用至从非信任区域A接收到的、目的是将被复制到信任区域B和信任区域C的多播包。此外,一些额外安全服务可需要被应用于被输出到信任区域B的复制包而不需要应用至前往信任区域C的复制包。传统防 火墙装置可能局限于仅在复制用于不同区域的包之前应用服务,这可能导致不必要地将额外的服务应用至一些包。此外,其他的传统防火墙装置通常局限于仅在复制包之后应用服务,这就需要首先复制该包,然后将复制后服务应用于每个区域B和C的多播包。相反,本发明的技术可以避免不必要的、重复的安全服务,从而减少所消耗的计算资源。 \n[0032] 此外,本发明的技术提供了一种管理接口表达性,即语法,其影响(leverage)将被用于多播组会话的通信的通用安全服务,并允许在那些用于该多播组会话的通用服务和将仅被应用于该会话的特定输出区域的服务的特定情况之间清晰地描述。该管理接口表达性对于系统管理员来说更有用,也可以更有效地驱动路由器20和防火墙22的行为。以该方式,本发明的技术在将服务应用至多播通信时允许更大的伸缩性。 \n[0033] 通常,路由器20的控制面模块与在此描述的技术协作以创建多播复制树,其根据定义的多播策略来描述对路由器20的内部多播复制请求。控制面将多播树安装到路由器\n20的数据面中,从而控制路由器20中的多播包的复制和内部转发。如在下面将进一步描述的,基于需要被应用的复制前和复制后服务创建多播复制树,并有效地定义对于任何给定的多播组会话哪些安全服务将在复制前和复制后应用。 \n[0034] 本发明的技术自动影响在路由器20的数据面(例如转发硬件)中存在的任何有效复制技术。在从服务面返回时,根据安装在路由器20的转发面中的多播转发信息库(FIB),路由器20的数据面使用已有的复制技术来有效地复制每个服务的多播包以转发至与服务包的各个子树相关联的对应输出接口。 \n[0035] 图2是示出了根据本发明原理的提供用于多播的可伸缩安全服务的路由器40的框图。路由器40可以包括一个或多个服务引擎41,其应用例如图1中所示的防火墙服务的服务。在该示例中,路由和服务集成在单个路由器40中,路由器使用适于处理大量多播通信的路由器(例如图1的路由器20)所需的高速转发功能的共享转发引擎46。例如,由路由器40执行的多播复制对于任何给定的多播会话大约可能是10,000或更多次复制。 [0036] 路由器40包括控制单元42,其包括连接到转发引擎46的路由引擎44。路由引擎44提供用于执行路由操作的路由协议的操作环境。路由引擎44负责维护路由信息库(RIB)50来反映网络的当前拓扑以及其连接到的其他网络实体。特别地,路由引擎44周期地更新RIB 50以正确地反映网路的拓扑和其他实体。根据RIB 50,转发引擎46维护将具有特定下一跳的网络目的地和对应的接口端相关联的转发信息库(FIB)52。例如,控制单元42分析RIB 50并根据RIB 50产生FIB 52。路由器40包括分别经由网络链路56和57接收并发送包的接口卡54A-54N(“IFC 54”)。IFC 54可以经由多个接口端连接到网络链路56、57。转发引擎46可以包括构造为基于所选择的下一跳来将多播包转发至接口卡的开关。 \n[0037] 通常,转发引擎46可以将从IFC 54接收到的特定包转播至服务卡60A-60M(“服务卡60”)。更具体地,转发引擎46可以包括流转向单元45,其选择性地将包引向用于处理的服务引擎41。例如,流转向单元45接收进入包流并确定是通过一个或多个服务卡60中的用于处理的服务引擎41发送包,还是绕过服务引擎41。用于分离服务并在集成的服务路由器中进行转发的示例性转发面结构可以在2008年9月23日提交的标题为“Forwarding Plane Configuration for Separation of Services and Forwarding in an Integrated Services Router”的美国专利申请第12/235,677号中找到,其全部内容通过引用结合于此。 \n[0038] 服务卡60接收来自转发引擎46的包,根据定义的区域和策略选择性地提供服务,并将包或任何响应包转播至控制单元42,用于转发引擎46根据FIB 52进行转发。多个输入和输出逻辑接口可以将服务卡60连接到控制单元42。 \n[0039] 具有服务引擎41的服务卡60可以沿路由器60的底板或其他互连安装以对从转发引擎46接收到的包执行各种防火墙服务,例如过滤、记录、侵入检测和防御(IDP)分析、病毒扫描、深度包检测。在一些情况下,服务卡60可以发布命令51来动态配置转发引擎46的流转向单元45中的流表49。例如,流转向单元45接收包并分析所接收的包以识别与该包相关联的包流,例如,使用基于流的供应逻辑47基于包的头或主体中携带的信息来识别n元组(例如,5元组和输入接口)。一旦识别包流,则流转向单元45引用(reference)内部流表49来确定是属于新包流还是属于已经被路由器40识别的包流。 \n[0040] 如果流转向单元45没有在流表49中找到匹配,表示该包属于新包流,则流转向单元45将该包引向用于防火墙服务的服务引擎41的服务卡60。当该包引向服务引擎41时,服务卡60之一将状态防火墙服务应用于该包。例如,服务卡60可以提取并组合来自包的应用层数据,以及深度包检测(DIP)引擎可以执行侵入检测和防御(IDP)分析和/或病毒扫描以过滤掉坏包。作为另一示例,服务卡60可以执行译码、NAT或鉴定服务。 [0041] 一旦接收并处理包流的一个或多个包,则服务卡60可以发布命令51来在流表49中安装动态滤波器,例如提取匹配滤波器,其指示当接收到与该滤波器匹配的包时将执行的特定动作。在服务卡 60确定不需要向包流应用其他防火墙服务时(例如,在确定包流是被信任的或无害的之后),服务卡60可以在流转向单元45中安装滤波器以指定该包流会话的后续包可以在绕过服务引擎41的直接路径上被处理。当流转向单元45接收到相同包流的后续包时,流转向单元45检测流表49,确定该包与新的动态滤波器匹配,并根据动态滤波器将该包引向合适的路径。 \n[0042] 路由器40可以接收多播动作请求,例如来自多播接收器的期望加入或离开多播组的加入或离开请求包。多播动作请求可以使用因特网组管理协议(IGMP)来交换。路由器40基于所接收到的加入或离开请求来更新多播信息62。协议48可以包括IGMP、独立多播协议(PIM)、边界网关协议、以及其他协议。 \n[0043] 控制单元42包括用户接口64,通过该用户接口诸如管理员66(“ADMIN 66”)的客户可以直接或远程配置路由器40。通过与用户接口64相互作用,诸如人类用户和自动脚本的各种客户能够执行各种配置任务。例如,客户可以配置路由器的接口卡、调节支持网络协议的参数、指定路由装置中的物理部件、修改由路由器维护的路由信息、访问位于路由器上的软件模块和其他资源、以及等等。例如,用户接口64可以包括命令行接口(CLI)或其他适当的接口(例如基于网络浏览器的接口),用来处理用户或脚本驱动的命令。用户接口\n64代表在路由引擎44上执行的软件,该软件呈现命令行接口(例如,通过壳体程序或远程登录会话),用于接收在此所描述的配置数据,包括定义供服务卡60的服务引擎41应用的区域和基于区域的策略的防火墙配置数据。 \n[0044] 路由器40支持命令语法,该命令语法允许网络管理员以反映当处理并转发多播通信时转发引擎46所需的多播复制行为的方式来定义多播策略。例如,在路由引擎44上执行的管理守护进程(MD)可以提供支持语法的用户接口64。该语法包括为将被应用于指定区 域的每个多播策略提供单个容器的命令,以及使用相对于多播要求的直观且用户友好的表达性。该语法允许用户相对于在服务引擎41的基于区域的防火墙服务上定义的不同区域来对将被应用于多播通信的服务种类分类,这就引起可伸缩的服务处理。 [0045] 根据本发明的技术,路由器40的控制面负责创建“服务意识”的外发接口(OIF),即,以符合并有助于有效地将防火墙服务应用于多播包的方式复制和转发多播包的OIF。为了实现该目的,路由器控制面中的路由协议守护进程(RPD)53和服务守护进程(SD)55协作以保证路由协议守护进程为每个多播组创建多播复制树集合。在RPD 53和SD 55之间的协作过程中,当RPD 53接收到多播加入和离开请求时,RPD 53基于由RPD 53维护的多播信息来将外发接口(OIF)列表呈现给SD 55。SD 55可以基于防火墙策略消减OIF列表,也可以确定将被应用于用于该OIF列表的多播包的复制后服务的集合。SD 55参考反映由管理员输入的多播策略的多播会话表来确定复制后服务的集合。每个复制后服务产生子树,对该子树中所有OIF一致地将服务应用至该子数。由SD 55进行的评估在RPD 53开始多播树创建时完成,例如,在接收到多播组的第一多播内容包时。SD 55也可以在多播组的后续加入或离开消息时重新评估该分类(breakdown)。 \n[0046] 路由器40的服务面基于多播包执行复制前服务。对于每个复制后服务处理组,服务面将该处理组中的每个服务应用于多播包的拷贝。服务面识别用于该处理组的子树,并将经处理的包发送到用于复制该子树的转发面。 \n[0047] 本发明的技术自动影响任何由路由器40的数据面(例如,转发引擎46)使用的有效复制技术。在从服务面返回时,数据面根据多播FIB,使用已有的复制技术来有效地将每个被服务的包复制到被服务的包的子树。 \n[0048] 在一个实施例中,转发引擎46和路由引擎44中的每一个可以包括一个或多个专用处理器、存储介质、硬件、以及等等,并且可以通过数据通信信道68通信地连接。数据通信信道68可以是高速网络连接、总线、共享存储区或其他数据通信机制。 \n[0049] 路由器40还可以包括用于容纳控制单元42的物理机壳(未示出)。该机壳具有多个用于接收卡集合(包括IFC 54和服务卡60)的槽(未示出)。每个卡可以被插入机壳的相应槽中,用于通过总线、底板、或其他电通信机制将卡电连接到控制单元42。 [0050] 路由器40可以根据从计算机可读存储介质(未示出)获取的可执行指令进行操作。这样的介质的实例包括随机存取存储器(RAM)、只读存储器(ROM)、非易失性存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存等。路由器40的功能可以通过使用一个或多个处理器、分离的硬件电路、固件、在可编程处理器上执行的软件或上述任意组合执行计算机可读存储介质的指令来实现。 \n[0051] 图3是示出了图2的路由器40的操作的逻辑抽象的框图。路由器40的操作可以被看作分成控制面72、服务面74以及数据面76。控制面42可以被看作由图2的路由引擎\n44提供。控制面42包括一个或多个软件处理,例如在由一个或多个微处理器提供的计算环境中执行的管理守护进程78和路由协议守护进程53。 \n[0052] 管理守护进程78呈现用户接口64,通过该用户接口管理员66(“ADMIN”)可以输入命令以配置路由器40和服务引擎41。根据本发明的技术,管理守护进程78支持命令语法,该语法允许管理员66定义多播策略,该多播策略指定将被应用于从一个区域接收到的多播通信并将被复制到多个输出区域的安全服务。管理守护进程78可以存储从管理员66接收到的配置输入作为配置数据82 (“CONFIG.DATA 82”),其可以采用文本文件的形式,例如ASCII文件。可替换地,管理守护进程78可以处理配置输入并产生任一形式的配置数据82,例如一个或多个数据库、表、数据结构或类似物。配置数据82可以采用将新设置添加到路由器40的当前配置的一个或多个命令、用于删除或修改当前配置的已有设置的命令或其组合命令的形式。路由器40还可以解析配置数据82和来自管理员66的输入,并解决参考以适当地配置路由器40。 \n[0053] 更具体地,如在下面进一步所描述的,管理员66将命令输入至用户接口64以配置用于服务引擎41的多播策略。管理守护进程78将多播策略存储到配置数据82。服务守护进程55基于存储到配置数据82的多播策略对多播会话表88编程。特别地,当检测到新的多播会话时,服务守护进程55根据多播策略在多播会话表88中创建新条目。该多播会话表88的条目可以包括用于给定多播组的每个多播会话的单一条目(即,容器)。该条目指定输入接口、多播组(即,通过指示多播源和组标识符)、向其发送与源和组相关联的多播包拷贝的路由器40的外发接口(OIF)的集合、以及在为每个OIF进行复制之前应用于多播包的一个或多个通用服务。该单一条目还包括一个或多个例外,其指定将被应用于OIF集合中的一些子集的复制后多播包的拷贝的额外服务。在一些情况下,条目也可以指定不需要应用服务的OIF。在多播会话条目中列出的特定OIF可以基于控制面72的多播信息62。\n即,基于多播信息62,服务守护进程55知道与已经要求加入多播组的多播接收器相关联的OIF。 \n[0054] 管理员66也可以将命令输入至用户接口64以配置其他防火墙策略90。服务守护进程55可以使用从管理员接收到的定义关于物理接口的防火墙区域和策略的配置数据为服务卡60编程,使得服务引擎41的服务卡60识别定义的区域并在处理来自数据面76的 包时应用安全策略。如在下面进一步描述的,服务引擎41随后应用防火墙或其它服务并基于在多播会话表88中特征化的多播策略和防火墙策略来执行多播包复制。 \n[0055] 例如,路由器40可以提供基于文本的命令行接口,通过该接口系统管理员66或软件主体如下提供与配置多播策略的命令语法一致的配置数据: \n[0056] \n[0057] 在上面的实例中,关键字“multicast-policy”表示管理员定义新的多播策略,以及括号分隔符将定义多播策略的策略集合包围。关键字“from-zone”表示后续文本通过服务引擎41指定用于防火墙服务的定义区域,从该定义区域,必须接收通信量以应用策略。\n关键字“to-oif-zones-list”表示后续文本指定一个或多个区域的定义列表,多播通信必须被指定到该一个或多个区域以复制要被应用的多播策略。如上所述,多播策略包括关键字“match”,其允许管理员指定包流准则,例如源网络地址、目的地网络地址、源端口、目的地端口、应用协议或其它准则。服务引擎41将在多播策略中枚举的动作应用于满足这些条件的多播网络通信。此外,如由“except”关键字所表示的,服务引擎41可以基于每个复制的多播包的特定输出区域从该列表中添加或去除动作。示例动作包括包滤波、包记录、侵入检测和防御、病毒扫描、网络地址转换(NAT)、基于策略的鉴定等等。 \n[0058] 该语法允许用户将多播策略定义为单一策略,并且具有自动定义系统行为的自然表达性。该语法允许用户描述每个源组对和应用的多播复制的约束(containment)。与要求多播策略以不同的单播流的独立策略的形式被指定的传统防火墙策略语法不同,管理守护进程78支持改进的语法,用于关于与多播通信有关的特定区域来以单一策略定义多播策略。该语法提供用于每个多播策略的单一容器,并使用直观和用户友好的表达性。该语法允许用户相对于在基于区域的防火墙上定义的不同区域为将被应用的服务类型分类,这就得到多播通信的可伸缩服务处理。 \n[0059] 此外,例如,路由器40可以提供基于文本的命令行接口,通过该接口系统管理员或软件主体如下提供符合命令语法的配置数据: \n[0060] \n[0061] \n[0062] 在上述实例中,关键字“zone”表示管理员定义新的安全区域,并且括号分隔符将定义该区域的接口的集合包围。例如,落入该区域的任何物理接口可以使用关键字“interface”指定。以该方式,管理员可以定义多个输入区域和输出区域,以及对于每个区域可以指定被服务引擎41认为在该区域内的一个或多个物理接口的集合。上述语法仅是示例性的。例如,在其他实施例中,关键字“multicast-policy”、“interface”或“zone”可以被省略,或可以使用其他关键字。 \n[0063] 在操作中,路由器40可以接收来自多播接收器的希望加入或离开多播组的加入或离开请求包。路由协议守护进程(RPD)53基于所接收到的加入或离开请求更新多播信息\n62。RPD可以运行各种协议,例如路由协议和多播协议。通常,RPD 53根据在此描述的技术与服务守护进程55协作以根据定义的多播策略来创建多播树,并将多播树安装到数据面\n76的多播FIB 86中。如下面将进一步描述的,多播树是基于将被应用的所需的复制前和复制后服务所创建的。为了伸缩数据面76中的状态,RPD 53延迟多播FIB 86中的多播树的创建,直到从多播源接收到用于多播组的实际多播内容。多播树有效地指定多播通信应该被复制的方式以及复制的通信应该从哪个输出接口被发送到下游路由器,从而路由器40知道哪个多播组的所有成员被提供有多播内容。延迟创建的至多播FIB 86 的条目通过最小化所存储的状态量而有助于伸缩数据面76中的状态。 \n[0064] 当路由器40接收多播包时,路由器40确定该包是否是为与由该包识别的特定多播组相关联的多播会话接收到的第一多播包。一旦路由器40从多播源接收到用于多播组的第一多播包,RPD 53根据多播信息62创建外发接口(OIF)列表。由RPD 53创建的OIF列表枚举了多播包的拷贝应该被发送到的OIF,以向已经加入多播组的每个多播接收器提供多播内容。RPD 53提供OIF列表给服务守护进程(SD)55用于验证。SD 55分析由RPD \n53提供的OIF列表,并可以修改OIF列表。 \n[0065] 在一些情况下,SD 55可以根据需要消减OIF列表以基于防火墙策略90从列表中去除一定的OIF。SD 55也可以通过基于多播会话表88将OIF列表分成子列表来修改OIF列表。如上所解释的,多播会话表88包括基于由管理员指定的多播策略的条目。SD 55识别属于RPD 53为其产生OIF列表的多播组的多播会话表88中的条目。SD 55基于在多播会话表88的匹配条目中指定的例外创建一个或多个OIF子列表。换句话说,SD 55创建OIF子列表,每个OIF子列表包括在已经对每个OIF发生多播通信复制之后可以应用的一个或多个通用服务的那些OIF。SD 55将修改的OIF列表提供至RPD53,然后其将多播FIB 86下推至数据面76。因此,在此描述的技术改变了控制面72将状态下推至数据面76的方式。\n先前传统路由器将仅创建用于安装到数据面76的单一多播树,本发明的技术要求SD 55和RPD 53合作来为给定的多播组在数据面76中安装多个多播树。 \n[0066] 通过说明,RPD 53可以提供具有OIF列表形式(S,G,OIF列表)的SD 55,其中S是多播源,G是多播组标识符,以及OIF列表枚举与该多播组相关联的OIF。SD 55可以修改OIF列表并将 修改的OIF列表(或OIF子列表的集合)的形式(S,G,,,...,)返回给RPD 53。修改的OIF列表提供了OIF的子列表以及将被共同应用于子列表上的那些OIF的相应服务。在一些情况下,修改的OIF列表可以包括特定的转发OIF子列表,其指定了不应用服务的OIF的子集。如果是这种情况,则修改的OIF列表可能看起来像:(S,G,,,,...,),其中“f-OIF-sub-list”是转发OIF子列表。 \n[0067] 特定转发OIF子列表可以在默认多播策略是“允许所有”并且一些OIF位于不需要策略的区域中时被使用。“允许所有”意思是默认动作是简单地允许该通信。这与默认多播策略“丢弃所有”相反,该策略中默认动作是丢弃该通信。 \n[0068] RPD 53基于由SD 55提供的修改的OIF列表来创建一个或多个多播复制树。该多播复制树指定多播通信应被复制的方式以及复制的通信应该被发送到哪里,从而路由器40知道哪个多播组的所有成员被提供有多播内容。例如,RPD 53可以创建不同的多播树以对应于修改的OIF列表中的每个OIF子列表。RPD 53将多播树安装至数据面76的多播FIB \n86。转发引擎46随后引用多播FIB 86以确定如何将包转发至适当的目的地。 [0069] 例如,当由数据面76中的一个IFC 54接收到包时,流转向单元45(例如,基于包头信息)确定该包是多播包,分析接收到的包以识别与该包相关联的包流,例如,使用基于流的供应逻辑基于在包的头或主体中携带的信息来识别n元组。一旦识别该包流,流转向单元45引用内部流表来确定是否属于新包流或已经被路由器40识别的包流。 [0070] 当在流表中找到条目时,流转向单元45引用FIB 87,其表示多播包需要(1)到服务面74的单一复制,或(2)发送给服务面74的一个复制用于处理,以及直接发送到特定的OIF的其它复制用于转发(即,如上所述在特定的转发OIF子列表的情况下)。转发引擎46将拷贝发送至服务面74以及将拷贝发送至由FIB 87表示的OIF。在服务面74,服务引擎41将服务应用至由多播会话表88和防火墙策略90所指定的多播包。例如,一个或多个服务卡60可以处理该包。可以被应用的示例性服务包括防火墙、流分块、网络地址转换(NAT)、防病毒(AV)扫描以及检测、侵入检测保护(IDP)、深度包检测(DIP)和/或其他安全服务。 \n[0071] 具体地,服务面74根据表示在与多播包相关联的多播组的多播会话表88的相关条目中的多播策略所需将通用服务应用于多播包。在应用通用服务之后,如果存在在多播会话表88的条目中指定的任何例外,则服务面74复制该包,从而存在用于每个指定例外的足够的包的拷贝,并根据需要将该服务应用于每个各自的拷贝。一旦所有服务已经被应用,则服务面将该服务包转发至数据面76,用于分配给适当的数据面OIF。一旦在IFC 54的数据面OIF,IFC 54可以进一步根据需要复制多播包来将复制的多播包发送至为多播组指定的每个OIF,从而保证多播包的拷贝发送给每个多播接收器。 \n[0072] 在一些实施例中,当从转发引擎46将包转发至服务引擎41时,需要应用至该包的服务可以被表示为cookie。即,cookie可以沿表示需要服务引擎41提供什么类型的服务或处理的包进行通信。在另一实施例中,服务引擎41可以维护将进入接口与包流映射到所需的服务的状态。通过引用该状态,服务引擎41可以识别需要什么服务。 \n[0073] 多播组成员关系通常非常动态,具有随意地加入和离开多播组的成员。在多播接收器加入或离开已经在多播FIB 86中安装多播树的RPD 53的多播组的情况下,在一些实施例中,在多播树中表示的复制可以被控制面72重新评估。例如,RPD 53可以确定新接收到的加入或离开已经安装了多播树的多播组的请求。RPD 53鉴于新的加入或离开请求根据需要可以调用SD 55以更新OIF列表。如果新的加入请求对应于已经不存在于任何OIF子列表中的OIF,则SD 55可以将新的OIF增加至OIF子列表之一。在新接收到离开请求的情况下,如果在与OIF相关联的多播组中不再存在任何接收器,则SD 55可以从OIF子列表之一中去除OIF。SD 55可以基于这些改变提供具有更新的OIF列表的RPD 53,以及RPD \n53可以使用基于更新的OIF列表创建的更新多播树来更新多播FIB 86。多播组成员的改变也可以触发多播会话表88的条目的改变。单播路由改变不影响路由器40的多播操作,以及RPD 53和SD 55在路由器40被通知单播路由改变时不需要对多播FIB 86进行任何改变。 \n[0074] 当管理员66在路由器40的操作期间改变了多播策略或防火墙策略90时,SD 55可以以符合传统防火墙操作的方式来响应这些改变。例如,SD 55可以原样保留已有的会话,而仅仅根据改变的策略来修改新的多播会话。如有必要,SD 55也可以评估现有多播会话并在更大的时间比例上进行改变。 \n[0075] 图4是更具体地示出了由图2和图3的路由器40维护的示例性多播会话表88的框图。如图4所示,多播会话表88可以包括诸如条目90的条目,包括指定输入接口、源、组标识符(ID)、OIF标识符(OIF_ID)以及将被应用于这些OIF的包的通用安全服务的字段、以及OIF_ID和将被增加或删除的相关联的安全服务。指定OIF_ID和通用服务的字段可以是定义将被应用的通用服务的可扩展字段。指定OIF_ID和将被增加或删除的例外服务的字段也可以 是可扩展字段。例如,将被应用的安全服务可以通过位屏蔽的方法指定。在该示例中,由集成防火墙提供的每种类型的安全服务可以是与在适当位置设置的不同的位相关联的。 \n[0076] 尽管没有示出,多播会话表88可以包括许多条目。每个条目可以包括多个例外字段。在一些情况下,条目也可以指定不需要应用服务的OIF。服务守护进程55可以维护多播会话表88独立于单播会话表(未示出),或者可以维护将多播会话和单播会话结合的单一会话表。在单一组合的会话表的情况下,服务守护进程55可以识别如在组合会话表中的多播会话的条目。 \n[0077] 图5是示出了具有集成防火墙的路由器(例如图1-3中的路由器20和40)的示例性操作的流程图。在操作中,路由器40接收多播策略输入,例如来自管理员66的至用户接口64的命令,来配置路由器40(100)。如上所述,管理守护进程78支持命令语法,其允许管理员66定义多播策略,指定将被应用于从一个区域接收到并指定到多个输出区域的多播通信的服务。管理守护进程78将多播策略存储至配置数据82(102)。服务守护进程55基于存储到配置数据82中的多播策略来为多播会话表88编程。特别地,当检测到新的多播会话时,服务守护进程55根据多播策略在多播会话表88中创建新条目(104)。例如,在多播会话表88中的条目可以基于多播会话的OIF映射的区域来指定将被应用于多播会话的多播包的安全服务。路由器40的服务引擎41基于定义的多播策略将基于区域的安全服务应用于接收到的多播包(106)。 \n[0078] 图6A-6B是示出了诸如图1-3中的路由器20和40的具有集成防火墙的路由器的示例性操作的流程图。为了举例,图6A-6B将根据图2和3的路由器40来描述。在操作中,路由器40可以接收来自希望加入或离开多播组的多播接收器的加入或离开请求包(110)。\nRPD 53基于所接收到的加入或离开请求更新多播信息62 (112)。当路由器40接收到多播包时(114),转发面64的流转向单元45分析接收到的包以识别与该包相关联的包流,例如使用基于流的供应逻辑来基于在该包的头或主体中携带的信息识别5元组。一旦识别该包流,流转向单元45引用内部流表来确定该包是新多播会话的第一包还是属于已经被路由器识别的多播会话(116)。 \n[0079] 如果流转向单元45没有在流表中找到匹配,则其表示多播包属于新多播会话(116的是分支)(从图6A的块“A”移动到图6B的块“A”),流转向单元45将该包引向控制面的RPD 53。RPD 53根据多播信息62创建外发接口(OIF)列表。由RPD 53创建的OIF列表枚举在其上多播包的拷贝应该被发送以将多播内容提供至每个已经加入多播组的多播接收器的OIF。RPD 53提供OIF列表给服务守护进程(SD)55用于验证(120)。SD 55分析由RPD 53提供的OIF列表,并且可以修改该OIF列表。 \n[0080] 在一些情况下,SD 55可以根据需要消减OIF列表以基于防火墙策略90从该列表中去除特定的OIF(122)。SD 55也可以通过基于多播会话表88将OIF列表分成子列表来修改OIF列表(124)。如上面所解释的,多播会话表88包括基于由管理员指定的多播策略的条目。SD 55识别多播会话表88中属于RPD 53已经为其产生OIF列表的多播组的条目。SD 55基于在多播会话表88的匹配条目中指定的例外来创建一个或多个OIF子列表。\n换句话说,SD 55创建OIF子列表,每个OIF子列表包括在对于每个OIF已经发生多播通信的复制之后能够被应用一个或多个服务的那些OIF。SD 55将修改的OIF列表提供给RPD \n53(126)。因此,在此描述的技术改变了控制面72将状态下推至数据面76的方式。在先前的传统路由器仅创建用于安装到数据面76中的单一多播树的情况下,本发明 的技术要求RPD 53和SD 55协作以得到对于给定的多播组在数据面76中安装多个多播树。 [0081] RPD 53基于由SD 55提供的修改的OIF列表创建一个或多个多播复制树(128)。\n多播复制树指定多播通信将被复制的方式以及复制的流量将被发送到何处,从而路由器40知道哪个多播组的所有成员被提供有多播内容。例如,RPD 53可以创建不同的多播树以对应于修改的OIF列表中的每个OIF子列表。RPD 53将多播树安装至数据面76的多播FIB \n86(130)(操作从图6B的块“B”移动到图6A的块“B”)。转发引擎46随后引用多播FIB 86以确定如何将包转发给适当的目的地。 \n[0082] 可替换地,当在流表中找到条目时(116的否分支),流转向单元45在要求(1)将多播包发送至服务面74(132的否分支)或(2)将复制发送到服务面74用于处理以及将其他复制直接发送到OIF用于转发(即,在特定的转发OIF子列表的情况下,如上所述)(132的是分支)时可以看见多播包。转发引擎46将多播包发送至服务面74(134)以及如所指出的拷贝至OIF(136)。在服务面74,服务引擎41如由多播会话表88和防火墙策略90所指定的将服务应用于多播包。例如,一个或多个服务卡60可以处理该包。可以被应用的示例性服务包括防火墙、流分块、网络地址转换(NAT)、防病毒(AV)扫描和检测、侵入检测保护(IDP)、深度包检测(DIP)、译码、验证服务、和/或任何其他安全服务。 \n[0083] 更具体地,在服务面74处复制之前,服务面74按照在用于与该多播包相关联的多播组的多播会话表88的有关条目中表达的多播策略的需要,将通用服务应用于该多播包(138)。在应用通用服务之后,如果存在在多播会话表88的条目中指定的任何例外(140),则服务面74复制该包,从而对每个指定的例外存在足够的包拷贝(142),并根据需要将服务应用于每个各自的拷贝(144)。 \n[0084] 为了确定什么多播策略可以应用于多播包,防火墙21必须确定与多播包相关联的输入区域。防火墙21基于多播包的源和组来得知来自转发面的输入区域(例如,在包头中所识别的)。一旦从转发引擎46接收到来自包的包,防火墙21处理该包以识别输入接口,通过该接口路由器40初始接收到该包。在一个示例中,在其上接收到该包的IFC 54或转发引擎46确定指定的输入接口,在该接口上路由器40接收该包并将信息附加到该包,该信息用于在将该包转播到用于处理的服务引擎41之前识别该特定接口。当路由器40接收到新多播会话的第一包(即,包流)时,路由器40将该包发送至控制面72。通常,RPD 53将查看该多播包并确定需要复制,并下推多播FIB条目。与传统多播不同,在下推多播FIB条目之前,RPD 53和SD 55下推入许多OIF列表。在另一实施例中,RPD 53将整个OIF列表提供至SD 55,这就打破该列表并下推入多个OIF列表。一旦OIF列表状态被下推到数据面76,则原始触发这些动作的多播包被正常地处理并由路由器40发送出。 \n[0085] 在一些实施例中,服务引擎41的一个或多个服务卡60可以被路由引擎44编程并安装有FIB 52的所有或部分的拷贝如供转发引擎46使用的。可选地,转发引擎46的FIB \n52可以被存储在通过服务卡60可以访问的共享存储器中。在任一情况下,服务引擎41基于包内的信息来遍历FIB,从而确定下一跳和用于该包的相应输出接口。 \n[0086] 接下来,已经确定了用于该包的输入区域和输出区域,服务引擎41访问其配置数据以识别已经为区域之间的通信移动定义的任何多播策略。此时,服务引擎41也应用已经被策略定义的任何包流准则。如上所述,一旦识别了该匹配策略,服务引擎41将由这些策略指定的动作应用于该包。 \n[0087] 一旦所有的服务已经被应用,服务面74根据多播FIB 86,将服务的多播包注入回数据面76供转发部件53转发(146)。此时,服务引擎41的服务卡60可以给流转向单元\n45信号并指示流转向单元45在其内部流表49中安装准则,指明包流的后续包是应该被信任从而不需要应用防火墙服务,还是后续包应该继续被引向服务引擎41。 \n[0088] 一旦在IFC 54的数据面OIF处,IFC 54可以根据需要复制多播包用于将包发出到多播接收器(148,150),以及OIF将拷贝输出至多播接收器(152)。 \n[0089] 在一些情况下,当流转向单元75在用于接收到的多播包的流表49中找到匹配并且匹配条目将该包引向旁路服务引擎41时,流控制模块40不将该包转发至防火墙64,而是向转发部件53发出该包可以马上根据多播FIB 52被复制并转发的信号。在上述示例中,路由器40将能够多播的、基于区域的防火墙安全特征集成在单个网络装置中以为大量多播通信提供可伸缩的安全性。 \n[0090] 尽管参考运营商边缘路由器进行了描述,但是在此描述的技术通常可以应用于其他类型的路由器和网络装置。例如,路由器可以是服务提供商(SP)网络的边缘装置、对等装置、或核心装置。作为其他示例,路由器可以是提供宽带接入的边缘路由器,例如宽带远程接入服务器(BRAS)或宽带网络网关(BNG)或线缆调制解调器终端系统(CMTS)。作为另一示例,路由器可以是提供将企业连接到公网的边缘路由器,例如,多服务边缘路由器(MSE)。作为另一示例,路由器可以是提供移动接入的边缘路由器,例如网关GPRS(通用无线分组业务)支持节点(GGSN)、分组数据服务节点(PDSN)或公共数据网络网关(PDN-GW)。\n作为另一示例,路由器可以是为流入或流出数据中心的包提供路由和安全动能的数据中心装置(例如,以及边缘路由器)。作为另一示例,路由器可 以是对等路由器,其作为网络服务提供商之间的互联点。作为又一示例,路由器可以是服务提供商的IP网络核心中的聚集(aggregation)路由器或核心路由器,例如位于GGSN或PDSN或BNG之间的核心路由器。此外,路由器可以是与私有企业网络相关联的装置。 \n[0091] 本发明的各种实施例已经被描述。这些或其他实施例在权利要求的范围内。
法律信息
- 2014-04-02
专利权人的姓名或者名称、地址的变更
专利权人由丛林网络公司变更为瞻博网络公司
地址由美国加利福尼亚州变更为美国加利福尼亚州
- 2013-01-09
- 2010-04-21
实质审查的生效
IPC(主分类): H04L 12/56
专利申请号: 200910160048.8
申请日: 2009.07.20
- 2010-02-17
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2006-12-13
|
2004-11-16
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |