IGP的收敛可以总体描述为如下状态D+O+F+SPT+RIB+DD:
(1)D状态为从链路出现故障以后到路由器发现链路故障所用的时间。
(2)O状态为生成LSP,用来描述新的网络拓扑结构所需要的时间。
(3)F状态为从发现链路故障一直到向邻居发布FIB更新的时间。
(4)SPT状态为运行SPF算法,计算最短路径树的时间。
(5)RIB状态为用主CPU更新RIB表项和FIB表项的时间
(6)DD状态为从主控板向线卡上发布更新路由信息的延迟
RIB状态和DD状态一般与路由器的硬件有关,如主CPU、线卡CPU、内存、网络处理器有关,这两个状态人为无法对收敛时间做出很大的改变。所以本文基本上以讨论前四个状态为主。
1.链路故障检测
现有的故障检测方法主要包括:
(1)硬件检测:例如通过SDH(Synchronous Digital Hierarchy,同步数字体系)告警检测链路故障。硬件检测的优点是可以很快发现故障,但并不是所有介质都能提供硬件检测。
(2)慢Hello机制:通常是指路由协议的Hello机制。这种机制检测到故障所需时间为秒级。对于高速数据传输,例如吉比特速率级,超过1秒的检测时间将导致大量数据丢失;对于时延敏感的业务,例如语音业务,超过1秒的延迟也是不能接受的。并且,这种机制依赖于路由协议。IS-IS协议一般通过IIH报文,用来做邻居发现和失效性检测,这个检测的速度是秒级的。
(3)其他检测机制:不同的协议或设备制造商有时会提供专用的检测机制,但在系统间互联互通时,这样的专用检测机制通常难以部署,如BFD。
2.生成LSP的间隔时间
在IS-IS协议中,当LSP生成定时器到期时,系统会根据当前拓扑重新生成一个自己的LSP。原有的实现机制是采用间隔时间定长的定时器,不能同时满足快速收敛和低CPU占用率的需要。
为了加快网络的收敛速度,同时又不影响系统性能,因此在产生LSP时使用了智能定时器,它可以根据路由信息的变化频率自动调整延迟时间。使其可以对于突发事件(如接口Up/Down)快速响应,加快网络的收敛速度。同时,当网络变化频繁时,智能定时器的间隔时间会自动延长,避免过度占用CPU资源。
3.加快泛洪LSP的时间
用户可以指定每次扩散的LSP数量,这个数量是针对所有接口的。如果需要发送的LSP的数量大于这个数,则就发送lsp-count个LSP。如果配置了定时器,在路由计算之前如果这个定时器未超时,则立即扩散;否则在该定时器超时时发送。如果命令中没有指定级别,则缺省同时在Level-1和Level-2中使能此功能。
4.加快SPF的计算时间
通常情况下,一个正常运行的IS-IS网络是稳定的,发生大量的网络变动的几率很小,IS-IS路由器不会频繁的进行路由计算,所以第一次触发的时间可以设置的非常短(毫秒级)。如果拓扑变化比较频繁,智能定时器会随着计算次数的增加,间隔时间也会逐渐延长,避免占用大量的CPU资源。
在ISO-10589中定义使用Dijkstra算法进行路由计算。当网络拓扑中有一个节点发生变化时,这种算法需要重新计算网络中的所有节点,计算时间长,占用过多的CPU资源,影响整个网络的收敛速度。
I-SPF改进了这个算法,除了第一次计算时需要计算全部节点外,每次只计算影响的节点,而最后生成的最短路径树SPT与原来的算法所计算的结果相同,大大降低了CPU的占用率,提高了网络收敛速度。
在路由计算中,路由代表叶子,路由器则代表节点。如果I-SPF计算后的SPT改变,PRC会只处理那个变化的节点上的所有叶子;如果经过I-SPF计算后的SPT并没有变化,则PRC只处理变化的叶子信息。比如一个IS接口,则整个网络拓扑的SPT是不变的,这时PRC只更新这个节点的接口路由,从而节省CPU占用率。
PRC和I-SPF节点使能一个IS-配合使用可以将网络的收敛性能进一步提高,它是原始SPF算法的改进,所以已经代替了原有的算法。默认情况下华为路由器采用I-SPF和PRC进行计算,不需要命令配置。
5.ISIS快收敛配置
R1和R2两台路由器互连,并且两个路由器之间通过IS-IS协议实现互通。
isis 1
network-entity 01.0000.0000.0004.00
is-evel level-1
bfd all-interfaces enable
timer lsp-refresh 1
timer lsp-generation 1 level-1
flash-flood level-1
timer spf 1