RIP(Routing Information Protocol,路由信息协议)是一种较为简单的内部网关协议(InteriorGateway Protocol,IGP),主要用于规模较小的网络中,比如校园网以及结构较简单的地区性网络。
对于更为复杂的环境和大型网络,一般不使用 RIP。由于 RIP 的实现较为简单,在配置和维护管理方面也远比 OSPF 和 IS-IS 容易。
二、RIP的工作机制
1. RIP的基本概念
RIP 是一种基于距离矢量(Distance-Vector)算法的协议,它通过 UDP 报文进行路由信息的交换,使用的端口号为 520。
RIP 使用跳数来衡量到达目的地址的距离,跳数称为度量值。在 RIP 中,路由器到与它直接相连网络的跳数为 0,通过一个路由器可达的网络的跳数为 1,其余依此类推。为限制收敛时间,RIP 规定度量值取 0~15 之间的整数,大于或等于 16 的跳数被定义为无穷大,即目的网络或主机不可达。
由于这个限制,使得 RIP 不适合应用于大型网络。为提高性能,防止产生路由环路,RIP 支持水平分割(Split Horizon)和毒性逆转(PoisonReverse)功能。
2. RIP的路由数据库
每个运行 RIP 的路由器管理一个路由数据库,该路由数据库包含了到所有可达目的地的路由项,这些路由项包含下列信息:
- 目的地址:主机或网络的地址。
- 下一跳地址:为到达目的地,需要经过的相邻路由器的接口 IP 地址。
- 出接口:本路由器转发报文的出接口。
- 度量值:本路由器到达目的地的开销。
- 路由时间:从路由项最后一次被更新到现在所经过的时间,路由项每次被更新时,路由时间重置为 0。
- 路由标记(Route Tag):用于标识外部路由,在路由策略中可根据路由标记对路由信息进行灵活的控制。关于路由策略的详细信息,请参见“三层技术-IP 路由配置指导”中的“路由策略”。
3. RIP防止路由环路的机制
RIP 协议向邻居通告的是自己的路由表,有可能会发生路由环路,可以通过以下机制来避免:
- 计数到无穷(Counting to infinity):将度量值等于 16 的路由定义为不可达(infinity)。在路由环路发生时,某条路由的度量值将会增加到 16,该路由被认为不可达。
- 触发更新(Triggered Updates):RIP 通过触发更新来避免在多个路由器之间形成路由环路的可能,而且可以加速网络的收敛速度。一旦某条路由的度量值发生了变化,就立刻向邻居路由器发布更新报文,而不是等到更新周期的到来。
- 水平分割(Split Horizon):RIP 从某个接口学到的路由,不会从该接口再发回给邻居路由器。这样不但减少了带宽消耗,还可以防止路由环路。
- 毒性逆转(Poison Reverse):RIP 从某个接口学到路由后,将该路由的度量值设置为 16(不可达),并从原接口发回邻居路由器。利用这种方式,可以清除对方路由表中的无用信息。
三、RIP的版本
RIP 有两个版本:RIP-1 和 RIP-2。
RIP-1 是有类别路由协议(Classful Routing Protocol),它只支持以广播方式发布协议报文。
协议报文无法携带掩码信息,它只能识别 A、B、C 类这样的自然网段的路由,因此 RIP-1 不支持不连续子网(Discontiguous Subnet)。
RIP-2 是一种无类别路由协议(Classless Routing Protocol),与 RIP-1 相比,它有以下优势:
- 支持路由标记,在路由策略中可根据路由标记对路由进行灵活的控制。
- 报文中携带掩码信息,支持路由聚合和 CIDR(Classless Inter-Domain Routing,无类域间路由)。
- 支持指定下一跳,在广播网上可以选择到最优下一跳地址。
- 支持组播路由发送更新报文,只有 RIP-2 路由器才能收到更新报文,减少资源消耗。
- 支持对协议报文进行验证,并提供明文验证和 MD5 验证两种方式,增强安全性。RIP-2 有两种报文传送方式:广播方式和组播方式,缺省将采用组播方式发送报文,使用的组播地址为 224.0.0.9。当接口运行 RIP-2 广播方式时,也可接收 RIP-1 的报文。