2. 路由器的收敛机制 任何距离向量路由选择协议(如RIP)都有一个问题,路由器不知道网络的全局情况,路由器必须依靠相邻路由器来获取网络的可达信息。由于路由选择更新信息在网络上传播慢,距离向量路由选择算法有一个慢收敛问题,这个问题将导致不一致性产生。RIP协议使用以下机制减少因网络上的不一致带来的路由选择环路的可能性。
l
记数到无穷大机制
RIP协议允许最大跳数为15。大于15的目的地被认为是不可达。这个数字在限制了网络大小的同时也防止了一个叫做“记数到无穷大”的问题。
记数到无穷大机制的工作原理如下(如图9-33所示):
图9-33 路由器收敛机制示例
(1)现假设路由器1断开了与网络A相连,则路由器1丢失了与网络A相连的以太网接口后产生一个触发更新送往路由器2和路由器3。这个更新信息同时告诉路由器2和路由器3,路由器1不再有到达网络A的路径。假设这个更新信息传输到路由器2被推迟了(CPU忙、链路拥塞等),但到达了路由器3,所以路由器3会立即从路由表中去掉到网络A的路径。
(2)路由器2由于未收到路由器1的触发更新信息,并发出它的常规路由选择更新信息,通告网络A以2跳的距离可达。路由器3收到这个更新信息,认为出现了一条通过路由器2的到达网络A的新路径。于是路由器3告诉路由器1,它能以3跳的距离到达网络A。
(3)在收到路由器3的更新新后,就把这个信息加上一跳后向路由器2和路由器3同时发出更新信息,告诉他们路由器1可以以3跳的距离到达网络A。
(4)路由器2在收到路由器1的消息后,比较发现与原来到达网络A的路径不符,更新成可以以4,跳的距离到达网络A。这个消息再次会发往路由器3,以此循环,直到跳数达到超过RIP协议允许的最大值(在RIP中定义为16)。一旦一个路由器达到这个值,它将声明这条路径不可用,并从路由表中删除此路径。
由于记数到无穷大问题,路由选择信息将从一个路由器传到另一个路由器,每次段数加1。路由选择环路问题将无限制地进行下去,除非达到某个限制。这个限制就是RIP的最大跳数。当路径的跳数超过15,这条路径才从路由表中删除。
l
水平分割法
水平分割规则如下:路由器不向路径到来的方向回传此路径。当打开路由器接口后,路由器记录路径是从哪个接口来的,并且不向此接口回传此路径。
Cisco可以对每个接口关闭水平分割功能。这个特点在“non broadcast mutilple access”(NBMA,非广播多路访问)环境下十分有用。在如图9-34所示网络中,路由器2通过帧中继连接路由器1和路由器3,两个PVC都在路由器2的同一个物理接口(S0)中止。如果在路由器2的水平分割功能未被关闭,那么路由器3将收不到路由器1的路由选择信息(反之亦然)。用“no ip split-horizon”接口子命令可关闭水平分割功能。#p#
图9-34 水平分割法原理示例
l
破坏逆转的水平分割法
水平分割是路由器用来防止把一个接口得来的路径又从此接口传回导致的问题的方案。水平分割方案忽略在更新过程中从一个路由器获取的路径又传回该路由器。有破坏逆转的水平分割方法是在更新信息中包括这些回传路径,但这种处理方法会把这些回传路径的跳数设为16(无穷)。通过把跳数设为无穷,并把这条路径告诉源路由器,有可能立刻解决路由选择环路。否则,不正确的路径将在路由表中驻留到超时为止。破坏逆转的缺点是它增加了路由更新的的数据大小。
l
保持定时器法
保持定时器法可防止路由器在路径从路由表中删除后一定的时间内(通常为180秒)接受新的路由信息。它的思想是保证每个路由器都收到了路径不可达信息,而且没有路由器发出无效路径信息。例如在图6-32所示网络中,由于路由更新信息被延迟,路由器2向路由器3发出错误信息。但使用保持计数器法后,这种情况将不会发生,因为路由器3将在180秒内不接受通向网络A的新的路径信息,到那时路由器2将存储正确的路由信息。
l
触发更新法
有破坏逆转的水平分割将任何两个路由器构成的环路打破,但三个或更多个路由器构成的环路仍会发生,直到无穷(16)时为止。触发式更新法可加速收敛时间,它的工作原理是当某个路径的跳数改变了,路由器立即发出更新信息,不管路由器是否到达常规信息更新时间都发出更新信息。 3. RIP报文格式
如图9-35所示为RIP信息格式。各字段解释如下:
Command:命令字段,8位,用来指定数据报用途。命令有五种:Request(请求)、Response(响应)、Traceon(启用跟踪标记,自v2版本后已经淘汰)、Traceoff(关闭跟踪标记,自v2版本后已经淘汰)和 Reserved(保留)。
Version:RIP版本号字段,16位。
Address Family Identifier:地址族标识符字段,24位。它指出该入口的协议地址类型。由于 RIP2版本可能使用几种不同协议传送路由选择信息,所以要使用到该字段。IP协议地址的Address Family Identifier为2。
图9-35 RIP协议信息格式
Route Tag:路由标记字段,32位,仅在v2版本以上需要,第一版本不用,为0。用于路由器指定属性,必须通过路由器保存和重新广告。路由标志是分离内部和外部 RIP 路由线路的一种常用方法(路由选择域内的网络传送线路),该方法在 EGP或IGP都有应用。
IP Address:目标IP地址字段,IPv4地址为32位。
Subnet Mask:子网掩码字段,IPv4子网掩码地址为32位。它应用于IP地址,生成非主机地址部分。如果为0,说明该入口不包括子网掩码。也仅在v2版本以上需要,在RIPv1中不需要,为0。
Next Hop:下一跳字段。指出下一跳IP地址,由路由入口指定的通向目的地的数据包需要转发到该地址。
Metric:跳数字段。表示从主机到目的地获得数据报过程中的整个成本。