RIP而言,最复杂的部分莫过于在路由失效时重新收敛路由所使用的环路预防方法。在RIP中,采用了不少环路预防的工具,但是实际上这些工具却在增加收敛时间——这也是RIP为人诟病的主要原因。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

与收敛和环路预防相关的RIP特性

功能

描述

分割范围( split horizon

当发送更新时, RIP 不是在特定接口上广播所有路由,而是忽略那些与外发接口字段与接口匹配的路由。

触发式更新

当路由信息改变时,立即进行路由更新,而不再等待更新定时器超时。

路由中毒( route poisoning

当某条路由失效时,在路由更新时发送一条无穷 metric (跳数为 16 )的路由。

反向中毒( poison reverse

为了防止在同一接口上接收到包含相同中毒路由的更新所采用的中毒路由广播策略。

更新定时器

确定更新发送时间间隔的定时器。每个接口使用一个独立的定时器,默认为 30

保持定时器

当一条路由 metric 改为更大值时,启动该定时器(默认 180 秒),直到定时器超时,路由器才会在其路由表中添加可选路由。

失效定时器

对每条路由,该定时器会一直增长,直到接收到路由更新确定该路由仍然有效,此时它的值重设为 0 。如果更新停止,失效计时器会一直增长直到超时(默认 180 秒),此时路由即认为失效。

垃圾定时器( garbage timer

和失效定时器同时清空和增长。当该定时器超时(默认 240 秒),路由器会在路由表中删除该条路由以接受新的路由。

 

环路预防配置实例

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

所有路由器都使用的RIP配置:

router rip

 network 172.31.0.0

 version 2

(配置完后可以用show ip protocolshow ip routeshow ip rip database命令查看RIP配置信息。)

RIP发现某条路由失效时,RIPv2会重新收敛到另一条路由,这个过程如下:

1)在R1上使用debug ip rip,会显示R1RIP更新(包括R1对分割范围的使用)。

2R3E0/0接口shut down,表示接口失效。

3R3立即触发更新,因为R3明确地知道有路由失效了。R3广播中毒路由172.31.103.0/24

4R1立即广播一条中毒反向路由172.31.103.0/24R3,同时由其fa0/0接口发送触发更新。

5R1在其路由表中删除172.31.103.0/24的路由记录。

6R1等待R2的下一个更新,该更新基于R2在其fa0/0接口上的更新定时器发送。该更新包含一条到172.31.103.0/24的路由。R1将该条路由加入路由表。

(不要将触发更新与RIP的触发扩展(RFC 2091)混淆,触发扩展定义了RIP可以选择只发送一次完全更新,这是为了支持请求式线路。该功能在接口上使用子命令ip rip triggered激活。)

当路由器停止接收路由更新,RIP必须等待一些定时器超时,才能确定哪些路由为失效路由。其步骤如下:

1R3s0/0.1子接口失效,但R1的帧中继子接口仍然保持up,此时R1必须使用定时器来探测路由失效。

2)因为此时R1不能接收到来自R3的关于路由172.31.103.0/24的更新,所以其失效和垃圾定时器一直增长。

3)当R1172.31.103.0/24路由的失效定时器超时(180秒),R1启动保持路由器(默认180秒)。

4)垃圾定时器在240秒后超时,此时,R1在其路由表中删除172.31.103.0/24这条路由,同时删除该条路由的保持定时器。

(注意如果将保持定时器设值小于60秒,就能更快地发现新的路由。)

以上的过程也可以有所改善。RIP定时器可以使用route rip下的timer basic update invalid hold-down flush子命令来调整。另外,clear ip route *命令也有助于加快收敛速度。