在自治系统中构造和实现备用路径的制作方法

文档序号:7640433阅读:144来源:国知局
专利名称:在自治系统中构造和实现备用路径的制作方法
技术领域
本发明一般地涉及在自治系统中构造和实现备用路径,并且涉及管理 自治系统中数据的转发。
背景技术
这一部分中描述的方法可以实行,但是并不一定是先前已想到或已实 行的方法。因此,除非这里另有指明,否则这一部分中描述的方法并不是 本申请中权利要求的现有技术,也不因为被包括在这一部分中就被承认是 现有技术。在诸如因特网之类的计算机网络中,数据的分组根据各种路由协议之 一,经由包括链路(诸如电话线或光线路之类的通信路径)和节点(例如 沿着与其相连的多条链路中的一条或多条来引导分组的路由器)在内的元件的网络被从源发送到目的地。在例如互联网中使用的一种路由协议是边界网关协议(BGP) 。 BGP 被用于在包括受制于共同的管理员并共享共同的路由策略的网络的自治系 统(AS)之间路由数据。BGP路由器例如利用允许自治系统间路由的传 输控制协议(TCP)在连接会话期间交换完全的路由信息。所交换的信息 包括各种属性,其中包括下一跳属性。例如,在BGP路由器例如以IP地 址前缀的形式向网络通告连接的情况下,下一跳属性包括用于到达BGP路 由器的IP地址。第一 AS中的边缘或边界BGP路由器经由外部BGP (eBGP)与第二 AS中的eBGP对等体通信。此外,AS内的BGP路由器利用内部BGP (iBGP)来交换可达性信息。由于以这种方式可通告非常大量的路由,因 此通常设置一种包括路由反射器(route reflector)的额外网络组件,其与 每个BGP路由器建立会话,并且向每个其他BGP路由器分发可达性信息。各个AS中的边界路由器可利用eBGP向彼此通告从它们可达的前缀 (网络目的地),这些通告携带着诸如AS路径和BGP团体属性之类的信 息,其中AS路径指示出路由通告已经经过的AS,其中包括通告方边界路 由器自身所处的AS, BGP团体属性指示出通告将被传播的方式。例如, 如果接收到具有团体属性No-Advertise的eBGP通告,则接收通告的边界 路由器不将路由信息通告到任何其对等体,包括其AS中的其他路由器。 当路由被在内部通告时,包括了诸如本地优选和下一跳字段之类的额外信 息。本地优选属性设置该特定路由(例如针对给定的前缀集合)的要使用 的优选值,以便在有多条路由可用于到达AS中的其他边界路由器的情况 下它们将选择具有最高本地优选的路由。下一跳属性提供了用于AS中的 边界路由器和其eBGP对等体之间的链路的IP地址。为了进一步减少 iBGP消息的量,路由反射器可以只将前往给定目的地的最佳路径通告给 AS中的所有边界路由器。因此,所有的边界路由器将会把前往给定目的 地的流量转发到最佳路径通告中标识的边界路由器。AS内分组的转发于 是可以简单地使用下文更详细描述的内部网关协议(IGP),其中IGP转 发表将确保去往最终目的地的分组将在自治系统内被朝着适当的边界路由 器转发。或者,接收传入的分组的入口边界路由器可将分组隧传到适当的 出口边界路由器,也就是说例如利用IP或MPLS隧道来将分组封装到目 的地出口边界路由器。分组随后在出口边界路由器处被解封,并根据分组 目的地头部被转发。BGP能够支持多种地址类型,例如互联网协议版本4 (IPv4)、互联 网协议版本6 (IPv6)等等,并且每类地址是利用地址族标识符(AFI)和 后续地址族标识符(SAFI)来标识的。经由BGP路由可达的目的地,例 如其IP地址由一个IP前缀表示的网络组件,被称为BGP中的网络层可达 性信息(NLRI)。BGP中VPN的一种实现是BGP/MPLS VPN, BGP/MPLS VPN是本领 域的技术人员公知的,并且例如在万维网的域"ietf.org"中的目录"rfc" 的文件"rfc2547.txt"中的"BGP/MPLS VPN"中有所描述,该文件的全部内容通过引用被结合于此,就好像在这里完全公开了一样。总之,MPLS被用于在VPN站点之间转发VPN分组,而BGP被用于在VPN站 点之间分发VPN路由。在每个AS内,路由协议一般包括内部网关协议(IGP),例如链路状 态协议,比如开放最短路径优先(OSPF)或中间系统-中间系统(ISIS) 。链路状态协议依赖于驻留在每个节点处的路由算法。网络上的每个节 点在整个网络中通告去往相邻节点的链路,并且提供与每个链路相关联的 成本,该成本可以基于诸如链路带宽或延时之类的任何适当的度量并且一 般被表达为整数值。链路可以具有非对称成本,也就是说,沿着链路的方 向AB上的成本可以不同于方向BA上的成本。基于所通告的链路状态分 组(LSP)形式的信息,每个节点构造作为整个网络拓扑的图的链路状态 数据库(LSDB),并且一般根据该数据库,基于诸如最短路径优先(SPF)算法之类的适当算法来构造去往每个可用节点的单个最优路由。 结果,构造出了 "生成树"(SPT),其以该节点为根,并且示出了去往 每个可用目的地节点的最优路径,其中包括中间节点。SPF的结果被存储 在路由信息库(RIB)中,并且基于这些结果,转发信息库(FIB)或转发 表被更新,以适当地控制分组的转发。当发生网络变化时,代表该变化的 LSP被每个邻近该变化的节点流播过网络,每个接收到LSP的节点将其发 送到每个邻近节点。结果,当前往目的地节点的数据分组到达节点时,节点识别去往该目 的地的最优路由,并将分组转发到沿着该路由的下一节点。下一节点重复 该步骤,依此类推。在发生域内(例如IGP)和域间(例如BGP)网络组件故障的情况下 使分组丢失最小化是非常重要的。例如,在域内链路故障的情况下,ISP 使用各种技术来迅速地对故障作出反应,同时发生收敛,其中包括由其他 层来处理故障或者实现快速重路由技术,例如2003年1月9日提交的 Kevin Miles等人的题为"Method and Apparatus for Constructing a Backup Route in a Data Communications Network"的共同未决的专利申请No.10/340,371 ( Miles 等人)中描述的那类技术,该申请的全部内容通过 弓I用结合于此用于全部目的,就好像在这里完全阐述了一样。在域间故障的情况下,例如AS之间的对等链路的故障的情况下,或 者在BGP/MPLS VPN的情况下是BGP/MPLS VPN服务提供商和客户站点 之间的链路发生故障的情况下,收敛可能花费若干秒。 一般,在这些情况 下,附接到发生故障的eBGP对等链路的边界路由器通告目的地不能通过 故障链路达到的新LSP,以及指示出目的地不可达的iBGP撤回消息。已 经建议了用于通过减少故障之后交换的BGP消息的数目来縮短故障情况下 BGP收敛时间的方法。此夕卜,Gummadi等人在"Improving the reliability of Internet paths with One-hop Source Routing" , USENIX OSDI'04, 2004中 已经提议了实现源路由技术。但是,这些技术仍然具有长到不可接受的恢 复时间。另——禾中提议的技术在International Conference on Networks, pages 25-30, IEEE, September 2003中的"Fast Scoped Rerouting for BGP"中有所 描述,其要求BGP路由器在故障之后找出前往目的地的替换路径,其结果 是恢复时间仍然很长。发明内容以上背景技术部分中所确定的需求以及从以下描述中将清楚显现出来 的其他需求和目的在本发明中得以实现,本发明可包括针对第一 自治系统 (AS)间链路(例如可达到(serving)第一前缀集合)的故障在AS中构造和/或实现备用路径。在一个或多个实施例中, 一种方法包括识别可达到 所述多个前缀的替换AS间链路,并且构造去往该链路的隧道。另外,在 一个或多个实施例中, 一种方法包括识别替换AS间路径并且构造去往该 替换路径上的端点的隧道。另外,在一个或多个实施例中, 一种方法包括 经由备用路径来转发去往故障链路的数据元素,并且在分组中包括环路防 止属性。在一个或多个实施例中,本发明还可包括一种管理包括多个边界路由 器的第一自治系统(AS)中数据的转发的方法。边界路由器具有去往一个 或多个远程AS的域间链路,以及相关联的外部通信协议。边界路由器利用主隧道与第一 AS中的其他边界路由器使用内部通信协议。该方法包括在具有经由域间链路去往远程AS的主路由(primary route)的第一边界路 由器处执行的以下步骤构造经由第一 AS中的第二边界路由器去往远程 AS的替换路由,在主路由发生故障后激发去往第二边界路由器的备用隧 道,并且向其他边界路由器发送故障消息。在其他方面中,本发明包括被配置为执行前述步骤的计算机装置和计 算机可读介质。


在附图中以示例方式而非限制方式图示了本发明,附图中相似的标号 指代类似的元件,其中图1是该方法所应用到的第一多域网络的表示;图2是该方法所应用到的第二多域网络的表示;图3是图示出在实现备用路径时执行的步骤的流程图;图4是图示出在选择备用路径时执行的步骤的流程图;图5是示出根据本方法的FIB结构的示意图;图6是该方法所应用到的第三多域网络的表示;图7是示出根据另一实现方式在指示备用路径时执行的步骤的流程图;图8是示出根据另一实现方式在构造备用路径时执行的步骤的流程图;图9是图示出在解除激活备用路径时执行的步骤的流程图; 图10是图示出根据另一实现方式在解除激活备用路径时执行的步骤 的流程图;以及图11是示出可实现构造BGP修复路由的方法的计算机系统的框图。
具体实施方式
描述了在自治系统中构造和实现备用路径以及管理自治系统中数据的 转发。在以下描述中,出于说明目的,阐述了许多具体细节以帮助全面理解本发明。但是,本领域的技术人员将会明白,没有这些具体细节也能实 现本发明。在其他情况下,公知的结构和设备以框图形式示出,以避免不 必要地模糊本发明的主题。
这里根据以下大纲来描述实施例
1.0综述
2.0结构和功能概述
3.0在自治系统中构造和实现备用路径以及管理自治系统中数据的转 发的方法
4.0实现机构-硬件概述 5.0扩展和替换
1.0综述
以上背景技术部分中所确定的需求以及从以下描述中将清楚显现出来 的其他需求和目的在本发明中得以实现,本发明可包括针对第一 自治系统 (AS)间链路(例如可达到第一前缀集合)的故障在AS中构造和/或实现 备用路径。在一个或多个实施例中, 一种方法包括识别可达到所述多个前 缀的替换AS间链路,并且构造去往该链路的隧道。另外,在一个或多个 实施例中, 一种方法包括识别替换AS间路径并且构造去往该替换路径上 的端点的隧道。另外,在一个或多个实施例中, 一种方法包括经由备用路 径来转发去往故障链路的数据元素,并且在分组中包括环路防止属性。
在一个或多个实施例中,本发明还可包括一种管理包括多个边界路由 器的第一自治系统(AS)中数据的转发的方法。边界路由器具有去往一个 或多个远程AS的域间链路,以及相关联的外部通信协议。边界路由器利 用主隧道与第一 AS中的其他边界路由器使用内部通信协议。该方法包括 在具有经由域间链路去往远程AS的主路由的第一边界路由器处执行的以 下步骤构造经由第一 AS中的第二边界路由器去往远程AS的替换路 由,在主路由发生故障后激发去往第二边界路由器的备用隧道,并且向其 他边界路由器发送故障消息。
在其他方面中,本发明包括被配置为执行前述步骤的计算机装置和计
10算机可读介质。
2.0结构和功能概述
参考图1可大体上了解构造BGP备用路径/修复路由的方法,图1示
出了该方法可应用到的网络。该网络包括第一AS,即AS1 (标号100), 以及第二 AS,即AS2 (标号106),其中第一 AS包括分别示为路由器 A、路由器B的边缘路由器102、 104,第二 AS包括分别称为路由器C和 D的边缘路由器108、 110。第一域间链路IIO连接路由器A和C,第二域 间链路112连接路由器B和D。
在例如AS1的情况下,每个边缘路由器A、 B预计算去往替换下一跳 的保护隧道,该保护隧道可到达与经由受保护链路所到达的AS相同的 AS。例如,在路由器A希望保护去往路由器C的链路110的情况下,它 识别例如通过第二域间链路112经由AS1中的路由器B和AS2中的D去 往与该链路可达到的AS相同的AS的替换备用路径,作为替换下一跳, 因此,在链路IIO发生故障的情况下,路由器A在保护隧道中将本来会经 由受保护链路发送的分组隧传到路由器B,并且它们在路由器B处被解封 并且经由链路112被转发到AS2中的路由器D。
在这里描述的一个或多个实施例中,在AS具有与分别可达到相应的 目的地或前缀集合的多个AS的链路的情况下,在去往多个AS中相应的 一个的链路发生故障的情况下可以通过识别可达到同一目的地集合的替换 链路来构造备用路径,从而提供每前缀路由保护。
如下文更详细描述的,可以自动发现替换域间链路,并且在多个候选 备用路径可用的情况下可以自动选择最优的那个。该方法可应用于各种拓 扑,包括大型中转ISP之间的链路,以及多归属末梢网络(multi-homed stub network)和提供商之间的链路。在使用各种技术收敛之后,还可解除 激活隧道。预计算的备用路径的提供允许了在对FIB进行简单修改的情况 下无需使用故障链路就能非常迅速地将分组发送到最终目的地。
另外,在这里描述的一个或多个实施例中,可以引入步骤以确保例如 在路由器A在保护隧道中将分组隧传到路由器B时,路由器B不会简单地将这些分组路由回到仍被它当作去往最终目的地的正确下一跳的路由器 A。因此,在分组中可包括环路防止属性,以确保路由器B处的正常地址 査找被推翻。环路防止属性例如可以是额外的比特,该比特充当备用路径 指示符,指示出数据元素是经由备用路径转发的。或者,该属性可包括转 发指令,该指令指示路由器B应当经由替换的备用路径来转发分组。
另外,在这里描述的一个或多个实施例中,提供了一种用于一旦在第 一自治系统中发生了收敛就去除备用路径的方法,该第一自治系统包括多
个边界路由器,这多个边界路由器利用诸如eBGP之类的相关外部通信协 议来经由域间链路与远程AS通信。在第一自治系统中的边界路由器利用 主IGP隧道(例如MPLS或IP隧道)经由内部通信协议通信的情况下, 第一 AS中的第一边界路由器可通过在去往远程AS的主路由发生故障后 激发去往第一 AS中的第二边界路由器的备用隧道来构造经由第二边界路 由器去往远程AS的替换路由。第一边界路由器随后向其他边界路由器发 送采取例如BGP撤回消息形式的故障消息。结果, 一旦第一AS中的第三 边界路由器接收到BGP撤回消息,它就可利用例如通过iBGP分发的备用 路径(例如利用IGP隧传)来隧传到第二边界路由器,以便在第一 AS内 不发生循环。路由器A随后可在被设置来允许正常BGP收敛发生的定时 器期满后撤回其自己的备用隧道,以便随后所有边界路由器都会在正常操 作中将前往远程AS的流量转发到第二边界路由器。
3.0在自治系统中构造和实现备用路径以及管理自治系统中数据的转 发的方法
这里描述的方法可联系各种域间链路保护方案来实现,例如图1所示 的在中转ISP之间常见的、其中提供了冗余的并行链路方案。此外,这种 连接可出现在BGP/MPLS VPN中,其中节点C和D包括客户边缘(CE) 路由器,节点A和B包括针对额外的提供商节点P (标号114)的提供商 边缘(PE)路由器。在这种情况下,同样,在域间链路中的任何一条发生 故障的情况下提供冗余。
在这种情况下,为了提供链路保护,在路由器A被当作AS1中的主出口路由器并且路由器C被当作AS2中的主入口路由器的情况下,在优化
中创建从主出口路由器到与AS2对等的AS1中的另一出口路由器的保护 隧道,从而提供替换的AS间AS链路,即路由器B在这里被称为次出口 路由器(secondary egress router),从而形成pe-se (主出口 -次出口)隧 道。路由器的识别和构造方式在下文中更详细描述,将会看到,因为提供 了 pe-se隧道,所以不需要eBGP对等体(即不同的AS)之间的合作,这 在许多情况下是很重要的,因为这需要商业谈判来订立适当的协定。
图2是图示出图1所示配置的替换配置的网络图。ISP AS1 (标号 200)具有经由分别处于AS1中的边界路由器A和B (标号202、 204)与 分别在AS2和AS3中的边界路由器C和D (标号214、 216)之间的相应 链路210、 212的与各个AS即AS2 (标号206)和AS3 (标号208)中的 每一个的单个对等链路。在AS2和AS3经由网络(例如因特网218)与总 地示为220的目的地或目的地集合通信时,将会看到对于这些目的地, AS1具有多个路径可能,从而再一次可获得可能的保护路由或备用路径。
在图1或图2的情况下,为了配置适当的保护隧道,例如pe-se保护 隧道, 一种可能是仅仅配置它们,但会发生縮放性问题。因此,在优化 中,引入了自动发现机制,以简化配置并自动地使保护隧道适应于拓扑变 化。具体而言,主出口路由器必须自动地确定适当的次出口路由器的IP地 址,以及例如要使用的隧道类型。
再次参考图l所示的那类网络,其中假定相同的目的地被下游AS2通 过链路110、 112通告并且将路由器A视为主出口路由器,则路由器A必 须首先定位出适当的次出口路由器。在图1中将会看到,只提供了一个额 外的路由器,但是当然在实践中AS —般会包括大量边界路由器,其中的 许多不会提供针对给定的远程AS的替换保护路由。
为了适应于保护路由的预计算,AS1中的每个边界路由器经由iBGP 通告其所参与的现有eBGP会话。具体而言,所通告的保护路由特性包括 NLRI、与下游AS的对等链路上的本地IP地址、指示下游AS的AS路径 属性,以及包含要建立的保护隧道的参数的隧道属性。例如,来自节点B 的通告包括去往AS2的链路112的IP地址,作为其AS路径属性的AS2,以及指示出所支持的隧道类型的适当隧道属性。将会注意到,依赖于正常的iBGP通知是不够的,因为在这种情况下节点B可能只会通告其去往AS2的最佳路由为经由节点A。结果,尤其有 必要强制边界路由器通告可能的保护路由。在一种优化中,路由器利用虚拟专用网版本4 (VPNv4)来在AS中 通告备用路由。AS中的每个路由器发起一个或多个唯一的VPNv4路由 (利用路由区分符RD)。例如,路由器B发起一条路由,该路由的NLRI 是去往AS2中的路由器D的链路112上路由器B的地址,并且具有适当 的RD。当然,如果B具有多条链路,则多个这种路由被通告并通过适当 的RD来标识。节点B另外还将AS2标识为其AS路径,其指示出它提供 去往对等AS2的备用路由,并且还标识出适当的下一跳接口,该下一跳接 口例如可为回环地址。此外,路由器B根据链路112的特性来设置对等策 略(即与下游AS —致同意的参数)、链路带宽、共享风险链路组 (SRLG)和优先级的值。结果,路由通告经由AS路径信息携带标识出路 由器B提供的可能备用路由的信息,并且携带包括下一跳信息在内的必要 转发信息。此外,通告还携带允许接收方路由器在以下情况下选择适当的 隧道的信息在一个路由器提供多个对等链路的情况下有来自单个路由器 的多条隧道可用,或者在各自具有一个或多个对等链路的多个路由器之间 有多条隧道可用,这将在下文更详细描述。参考图3可进一步理解自动发现过程,图3是图示出在自动发现路由 器(例如图1中的路由器A)处执行的额外步骤的流程图。在步骤300, 路由器A接收保护路由通告,例如VPNv4路由,在步骤302,选择合格的 路由,以下将参考图4对此进行更详细描述。将会注意到,选择过程也可适应于流量工程pe-se隧道,例如利用 RSVP-TE来结合具有主出口路由器和次出口路由器之间的带宽预留的流量 工程MPLS隧道,从而确保有足够的带宽可用于受保护的流量。在步骤304,路由器A将所选择的备用路由添加到其FIB。在主出口 路由器处,保护隧道最终由两个参数定义,该两个参数为封装头部和传出 接口。此外,链路AC 110的保护条目可具有语义"进行封装(隧传),使得目的地地址等于所选备用路由的下一跳,源地址等于BGP保护主配置 中提供的接口的地址",并且如下文更详细描述的,启用所选备用路由中 的"转发-助手"。在优化中,FIB被组织为图5所示的两个表。第一表500包含BGP前 缀(即经由某个路由可达到的IP目的地)和BGP下一跳(即前往这些目 的地的分组被路由到的下一 BGP路由器)。BGP下一跳504包括指针, 这些指针指向所有下一跳条目的表506,其中包括IGP表的一部分。第二 表506中的每个下一跳条目包含下一跳的地址508、指示出去往下一跳的 链路是工作中(up)还是停工(down)的标志510,以及两个传出接口 (OIF):主OIF 512和次OIF 514,每个接口包括一个数据结构,该数据 结构包含根据接口类型和所用协议在此接口上转发分组所需的所有信息。 如下文更详细描述的,这种构造减少了在激活保护隧道之后必须修改的 FIB条目的数目,从而提高了重路由速度。回到图3,在步骤306,以任何适当的方式,例如利用来自物理层的 触发(例如信号的SONET丢失)来监视和检测受保护链路110的故障。 在步骤308,在检测到故障后,检测路由器立即更新其FIB,以封装过去 使用故障链路的分组并将它们发送到替换下一跳。具体而言,在这些情况 下,路由器A将主OIF上的标志设置为停工,其结果是利用次OIF数据结 构中的信息实现备用隧道。然后,在步骤310,分组被隧传到备用下一 跳,即路由器B。图4是图示出图3的步骤302处的路由选择机制的流程图。在步骤 400,路由器A根据其IGP表检査备用路由是否可达。在步骤402,路由 器A从提供次域间链路的次出口路由器中选择用于保护其主域间链路110 的pe-se隧道端点,作为其AS路径值合格的保护路由。在步骤404,路由器B所通告的策略必须对应于路由器A处实现的策 略,对应形式例如是等同于或者是其超集。结果,如果在并行链路上使用 不同的BGP策略,则识别任何这种差别。例如,策略标识符可包括要求利 用其对等体使用的BGP策略来配置每个出口路由器的客户和对等体信息, 该信息可在BGP会话建立期间作为eBGP会话类型被交换。在步骤406,路由器检査SRLG值。在SRLG属性的情况下,备用路 由的SRLG应当与主备用路由的SRLG脱离。如果两个路由都在共同的共 享风险组中,那么顾名思义,如果一个发生故障,则存在另一个也会发生 故障的风险。SRLG值也可以通过eBGP会话来交换。在步骤408,备用路由的带宽应当大于或等于主链路的带宽,以便能 够维持适当的数据流量支持。在步骤408,在结合了例如与本地优选字段 类似的优先级字段的情况下,那么如果所有其他属性都匹配,则选择最高 的优先级。如果优先级也匹配,则在步骤412,利用IGP路径成本作为选 择度量来选择最近的下一跳。备用路径从而被选择。结果,在链路110发 生故障的情况下,路由器A立即具有提供相同可达性的替换链路112。当路由器A实现其备用路由时,当在路由器B处接收到隧传的分组 后,必须确保该分组不会简单地被路由回到路由器B根据其FIB而仍认为 是前往解封后分组的目的地的适当下一跳的路由器A。因此,当在边界路 由器处接收到修复的分组时,必须推翻边界路由器处的正常地址査找。因 此,路由器A处为受保护分组实现的隧传机制或头部例如通过设置这里称 为"P比特"(但也可以采取任何适当的命名)的比特来指示出有效载荷 来自BGP保护。当路由器解封出有效载荷并且隧道头部具有被设置的P 比特时,路由器将会把设置的P比特与有效载荷关联起来,使得分组不会 再次被保护,从而实现了环路防止。例如,参考图1,将路由器C和D视 为单个节点"CD",如果CD发生故障,则AS1中的路由器A和B都将 通过向路由器A和B中的另一个进行转发来保护它们各自的链路流量,从 而建立了环路。如果在第一修复尝试后即设置P比特则不会发生这种情 况,因为第二路由器不会尝试再修改分组,而是例如如果它检测到需要第 二修复则可丢弃分组。P比特可以以任何适当的方式来实现。此外,在具有所论述类型的pe-se配置中的隧道端点处的解封路由 器,即路由器B,必须能够确定在它的哪个本地接口上转发有效载荷。这 是通过在封装路由器处将特定的"转发助手"字段写入到隧道头部中以确 保在解封路由器处进行正确的转发判决来实现的。例如,如果转发助手值 是被设置到比如零的值,则解封路由器将会根据对有效载荷中分组的目的地地址的通常查找来转发分组。但是,如果转发助手比特被设置到例如 1,则解封节点不会对有效载荷执行正常的查找,而会根据备用路由来进 行转发,以确保受保护的分组被继续转发到外部链路。在图1所示的网络 的情况下,例如,如果AS1的策略是优选经由路由器A获知的路径(例 如路由器A具有较高的本地优选值),那么在其他情况下路由器B将会把从路由器A回来的修复后的封装分组路由到A,从而形成环路。但是,如 果转发助手字段在封装分组头部中被设置,则路由器B将会被强制将解封 后的分组转发到去往AS2中的路由器D的修复链路112上。或者可以实现 相应的语言,例如定向转发(directed forwarding),其中从节点B到节点 D的分组实际上被源路由。还将注意到转发助手字段或比特的值可由每个 路由器通过网络通告,或者自动地或由管理员手工地在整个网络上设置。例如,在实现MPLS的情况下,则对于每个路由可维护两个标签,其 唯一差别在于最右侧比特的值,对于正常流量该值被设置为0,而对于受 保护流量则被设置为1。在链路发生故障后,边界路由器(例如路由器 A)将会交换传入流量的具有零比特的顶部标签,并且用针对备用边界路 由器(例如路由器B)的顶部标签和最右侧比特被设置为1的底部标签来 替换它。结果,提供了设置P比特并识别P比特是否被设置的简单机制。将会看到,用来实现图4的步骤的特定机制可采取任何适当的形式。 例如,包括到下游AS的备用路由器的本地IP地址的所通告的保护路由中 的NLRI最终是唯一的IP地址,以确保即使在路由反射器的情况下它也被 分发。隧道本身可以是任何适当类型的,例如通知路由封装(GRE)、第 2层隧道协议(L2TP)或者基于IP的MPLS (MPLS over IP),并且保护 路由通告将会指示出适当的隧道属性以及可选参数,例如在基于IP的 MPLS封装的情况下是所需的标签。可以以任何适当的方式来配置自动发 现。例如,可以利用其AC (链路10)对等链路接口上的适当策略来配置 路由器A,从而使得要求BGP保护的路由器A能够监视可能的候选备用 路由并参考图3从各种所需属性中进行选择。网络中的每个边界路由器将 会维护类似的策略,以及指示出路由器应当作为边界路由器工作的方式的 策略,其中包括设置选择过程所需的属性的发起保护路由信息,以及相关17联的目的地信息。在VPNv4备用路径被通告的情况下,则隧道的目的地 地址被定义为备用路径的下一跳。还将会注意到,适当时,额外的SAFI 可用来携带保护路由,从而允许它们像这样被识别出。将会看到,通过适当的修改,上文参考图3和4所描述的方法同样可 联系图2所示的网络实现,其中AS1具有经由相应节点A、 B的与多个 AS (AS2、 AS3)的对等链路。在这种情况下,如果例如路由器A具有前 往给定目的地或前缀集合的主eBGP路径,并且路由器B发现了前往同一 前缀集合的另一路径,则路由器A有必要获知去往前缀集合的替换路径, 并且将其存储为其自己的主路径的备用路径。但是,由于不同的AS可能 可达到不同的前缀,因此在图2的配置中,AS1中的每个路由器必须依据 前缀来获得备用路由。同样有必要确保所有的可用备用路由而不只是 iBGP中确定的最佳路径被通告,并且有各种机制可用。在第一实现方式中,路由器B为从其eBGP邻居接收的每个前缀构建 VPNv4路由,而不论该路径是否被选择为最佳路径,并且除了正常的IPv4 BGP操作外还传播这些路由。备用路由被传播,其中包括路由器B的适当 路由区分符,将路由器B识别为下一跳,以及作为适当标签的、去往通告 了其具有前往该前缀的路由的下游AS中的eBGP邻居的链路。例如,在 图2的情况下,在最终目的地X (标号222)经由AS3可用的情况下, AS3中的节点D会已经将此路由通告给了节点B,节点B随后将利用 iBGP在AS1内传播该通告,从而节点A将会获知它。路由器A将会具有 其自己的经由AS2中的路由器C去往目的地X的最佳路由,但是将会适 当地添加路由器B的备用路径。在第二种替换实现方式中,所有互联网eBGP会话都将被配置在VPN 路由和转发表(VRF)中,该表将整个网络(例如因特网)视为一个共同 的VPN并且利用唯一的RD来配置每个边界路由器。VRF的操作是本领 域的技术人员公知的,这里不对其进行详细论述。但是,总之,VRF包括 被相关联的一组接口使用的IP路由表和所得出的转发表。根据适当的路由 协议,来自路由对等体的信息被注入到VRF中。如果分组通过相关接口到 达,则VRF被参考。通过将网络视为一个共同的VPN,每个边界路由器看到前往任何前缀 的所有路径,从而允许了它计算其自己的主路径的备用路径。因此,参考图2所示的其中路由器A、 B、 C、 D被视为属于共同的VPN的示例,每 个路由器将会维护包括IP路由和转发表的VRF。具体而言,由于VRF包 含该共同VPN的所有相关路由信息,因此不必"强制"BGP路由器转发 额外的备用路由信息,因为它们在VPN内通告所有路由而不只是最佳路 由。因此,例如在MPLS配置中,路由器B将从路由器D接收的路由以 RD (路由器B):路由(n),标签(n)的形式通告。路由器A接收这 些通告,并且检查接收到的路由是否与从连接到路由器C的对等主域间链 路接收的任何主路由相匹配。如果是,则通告的路由被记录为可能的备用 方案。另外,当保护去往路由器C的链路110时,当该链路发生故障时, 路由器A能够使用路由器B通告的标签作为利用外部标签封装的分组上的 内部标签以到达路由器B。因此,在分组被解封后,路由器B将会根据该 内部标签来转发分组,即沿着其路由(经由链路112,路由器D)去往目 的地。结果,提供了针对每个前缀的方案,而无需"强制"BGP路由器通 告额外的非最佳路径路由。在替换的第三实现方式中,AS中的每个路由器识别作为iBGP中的 "额外路径"通告的候选备用路由。在这种情况下,每个路由器通告前往 每个目的地的多个可用路径,而不只是其最佳路径。多个路径被传播,并 且例如被路由反射器分发。在这种情况下,替换或次佳路径可以以任何适 当的方式被反射,例如去往所有前缀的所有可能路径或者去往每个前缀的 至少一个替换路径(如果可用的话)。例如,参考图2,路由器B的去往 目的地X的最佳路径可能是经由路由器A,但是其次佳路径将会是经由路 由器D。结果,当额外的路径被传播时,路由器A将会识别出路由器B提 供去往目的地X的替换路由,于是它可将该替换路由输入到其转发表中, 作为在链路AC发生故障的情况下的备用路由。例如,该方法可利用万维 网的域"ietf.org"的目录"internet-draft"中的文件"draft-walton-bgp-add-paths-03加"中的"Advertisement of Multiple Paths in BGP"中描述的 ADD-PATH功能技术来实现,该文件的全部内容通过引用被结合于此用于19所有目的,就好像在这里完全公开了一样。在第四种替换实现方式中,每个BGP路由器通告其针对每个前缀的最 佳外部路径。也就是说,路由器除了通告其去往外部目的地的最佳路径 (可能是去往同一 AS中的另一边界路由器)之外,还通告至少一条这样的路径,对于该路径它可以使自己充当经由去往下游AS的链路而去往目 的地的BGP路由。例如,在图2的示例中,路由器B去往目的地X的最 佳路径可能是经由路由器A,该路由器A随后将经由BGP转发到路由器 C。但是,路由器B还识别它具有其自己的去往目的地X的外部路径(例 如经由路由器D),并且也将此作为其自己的最佳外部路径进行通告。结 果,当路由器A接收到来自或代表路由器B的通告时,它将会识别出路由 器B提供它可在适当时添加到其转发计算中的替换备用外部路径。根据第五种替换实现方式,除了正常的iBGP传输机制外还可结合路 由服务器来分发备用路径。路由服务器可以是现有的网络组件,例如路由 器A或B之一,或者在适当时可以是额外的组件。路由服务器的任务是例 如通过轮询每个路由器或接收来自它们的通知来获得每个边界路由器的 eBGP路径。路由服务器随后可在适当时如上所述地通告备用路由以及额 外的实现信息。路由服务器可以自己进行额外的路由选择步骤以识别它应 当把哪些路由通告给哪个路由器,或者可以传播所有路由并允许适当时在 本地作出决定。将会注意到, 一旦可用路径已被在边界路由器间分发,路径就可以以 任何适当的方式被选择和实现,例如利用参考图3和4描述的方法,并且 根据需要被修改。类似地,边界路由器在通告可能的候选备用路径时可以 结合适当的信息以允许进行选择。将会意识到,虽然以上描述的各种方法尤其适合于需要针对每个前缀 的备用路由策略的情况,但是它们同样可实现在图1所示的拓扑的情况 中,其中去往共同AS的多个链路提供冗余。在这种情况下,例如, 一般 可从通告的存在(等同于或包括ASPATH,假定备用路由对于所有前缀是 共同的)来推断备用路由的可用性,或者在适当时可以从通告得出关于通 告前缀的特定AS的信息,从而允许构造去往下游AS的备用路径。作为这里描述的方法的结果,将会看到提供了一种方案,其可应用于 域间链路的两个方向上,并且无需与AS外的BGP路由器合作,分组封装和解封在同一 AS中执行。此外,还适应于SRLG以及多个域中的或者复 杂的对等协定中的变化的BGP策略。以上论述的方法集中于pe-se隧道也就是说单个AS内的隧道的实现, 其结果是不需要与远程AS的合作,这种合作从可能影响AS之间的对等 的商业协定的角度来看是很复杂的。此外,pe-se隧道可以联系图6所示的 那类配置来实现,该图是示出另一种网络拓扑的网络图。具体而言,所示 的拓扑包括多归属末梢AS 600,下文将对此进行更详细描述。多归属末梢AS 600附接到中转提供商AS1 (标号602) 、 AS2 (标号 604)和AS3 (标号606)。末梢AS 600包括路由器C (标号608)和D (标号610)。路由器C经由链路614连接到AS1中的路由器A (标号 612)。路由器D经由链路618连接到路由器B (标号616)。路由器D 还经由链路622连接到AS3中的路由器C (标号620)。具体而言,在这 种网络中可能发生两种可能的情形。在第一情形中,末梢AS 600需要保 护其传出分组流。在这种情况下,由于末梢可经由所有其中转提供商 602、 604、 606到达所有目的地(例如由标号624示出),因此通过结合 pe-se隧道解决了与图l和2的拓扑中发生的问题类似的问题。但是,在第 二情形中,末梢AS 600保护传入流量,这要求主出口 -次入口 (pe-si) 保护隧道。在来自末梢AS 600的流量的第一种情况中,由于提供商AS1、 AS2、 AS3都提供去往所有目的地624的路由,因此实现了与以上参考图l所采 用的方法类似的方法。具体而言,可以实现参考图3描述的路径选择方 法,其中eBGP会话类型被适当地定义,并且其他属性被因此通告。从 而,例如,在节点C要求前往624中的目的地X (未示出)的备用路由而 不是经由AS1中的节点A的情况下,它可接收来自末梢AS 600中的路由 器D的适当通知,该通知表明通过分别去往AS2和AS3的链路618和622 中的任何一个或最佳的那个可达到同一目的地。还将会意识到,在一些前缀通过某些提供商AS可达到并且另一些通过其他提供商AS可达到的情况下,末梢AS 600可以以完全并行的方式, 利用以上详细阐述的技术中的任何一种,如参考图2所描述的那样针对每个前缀实现备用路由。在第二种情形中,希望在末梢AS 600处利用在位于提供商内部的主 出口路由器和末梢内部的次入口路由器之间建立的pe-si保护隧道,在去往 末梢的域间链路发生故障时恢复提供商-末梢分组流。参考图6所示的网 络,例如,如果在链路614发生故障后末梢AS 600需要为例如来自AS1 中的路由器A的传入流量建立保护隧道,则它要求这种流量例如经由AS2 中的路由器A或AS3中的路由器C被隧传到末梢AS中的路由器D。通过 将AS 1中的路由器A视为主出口路由器并且将末梢AS中的路由器D视为 次入口路由器,次提供商AS2或AS3的路由器虽然在备用路径中,但在 保护隧道的激活和分组的解封中均未涉及AS2和AS3,从而减少了建立保 护方案所需的AS间事务的数目。因此,只需要在所涉及的AS间进行特 定的对等协商,并且可以更容易地部署适当的安全性策略。因此,为了实现保护方案,必须在主出口路由器(在本示例中是路由 器A)上配置去往末梢AS 600的适当的次入口路由器。这可以手工完 成,但是一种优化中系统被自动预配置。具体而言,末梢AS中的每个入 口路由器,例如充当主入口路由器的路由器C和D中的每一个,通过与其 相应的主出口路由器A或B和C的eBGP会话来通告末梢内部可用作pe-si保护隧道的候选端点的次入口路由器-在此情况下分别是路由器C和D 中的另一个,从而将候选端点的IP地址指示为NLRI,并且指示出适当的 隧道属性,包括隧道类型和参数,例如SRLG信息和策略信息。此外,可 以指定"NO-ADVERTISE"团体,以确保路由器A不对接收到的备用路 由进行传播。当然,主出口路由器必须能够到达次入口路由器,即使在正 常操作主出口路由器可能已经经由主入口路由器到达了末梢所通告的所有 目的地。因此,在图6的情况下,路由器A必须能够经由替换路由到达路由器 D,即使在正常操作中路由器A将会经由路由器C到达路由器D。这例如 可通过为所识别的任何pe-si隧道识别次提供商并确保si路由器经由第二提供商可用,来得以实现。主入口路由器(例如路由器A)识别保护路由(即候选次入口路由 器)的方式可以是通过对经由iBGP以上述方式接收的保护路由进行过滤并且通告那些具有相同eBGP会话类型和不同SRLG值的路由,下文将对 此进行更详细论述。路由器A随后例如利用上述方法从通过eBGP会话接 收的保护路由中选择pe-si保护隧道的最优端点。图7是图示出该方法的第一种替换实现方式的流程图。在步骤700, 末梢AS 600中的路由器,例如路由器C,向AS1中的路由器A通告保护 路由,其中包括了末梢处的目的地作为NLRI,包括其自身作为下一跳, 包括了 AS路径标识符(例如AS4,将末梢AS视为具有该名称),并且 包括备用路径标识字段或保护路由属性,其中包括末梢中的目的地也可从 其到达的次出口路由器的标识符。该保护路由属性例如可以基于本地策略 来构造。在步骤702,路由器A经由iBGP在AS1中通告其前往这些目的 地的最佳路由为经由路由器C和经由相应的AS路径604。在步骤704,路 由器A还利用保护路由属性中的信息为末梢构建保护路由备用条目,其中 包括转发指令"朝着备用路由器封装",所述备用路由器例如是图6中的 路由器D。因此,当在步骤706检测到链路故障时,在步骤708路由器A 则将分组隧传到路由器D。图8是图示出该方法的第二种替换实现方式的流程图。在步骤800, 末梢AS对可经由适当群组标识符应用路由判决的目的地进行分组,所述 群组标识符例如是BGP团体,在这里仅出于说明目的将其标识为不同的颜 色。在步骤802,末梢AS路由器C和D中的每个向外部AS通告其路 由,包括相关联的团体。然后,在步骤804,每个团体的备用目的地地址 被识别并存储。例如,末梢AS 600中的每个路由器可在AS内通告每个团 体已被通告给的AS的身份。这些通告可在末梢AS中的每个其他路由器 处或者在额外的AS组件处被接收,该额外的AS组件被配置来识别哪些 其他提供商AS接收到了针对相同团体的通告。然后,在步骤806,每个 末梢路由器向外部AS通告前往它向该AS通告的每个团体的任何备用路 由。例如,在末梢AS已向图6中的AS1和AS3通告了包括"蓝色"目的地集合的第一团体的情况下,节点C则可以向节点A通告该团体可通过AS3中的路由器E和末梢AS中的路由器D来达到,而末梢AS中的路由 器D向AS3中的路由器E通告该团体可通过AS1中的路由器A和末梢AS 中的路由器C达到。然后,在步骤808,当在路由器A处检测到故障后, 先前想经由链路614去往路由器C的分组被适当地经由前往该团体的备用 路由来进行隧传。将会意识到,如上所述在适当时可以采用任何特定的隧传技术,并且 可以在对等AS之间许可的程度内使用诸如保护比特或转发助手之类的适 当保护机制。在修复的分组被转发到pe-si隧道中的情况下,封装则会发生 在主出口节点处,并且分组最终将在次入口节点处被解封。由于主入口节 点和次入口节点在共同的AS中,因此在次入口节点处可根据该AS中的共同策略实现适当的解封后步骤。此外,主入口路由器可实现适当的安全 性策略。所述配置的一个结果是不需要提供商AS之间的相互合作,而只 需要每个提供商和末梢之间的,从而减少了所需要的域间对等协定的数 目。实际上,可以例如利用适当的访问控制列表或者通用的隧传安全性机 制来像对pe-se隧道(即域间隧道)那样实现适当的安全性措施。一旦被激活,保护隧道就提供快速的修复,虽然这是经由非最优的备 用路由并且使用隧道实现来进行的,这在一些情况下可能增大网络中的路 由器上的转发或处理负担。因此,希望只在收敛发生之前维持隧道。此 外,将会注意到,故障也会经由iBGP被通告,这又导致对AS中的路由 器的所有FIB进行更新,这也可能造成分组丢失或循环的风险。具体而 言,AS中的其域间链路发生故障的路由器将会发送撤回消息,而备用路 由器将会发送指示出其自己的替换路由的更新消息,而消息的处理顺序在 许多情况下可能导致环路。因此,希望确保经由保护隧道到达的所有目的 地在整个路由转换期间必须保持可达,并且对AS内部的路由器的FIB的 更新不会导致暂时的分组转发环路。作为第一步骤,可利用一个策略来配置路由器,该策略指示出在受保 护链路发生故障后定时器T应当被设置,在该时间期间通常在该链路上转 发的所有流量都应当被封装到具有替换路由的目的地地址的隧道中。定时24器T的值可被设置为适当的持续时间,以允许正常的BGP收敛发生,从 而使得一旦定时器期满路由器就会停止保护流量,尤其是会停止对其进行隧传。例如,定时器T的值可以在10至50秒的范围内。但是,可能需要额外的步骤来避免循环。根据这些额外的步骤看待收敛的方式取决于网络中部署的转发机制。在其中iBGP被用来将VPN路由分发到提供商边缘(PE)路由器的提供 BGP/MPLS VPN的网络的情况下,VPN路由被分发路由的BGP路由器认 为是不透明的比特串。如上所述,服务提供商,例如图1中的AS1或 AS2,将其边缘或PE路由器中的每一个配置成为每个PE-CE链路(例如 链路AC614)使用唯一的RD。结果,AS中的每个路由器经由iBGP接收 到前往通过PE-CE链路可达的前缀或目的地的所有VPN路由。因为VPN 路由对于进行分发的BGP路由器是不透明的,所以即使服务提供商网络被 划分成子自治系统或联盟或者使用BGP路由反射器,这种方法也是适当 的。因此,当PE路由器随后由于链路故障而发送BGP撤回消息时,该消 息将会与具有不同RD的可用替换VPN路由一起到达其他PE路由器,这 些路由器随后可实现替换路由。另外,在BGP/MPLS VPN中,替换路由 使用隧道,例如MPLS或IP隧道,因此替换路由将会是无环路的。通过结合图9来参考图1所示的网络可以进一步理解该方法,图9是 更详细地图示出所涉及的步骤的流程图。在步骤900,路由器,例如路由 器A,通过链路HO通告其可到达的前缀以及RD,并且路由经由iBGP被 分发到AS中属于VPN的其他路由器,例如路由器B,从而所有的可用路 由都被分发,而不像正常iBGP通知中那样只有最佳路由被分发。此外, 路由反射器将以这种不透明的格式分发所有的路由。在链路110发生故障后,路由器A在步骤904激活其保护隧道,然后 在步骤906发送BGP撤回消息。在这个阶段,路由器A将分组隧传到路 由器B,并且经由链路112将其继续隧传到AS2。在BGP/MPLS VPN中 的正常操作之后,在接收到BGP撤回消息之前,AS中的每个充当入口路 由器的其他路由器利用MPLS隧道将VPN流量转发到适当的出口边界路 由器,从而另一个路由器(例如路由器E (标号116))使用MPLS隧道25来经由路由器A发送分组到AS2。但是, 一旦路由器E接收到来自路由器A的BGP撤回消息,它将会具有己经通过iBGP作为VPN路由分发的替 换路由,并且将会在步骤908立即切换到向路由器B进行MPLS隧传。然 后,在步骤910,路由器A可以例如在定时器T期满后去除其保护隧道, 从而允许收敛发生,如上所述。将会意识到,虽然以上论述针对的是 BGP/MPLS VPN,但是它同样可应用到在VPN站点之间使用诸如IP隧传 之类的其他隧传机制的VPN。利用边缘路由器之间的封装,也可以在AS中无环路的情况下实现隧 道解除激活。例如参考图1,同样AS1 (标号100)包括边界路由器A、 B 和另一个边界路由器E (标号116)。在这种情况下,在作为BGP入口路 由器的路由器E处到达AS并且例如去往通过AS2可达到的前缀的分组被 隧传过AS以前往正确的BGP出口路由器,例如路由器A。具体而言,入口边界路由器E参考其BGP路由表以转发这样的"中 转分组",并且将路由器A识别为提供去往AS2的最佳eBGP路径。中转 分组随后在路由器E处被封装成去往路由器A,并且依赖于IGP转发被转 发过AS,从而使得AS内的其他路由器不会参考其BGP路由表来转发该 分组。结果,在AS内,由于IGP是无环路的,因此在正常操作期间可避 免暂时的环路。封装可以以各种方式来实现。例如,在MPLS中,附加顶 部标签以确保到达出口路由边界路由器A,并且一旦顶部标签被剥去,底 部标签就指示出将被路由器B用来到达下一跳的域间链路(链路AC 110)。在IP隧传中,分组被利用第一IP头部和内部隧道头部来进行双重 封装,该第一 IP头部具有出口边界路由器A的地址,并且一旦分组在路 由器B处被解封,该内部隧道头部就指示出域间链路。在故障链路110被保护时,路由器A于是例如将会根据上述方法中的 任何一种通过pe-se隧道来将其保护分组隧传到路由器B。但是,同样希 望一旦隧道不再被需要就去除它,并且确保在这个阶段不发生环路。可以 参考图10来理解所采用的方法,该图是图示出根据该方法执行的步骤的 流程图。在步骤1000,路由器A如上文更详细描述的己经在链路AC发生 故障后实现了其保护隧道,并且正在将先前本来会经过链路AC的分组隧传到路由器B,路由器B将会通过链路BD来转发分组。在步骤1002,路 由器A例如在被设置到超过BGP收敛的预期时间的时段的上述类型的定 时器期满后识别出应当开始用于去除隧道的过程。将会注意到,在这个阶段,AS中的所有其他边界路由器将会把前往 链路AC的分组隧传到路由器A,路由器A随后将实现其自己的隧道,而 这样单纯地立即去除隧道将会导致如上所述的环路问题。因此,路由器A 发送BGP消息,该BGP消息实际上指示出经由pe-se隧道到达的目的地很 快会变得不可达。具体而言,iBGP通告被路由器A发送,其中为该路由 赋予一个很低的local-pref (本地优选)值,例如0值,该值被标准BGP 判决过程认为是最坏路由。结果,该路由将不会被从其他BGP路由器的 RIB中去除,从而前缀将会保持可达,只不过优选值较低。因此,当某个 路由器(例如路由器E)接收到iBGP消息时,它可修改其FIB并选择新 的BGP下一跳(从而选择新的隧道)来到达目的地,例如路由器B。由于 中转分组将会被隧传到新的BGP下一跳,因此不会出现环路,因为IGP 路由表被假定为稳定且无环路的。在分组在路由器B处被解封后,它将沿 着链路BD被转发,这在上文中已更详细描述。在BGP边界路由器更新其 FIB的过渡时段期间, 一些分组可能继续被隧传到路由器A,而路由器A 随后将简单地利用尚未被去除的pe-se隧道来进行隧传。但是,边界路由 器最终将在iBGP中收敛在新的路径上,该新路径将已由路由器B单独地 通告。 一旦路由器A在步骤1006识别出没有更多分组在使用pe-se保护隧 道去往路由器B,则在步骤1008它就发送其BGP撤回消息并且在步骤 IOIO去除隧道。将会看到,上述方法的一个结果是通过适当地修改利用现有转发机制 为域间链路提供了快速保护机制。此外,在不再需要时可以以适当的方式 去除保护机制,从而确保在此过程期间不会出现环路。将会意识到,这里描述的方法可以以任何适当的方式并且在任何适当 的平台上实现,并且所描述的各种步骤可以用硬件或软件以任何适当的方 式实现。4.0实现机构-硬件概述图11是图示出可实现该方法的计算机系统140的框图。该方法是利 用运行在诸如路由器设备之类的网络元件上的一个或多个计算机程序来实现的。因此,在此实施例中,计算机系统140是路由器。计算机系统140包括用于传输信息的总线142或其他通信机构以及与 总线142相耦合用于处理信息的处理器144。计算机系统140还包括诸如 随机存取存储器(RAM)、闪存或其他动态存储设备之类的主存储器 146,其耦合到总线142,用于存储信息和处理器144要执行的指令。主存 储器146还可用于存储在处理器144执行指令期间的临时变量或其他中间 信息。计算机系统140还包括只读存储器(ROM) 148或其他静态存储设 备,其耦合到总线142,用于存储静态信息和处理器144的指令。提供了 诸如磁盘、闪存或光盘之类的存储设备150,其耦合到总线142,用于存 储信息和指令。通信接口 158可以耦合到总线142,以用于将信息和命令选择传输到 处理器144。接口 158是传统串行接口,例如RS-232或RS-422接口。外 部终端152或其他计算机系统连接到计算机系统140,并利用接口 158向 其提供命令。运行在计算机系统140中的固件或软件提供终端接口或基于 字符的命令接口,以便外部命令可被提供给计算机系统。交换系统156耦合到总线142,并具有输入接口和到外部网络元件的 相应输出接口 (总地标注为159)。外部网络元件可包括多个额外的路由 器160或耦合到一个或多个主机或路由器的本地网络,或者诸如因特网之 类的具有一个或多个服务器的全局网络。交换系统156根据公知的预定协 议和惯例将到达输入接口的信息流量交换到输出接口 159。例如,交换系 统156与处理器144合作,可确定到达输入接口的数据分组的目的地,并 利用输出接口将其发送到正确的目的地。目的地可包括主机、服务器、其 他末端站或者本地网络或因特网中的其他路由和交换设备。计算机系统140作为路由器实现上述方法。该实现是由计算机系统 140响应于处理器144执行包含在主存储器146中的一条或多条指令的一 个或多个序列而提供的。这种指令可以被从另一计算机可读介质(例如存储设备150)读取到主存储器146中。包含在主存储器146中的指令序列 的执行使得处理器144执行这里描述的过程步骤。多处理配置中的一个或 多个处理器也可被用来执行包含在主存储器146中的指令序列。在替换实 施例中,可以使用硬线电路来替代软件指令或与软件指令相组合以实现该 方法。从而,实施例并不限于硬件电路和软件的任何特定组合。这里所用的术语"计算机可读介质"指参与向处理器144提供指令以 供执行的任何介质。这种介质可以采取许多形式,包括但不限于非易失性 介质、易失性介质和传输介质。非易失性介质例如包括光盘或磁盘,如存 储设备150。易失性介质包括动态存储器,如主存储器146。传输介质包 括同轴电缆、铜线和光纤,包括含总线142的线路。传输介质也可以采取 诸如声波或电磁波之类的无线链路的形式,例如在无线电波和红外数据通 信期间生成的那些。计算机可读介质的常见形式例如包括软盘、柔性盘、硬盘、磁带或任 何其他磁介质,CD-ROM、任何其他光介质,穿孔卡、纸带、任何其他具 有孔图案的物理介质,RAM、 PROM禾n EPROM、 FLASH-EPROM、任何 其他存储器芯片或卡盘,下文中描述的载波,或者计算机可以读取的任何 其他介质。计算机可读介质的各种形式可用于将一条或多条指令的一个或多个序 列传送到处理器144以供执行。例如,指令可以首先承载在远程计算机的 磁盘上。远程计算机可以将指令加载到其动态存储器中,并利用调制解调 器通过电话线发送指令。计算机系统140本地的调制解调器可以接收电话 线上的数据,并使用红外发射器来将数据转换为红外信号。耦合到总线 142的红外检测器可以接收在红外信号中携带的数据,并且将数据置于总 线142上。总线142将数据传送到主存储器146,处理器144从主存储器 146取得指令并执行指令。主存储器146接收的指令可以可选地在被处理 器144执行之前或之后存储到存储设备150上。接口 159还提供到连接到本地网络的网络链路的双向数据通信耦合。 例如,接口 159可以是综合业务数字网(ISDN)卡或调制解调器,以提供 到相应类型电话线的数据通信连接。又例如,接口 159可以是局域网(LAN)卡,以提供到兼容LAN的数据通信连接。也可以实现无线链 路。在任何这种实现方式中,接口 519发送并接收电的、电磁的或光信号,这些信号携带了代表各类信息的数字数据流。网络链路一般通过一个或多个网络提供到其他数据设备的数据通信。 例如,网络链路可以通过本地网络提供到主机计算机或由因特网服务提供商(ISP)操作的数据设备的连接。ISP进而通过全球分组数据通信网络 (现在通常称为"因特网")提供数据通信服务。本地网络和因特网都使 用携带数字数据流的电的、电磁的或光信号。经过各种网络的信号和在网 络链路上并经过接口 159的信号(这些信号携带去往和来自计算机系统 140的数字数据)是传输信息的载波的示例性形式。计算机系统140可以通过网络、网络链路和接口 159发送消息并接收 数据,包括程序代码。在因特网示例中,服务器可以通过因特网、ISP 、 本地网络和通信接口 158传输应用程序的请求代码。 一个这种下载的应用 程序提供了这里描述的方法。接收到的代码可以在接收时被处理器144执行,并且/或者被存储在存 储设备150或其他非易失性存储设备中以供以后执行。以这种方式,计算 机系统140可以获得载波形式的应用代码。5.0扩展和替换在以上说明书中,已参考特定实施例描述了本发明。但是,应当清 楚,在不脱离本发明更宽广的精神和范围的前提下,可以进行各种修改和 改变。因此,说明书和附图都应当认为是示例性的,而非限制性的。所描 述的方面或示例或实施例在适当时可以并列或交换。将会意识到,可以采用任何适当的BGP禾n IGP机制,并且可以用任 何适当的方式(例如利用MPLS或IP隧道)来实现隧传。还将会意识 到,可以实现任何适当的VPN方法。虽然论述针对的是每个接口单个 eBGP会话的情况,但是在适当时也可适应于例如工作在每BGP对等体而 不是每接口的基础上的多个访问接口。在VPN实现的情况下,可以为该 情况下的每个个体对等体配置RD。
权利要求
1.一种方法,包括识别可达到第一前缀集合的第一自治系统(AS)间链路;识别可达到所述第一前缀集合的替换AS间链路;以及构造去往所述替换AS间链路的备用隧道。
2. 如权利要求1所述的方法,还包括在可达到所述第一 AS间链路的构造路由器处执行识别和构造步骤,其中所述替换AS间链路包括从第二备用路由器起的第二 AS间链路。
3. 如权利要求2所述的方法,还包括构造从所述构造路由器到所述备用路由器的备用隧道。
4. 如权利要求1所述的方法,还包括接收来自所述AS中的一个或多个路由器的候选备用路径通知。
5. 如权利要求4所述的方法,还包括通过所述候选备用路径通知识别所述候选备用路径的优先级和下一跳 中的至少一个。
6. 如权利要求5所述的方法,还包括选择符合下一跳或者优先级标准中的至少一个的候选备用路径来作为 用于所述备用隧道的路径。
7. 如权利要求1所述的方法,还包括 识别所述第一AS间链路的故障;以及作为响应,利用所述备用隧道来去到所述替换AS间链路。
8. 如权利要求7所述的方法,还包括以外部隧道封装来利用所述备用隧道,其中所述外部隧道封装是所述替换AS间链路的端点的地址;以及以内部隧道封装来利用所述备用隧道,其中所述内部隧道封装是端点 下一跳。
9. 一种方法,包括针对自治系统(AS)间链路的故障在AS中建立备用路径;确定所述AS间链路发生了故障;经由所述备用路径来转发去往故障链路的分组;以及 在所述分组中包括环路防止属性。
10. 如权利要求9所述的方法,其中所述环路防止属性包括指示出所 述分组已被经由备用路径转发的备用路径指示符。
11. 如权利要求IO所述的方法,还包括 在AS组件处接收具有备用路径指示符的分组;以及 不沿着另 一备用路径转发所述分组。
12. 如权利要求9所述的方法,其中所述环路防止属性包括转发指
13.如权利要求12所述的方法,还包括 接收包括所述转发指令的分组; 推翻正常转发;以及 根据所述转发指令来转发所述分组。
14.一种方法,包括在第一自治系统(AS)的第一边界路由器处构造去往远程AS的主路由;在所述第一边界路由器处构造经由所述第一 AS中的第二边界路由器 去往所述远程AS的替换路由;在所述主路由故障后激发从所述第一边界路由器到所述第二边界路由 器的备用隧道;以及将故障消息发送到所述第一 AS的一个或多个其他边界路由器。
15. 如权利要求14所述的方法,其中所述故障消息包括撤回消息。
16. 如权利要求14所述的方法,还包括在接收到所述故障消息后,利用第二备用隧道将前往所述第二 AS的 数据从所述第一 AS中的第三边界路由器隧传到所述第二边界路由器。
17. 如权利要求14所述的方法,还包括 在收敛时段期满后去除所述备用隧道。
18. 如权利要求14所述的方法,还包括检测所述主路由的故障; 将所述主路由设置到低优选值;以及 在所述故障消息中通告所述低优选值。
19. 如权利要求14所述的方法,还包括在所述一个或多个其他边界路由器处接收所述通告; 在所述一个或多个其他边界路由器处得出替换路由;以及 利用第二备用隧道将先前去往所述主路由的数据元素转发到所得出的 替换路由。
20. 如权利要求14所述的方法,还包括确定所述第一边界路由器不再接收前往所述主路由的数据元素;并且 作为响应去除所述备用隧道。
21. —种方法,包括 识别第一自治系统(AS)间路径; 识别具有端点的替换AS间链路;以及构造去往所述替换AS间链路的所述端点的备用隧道。
22. 如权利要求21所述的方法,其中所述替换AS间链路源自第一 AS,并且其中所述端点在所述第一 AS中。
23. 如权利要求21所述的方法,其中所述替换AS间链路源自第一 AS,并且其中所述端点在非所述第一AS的远程AS中。
24. 如权利要求23所述的方法,还包括 接收来自所述远程AS的通告;以及 从所述通告得出所述替换AS间链路。
全文摘要
在本发明的实施例中,描述了针对第一自治系统(AS)间链路(例如可达到第一前缀集合)的故障在AS中构造和实现备用路径。在一个或多个实施例中,一种方法包括识别可达到所述多个前缀的替换AS间链路,并且构造去往该链路的隧道。另外,在一个或多个实施例中,一种方法包括识别替换AS间路径并且构造去往该替换路径上的端点的隧道。另外,在一个或多个实施例中,一种方法包括经由备用路径来转发去往故障链路的数据元素,并且在分组中包括环路防止属性。另外,描述了一种管理AS中数据的转发(例如边界路由器之间的通信)的方法。
文档编号H04L12/26GK101326762SQ200680039334
公开日2008年12月17日 申请日期2006年10月18日 优先权日2005年10月20日
发明者伊恩·迈克尔·查尔斯·尚德, 克拉伦斯·菲尔斯非斯, 奥利维尔·波纳凡图尔, 戴维·D·沃德, 斯图尔特·布赖恩特, 斯特凡诺·B·普雷维蒂, 格尔吉·纳拉瓦德, 皮埃尔·佛朗克斯, 约翰·伽莱恩·斯卡德 申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1