网络高可用性技术白皮书之三

  • 格式:pdf
  • 大小:4.91 MB
  • 文档页数:22

网络高可用性技术白皮书(三)杭州华三通信技术有限公司目录网络高可用性技术白皮书(三) (1)1. 路由快速收敛 (1)1.1 等价多路径(ECMP) (1)1.2 浮动静态路由 (1)1.3 IGP快速收敛 (2)1.1.3 快速Hello (2)2.1.3 iSPF (3)1.4 MPLS FRR (4)1.1.4 本地保护 (4)2.1.4 路径保护 (8)2. 链路检测 (8)2.1 DLDP链路检测协议 (9)2.2 BFD (14)1. 路由快速收敛在实际网络中,通过冗余路由来提高网络可用性是普遍的做法,当其中一条路径发生故障时,流量可以切换到其他冗余路径。

冗余路由可以分为两种情况,一种是等价路由,一种是非等价路由。

等价路由即等价多路径(Equal Cost Multi Path,ECMP),ECMP的各条路径在互为备份的同时实现了负载分担。

非等价路径情况下,只有最优路径被启用作报文转发,次优路径只有当最优路径失效时才会被启用。

等价多路径有较好的收敛性能,经常被用于提高网络可用性,在下面会分析一下其收敛性能。

浮动静态路由也比较常用,也会简单介绍一下。

最后本节会介绍目前普遍采用的提高IGP收敛性能的两种方法:快速Hello和iSPF。

1.1等价多路径(ECMP)对于ECMP来说,静态和动态情况下其收敛时间基本相同。

ECMP中某条路径出现故障时,其收敛过程大致为:检测到路径故障,故障上报路由模块,路由模块删除软件FIB表中与该路径相关的表项,如果存在硬件FIB表,还需要删除硬件FIB表。

故障路径上的流量被重新分布到其他等价路径。

所以ECMP的收敛时间 = 故障检测时间+故障上报时间+软件FIB删除时间+硬件FIB 删除时间。

后三个因素加起来,时间大约在10ms量级。

故障检测时间需要具体分析,如果是链路UP/DOWN,检测时间在ms级。

如果是其他故障,和故障检测手段相关,部署了BFD,可以在亚秒级检测到故障。

至于ECMP的故障路径恢复,其过程大致是:路由模块重新学习到等价路由,路由下发软件FIB,如果存在的话,还要下发到硬件FIB。

因为在路由下发FIB生效前,流量并不会重新分布,所以从理论上来说,等价路由恢复的收敛时间为0。

测试结果也基本证实了这点。

等价多路径有很好的收敛速度,在网络设计中,如果核心网基于纯IP架构,那么使用ECMP 来保障高可用性是很好的一个选择。

1.2浮动静态路由所谓浮动静态路由(floating static route)是指对同一个目的网络,配置下一跳不同,且优先级不同的多条静态路由。

正常情况下,只有优先级最高的静态路由起作用。

当优先级最高的静态路由失效时,次优静态路由被启用….,以此保障目的网络总是可达,提高网络可用性。

在转发路径故障的情况下,浮动静态路由收敛过程大致是:路径故障上报,路由模块删除软件FIB,如果存在硬件FIB,还要删除硬件FIB,路由模块启用次优路由,路由模块下设软件FIB,如果存在,下设硬件FIB。

所以浮动静态路由的收敛时间为:故障检测时间+路径故障上报时间+软硬件FIB删除时间+软硬件FIB下设时间后面三个因素消耗的时间大致在10ms到100ms量级。

故障检测时间需要具体情况具体分析,链路UP/DOWN的情况故障检测时间在ms级,可以忽略不计,其他故障在静态浮动路由的情况下还不好检测。

路径恢复时,其收敛过程和收敛时间跟路径故障时类似。

1.3IGP快速收敛目前常用的标准路由协议为RIP、OSPF、IS-IS、BGP。

其中,收敛速度不是BGP协议的设计目标,所以本文不予讨论。

RIP由于其周期性的非可靠路由发布机制,不适合用在高可用性网络,也不讨论。

这里主要讲OSPF、IS-IS如何达到快速收敛,两者都是链路状态类型的IGP。

对于IGP,收敛速度是衡量其优劣的一个重要指标。

具体到OSPF和IS-IS这两中链路状态路由协议,提高收敛速度,可以从下述几个方面着手:1.提高邻居故障检测速度2.提高协议会话建立速度3.提高链路状态数据库的同步速度。

4.提高SPF计算效率5.减少LSDB同步到SPF计算开始之间的时间间隔OSPF和IS-IS都使用hello报文来检测邻居状态,缩短hello报文的发送时间间隔,即常说的快速Hello可以有效加快故障检测速度。

另外一种加快故障检测速度的机制是BFD,将在后面的章节讲到。

快速hello的另一个作用是可以提高OSPF和IS-IS邻居关系的建立,即上面提到的第2点,加快协议会话的建立速度。

不过,存在冗余路径的情况,因为协议会话在冗余路径上是已经建立了的,这时快速Hello对于提高协议会话建立速度意义不大。

不过,在没有冗余路径的情况下,快速Hello是可以提高会话建立速度的。

第三点,提高SPF计算效率,目前普遍采用iSPF,即增量SPF算法。

第四点,提高链路状态的同步速度,需要对链路变化快速反应,迅速生成新LSA并泛洪。

第五点,减少LSDB同步到SPF计算开始之间的时间间隔,可以通过适当调整SPF timer来实现。

下面介绍快速Hello和iSPF。

1.1.3快速HelloOSPF和IS-IS均支持快速Hello,快速Hello的设计目标是用于多路访问网络,比如以太网,ATM网络,当多个路由器通过一个二层以太网交换机或者ATM交换机相连时,链路的UP/Down被二层交换机隔离,邻居感知不到,这导致邻居丢失需要靠协议的软Hello机制来检测。

以OSPF 为例,缺省的Hello interval为10秒,路由器缺省情况在4个Hello interval内收不到对端的Hello报文,才认为邻居丢失,这导致40秒之后才会引发SPF计算,重新选路。

对于一个高可用性网络来说,40多秒的收敛时间显然难以接受的。

为此,各个设备厂商都设计了快速Hello特性,通过允许把Hello Interval设到最小50ms,来提高邻居丢失检查速度。

以CISCO的OSPF快速Hello为例,其配置命令为:ip ospf dead-interval {seconds | minimal hello-multiplier multiplier}z其中如果使用Seconds参数,就是正常OSPF情况,缺省是4倍的Hello interval,但允许用户自己配置,单位为秒。

z使用“minimal hello-multiplier multiplier”即表示用快速Hello,其中“multiplier”是设备在1秒内发送Hello报文的个数,取值范围为3-20,配置20,相当于Hellointerval为50ms。

不过,快速Hello会带来很多负面影响,首先OSPF和IS-IS的Hello报文本身携带的信息都比较多,其次部署环境是多路访问网络,邻居不会少,Hello发送过快,会给路由器的CPU带来沉重负担,处理不过来的话,会导致误报,引起不必要的路由振荡。

在部署快速Hello时,必须由有经验的工程师根据设备CPU处理能力和网络部署情况,谨慎调整Hello interval.2.1.3iSPF在通常的OSPF、IS-IS协议实现中,如果链路状态发生了变化,那么整个最短路径树都会重新计算。

但是在实际情况中,链路状态发生变化时,以发起计算的路由器为源点的最短路径树的绝大部分事实上是不需要重新计算的,只需要对受链路状态变化影响的部分,比如,只需对这条路径树的某些子树作增量计算即可。

对链路状态改变引起的变化,充分利用先前的计算结果,只作增量计算,这就是iSPF(incremental SPF,增量最短路径优先)的目标,也是其名字的由来。

事实上,在标准的OSPF V2文本(RFC2328)的16.5/16.6已经提到一些只需要增量计算的情况,比如,当收到了变化的summary-LSAs和AS-external-LSAs时,不一定需要重新计算整棵树,可能只需要更新以ABR和ASBR为根的子树。

还有一些很明显的情况也只需要作增量计算,如下图,考虑以A为源节点的最短路径树,因为C-D之间的链路在最短路径树中没有使用,如果这条链路down,对整棵最短路径树事实上没有任何影响,根本就不需要进行SPF计算。

再比如,路由器G增加了一个邻居H,那么对于以A 为源的最短路径树来说,只需要计算以G为根的最短路径子树。

图1unused link and stub changesiSPF算法只对受链路状态变化(up、down、insert、delete)影响的子树及其关连节点进行计算,设计良好的iSPF算法可以较大的提升路由计算速度。

iSPF算法在最近的20多年中吸引了很多人的研究,提出了各种算法。

目前实用的iSPF算法,其收敛时间在100ms以内。

1.4MPLS FRR在MPLS TE网络中,通常情况下,如果某个LSP途经的链路或节点故障,故障链路或节点的上游邻节点会发错误消息给LSP的头节点,由头节点利用CSPF重新计算出一条新的路径,并据此建立LSP,然后把流量切换到新的LSP。

但是,在IGP路由收敛之前,CSPF是无法算出有效路径的,这导致TE的收敛时间过长,在10s量级,对很多应用来说难以忍受。

解决这个问题的办法是引入MPLS TE保护技术,MPLS TE保护技术也称为FRR(Fast ReRoute),即MPLS快速重路由。

FRR预先为需要保护的LSP建立好备份路径,对其局部或全局提供保护,在检测到被保护LSP上的某条链路或节点出现故障后,可以立即切换到备份路径,通过引入快速故障检查技术(如RSVP Hello、BFD或链路层提供的检测功能), LSP可以作到在50ms以内收敛。

不过,备份路径只提供临时的故障规避措施,路径切换后,被保护LSP的头节点需要重新计算,建立新的更优的LSP,并使用RSVP-TE的Make-before-Break机制,可把流量无缝切换到新的LSP,在新LSP建立之前,流量会一直延备份路径转发。

MPLS TE保护技术可以分为两类:本地保护(Local Protection),本地保护分为两种:链路保护(link Protection),对LSP上的某条链路进行保护。

节点保护(Node Protection),对LSP上的某个节点进行保护。

路径保护(Path Protection),对LSP实施端到端的保护。

本地保护一般可以在50ms内收敛,路径保护相对来说收敛时间稍慢,可能达到几百ms。

本地保护已经形成正式的标准,RFC 4090,其中定义了两种本地保护方式,一种是One-to-One Backup方式,在各个可能的故障节点或链路,为不同的被保护LSP创建不同的备份路径;另一种是Facility Backup方式,在各个可能的故障节点或链路,可以用一条备份路径保护多条LSP。