通信流量的选择性转移和注入的制作方法

文档序号:7605482阅读:154来源:国知局

专利名称::通信流量的选择性转移和注入的制作方法
技术领域
:本发明涉及计算机网络,具体而言,本发明涉及在计算机网络中转移和处理所选流量的方法和系统。
背景技术
:上述美国专利申请公布US2002/0083175描述了一种方法,该方法用于通过转移想去往网络上的“受难者”的流量来避免网络上的一个或多个可能的“受难者”的集合中的超载状况。为了实现这种保护,诸如路由器之类的第一组网络元件将流量重定向到被称为“保卫机”的第二组网络元件。当可能的受难者遭受到异常流量状况时,转移被启动,所述异常流量状况例如可能由分布式拒绝服务(DDoS)攻击所导致。保卫机过滤经转移的流量以消除恶意的(或过度的)流量,并且将合法流量转发到受难者。此公布描述了多种可以实现流量转移的方法。
发明内容在本发明的实施例中,想去往特定目标地址(或一组目标地址)的网络通信流量被转移到流量处理器。在处理了经转移的流量之后,流量处理器将经处理的流量中的至少一些传递到原始目标地址。这种流量转移和处理在过滤出恶意流量的情况下尤其有用,如上述美国和PCT专利申请所描述的。它还可以应用于其他类型的网络应用,例如以计费、鉴识(forensics)和流量工程为目的的流量分析。在本发明的某些实施例中,诸如因特网协议(IP)路由器之类的第3层分组路由器经由连接到网络的第一端口接收来自网络的通信流量。该流量包括想去往目标地址的分组,所述目标地址可经由路由器的第二端口来访问。路由器的路由表被具体编程,从而当需要转移时(例如由于可疑攻击),路由器经由路由器的第三端口将想去往目标地址的分组转移到流量处理器。处理器经由第三端口向路由器返回经处理的分组。路由表的特殊编程致使路由器将这些分组从第三端口传送到第二端口,以用于递送到目标地址。在某些实施例中,在网络的所选区域中的多个路由器协作以将流量转移到流量处理器。所选区域例如可以包括由对等路由器耦合到诸如因特网这样的广域网(WAN)的专用网络或其他自治系统。对等路由器被通过网络的隧道耦合到转移路由器,该转移路由器被连接到流量处理器。当需要转移时,对等路由器被指示经由隧道将想去往目标地址的流量传递到转移路由器。以这种方式,可以通过向对等路由器发布适当的路由指令来实现转移,而无需主动涉及网络区域中的其余路由器。在本发明的其他实施例中,流量处理器和从其向流量处理器转移流量的路由器通常经由第2层交换机被耦合在公共子网中,该第2层交换机例如是太往交换机。在这种实施例中,经处理的流量被流量处理器传送回第2层交换机,然后第2层交换机或者直接(如果目标地址也位于同一子网中)或者经由子网中的另一路由器将流量转发到目标地址。因此,根据本发明的实施例,提供了一种用于通信的方法,包括耦合第3层分组路由器的第一端口以接收来自网络的通信流量,所述流量包括想去往目标地址的分组,所述目标地址可经由路由器的第二端口来访问;在路由器处,经由路由器的第三端口将想去往目标地址的分组转移到流量处理器;在流量处理器处处理经转移的分组,并且将经处理的分组经由第三端口而返回路由器;以及在路由器处,将来自第三端口的经处理的分组传送到第二端口,以用于递送到目标地址。在所公开的实施例中,转移分组的步骤包括检测关于想去往目标地址的流量中的至少一些具有恶意来源的指示,并且响应于该指示来转移分组。通常,处理经转移的分组的步骤包括过滤经转移的分组,以便识别具有恶意来源的分组,并且禁止递送识别出的分组。在某些实施例中,转移分组的步骤包括从流量处理器向路由器发送边界网关协议(BGP)通告,其指导路由器转移分组。通常,发送BGP通告的步骤包括在BGP通告中插入“非广告”和“非输出”字符串中的至少一个。在某些实施例中,转移分组的步骤包括建立通过网络的隧道,该隧道从对等路由器到第3层分组路由器的第一端口;配置第3层分组路由器,以将它通过隧道接收到的分组转发到第三端口;以及指导对等路由器通过隧道来转发想去往目标地址的分组。建立隧道的步骤可以包括建立多个隧道,所述多个隧道从位于网络的一个区域的边缘处的对等路由器到所述区域内的第3层分组路由器。通常,返回经处理的分组的步骤包括在流量处理器处选择一条经由第3层分组路由器去往目标地址的路径,并且引导第3层分组路由器将经处理的分组沿着所选路径传送到下一跳路由器。选择路径的步骤包括识别出通过各个下一跳路由器而去往目标地址的多条路径,并且选择出经处理的分组将通过其被传送的下一跳路由器之一。在某些实施例中,选择下一跳路由器之一的步骤包括在流量处理器处检测网络中在路由器的第二端口和目标地址之间的改变,并且响应于该改变,选择出将通过其将经处理的分组传送到目标地址的下一跳路由器中的另一个下一跳路由器。可附加地或可替换地,选择路径的步骤包括在流量处理器处接收来自第3层分组路由器的路由信息,并且基于所述路由信息来识别路径。通常,接收路由信息的步骤包括根据自动路由协议,接收由网络中的路由器所产生的通告。在一个实施例中,接收通告的步骤包括在流量处理器和下一跳路由器之间建立通过网络的至少一个隧道,并且响应于所述至少一个隧道来接收所述通告。在可替换的实施例中,接收路由信息的步骤包括使用管理协议来查询第3层分组路由器。在所公开的实施例中,引导路由器的步骤包括建立通过网络的从流量处理器经由路由器而去往下一跳路由器的隧道,并且通过隧道来传递分组。在某些实施例中,传送经处理的分组的步骤包括利用关于在第三端口上由路由器接收到的分组的转发规则来对路由器编程以便推翻路由器的主路由表,并且响应于转发规则来转发经处理的分组。对路由器编程的步骤可以包括调用策略路由(policy-basedrouting,PBR)或基于过滤器的转发(filter-basedforwarding,FBF)。可附加地或可替换地,对路由器编程的步骤包括配置路由器,以响应于经处理的分组中的服务类型(ToS)字段来应用转发规则,并且传送经处理的分组的步骤包括设置分组中的ToS字段的值,以便致使转发规则被调用。在其他实施例中,传送经处理的分组的步骤包括将虚拟专用网(VPN)指定添加到经处理的分组,并且传送经处理的分组的步骤包括利用VPN路由表对路由器编程,并且响应于VPN路由表来转发经处理的分组。通常,添加VPN指定的步骤包括将虚拟局域网(VLAN)标签添加到经处理的分组。在这些实施例中的一个实施例中,添加VLAN标签的步骤包括定义对应于去往目标地址的不同路由的多个VLAN,并且其中添加VLAN标签的步骤包括选出路由之一,并且设置VLAN标签的值以指定路由中的所选的那个路由。根据本发明的实施例,还提供了一种用于通信的方法,包括在网络的一个区域中耦合一个或多个对等路由器,以接收来自该区域外部的通信流量,该流量包括想去往目标地址的分组;通过经由网络的所述区域内的一个或多个内部路由器的一个或多个第一路由,将分组转发到目标地址;建立通过网络的一个或多个隧道,所述隧道从对等路由器经由网络的所述区域内的转移路由器的一个或多个第一端口而去往转移路由器的第二端口;将流量处理器耦合到转移路由器的第二端口;响应于流量的特性,指导一个或多个对等路由器通过一个或多个隧道,而不是通过第一路由来转发想去往目标地址的分组;在流量处理器处,处理经由转移路由器而通过隧道被转发的分组;以及将来自流量处理器的经处理的分组中的至少一些传送到目标地址。通常,指导一个或多个对等路由器的步骤包括从流量处理器向所述一个或多个对等路由器发送边界网关协议(BGP)通告。可附加地或可替换地,指导一个或多个对等路由器的步骤包括向一个或多个对等路由器发送指令,而不需修改内部路由器的路由表。转移路由器可以充当第一路由中的至少一个路由上的内部路由器之一。通常,传送经处理的分组中的至少一些的步骤包括经由转移路由器将经处理的分组中的至少一些传送到目标地址。可附加地或可替换地,传送经处理的分组中的至少一些的步骤包括在去往目标地址的路径上建立介于流量处理器和边缘路由器之间的另一隧道,并且通过该另一隧道传送经处理的分组中的至少一些。根据本发明的实施例,还提供了一种用于通信的方法,包括耦合第3层分组路由器的第一端口以接收来自网络的通信流量,该流量包括想去往目标地址的分组;将第3层分组路由器的第二端口耦合到目标地址可通过其被访问的子网;经由子网中的第2层交换机将想去往目标地址的分组转移到子网上的流量处理器;在流量处理器处处理经转移的分组,并将经处理的分组返回到第2层交换机;以及将经处理的分组从第2层交换机传送到目标地址。在某些实施例中,目标地址位于子网内。在其他实施例中,目标地址位于子网外部,并且传送经处理的分组的步骤包括将经处理的分组从第2层交换机传递到子网中的另一路由器,并且将经处理的分组从另一路由器路由到目标地址。根据本发明的实施例,还提供了一种用于通信的装置,包括第3层分组路由器,其至少包括第一、第二和第三端口,其中第一端口被耦合以接收来自网络的通信流量,该流量包括想去往目标地址的分组,该目标地址可经由路由器的第二端口来访问;以及耦合到路由器的第三端口的流量处理器,该流量处理器适合于致使路由器将想去往目标地址的分组转移到第三端口,并且还适合于处理经转移的分组,以及将经处理的分组经由第三端口返回到路由器,以便致使路由器将经处理的分组从第三端口传送到第二端口,以用于递送到目标地址。此外,根据本发明的实施例,还提供了一种用于通信的装置,包括在网络的一个区域中的一个或多个对等路由器,这些对等路由器被耦合以接收来自该区域外部的通信流量,该流量包括想去往目标地址的分组;在网络的该区域中的一个或多个内部路由器,这些内部路由器被耦合以接收来自一个或多个对等路由器的分组,并且将分组通过一个或多个第一路由转发到目标地址;在网络的所述区域内的转移路由器,该转移路由器包括一个或多个第一端口和一个第二端口,其中第一端口通过穿过网络的一个或多个隧道被耦合到对等路由器,并且转移路由器被配置为将其通过一个或多个隧道接收到的分组转发到第二端口;耦合到转移路由器的第二端口的流量处理器,并且所述流量处理器适合于响应于流量的特性指导一个或多个对等路由器通过一个或多个隧道,而不是通过第一路由来转发想去往目标地址的分组,以及处理经由转移路由器通过隧道被转发的分组,以及将经处理的分组中的至少一些传送到目标地址。此外,根据本发明的实施例,还提供了一种用于通信的装置,包括第2层交换机,该交换机位于可通过其访问目标地址的子网中;第3层分组路由器,其包括第一和第二端口,其中第一端口被耦合以接收来自网络的通信流量,该流量包括想去往目标地址的分组,并且第二端口被耦合到第2层交换机;以及流量处理器,该流量处理器适合于致使第3层分组路由器经由第2层交换机将想去往目标地址的分组转移到流量处理器,并且该流量处理器还适合于处理经转移的分组,并将经处理的分组返回到第2层交换机,以便致使第2层交换机将经处理的分组传送到目标地址。根据本发明的实施例,还提供了一种计算机软件产品,该计算机软件产品由计算机与至少包括第一、第二和第三端口的第3层分组路由器协作使用,其中第一端口被耦合以接收来自网络的通信流量,该流量包括想去往目标地址的分组,该目标地址可经由路由器的第二端口来访问,并且该计算机被耦合到第三端口,该产品包括存储有计算机指令的计算机可读介质,所述指令在被计算机所读取时,致使计算机指导路由器将想去往目标地址的分组转移到第三端口,并且致使计算机处理经转移的分组,以及将经处理的分组经由第三端口返回到路由器,以便致使路由器将经处理的分组从第三端口传送到第二端口,以用于递送到目标地址。从以下结合附图对本发明实施例的详细描述中,将更全面地理解本发明。图1的框图示意性地示出了根据本发明的实施例的计算机网络的受保护区域;图2的流程图示意性地示出了根据本发明的实施例的用于分组转移的方法;图3的流程图示意性地示出了根据本发明的实施例的用于配置路由器的方法;图4的框图示意性地示出了根据本发明的实施例的网络内被用于分组注入的隧道;图5的框图示意性地示出了根据本发明的另一实施例的网络的受保护区域;图6的框图示意性地示出了根据本发明的另一实施例的网络的受保护区域。具体实施例方式图1的框图示意性地示出了根据本发明的实施例的通信网络20。保卫设备22用作流量处理器,它过滤出被定向到网络20的受保护区域24中的目标地址的恶意流量。受保护区域24通过第3层路由器28与广域网(WAN)26通信,其中第3层路由器通常是因特网协议(IP)路由器,广域网通常是因特网。受保护区域包括各种其他的网络元件,例如服务器30和内部路由器32、34,以及在该图中为了简化而省略掉的其他计算机、交换机和局域网(LAN)。虽然并非一定,但是受保护区域24通常包括诸如企业网或校园网之类的专用网络,或者由因特网服务提供商(ISP)所操作的网络。在本专利申请的上下文中以及在权利要求中,术语“第2层”和“第3层”的用法与其传统意义一致,该传统意义是由公知的开放式系统接口(OSI)模型所给出的。因此,第2层指的是数据链路层,并且包括例如由以太网、局域网(LAN)、交换机和其他组件所提供的媒体访问控制(MAC)功能。第3层指的是网络层,并且包括诸如IP分组路由之类的功能。虽然在下文中描述的实施例具体参考以太网和IP以及某些常见的以太网和IP设备类型和路由协议,但是本发明的原理可以在已作必要修正的情况下被类似地应用于使用其他协议和设备的网络。为了简明而清晰,在下文中将参考保护服务器30(也可以被称为“受难者”或“目标”)免受拒绝服务(DoS)攻击来描述本发明的某些方面。但是,将会理解,保卫设备22通常可以被配置为不仅保护服务器30,还保护受保护区域24中的其他计算机。此外,可以联系路由器28或区域24中其他类型的其他路由器或交换机来部署多个保卫设备。通常,保卫设备22包括通用计算机,它在软件上被编程,以执行这里所描述的功能。可替换地,保卫设备22可以以专用硬件逻辑的形式或使用硬件和软件元素的组合来实现。保卫设备可以是独立的单元,或者,它也可以与其他通信或计算设备集成在一起,所述其他通信或计算设备例如是路由器28、防火墙或另一入侵检测系统(未示出)。虽然为了简化,保卫设备在这里被示出和描述为单个的离散单元,但是保卫设备的功能实际上可以被分布在多个物理单元上,这些物理单元被配置和分布在多个不同位置上。路由器28(被标记为R1,或者也可称为“转移自路由器(divert-fromrouter)”)在第一端口35上接收来自WAN26的分组。在正常网络状况下,当路由器28接收到被寻址到服务器30的IP地址(在下文中被称为“目标地址”)的分组时,它只是经由端口39或41而将分组传递到服务器30。如图所示,路由器32和34(被标记为R2和R3)中的任意一个都能够将分组传递到服务器30。选择端口39和41中的哪个端口用于向服务器30转发流量通常由路由器28所保存的路由表来确定。图2的流程图示意性地示出了根据本发明的实施例的用于向保卫设备22转移流量的方法。在转移发起步骤50处,在检测到异常的流量状况时,路由器28被指导向保卫设备22转移想去往服务器的流量,其中所述异常的流量状况可能指示出对服务器30的DoS攻击。用于检测异常流量状况的方法和标准例如在上述美国和PCT专利申请中有所描述。异常流量特性可以被保卫设备、服务器30或区域24中的其他元件所检测,并且指示路由器28和其他网络元件开始流量转移的指令可以来自保卫设备本身或来自区域24中的另一元件。转发是通过如下方式实现的指示路由器28改变其路由表,以使寻址到服务器30的流量经由端口37而通过转移路径36被路由到保卫设备。用于实现该步骤的方法将在下文中描述。在接收到改变其路由表的指令之后,在转移步骤52处,路由器28将想去往服务器30的所有流量都转移到保卫设备22。保卫设备在分组处理阶段54处处理每个分组,以便防止恶意流量到达服务器30。例如,在分组过滤步骤56处,保卫设备22可以过滤分组,以便检测作为非法恶意流量的特性的某些特征。附加地或替换地,保卫设备可以尝试确定每个分组的源地址是真实的,还是欺骗性的。用于分组过滤和用于区分真实和非法源地址的方法在上述美国和PCT专利申请以及其他公布和专利申请中有所描述,例如2002年8月29日递交的美国专利申请10/232,993,该申请已被转让给本专利申请的受让人,并且其公开文本通过引用而被结合于此。在禁止步骤58处,保卫设备22禁止递送表现出恶意的分组。通常,保卫设备或者丢弃可疑分组,或者将它们以低优先级递送到服务器30,以使这些分组不会阻碍服务器处理已被保卫设备认证的正常流量。在分组返回步骤60处,保卫设备22将过滤后的流量经由返回路径38返回到路由器28的端口37。然后在转发步骤62处,路由器28通过前向路径40或42而经由路由器32(R2)或路由器34(R3)来转发流量。沿着从保卫设备到目标地址的路径的这个下一路由器在下文中被称为“下一跳路由器”。注意,路由器28的常规路由表在步骤50处被更改,以列出端口37,作为去往服务器30的路由。基于该路由表,当在步骤60处接收到来自保卫设备22的寻址到服务器30的分组时,路由器通常以无休止的循环形式将分组发回端口37。用于绕过这种正常的路由器行为以致使分组被转发到下一跳路由器的技术将在下文中被描述。可替换地,保卫设备22可以被直接连接到下一跳路由器的端口,但是这种配置非常昂贵,这是因为为了支持这种配置需要额外的配线和端口基础设施。图3的流程图示意性地示出了根据本发明的实施例的转移初始步骤50的细节。如上所述,在路由器28的路由表中通常执行两种改变在转移配置步骤66处,路由器28被配置为将想去往服务器30的地址的流量经由端口37转移到保卫设备22。在转发配置步骤68处,路由器被配置为将来自保卫设备22的流量经由适当的下一跳路由器(例如路由器32或34)转发到服务器30。流量转移方法通常,出于在步骤66处的流量转移的目的,保卫设备22向路由器28发布路由通告,例如使用公知的边界网关协议(BGP)的BGP通告。BGP在Rekhter等人的因特网工程任务组(IETF)的请求注释(RFC)1771(题为“ABorderGatewayProtocol4(BGP-4)”(1995))中被详细描述,其通过引用而被结合于此。该RFC和在下文中引用的其他IETFRFC可在www.ietf.org/rfc.html处获得。BGP通告致使路由器28修改其路由表,以使路径36被列为去往目标地址的最佳路径。当受保卫设备保护的网络区域通过一个或多个对等路由器(例如,如以下图4所示)而被连接到WAN26的其他区域时,BGP通告也可以被发布到对等路由器。BGP具有固有的如下附加优点BGP路由算法将在保卫设备22发生故障的情况下,自动取消去往保卫设备22的转移。通常,受保护区域24构成网络20内的自治系统(AS),它与WAN26中的其他自治系统通信。给定AS内的路由器使用内部BGP(iBGP)通告来彼此通信,并且这是保卫设备22在步骤66处发送给路由器28的通告类型。可替换地,根据保卫设备和受保护区域24内的路由器的配置,也可以使用外部BGP(eBGP)通告。为了确保保卫设备的BGP通告推翻任意先前的路由判决,保卫设备通常在其BGP通告中使用比先前通告中使用的前缀更长(更特殊的)的前缀来代表目标地址。保卫设备甚至可以在BGP宣告中使用服务器30的完整IP地址。可替换地,保卫设备22可以在设置在其BGP通告中的“权重”字段中分配高值,这将致使通告推翻先前基于具有较低权重的通告的路由判决。在步骤66处由保卫设备22发布的BGP通告致使路由器28改变其路由表,但是优选地不影响路由器32和34的路由表。为此,保卫设备在BGP通告中插入“非广告”和“非输出”团体字符串(communitystring)。包括这些字符串可防止路由器28传播该BGP通告,并因而将通告的影响限制到所需路由器。保卫设备还可以添加其他的团体字符串,例如允许系统操作者研究路由器的日志以标识由保卫设备发起的路由判决的标识字符串。流量转发在下文中描述了用于实现步骤68的多个替换性技术。通常,保卫设备22向路由器28发送指示用于转发的下一跳路由器的控制消息(例如使用BGP)。为此,保卫设备可被以用于区域24中的每个目标地址的下一跳路由器的标识来预先编程。可替换地,保卫设备可以使用自治的下一跳发现机制来确定应该用于每个目标地址的下一跳路由器。用于下一跳发现的方法将在下文中描述。这些方式使保卫设备能够动态响应于网络配置的改变。现在将描述用于在步骤68处配置路由器28的多种示例性技术1)基于目的地的策略路由(PBR-DST)这是一种静态方法,它使用由很多路由器提供的特殊策略路由(PBR)设施。这些设施允许系统操作者创建用于某种流量的特殊路由规则,这种路由规则推翻了路由器的常规路由表。在图1所示示例中,PBR被用于对路由器28编程,以将在端口37上接收到的以服务器30的IP地址作为目的地址的那些分组转发到下一跳路由器(路由器32或34)。此规则推翻了路由器28的主路由表中关于该IP地址的条目,该条目在步骤66处已被BGP通告编程为将这种流量在端口37上转发到保卫设备22。路由器28只将该PBR规则应用于它在端口37上接收到的分组。保卫设备22可以预先配置PBR规则,从而当它在步骤50(图2)处激活对于服务器30的流量的转移时,PBR转发同时起作用,而无需实时地重配置路由器28。在主要参考由Cisco系统公司(加州SanJose)提供的路由器的领域中,术语“PBR”是公知的。CiscoPBR例如在如下文献中有所描述在www.cisco.com/en/US/products/sw/iosswrel/ps1831/products_configuration_guide_chapter09186a00800c60d2.html处可获得的题为“ConfiguringPolicy-basedRouting”(2004)的文献,该文献通过引用而被结合于此。类似的设施也由其他路由器制造商提供,在某些情况下具有不同的名称。例如,由JuniperNetworks(加州Sunnyvale)提供的路由器提供了“基于过滤器的转发”(FBF),其具有与PBR类似的能力。FBF在Semeria的“FilterBasedForwarding”(2001)中有所描述,该文献在www.juniper.net/solutions/literature/white_papers/552004.pdf处可获得,该文献也通过引用被结合于此。在FBF的情况下,过滤器配置可以被用于指定服务器30的IP目的地址;路由实例配置指定被用于转发与经配置的过滤器相匹配的分组的一个或多个路由表;接口路由配置指定路由实例,该路由实例将被用于在路由器的每个端口处接收到的与过滤器相匹配的分组。在下文中将详细描述具体基于JuniperFBF的转发技术。以下列表I给出了一系列命令,这些命令可以被用于对路由器28编程以用于从保卫设备22到下一跳路由器32的流量的PBR-DST转发,如图1所示。该列表使用Cisco路由器的编程协定。在括弧<...>中的术语将被适当的参数值所取代。每一行代表一个命令,每个命令应该在后跟<ENTER>的情况下被写入到路由器接口中。列表I-用于PBR-DST的路由器编程R7200(config)#interfaceFastEthernet0/2R7200(config-if)#description<Port37>R7200(config-if)#ipaddress<IPaddressofport37><IPmaskofport37>R7200(config-if)#noipdirected-broadcastR7200(config-if)#ippolicyroute-map<PBR-nameofguarddevice22>R7200(config-if)#exitR7200(config)#ipaccess-listextended<Nameofserver30>R7200(config-ext-nacl)#permitipanyhost<IPaddressofserver30>R7200(config-ext-nacl)#exitR7200(config)#route-map<PBR-nameofguarddevice22>permit10R7200(config-route-map)#matchipaddress<Nameofserver30>R7200(config-route-map)#setipnext-hop<IPaddressofrouter32>R7200(config-route-map)#exitR7200(config)#route-map<PBR-nameofguarddevice22>permit100R7200(config-route-map)#descriptionletthruallotherpacketswithoutmodifyingnext-hop如上所述,PBR-DST是一种静态的转发方法。换句话说,一旦系统操作者已经编程出指示流量转移情况下的下一跳路由器的PBR规则,则所有经转移的分组就将通过下一跳路由器,直到PBR规则被重新编程。使用PBR的动态转发方法将在下文中有所描述。2)VPN路由和转发(VRF)本发明的某些实施例利用了由很多路由器制造商所提供的虚拟专用网(VPN)路由能力。系统操作者通常通过网络隧道协议而使用这些设施来限定共享同一物理基础设施的多个VPN。例如,Cisco路由器具有被称为VPN路由和转发(VRF)的特征,如“DesigningMPLSExtensionsforCustomerEdgeRouters”(产品公告No.1575,2003)所描述的,该产品公告可以在www.cisco.com/warp/public/cc/pd/rt/2600/prodlit/1575_pp.htm处获得并且该公告通过引用被结合于此。在题为“MultiprotocolLabelSwitchingArchitecture”(2001年1月)的IETFRFC3031中,Rosen等人详细描述了MPLS。VRF在已作必要修正的情况下可以被类似地应用于其他类型的VPN,例如经物理接口或经其他类型隧道接口的VPN服务,所述隧道接口例如是通用路由封装(GRE)或第2层隧道协议(L2TP)的隧道。很多VPN实现方式都使用虚拟网桥式的局域网,如IEEE802.1Q标准所指定的。根据该标准,VLAN标签被添加到每个以太往帧,从而限定在其上传输帧的虚拟局域网(VLAN)。在路由器28的给定端口上的每个VLAN都被路由器视为分离的虚拟端口,并且可以具有其自身的路由表,该路由表与主(本地VLAN)路由表相分离。该特征被用于本实施例。在本发明的一个实施例中,在路由器28的端口37上为由保卫设备22所保护的每个目的地(例如服务器30)或每组目的地配置唯一的VLAN。该技术在这里被称为基于目的地的VRF,或VRF-DST。为了在图1所示的系统中实现VRF-DST,在路由器28的端口37上配置两个接口●本地VLAN接口,该接口被用于经由端口35接收到的在路径36上被转移到保卫设备22的流量,如路由器28的主路由表所指定的。(在步骤66处,保卫设备22使用本地VLAN接口将BGP通告发送到发起流量转移的路由器28。)●第二VLAN接口,该接口被用于根据为该VLAN所配置的VRF表,经路径38将接收自保卫设备22的流量注入到下一跳路由器32中。注意,这是一种静态转发方法,正如PBR-DST那样。动态变量将在下文中描述。列表II提供了一系列命令,这些命令可被用于对路由器28和32编程,以实现从保卫设备22到服务器30的VRF-DST转发。与上述列表I一样,该列表使用Cisco路由器编程协定。在本示例中,端口37的本地VLAN接口被假设具有IP地址192.168.8.1,而被用于路径38上的流量的VLAN接口具有IP地址192.168.5.1。在与端口37的相应接口相同的子网上,保卫设备22被类似地配置成对路径36和38具有分离VLAN接口。连接到路径40的路由器28的端口39被假设具有IP地址192.168.250.1/24,而服务器30具有IP地址192.168.240.2/24。本地VLAN被配置为VLAN1,而VLAN5被用于从保卫设备22到路由器32的流量注入。对于系统操作者的指示以斜体字给出。列表II-用于VRF-DST的路由器编程通过来自VLAN5上的保卫设备22的BGP通告,配置路由器28上从端口39经由路由器32到服务器30的路由iproute192.168.240.0255.255.255.0192.168.5.1在路由器28上创建VRF表ipvrfGuard-vrfrd16801route-targetexport16801route-targetimport16801在路由器28上配置本地VLANinterfacefastEthernetl/0.1encapsulationdotlQ1nativedescription《VLANFORGUARD-DIVERSION》ipaddress192.168.8.1255.255.255.0noipdirected-broadcast在路由器32上配置VLAN接口InterfacefastEthernet1/0.5encapsulationdotlQ5description《VLANFORGUARD-INJECTION》ipvrfforwardingGuard-vrfipaddress192.168.5.1255.255.255.0配置从路由器32到服务器30的接口interfacefastEthernet2/0description《LINKTOSERVER》ipaddress192.168.250.1255.255.255.0在替换实施例中,可以建立多个VPN,以便允许保卫设备22选择将用于想去往服务器30的分组的路由。为此,在图1所示的系统中,在路由器28的端口37上配置了多个VLAN,其中每个VLAN对应于去往服务器30的一个不同路由。例如,VLAN5可以对应于经由路由器32去往服务器30的路径40,而VLAN6对应于经由路由器34的路径42。在这种情况下,路由器28在端口37上(至少)具有三个虚拟端口,其中每个虚拟端口具有其自己的路由表如上所述,在本地VLAN上的分组使用主路由表,而在VLAN5和VLAN6上的分组使用它们自己各自的VRF表来从保卫设备22向服务器30路由分组。路由表和接口的配置是用类似于以上表II中给出的命令来执行的。保卫设备22在动态选择用于想去往服务器30的每个分组的路由的过程中可以使用这种多VLAN设施。因此,在步骤60处(图2),保卫设备22将VLAN标签插入到它经路径38发送到路由器28的分组中,并且将VLAN值设置为5或6,以便致使路由器按需要经由路由器32或路由器34来转发分组。保卫设备22通常可以通过监控在系统20中的路由器间交换的路由协议消息,而根据网络改变状况或保卫设备可以获知的其他因素来选择VLAN标签值(并因此选择路由)。3)服务类型策略路由(ToS-PBR)IP分组传统上包括位于其头部的ToS字段。该字段最初想要允许为网络中的不同IP分组定义不同的服务等级。但是,在本实施例中,在步骤60处(图2),保卫设备22在它经路径38发送到路由器28的分组的IP头部中插入ToS字段值,以便控制这些分组的前向路由。PBR在路由器28的端口37上被配置,以便依赖于分组的ToS值来选择前向分组路由。因此,例如,路由器28上的PBR可以被编程为使在端口37上接收到的具有服务器30的目的地址并且ToS=2的分组被转发到路由器32。此外,保卫设备22可以使用ToS字段来动态选择将用于想去往服务器30的分组的路由。例如,路由器28上的PBR规则指定被寻址到服务器30的ToS=2的分组被转发到路由器32,而ToS=3的分组被转发到路由器34。与前一实施例相同,保卫设备22可以根据网络改变状况或保卫设备可以获知的其他因素来选择ToS(并因此选择路由)。4)VLAN策略路由(VLANPBR)该技术结合了上述技术(1)和(2)的方面。与技术(2)的多VPN变量相同,VLANPBR允许保卫设备22动态选择分组注入路由。在本实施例中,路由器28使用在端口37上接收到的分组的VLAN标签作为用于选择适当PBR规则的过滤标准。因此,例如,路由器可以被配置为经由路径40将VLAN5上想去往服务器30的分组转发到路由器32,而经由路径42将VLAN6上想去往服务器30的分组转发到路由器34。路由表和接口是用类似于以上列表I和II所给出的命令来配置的。在步骤60处,保卫设备22根据所需路由来选择它发送到路由器28的分组中的VLAN标签的值。5)FBF实例路由(instance-basedrouting)如上所述,JuniperFBF允许在路由器28中创建分离的路由表,以路由保卫设备22经路由38发送到路由器的流量。路由器28被用FBF规则编程,该规则指导路由器使用此分离的路由表(在下文中被称为保卫接口路由表)来路由从保卫设备22到达端口37的所有流量。保卫接口路由表被填充以来自路由器28的主路由表中的所有路由,除了由保卫设备22明确指定的那些路由之外。由保卫设备指定的路由条目被由保卫设备所插入的特殊团体字符串所标识。因此,在图1所示的示例中,保卫设备22将在保卫接口路由表中创建一个条目,该条目指示想去往服务器30的流量应该被转发到路由器32。即使当保卫设备在步骤50处修改路由器28的主路由表以将来自路由器28的想去往服务器30的所有其他流量转移到保卫设备时,该条目也将被保持。保卫设备可以使用适当的BGP通告来修改保卫接口路由表中的条目。因此,本基于FBF的技术允许保卫设备响应于网络状况或其他需求而动态修改分组路由。以下列表III提供了一系列命令,这些命令可以被用于对路由器28编程,以使用JuniperFBF来执行从保卫设备22到服务器30的分组注入。出于本示例的目的,假设路由器28的端口37具有IP地址192.168.8.16/24;路由器32和34的面向路由器28的端口分别具有IP地址192.168.240.2/24和192.168.230.2/24;并且服务器30具有IP地址192.168.240.2/24。对于系统操作者的指示以斜体字给出。列表III-用于FBF的路由器编程配置端口37interfaces{ge-0/0/0{unit0{familyinet{filter{inputguard-filter;}address192.168.8.16/24;}}}}配置到路由器32的端口39interfaces{fe-0/0/0{unit0{familyintet{address192.168.250.1/24配置到路由器34的端口41interfaces{fie-0/0/0{unit0{familyinet{address192.168.230.1/24配置端口37的过滤器,以便让想去往端口35的分组参考主路由表,而所有其他分组都由保卫接口路由表来处理filterguard-filter{term10{from{destination-port179;}thenaccept;}term20{thenrouting-instanceguard-interface-routing-table;}}配置路由实例(向路由器28添加保卫接口路由表)routing-instances{Guard-interface-routing-tableinstance-typeforwarding;routing-options{instance-importwithout-guard-announcement;auto-export;/*无路由输出}}定义实例输入策略(“without-guard-Annoucement(无保卫通告)“)policy-options{policy-statementwithout-guard-announcement{term10{from{instancemaster;/*主路由表protocolbgp;communityriverhead;/*特殊团体/*字符串}thenreject;}term20{thenaccept;}}}6)基于隧道的转发图4的框图示意性地示出了根据本发明的实施例分别用于从保卫设备22到服务器30和69的分组注入的隧道71和73的用法。隧道71和73可以使用诸如MPLS、GRE、IPIP或L2TP这样的任何本领域公知的适当网络隧道协议来限定。如上所述,MPLS在RFC3031中有所描述。GRE在题为“GenericRoutingEncapsulation”(2000)的IETFRFC2784中由Farinacci等人所描述。IPIP在题为“IPEncapsulationwithinIP”(1996)的IETFRFC2003中由Perkins所描述。这里通过引用而并入了这两个文献。如图4所示,隧道71和73分别将保卫设备22连接到路由器32和34。为了在步骤60处经由路由器28向服务器30或69注入分组,保卫设备根据所选隧道协议以合适的标签来封装分组。在每个分组中的标签标识出分组将穿越的隧道。路由器28被配置为支持所选协议,从而在接收到经封装的分组时,路由器28只是沿着预先配置的标签交换路径(即通过适当的隧道)来转发分组,而无需参考其自己的路由表或执行任何其他的路由判决。在接收到经封装的分组时,路由器32或34将分组解封装,然后根据分组的目的IP地址,将其传递到服务器30或69。注意,在很多网络中,可建立多个从保卫设备22通向服务器30的隧道。在图1所示示例中,例如,可以沿着去往路由器32的路径40建立一个隧道,并沿着去往路由器34的路径42建立另一隧道。在步骤60处,保卫设备22随后可以响应于网络状况或其他因素的变化而动态选择隧道之一。受保护网络中的集中转移图5的框图示意性地示出了根据本发明的实施例的网络的受保护区域70,在该区域中,对等路由器74被配置以向保卫设备22转移所选流量。受保护区域通常被配置为经由对等路由器74与其他自治系统72通信的自治系统(AS)。例如,受保护区域70可以包括校园或企业网,或者由因特网服务提供商(ISP)维护的接入网络,而系统72是诸如因特网之类的WAN的一部分或者属于其他实体。但是,更一般而言,对等路由器74可以包括被耦合以接收来自网络给定区域外部的通信流量并将流量传送到区域内的内部路由器(以及其他网络元件)的一个或多个路由器的任意群组。在正常的流量状况下,当对等路由器74接收到来自系统72的想去往服务器30的流量时,对等路由器经由区域70中的内部路由器76、77来转发流量,使流量通过区域70而到达边缘路由器80。然后,边缘路由器可能经由位于操作服务器的用户的房屋内的外部路由器82而将流量转发到服务器30。当需要流量转移时,例如在服务器30上有可疑的DDoS攻击期间,区域70内的转移自路由器78将想去往服务器30的流量转移到保卫设备22。(通常,转移自路由器也充当用于正常流量的中间路由器之一。)但是,在本实施例中,还必须确保由对等路由器74接收到的想去往服务器30的所有流量都被转发到转移自路由器78,而不会经由另一路径,例如通过路由器77,而绕过转移自路由器。虽然保卫设备22可以通过在步骤50(图2)处将BGP通告发送到区域70中的所有路由器来实现这种结果,但是,这种通告会带来相当大的开销,并且希望将BGP通告限制到较少量的路由器。为此,在本实施例中,经由转移自路由器78在对等路由器74和保卫设备22之间建立隧道84。任意合适的隧道协议都可以被用于此目的,包括上述MPLS、GRE、IPIP和L2TP协议。当向保卫设备22的转移被调用时,对等路由器利用适当的隧道标签来封装想去往服务器30的分组,并且将封装后的分组通过隧道84进行转发。这些隧道穿过中间路由器76,这些中间路由器76只是沿着预先定义的标签交换隧道路径来转发经隧道封装的分组,而无需参考其自己的路由表。如MPLS所定义的,路由器78可以被配置为出口代理,这意味着该路由器对经隧道84发送的分组进行解封装,并在隧道末端将没有封装的原始分组递送到保卫设备22。这种代理特征使保卫设备自身无需支持隧道协议。当保卫设备22确定有必要进行分组转移时,它通过向对等路由器74发送iBGP通告来激活转移(图2中的步骤50)。该通告包括非广告和非输出字符串,从而使对等路由器不会将路由改变传播到区域70中的任意其他的路由器。iBGP通告指示路由器74想去往服务器30的所有流量都应该经由隧道84被转发。(不一定要向转移自路由器78发送iBGP通告,因为作为出口代理的转移自路由器在无需执行其自己的路由判决的情况下将通过隧道84接收的所有分组传递到保卫设备22。)如先前所述,由保卫设备22在步骤50处发送的iBGP通告通常通过在步骤50处的通告中使用比原始通告更长的IP地址前缀,来推翻用于去往服务器30的分组的常规路由的原始BGP通告。当在阶段54处处理分组之后,保卫设备22在步骤60(图2)处将分组传送回路由器78。在这种情况下(不同于先前实施例),路由器78的主路由表未被保卫设备22所修改。因此,路由器78将经由先前确定的常规路由将保卫设备22所注入的分组传递到服务器30。可替换地,保卫设备22可以被耦合以经由绕过路由器78的另一路由,例如直接经由路由器80,将处理后的分组传送到服务器30。此外,可替换地或可附加地,保卫设备22可以(如果效率较低的话)在步骤50处发送如下的BGP通告该BGP通告指导所有路由器74、76向保卫设备22转发想去往服务器30的流量。在这种情况下,必须确保路由器78和80将仍旧向服务器30转发由保卫设备注入的流量,而不管BGP通告怎样。一种用于实现这种结果的方法是如上述图4的实施例那样使用从保卫设备22到路由器80或路由器82的隧道。从保卫设备22通向服务器30的隧道也可以与经由隧道84的转移协作使用。虽然服务器30在图4中被示为位于区域70的AS外部,但是上述方法可以类似地应用于想去往AS内部节点的流量的转移。第2层拓扑中的流量转移图6的框图示意性地示出了根据本发明的另一实施例的网络的受保护区域100。在该拓扑中,转移自路由器28经由第2层交换机104,例如以太网交换机,而被连接到LAN102中的其他元件。LAN还包含保卫设备22和下一跳路由器108和110,它们被耦合以将流量转发到服务器30。在第3层级别上,LAN102的所有元件都属于同一IP子网。当保卫设备22指示路由器28激活想去往服务器30的分组的转移时,被转移分组通过交换机104而经由路径36被传送到保卫设备。用于注入经保卫设备22处理过的流量的路径38通过交换机104传回,而一般不是如上述实施例那样通过路由器28传回。因此,在第2层拓扑中,一般无需在路由器28上配置特殊的过滤或其他路由规则来处理由保卫设备返回的用于转发到服务器30的分组。相反,保卫设备22解析路由器108或110的MAC地址,然后经由交换机104将分组转发到适当的MAC地址。保卫设备可以利用任意本领域公知的合适方法来确定分组将被转发到的MAC地址。例如,出于这个目的,保卫设备可以在LAN102上发布地址解析协议(ARP)查询。保卫设备22还可以被配置为保护LAN102上的网络元件,例如服务器112。在这种情况下,保卫设备和服务器112属于同一IP子网。因此,保卫设备可以通过交换机104将流量直接转发到服务器,而无需进一步的IP转发。下一跳发现可以使用多种不同方法来告知保卫设备22将被用于向服务器30转发流量的路由。一种方法是简单地利用关于保卫设备想要保护的所有网络元件的路由信息来预先编程保卫设备和/或路由器28。这种信息被用于在步骤60和62(图2)处转发分组。可替换地,在本发明的某些实施例中,保卫设备22被配置为自动获知被用于向服务器30和其他网络元件转移分组的下一跳路由器的身份。通常,保卫设备使用由网络20(图1)中或受保护区域70(图4)中的路由器所使用的路由协议所提供的信息,所述路由协议例如是BGP或内部网关协议(IGP)。常见IGP包括路由信息协议(RIP)、开放式最短路径优先(OSPF)和中间系统到中间系统协议(IS-IS)。由路由协议提供给转移自路由器28(图1)或路由器78(图4)的路由信息指示出去往服务器30的一个或多个可能的下一跳路由器的IP地址。因此,如果保卫设备22所看到的路由信息与转移自路由器所看到的路由信息相同,则可以确定在每种情况中使用的下一跳路由器。在某些情况下,由IGP提供的内部路由信息是足够的,而在其他情况下,依赖于保卫设备22和服务器30是否是同一AS的一部分,还需要BGP信息。为了从转移自路由器接收BGP信息,保卫设备22作为路由器的iBGP邻居就足够了。然后,如BGP协定所规定的,转移自路由器将它接收到的所有BGP通告传播到保卫设备。另一方面,IGP不是以这种方式自动传播的。因此,为了共享转移自路由器接收到的IGP通告,保卫设备22可以通过隧道被连接到与转移自路由器的下一跳路由器相同的下一跳路由器。如图4所示,隧道71和73可以被用于此目的。经由这些隧道连接,保卫设备将接收到的关于下一跳路由器32和34的IGP路由信息将与路由器28将接收到的IGP路由信息相同,所述路由器28是通过物理连接而连接到路由器32和34的。如上所述,当服务器30与转移自路由器不属于同一AS时,保卫设备22可能需要IGP和BGP信息两者,以便确定用于向服务器转发流量的下一跳路由器。在这种情况下,保卫设备收集BGP信息以获知从其自己的AS到服务器30的一个(或多个)路由,并且使用IGP信息来获知连接这些外部路由的AS内的路由。保卫设备将这些多条信息组合起来,以便识别下一跳路由器。当在下一跳获知过程中收集所需IGP和BGP信息时,保卫设备22一般避免通告其自身的任何路由信息或通过隧道71和73接收除路由通告之外的任何流量。为此,保卫设备22通常被配置为不重新分配它从iBGP中获知的任何信息,并且隧道71和73被分配以很高的路由代价,从而使路由器不会尝试通过它们来路由流量。上述方法在转移自路由器使用自动路由协议来执行其路由判决时很有用。可替换地或可附加地,保卫设备22可以直接查询转移自路由器,以确定去往服务器30(以及去往其他受保护的网络元件)的路由上的下一跳。无论是使用自动路有协议还是使用静态路由来配置转移自路由器,都可以使用这种查询。多种不同的管理协议可以被用于查询转移自路由器。例如,保卫设备22可以使用Telnet或安全作业控制外壳(SecuredShell,SSH)连接向路由器发送查询。在这种情况下,保卫设备发送命令“showiproute<targetIPaddress>”,从而致使转移自路由器用去往目标IP地址的下一跳路由器的IP地址做出响应。可替换地,保卫设备可以使用简单网络管理协议(SNMP)进行查询,或者可以使用远程作业控制外壳(RemoteShell,RSH)或远程命令(RCMD)协议来请求从路由器获取下一跳信息,而无需像Telnet或SSH所要求的那样与路由器建立远程会话。虽然以上在防止目标地址接收恶意流量的上下文中描述了用于流量转移的方法和设备,但是本发明的原理可以类似地应用于流量转移和过滤的其他应用。例如,在以检测数据流、计费、鉴识分析和规律实施以及流量工程中的异常为目的的流量分析中,转移是很有用的。转移在这些应用中的优点在于用于分析流量的计算机只接收流量中与分析有关的部分,并且不用承担对给定的网络链路上的所有流量进行过滤的负担。换句话说,转移允许正在进行分析的计算机(例如保卫设备22)以较低的通信带宽工作,并且将其资源集中于手头正在进行的特定分析任务。这种转移还可以用于允许正在进行分析的计算机循环地逐个处理多个不同的流。为此,转移路由器(例如路由器28)可以在不同的流之间循环,开始时在一定时间段内,将第一流转移到正在进行分析的计算机,然后停止第一流的转移并开始在其分配的时间段内进行第二流的转移,以此类推而完成整个循环。因此将会意识到,上述实施例是以示例方式被引用的,并且本发明并不局限于上述已被具体示出和描述的实施例。相反,本发明的范围包括本领域技术人员在阅读了以上描述之后想到的并且未在现有技术中被公开的上述各种特征的组合和子组合,及其变化和修改。权利要求1.一种用于通信的方法,包括在网络的一个区域中耦合一个或多个对等路由器以接收来自所述区域外部的通信流量,该流量包括想去往目标地址的分组;通过经由所述网络的所述区域内的一个或多个内部路由器的一个或多个第一路由,将所述分组转发到所述目标地址;建立通过所述网络的一个或多个隧道,所述隧道从所述对等路由器经由所述网络的所述区域内的转移路由器的一个或多个第一端口而去往所述转移路由器的第二端口;将流量处理器耦合到所述转移路由器的所述第二端口;响应于所述流量的特性,指导所述一个或多个对等路由器通过所述一个或多个隧道,而不是通过所述第一路由来转发想去往所述目标地址的分组;在所述流量处理器处,处理经由所述转移路由器而通过所述隧道被转发的分组;以及将来自所述流量处理器的经处理的分组中的至少一些传送到所述目标地址。2.如权利要求1所述的方法,其中指导所述一个或多个对等路由器的步骤包括检测关于想去往所述目标地址的流量中的至少一些具有恶意来源的指示,并且响应于该指示来指导所述一个或多个对等路由器。3.如权利要求2所述的方法,其中处理所述经转移的分组的步骤包括过滤所述经转移的分组,以便识别出具有恶意来源的分组,并且禁止递送识别出的分组。4.如权利要求1到3中的任意一个所述的方法,其中指导所述一个或多个对等路由器的步骤包括从所述流量处理器向所述一个或多个对等路由器发送边界网关协议(BGP)通告。5.如权利要求1到3中的任意一个所述的方法,其中指导所述一个或多个对等路由器的步骤包括向所述一个或多个对等路由器发送指令,而不需修改所述内部路由器的路由表。6.如权利要求1到3中的任意一个所述的方法,其中所述转移路由器充当所述第一路由中的至少一个路由上的所述内部路由器之一。7.如权利要求1到3中的任意一个所述的方法,其中传送所述经处理的分组中的至少一些的步骤包括经由所述转移路由器将所述经处理的分组中的至少一些传递到所述目标地址。8.如权利要求1到3中的任意一个所述的方法,其中传送所述经处理的分组中的至少一些的步骤包括在去往所述目标地址的路径上建立介于所述流量处理器和边缘路由器之间的另一隧道,并且通过该另一隧道传送所述经处理的分组中的至少一些。9.一种用于通信的方法,包括耦合第3层分组路由器的第一端口以接收来自网络的通信流量,该流量包括想去往目标地址的分组,所述目标地址可经由所述路由器的第二端口来访问;在所述路由器处,经由所述路由器的第三端口将所述想去往目标地址的分组转移到流量处理器;在所述流量处理器处处理经转移的分组,并且将经处理的分组经由所述第三端口而返回所述路由器;以及在所述路由器处,将来自所述第三端口的经处理的分组传送到所述第二端口,以用于递送到所述目标地址。10.如权利要求9所述的方法,其中转移所述分组的步骤包括检测关于想去往所述目标地址的流量中的至少一些具有恶意来源的指示,并且响应于该指示来转移所述分组。11.如权利要求10所述的方法,其中处理所述经转移的分组的步骤包括过滤所述经转移的分组,以便识别具有恶意来源的分组,并且禁止递送识别出的分组。12.如权利要求9所述的方法,其中转移所述分组的步骤包括从所述流量处理器向所述路由器发送边界网关协议(BGP)通告,其指导所述路由器转移所述分组。13.如权利要求12所述的方法,其中发送所述BGP通告的步骤包括在所述BGP通告中插入“非广告”和“非输出”字符串中的至少一个。14.如权利要求9所述的方法,其中转移所述分组的步骤包括建立通过所述网络的隧道,该隧道从对等路由器到所述第3层分组路由器的所述第一端口;配置所述第3层分组路由器,以将其通过所述隧道接收到的分组转发到所述第三端口;以及指导所述对等路由器通过所述隧道来转发想去往所述目标地址的分组。15.如权利要求14所述的方法,其中建立所述隧道的步骤包括建立多个隧道,所述多个隧道从位于网络的一个区域的边缘处的对等路由器到所述区域内的第3层分组路由器。16.如权利要求9到15中的任意一个所述的方法,其中返回所述经处理的分组的步骤包括在所述流量处理器处选择一条经由所述第3层分组路由器去往所述目标地址的路径,并且引导所述第3层分组路由器将所述经处理的分组沿着所选路径传送到下一跳路由器。17.如权利要求16所述的方法,其中选择所述路径的步骤包括识别出通过各个下一跳路由器而去往所述目标地址的多条路径,并且选择出所述经处理的分组将通过其被传送的所述下一跳路由器之一。18.如权利要求17所述的方法,其中选择所述下一跳路由器之一的步骤包括在所述流量处理器处检测所述网络中在所述路由器的第二端口和所述目标地址之间的改变,并且响应于该改变,选择出将通过其将所述经处理的分组传送到所述目标地址的所述下一跳路由器中的另一个下一跳路由器。19.如权利要求16所述的方法,其中选择所述路径的步骤包括在所述流量处理器处接收来自所述第3层分组路由器的路由信息,并且基于所述路由信息来识别所述路径。20.如权利要求19所述的方法,其中接收所述路由信息的步骤包括根据自动路由协议,接收由所述网络中的路由器所产生的通告。21.如权利要求20所述的方法,其中接收所述通告的步骤包括在所述流量处理器和所述下一跳路由器之间建立通过所述网络的至少一个隧道,并且响应于所述至少一个隧道来接收所述通告。22.如权利要求19所述的方法,其中接收所述路由信息的步骤包括使用管理协议来查询所述第3层分组路由器。23.如权利要求16所述的方法,其中引导所述路由器的步骤包括建立通过所述网络的从所述流量处理器经由所述路由器而去往所述下一跳路由器的隧道,并且通过所述隧道来传递所述分组。24.如权利要求9到15中的任意一个所述的方法,其中传送所述经处理的分组的步骤包括利用关于在所述第三端口上由所述路由器接收到的分组的转发规则来对所述路由器编程以便推翻所述路由器的主路由表,并且响应于所述转发规则来转发所述经处理的分组。25.如权利要求24所述的方法,其中对所述路由器编程的步骤包括调用策略路由(PBR)。26.如权利要求24所述的方法,其中对所述路由器编程的步骤包括调用基于过滤器的转发(FBF)。27.如权利要求24所述的方法,其中对所述路由器编程的步骤包括配置所述路由器,以响应于所述经处理的分组中的服务类型(ToS)字段来应用所述转发规则,并且其中传送所述经处理的分组的步骤包括设置所述分组中的ToS字段的值,以便致使所述转发规则被调用。28.如权利要求9到15中的任意一个所述的方法,其中传送所述经处理的分组的步骤包括将虚拟专用网(VPN)指定添加到所述经处理的分组,并且其中传送所述经处理的分组的步骤包括利用VPN路由表对所述路由器编程,并且响应于所述VPN路由表来转发所述经处理的分组。29.如权利要求28所述的方法,其中添加所述VPN指定的步骤包括将虚拟局域网(VLAN)标签添加到所述经处理的分组。30.如权利要求29所述的方法,其中添加所述VLAN标签的步骤包括定义多个对应于去往所述目标地址的不同路由的多个VLAN,并且其中添加所述VLAN标签的步骤包括选出所述路由之一,并且设置所述VLAN标签的值以指定所述路由中的所选的那个路由。31.一种用于通信的方法,包括耦合第3层分组路由器的第一端口以接收来自网络的通信流量,该流量包括想去往目标地址的分组;将所述第3层分组路由器的第二端口耦合到所述目标地址可通过其被访问的子网;经由所述子网中的第2层交换机将想去往所述目标地址的分组转移到所述子网上的流量处理器;在所述流量处理器处处理所述经转移的分组,并将所述经处理的分组返回到所述第2层交换机;以及将所述经处理的分组从所述第2层交换机传送到所述目标地址。32.如权利要求31所述的方法,其中转移所述分组的步骤包括检测关于想去往所述目标地址的流量中的至少一些具有恶意来源的指示,并且响应于该指示来转移所述分组。33.如权利要求32所述的方法,其中处理所述经转移的分组的步骤包括过滤所述经转移的分组,以便识别出具有恶意来源的分组,并且禁止递送识别出的分组。34.如权利要求31到33中的任意一个所述的方法,其中所述目标地址位于所述子网中。35.如权利要求31到33中的任意一个所述的方法,其中所述目标地址位于所述子网外部,并且其中传送所述经处理的分组的步骤包括将所述经处理的分组从所述第2层交换机传递到所述子网中的另一路由器,并且将所述经处理的分组从所述另一路由器路由到所述目标地址。36.一种用于通信的装置,包括第3层分组路由器,其至少包括第一、第二和第三端口,其中所述第一端口被耦合以接收来自网络的通信流量,该流量包括想去往目标地址的分组,所述目标地址可经由所述路由器的第二端口来访问;以及耦合到所述路由器的所述第三端口的流量处理器,该流量处理器适合于致使所述路由器将想去往所述目标地址的分组转移到所述第三端口,并且还适合于处理经转移的分组,以及将经处理的分组经由所述第三端口返回到所述路由器,以便致使所述路由器将经处理的分组从所述第三端口传送到所述第二端口,以用于递送到所述目标地址。37.如权利要求36所述的装置,其中所述流量处理器适合于致使所述路由器响应于如下指示来转移所述分组所述指示指出想去往所述目标地址的流量中的至少一些具有恶意来源。38.如权利要求37所述的装置,其中所述流量处理器适合于过滤所述经转移的分组,以便识别出具有恶意来源的分组,并且禁止递送识别出的分组。39.如权利要求36所述的装置,其中所述流量处理器适合于向所述路由器发送指示所述路由器转移所述分组的边界网关协议(BGP)通告。40.如权利要求39所述的装置,其中所述BGP通告包括“非广告”和“非输出”字符串中的至少一个。41.如权利要求36所述的装置,还包括对等路由器,该对等路由器通过穿过所述网络的隧道而被耦合到所述第3层分组路由器的所述第一端口,其中所述流量处理器适合于指导所述对等路由器通过所述隧道来转发想去往所述目标地址的分组,并且其中所述第3层分组路由器被配置为将其通过所述隧道接收到的分组转发到所述第三端口。42.如权利要求41所述的装置,其中所述对等路由器是位于网络的一个区域的边缘处的多个对等路由器之一,这些对等路由器分别通过多个隧道而被耦合到所述区域内的所述第3层分组路由器。43.如权利要求36到42中的任意一个所述的装置,其中所述流量处理器适合于选出一条经由所述第3层分组路由器去往所述目标地址的路径,并且引导所述第3层分组路由器将所述经处理的分组沿着所选路径传送到下一跳路由器。44.如权利要求43所述的装置,其中所述流量处理器适合于识别穿过各个下一条路由器而去往所述目标地址的多个路径,并且选出所述经处理器的分组将通过其被传递的所述下一跳路由器之一。45.如权利要求44所述的装置,其中所述流量处理器适合于检测所述网络中在所述路由器的第二端口和所述目标地址之间的改变,并且响应于该改变,选出所述经处理器的分组将通过其被传送到所述目标地址的所述下一跳路由器中的另一个下一跳路由器。46.如权利要求43所述的装置,其中所述流量处理器被耦合以接收来自所述第3层分组路由器的路由信息,并且所述流量处理器适合于基于所述路由信息来识别所述路径。47.如权利要求46所述的装置,其中由所述流量处理器接收到的路由信息包括由所述网络中的路由器根据自动路由协议产生的通告。48.如权利要求47所述的装置,其中所述流量处理器被通过所述网络的至少一个隧道耦合到所述下一跳路由器,并且所述流量处理器适合于响应于所述至少一个隧道来接收所述通告。49.如权利要求46所述的装置,其中所述流量处理器适合于通过使用管理协议查询所述第3层分组路由器来接收所述路由信息。50.如权利要求43所述的装置,其中所述流量处理器被通过所述网络经由所述路由器的隧道耦合到所述下一跳路由器,并且所述流量处理器适合于引导所述第3层分组路由器通过所述隧道来传送所述经处理的分组。51.如权利要求36到42中的任意一个所述的装置,其中所述路由器被编程为根据转发规则来转发所述经处理的分组,所述转发规则推翻了所述路由器的主路由表。52.如权利要求51所述的装置,其中所述路由器是利用策略路由(PBR)来编程的。53.如权利要求51所述的装置,其中所述路由器是利用基于过滤器的转发(FBF)来编程的。54.如权利要求51所述的装置,其中所述路由器被配置为响应于所述经处理的分组中的服务类型(ToS)字段来应用所述转发规则,并且其中所述流量处理器适合于设置所述经处理的分组中的ToS字段的值,以便致使所述转发规则被调用。55.如权利要求36到42中的任意一个所述的装置,其中所述流量处理器适合于将虚拟专用网(VPN)指定添加到所述经处理的分组,并且其中所述路由器被利用VPN路由表来编程,并且响应于所述VPN指定而根据所述VPN路由表来转发所述经处理的分组。56.如权利要求55所述的装置,其中所述VPN指定包括虚拟局域网(VLAN)标签。57.如权利要求56所述的装置,其中所述VLAN是对应于去往所述目标地址的不同路由的多个VLAN之一,并且其中所述流量处理器适合于选择所述路由之一,并且设置所述VLAN标签的值,以指定所述路由中的所选的那个路由。58.一种用于通信的装置,包括在网络的一个区域中的一个或多个对等路由器,这些对等路由器被耦合以接收来自所述区域外部的通信流量,该流量包括想去往目标地址的分组;在所述网络的所述区域中的一个或多个内部路由器,这些内部路由器被耦合以接收来自所述一个或多个对等路由器的分组,并且将所述分组通过一个或多个第一路由转发到所述目标地址;在所述网络的所述区域内的转移路由器,该转移路由器包括一个或多个第一端口和一个第二端口,其中所述第一端口通过穿过所述网络的一个或多个隧道被耦合到所述对等路由器,并且所述转移路由器被配置为将其通过所述一个或多个隧道接收到的分组传递到所述第二端口;耦合到所述转移路由器的所述第二端口的流量处理器,并且所述流量处理器适合于响应于所述流量的特性指导所述一个或多个对等路由器通过所述一个或多个隧道,而不是通过所述第一路由来转发想去往所述目标地址的分组,以及处理经由所述转移路由器通过所述隧道被转发的分组,以及将经处理的分组中的至少一些传送到所述目标地址。59.如权利要求58所述的装置,其中所述流量处理器适合于指导所述一个或多个对等路由器响应于关于想去往所述目标地址的流量中的至少一些具有恶意来源的指示而通过所述一个或多个隧道来转发所述分组。60.如权利要求59所述的装置,其中所述流量处理器适合于过滤所述经转移的分组,以便识别出具有恶意来源的分组,并且禁止递送识别出的分组。61.如权利要求58到60中的任意一个所述的装置,其中所述流量处理器适合于通过向所述一个或多个对等路由器发送边界网关协议(BGP)通告,来指导所述一个或多个对等路由器通过所述一个或多个隧道来转发所述分组。62.如权利要求58到60中的任意一个所述的装置,其中所述流量处理器适合于指导所述一个或多个对等路由器通过所述一个或多个隧道来转发所述分组,而无需修改所述内部路由器的路由表。63.如权利要求58到60中的任意一个所述的装置,其中所述转移路由器被耦合以充当所述第一路由中的至少一个路由上的所述内部路由器之一。64.如权利要求58到60中的任意一个所述的装置,其中所述流量处理器适合于经由所述转移路由器将所述经处理的分组中的至少一些传送到所述目标地址。65.如权利要求58到60中的任意一个所述的装置,其中所述流量处理器适合于通过在所述流量处理器和路径上的边缘路由器之间的另一隧道将所述经处理的分组中的至少一些传送到所述目标地址。66.一种用于通信的装置,包括第2层交换机,该交换机位于可通过其访问目标地址的子网中;第3层分组路由器,其包括第一和第二端口,其中所述第一端口被耦合以接收来自网络的通信流量,该流量包括想去往所述目标地址的分组,并且所述第二端口被耦合到所述第2层交换机;以及流量处理器,该流量处理器适合于致使所述第3层分组路由器经由所述第2层交换机将想去往所述目标地址的分组转移到所述流量处理器,并且该流量处理器还适合于处理经转移的分组,并将经处理的分组返回到所述第2层交换机,以便致使所述第2层交换机将所述经处理的分组传送到所述目标地址。67.如权利要求66所述的装置,其中所述流量处理器适合于指导所述第3层分组路由器响应于关于想去往所述目标地址的流量中的至少一些具有恶意来源的指示而转移所述分组。68.如权利要求67所述的装置,其中所述流量处理器适合于过滤所述经转移的分组,以便识别出具有恶意来源的分组,并且禁止递送识别出的分组。69.如权利要求66到68中的任意一个所述的装置,其中所述目标地址位于所述子网中。70.如权利要求66到68中的任意一个所述的装置,还包括位于所述子网的另一路由器,其中所述目标地址位于所述子网外部,并且其中所述第2层交换机被耦合以将所述经处理的分组传递到所述子网中的另一路由器,并且其中所述另一路由器适合于将所述经处理的分组路由到所述目标地址。71.一种计算机软件产品,该计算机软件产品由计算机与至少包括第一、第二和第三端口的第3层分组路由器协作使用,其中所述第一端口被耦合以接收来自网络的通信流量,该流量包括想去往目标地址的分组,该目标地址可经由所述路由器的第二端口来访问,并且所述计算机被耦合到所述第三端口,所述产品包括;存储有计算机指令的计算机可读介质,所述指令在被所述计算机所读取时,致使所述计算机指导所述路由器将想去往所述目标地址的分组转移到所述第三端口,并且致使所述计算机处理经转移的分组,以及将经处理的分组经由所述第三端口返回到所述路由器,以便致使所述路由器将经处理的分组从所述第三端口传送到所述第二端口,以用于递送到所述目标地址。全文摘要一种用于通信的方法,包括耦合第3层分组路由器(28)的第一端口(35)以接收来自网络(26)的通信流量,该流量包括想去往目标地址(30)的分组,所述目标地址可经由路由器的第二端口(39、41)来访问。在路由器处,想去往目标地址的分组经由路由器的第三端口(37)被转移到流量处理器(22)。经转移的分组在流量处理器处被处理,并且经处理的分组经由第三端口被返回到路由器。在路由器处,经处理的分组被从第三端口传送到第二端口,以用于递送到目标地址。文档编号H04L12/28GK1802641SQ200480008508公开日2006年7月12日申请日期2004年4月8日优先权日2003年4月9日发明者阿纳·布雷姆列尔巴尔,翰克·奴思贝彻尔,洛伊·赫尔莫尼,丹·图伊图申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1