RIP协议简介(基于UDP端口号520)
RIP协议(Routing Information Protocol,路由信息协议)是一种基于距离矢量的内部网关协议,即根据跳数来度量路由开销,进行路由选择。
相比于其它路由协议(如OSPF、ISIS等),RIP协议实现更简单,对带宽、配置和管理等要求也更低,但受到路由跳数和收敛速度的限制,跳数大于15就认为网络不可达,所以无法用在大型复杂网络中。
RIP的作用:
在动态路由出现之前,静态路由有几个问题无法解决:
- 当网络拓扑结构和链路状态发生变化,需要对路由器的静态路由信息进行大方位修改,工作复杂度高。
- 网络发生故障时,不能重选路由,很可能使路由失败
为解决上诉问题,动态路由协议就出现了,路由自动学习,自适应网络变化。
RIP的应用场景:
RIF适用与中小型网络,因为RIF是基于距离矢量的算法。由于其只能支持0-15跳,第十六跳会被标记成无限大或不可达。所以在整个网络中,只能有16个路由器互相成为rip邻居路由器,由于以上原因,所以RIP只能应用于中小型网络
RIP协议的工作原理:
如下图,分别有RTA、RTB、RTC三个路由器,每个路由器首先学习到自己的直连路由,形成路由表。
然后在路由器上配置了RIP协议后,路由器每隔30s就会向他的直连路由通告自己的路由表。会记住下一跳,并标记跳数为1,以此类推,直到学习完邻居路由/到达最大跳数。
RIP依靠定时器进行收敛
RIP的四个定时器:
- 更新计时器(Update timer) —30s:
在RIP启动后,平均每30s(实际上是25.5s~30s间的随机数时间,防止所有路由器同时发送路由更新造成太大流量) - 失效计时器(invalid timer) —180s:
如果180s后还未收到可刷新现有路由的更新,则将该路由的度量设置为16,路由表项将被标记为“x.x.x.x is possibly dowm"。在清除计时器超时之前,该路由仍将保留在路由表中,可以转发路由。 - 刷新计时器(flush timer) —180s:
从收到一条路由开始计时,当清除计时器超时后,该路由表将从路由表删除。 - 抑制计时器(holddown timer )—180s:
思科私有。该计时器用于稳定路由信息,并有助于在拓扑结构根据新信息收敛的过程中防止路由环路和震荡。在某条路由被标记为不可达后,它处于抑制状态的时间必须足够长,以便拓扑结构中所有路由器能在此期间获知该不可达网络,并且减少。默认情况下,抑制计时器设置为180秒。
定时器具体解析:
1、一台路由器从接收到邻居发来的路由更新包开始,计时器会重置为0s (秒)并重新计时。(RIP路由器总是每隔30s通过UDP 520端口以RIP广播或组播应答方式向邻居路由器发送一个路由更新包)
2、如果路由器30s还未收到邻居发过来的路由更新包,则更新计时器超时。如果再过150s,达到180s(即30s + 150s = 180s)还没收到路由更新包,失效计时器超时。然后路由器将邻居路由器的相应路由条目标记为Possibly down,路由不可用,仅保留在RIP数据库中,并且向网络中发送16跳的毒化路由。
3、 要触发抑制计时器必须具备两个条件:1.失效计时器超时;2.立即从其它接口收到相同的路由信息。条件满足,设备会立马将对应条目进入180s的抑制计时器。即使再收到路由度量值小于16的对应路由更新,也不接受。当抑制定时器超时后,就重新允许接受对方发送的路由更新报文。并且在一致时间内周期发送被抑制的路由条目,metric为16。
如果收到了metric为16的RIP毒化(取消)路由,是不会进入抑制状态的,而是本端对应的路由直接被毒化为16跳,从路由表中消失。
RIP状态图解:
- 初始状态:路由器开启RIP进程,宣告相应接口,则设备就会从相关接口发送和接收RIP报文。
- 构建路由表:路由器依据收到的RIP报文构建自己的路由表项。
- 维护路由表:路由器每隔30s发送更新报文,同时接收相邻路由器发送的更新报文以维护路由表项。
- 老化路由表项:路由器为将自己构建的路由表项启动180s的定时器。180s内。如果路由器收到更新报文,则重置自己的更新定时器和老化定时器。
- 垃圾收集表项:如果180秒过后,路由器没有收到相应路由表项的更新,则启动时长为120秒的垃圾收集定时器,同时将该路由表项的度量置为16。
- 删除路由表项:如果120秒之后,路由器仍然没有收到相应路由表项的更新,则路由器将该表项删除。
RIP的防环机制:
RIP作为距离矢量路由协议只是简单的将自己的路由表周期性(30s)通告出去,同时将收到的有效路由加载到路由表中,并通过累加的度量值来体现到达目标网络的距离。由此运行距离矢量路由协议的路由设备并不了解整个网络的拓扑结构,这些特点使得网络中容易出现路由环路。
因此,RIF会通过水平分割、毒性逆转、触发更新机制防环。
- 水平分割:
-
- 水平分割分为按接口和按照邻居进行水平分割。广播网、P2P和P2MP网络中是按照接口进行水平分割的,NBMA网络是按照邻居进行水平分割。
- 水平分割技术:从一个接口学到的路由不会从这个接口发回去。
- 毒性逆转:
-
- RIP从某个接口学到路由后,会将该路由的开销值设为16(指明该路由不可达),并从原接口发回邻居路由设备。利用这种方式,可以清除对方路由表中的无用路由,也可以防止路由环路的发生。
- 触发更新:
-
- 路由信息发生变化时,立即向邻居设备发送触发更新报文,通知变化的路由信息。触发更新可以缩短网络收敛时间,在路由表项发生变化时立即向其他设备广播该信息,而不必等待定时更新。
RIPv1 | RIPv2 |
有类路由协议 | 无类路由协议 |
自动路由汇总,不可关闭 | 自动汇总可关闭,可手动汇总 |
广播更新(255.255.255.255) | 组播更新(224.0.0.9) |
不支持不连续子网 | 支持不连续子网 |
不支持VLSM(可变长子网掩码) | 支持VLSM |
RIP优缺点总结:
优点:
- RIP协议的优点是配置相对简单,非常适用于小规模网络。协议设计比较简单。
缺点:
- 大量广播:RIP向所有邻居每隔30s广播一次完整的路由表(不会增量更新),将占用宝贵的带宽资源。
- 没有成本概念:RIP没有网络延迟和链路成本的概念。当采用RIP时,路由/转发的决定只是基于跳线,这样,很容易无法选择最佳路由。例如,一条链路拥有较高的带宽,但是,跳数较多,从而不能选择。(条目优劣判断方式)
- 支持的网络规模有限:由于RIP路由协议最多只支持16个步跳,当超过该跳数时,网络将认为无法到达。因此RIP只能适用于规模较少的网络。(核心原因)
- 收敛速度有限:由于RIP协议收敛速度有限,当发生了网络变更时需要重新收敛,可能会导致数据丢失。(收敛速度)
- 无验证接收:只有是对方发来的路由条目就会接受,并不会去查看这个条目的正确性,容易产生环路。(条目计算方式)