1、概述

  • 距离矢量路由协议(把已知的路由信息转换为更新报文,发送给直连路由器)。
  • 运行距离矢量路由选择协议时,只知道路由条目,不知道拓扑信息。
  • RIP是基于跳数来选择路径,最大为15跳。16表示不可达,0用在路由重分发时。(适用于小型网络)
  • RIP不加路由表的情况:1、认证不匹配;2、被动接口;3、直连接口地址不在同一IP子网段

2、算法

  • 贝尔曼富特算法

3、协议类型

  • RIP既是有类协议,也是无类协议。RIPv1是有类协议,RIPv2是无类协议。

4.1、RIP概述_IGP

3.1、RIPv1

  • 有类协议,更新的路由条目中不包含子网掩码,支持定长子网掩码(FLSM),不支持VLSM。
  • 不支持VLSM
  • 用broadcast来发送更新(255.255.255.255)
  • 不携带子网掩码
  • 不支持路由汇总
  • 不支持认证

3.2、RIPv2

  • 无类协议,更新的路由条目中包含子网掩码,支持FLSM,也支持VLSM。
  • 支持VLSM
  • 用Multicast来发送更新(224.0.0.9)
  • 携带子网掩码
  • 支持路由汇总(auto-summmary自动汇总)
  • 支持认证(cisco支持明文认证,也支持密文认证)

4、报文封装

  • 报文封装:Layer 2/IPv4/UDP/RIP/FCS (源目端口号520)

5、工作原理

  • 路由器运行RIP后,会首先发送路由更新请求(Request报文),收到请求的路由器会发送自己的RIP路由进行响应(Response报文)。
  • 网络稳定后,路由器会周期性发送路由更新信息(Response报文),默认周期为30秒;更新报文中包含该路由器宣告进RIP进程的所有接口的直连路由和该路由器通过RIP学习到的已经加入路由表的RIP路由。

6、防环机制

6.1、路由毒化

  • 路由器感知到链路出现故障后,不会将该路由立即从路由表中删除,而会将该路由设置为毒化状态并发送给邻居路由器;当180秒的抑制时间超时后才会将该路由从路由表中删除。

6.2、计数到无穷大

  • 路由项度量值达到最大值16后,路由器不再转发到10.4.0.0的数据包。

6.3、触发更新

  • 当路由器发现路由信息发生变化时,会无视更新计时器,立即向邻居设备发送更新。

6.4、水平分割(Split Horizon)

  • 路由器从某个接口学到路由后不会再从该接口发回给邻居路由器。

6.5、毒性逆转(Poison Reverse)

  • 带有毒性逆转的水平分割,路由器从某个接口学到错误的路由后,将该路由的跳数设置为16,并从原接收接口发回给邻居路由器。

7、计时器

7.1、更新计时器(Update timer)

  • 30S,路由器发送路由跟新的周期。
  • 异步更新,在使用RIP协议时,为了防止因为RIP协议每30S/次发送的路由更新造成的网络波动,影响网络质量,RIP协议中会自动开启一个弹性计时器,使得原来固定的30S更新时间调整在30S+/-4.75S的区间内。

7.2、失效计时器(invalid timer)

  • 180S,路由条目如果在180s内没有被更新,该路由条目不会被直接从路由表中删除,也不会转发给其他邻居,会被标记为possibly down。

7.3、刷新计时器(flush timer)

  • 240S,被标记为possibly down的路由,如果240(失效计时器180+60)秒内没有被更新过,直接从路由表中删除该路由)。

7.4、抑制计时器(holddown timer)

  • 180S,相同邻居收到了度量值不同的相同路由条目,立即无视路由更新,开启抑制计时器,在180秒内,都会被标记possibly down,如果180s内连续收到跳数为一个定值,180秒之后被写入路由表。