ISIS目前作为骨干网唯一的路由协议,收敛速度是非常值得关注的。而普通的IGP路由收敛方式为用HELLO报文检测链路失效,周期性传递LSA的方式(在收到整个LSA的时候再向邻居扩散)。所以在网络规模扩大的时候,LSDB随之增大,SPF的计算时间也会相当漫长。为了改进计算方法,我们设计了如下几种改进方案。
I-SPF(Incremental SPF)
I-SPF是指增量路由计算,顾名思义它每次只对变化的一部分路由进行计算,而不是对全部路由重新计算。在ISO-10589中定义使用Dijkstra算法进行路由计算。当网络拓扑中有一个节点发生变化时,这种算法需要重新计算网络中的所有节点,计算时间长,占用过多的CPU资源,影响整个网络的收敛速度。
I-SPF改进了这个算法,除了***次计算时需要计算全部节点外,每次只计算影响的节点,而***生成的最短路径树SPT与原来的算法所计算的结果相同,大大降低了CPU的占用率,提高了网络收敛速度。
PRC(Partial Route Calculation)
部分路由计算PRC的原理与I-SPF相同,都是只计算变化的那一部分。但PRC不需要计算节点路径,而是根据I-SPF算出来的SPT来更新叶子(路由)。
在路由计算中,路由代表叶子,路由器则代表节点。如果I-SPF计算后的SPT改变,PRC会只处理那个变化的节点上的所有叶子;如果经过I-SPF计算后的SPT并没有变化,则PRC只处理变化的叶子信息。
比如一个节点使能一个IS-IS接口,则整个网络拓扑的SPT是不变的,这时PRC只更新这个节点的接口路由,从而节省CPU占用率。
PRC和I-SPF配合使用可以将网络的收敛性能进一步提高,它是原始SPF算法的改进,所以已经代替了原有的算法。
LSP快速扩散
为了加快整个网络的收敛速度,当IS-IS收到其它路由器发来的LSP时,如果此LSP比自己LSDB中的要新,按原来RFC协议的实现,则是用一个定时器,定时将LSDB内的LSP扩散出去,所以LSDB的同步会比较缓慢。
LSP快速扩散特性改进了这种方式,配置此特性的路由器收到一个或多个比较新的LSP时,在路由计算之前,先将小于指定数目的LSP扩散出去,加快LSDB的同步过程。这种方式在很大程度上可以提高整个网络的收敛速度。
智能定时器
改进了路由算法后,如果触发路由计算的间隔较长,同样会影响网路的收敛速度。使用毫秒级定时器可以缩短这个间隔时间,但如果网络变化比较频繁,又会造成过度占用CPU资源。SPF智能定时器既可以对少量的外界突发事件进行快速响应,又可以避免过度的占用CPU。
通常情况下,一个正常运行的IS-IS网络是稳定的,发生大量的网络变动的几率很小,IS-IS路由器不会频繁的进行路由计算,所以***次触发的时间可以设置的非常短(毫秒级)。如果拓扑变化比较频繁,智能定时器会随着计算次数的增加,间隔时间也会逐渐延长,避免占用大量的CPU资源。
与SPF智能定时器类似的还有LSP生成智能定时器。在IS-IS协议中,当LSP生成定时器到期时,系统会根据当前拓扑重新生成一个自己的LSP。原有的实现机制是采用间隔时间定长的定时器,不能同时满足快速收敛和低CPU占用率的需要。为此将LSP生成定时器也设计成智能定时器,使其可以对于突发事件(如接口Up/Down)快速响应,加快网络的收敛速度。同时,当网络变化频繁时,智能定时器的间隔时间会自动延长,避免过度占用CPU资源。
原文链接:http://ender.joe.blog.163.com/blog/static/129479253201372651722356/