RIP基本原理
RIP是一种基于距离矢量(Distance-Vector)算法的协议,它使用跳数(Hop Count)作为度量值来衡量到达目的地的地址的距离。在RIP网络中,缺省情况下,设备到与它直接相连网络的跳数为0,通过一各设备可达的网络跳数为1,其余依次类推。也就是说,度量值等于从本网络到达目的网络间的设备数量。为限制收敛时间,RIP规定度量值取0~15之间的整数,大于或等于16的跳数被定义为无穷大,即目的网络或主机不可达。
RIP路由表的形成
RIP启动时的初始路由表仅仅包含本设备的一些直连接口路由。通过相邻设备互相学习路由表项,才能实现各网段路由互通。
-
路由表的形成
☆RIP协议启动之后,RouterA会向相邻的路由器广播一个Request报文。☆当RouterB从接口接收到RouterA发送的Request报文后,把自己的路由表封装在Respone报文内,然后向该接口对应的网络广播。
☆RouterA根据RouterB发送的Response报文报文,形成自己的路由器。
-
RIP的更新和维护
RIP协议在更新和维护路由信息时主要使用三个定时器:
☆更新定时器(Update timer):当此定时器超时时,立即发送更新报文。
☆老化定时器(Age timer):RIP设备如果在老化时间内没有收到邻居发来的路由更新报文,则认为该路由不可达。
☆垃圾收集定时器(Garbage-collect timer):如果在垃圾收集时间内不可达路由没有收到来自同一邻居的更新,则该路由将被从路由表中彻底删除 -
RIP路由与定时器之间的关系
☆RIP的更新信息发布是由更新定时器控制的,默认为30秒发送一次。
☆每一条路由表项对应两个定时器:老化定时器和垃圾收集定时器。当学到一条路由并添加到路由表中时,老化定时器启动。如果老化定时器超时,设备仍没有收到邻居发来的更新报文,则把该路由的度量值置为16(表示路由不可达),并启动垃圾收集定时器。如果垃圾收集定时器超时,设备仍没有收到更新报文,则在路由表中删除该路由。
- 触发更新
触发更新是指当路由信息发生变化时,立即向邻居设备发送触发更新报文,而不用等待更新定时器超时,从而避免产生路由环路。
RIPv2的增强性
- RIPv1与RIPv2的比较
RIPv1(即RIP version1)是有类别路由协议(Classful Routing
Protocol),它只支持以广播方式发布协议报文。RIPv1的协议报文中没有携带掩码信息,它只能识别A、B、C类这样的自然网段的路由,因此RIPv1无法支持路由聚合,也不支持不连续子网(Discontiguous
Subnet)。
- RIPv2是一种无分类路由协议(Classless Routing Protocol),报文格式
- 与RIPv1相比RIPv2具有以下优势:
支持外部路由标记(Route Tag),可以在路由策略中根据Tag对路由进行灵活控制。
报文中携带掩码信息,支持路由聚合和CIDR(Classless Inter-Domain Routing)。
支持指定下一跳,在广播网上可以选择到最优下一跳地址。
支持以组播方式发送更新报文,只有支持RIPv2的设备才能收到协议报文,减少资源消耗。
支持对协议报文进行验证,并提供明文验证和MD5验证两种方式,增强安全性。
RIPv2路由聚合
路由聚合的原理是,同一个自然网段内的不同子网的路由在向外(其它网段)发送时聚合成一个网段的路由发送。
RIPv1的协议报文中没有携带掩码信息,故RIPv1发布的就是自然掩码的路由。RIPv2支持路由聚合,因此RIPv2报文携带掩码位,所以支持子网划分。在RIPv2中进行路由聚合可提高大型网络的可扩展性和效率,缩减路由表。
- 路由聚合有两种方式:
■ 基于RIP进程的有类聚合
聚合后的路由使用自然掩码的路由形式发布。比如:1.1.0/24(metric=2)和10.1.2.0/24(metric=3)这两条路由,汇聚和成自然网段路由10.0.0.0/8(metric=2)。RIPv2聚合是暗类聚合的,聚合后得到最优的metric值。
■ 基于接口的聚合
用户可以指定聚合地址。比如:1.1.0/24(metric=2)和10.1.2.0/24(metric=3)这两条路由,可以在此接口上配置聚合路由10.1.0.0/16(metric=2)。
水平分割和毒性逆转
- 水平分割(Split Horizon)
水平分割的原理是,RIP从某个接口学习到的路由,不会从该接口再发送给邻居路由器。这样不但减少了带宽损耗,还可以防止路由环路。
水平分割在不同网络中实现有所区别。广播网、P2P和P2MP网络中是按照接口进行水平分割的。
- 毒性反转(Poison Reverse)
毒性反转的原理是,RIP从某个接口学习到路由后,将该路由的开销设置为16(即指明该路由不可达),并从原接口发回邻居路由器。利用这种方式可以清除对方路由表中的无用路由,防止产生路由环路。
- 多进程和多实例
RIP多进程允许为指定的RIP进程关联一组接口,从而保证该进程进行的所有协议操作都仅限于这一组接口。这样,就可以实现一台设备有多个RIP进程,不同的RIP进程之间互不影响,他们之间的路由交互相当于不同路由协议之间的路由交互。
RIP多实例是为每个VPN实例绑定一个RIP进程,从而实现VPN实例与指定进程下的所有接口相关联。
- RIP与BFD联动
网络上的链路故障会导致路由器重新计算路由,因此缩短路由协议的收敛时间对于提高网络性能是非常重要的。
双向转发检测BFD(Bidirectional Forwarding Detection)是一种检测邻居路由器之间链路故障的检测机制,它通常与路由协议联动,通过快速感知链路故障并通告使得路由协议能够快速的收敛,从而减少由于拓扑变化导致的流量流失。
在RIP与BFD联动中,BFD可以快速检测到链路故障并通知RIP协议,从而加快RIP协议对于网络拓扑变化的响应。