RIPv2协议

来源:互联网 发布:ubuntu下apache 2配置 编辑:程序博客网 时间:2024/06/05 15:35

RIPv2协议

RIPv2是增强了的RIP协议,定义在RFC 1721和RFC 1722(1994)中。RIPv2基本上还是一个距离矢量路由一协议,但是有三方面的改进。
1、使用组播而不是广播来传播路由更新报文,并且采用了触发更新(triggered update)机制加速路由收敛,即出现路由变化时立即向邻居发送路由更新报文,而不必等待更新周期是否到达。
2、RIPv2是一个无类别的协议(classless protocol),可以使用可变长子网掩码(VLSM),也支持无类别域间路由(CIDR),这些功能使得网络的设计更具伸缩性。
3、第三个增强是RIPv2支持认证,使用经过散列的口令字来限制路由更新信息的传播。
其他方面的特性与第一版泪同,例如以跳步计数来度量路由费用,允许的最大跳步数为15等。
距离矢量算法要求相邻路由器之问周期性地交换路由表,并通过逐步交换把路由信息扩散到网络中所有的路由器。这种逐步交换过程如果不加以限制,将会形成路由环路阵(Routing Loops),使得各个路由器无法就网络的可到达性取得一致。
这里写图片描述
例如:在上图中,路由器A, B, C的路由表已经收敛,每个路由表的后两项是通过交换路由信息学习到的。如果在某一时刻,网络10.4.0.0发生故障,C检测到故障,并通过S0把故障通知B。

然而,如果B在收到C的故障通知前将其路由表发送到C,C则认为通过B可以访问10.4.0.0,并据此将路由表中第二条记录修改为(10.4.0.0.S0,2)这样一来,路由器A, B, C都认为通过其他的路由器存在一条通往10.4.0.0的路径。

结果导致目标地址为10.4.0.0的数据包在三个路由器之间来回传递,从而形路由环路。

解决路由环路问题可以采用水平分割法(Split Horizon).这种方法规定,路由器必须有选择地将路由表中的信息发送给邻居,而不是发送整个路由表。具体地说,一条路由信息不会被发送给该信息的来源。

可以对上图中B的路由表项加上一些注释,如图所示,可以看出,每一条路由信息都不会通过其来源接口向回发送,这样就可以避免环路的产生。
这里写图片描述
1、简单的水平分割方案是:“不能把从邻居学习到的路由发送给那个邻居”
2、带有反向毒化的水平分割方案(Split Horizon with Poisoned Reverse)是:“把从邻居学习到的路由费用设置为无限大,并立即发送给那个邻居”。采用反向毒化的方案更安全一些,它可以立即中断环路。相反,简单水平分割方案则必须等待一个更新周期才能中断环路的形成过程。
另外,前面提到的触发更新技术也能加快路由收敛,如果触发更新足够及时——路由器C在接收B的更新报文之前把网络10.4.0.0的故障告诉B,则可以防止环路的形成。

原创粉丝点击