什么是RIP协议
- RIP协议(Routing Information Protocol,路由信息协议)是一种基于距离矢量的内部网关协议,即根据跳数来度量路由开销,进行路由选择。
RIP协议背景
- 在出现动态路由之前,静态路由有几个问题无法解决:
- 问题一:当网络拓扑结构和链路状态发生变化,需要对路由器的静态路由信息进行大范围修改,工作复杂度高。
- 问题二:网络发生故障时,不能重选路由,很可能使路由失败。
- 为了解决这些问题,动态路由协议就出现了,路由器自动学习,自适应网络的变化,无需人工更改配置。
RIP协议特点
- RIP协议(Routing Information Protocol,路由信息协议)是一种基于距离矢量的内部网关协议,即根据跳数来度量路由开销,进行路由选择。
- RIP认为好的路由就是“距离短”的路由,也就是所通过路由器数量最少的路由。
当到达同一目的网络有多条“距离相等”的路由时,可以进行等价负载均衡。 - 优点:简单
- 缺点:适用于小型互连网
RIP工作原理
距离
-
RIP要求自治系统AS内的每一个路由器都要维护从它自己到AS内其他每一个网络的距离记录。这是一组距离,称为“距离向量D-V(Distance-Vector)" 。
-
RIP使用跳数(Hop Count)作为度量(Metric)来衡量到达目的网络的代价(cost)。
-
路由器到直连网络的距离定义为1。
-
路由器到非直连网络的距离定义为所经过的路由器数加1。
-
允许一条路径最多只能包含15个路由器。“距离”等于16时相当于不可达。
路由表交换
-
RIP 协议规定,相邻路由器(通过同一网络连接的路由器)之间周期性交换各自的路由表。
-
路由表交换周期是 30 秒。
-
周期性不是严格的:发送前附加一段随机延迟(0 到 5 秒)。
-
原因:避免大量路由器同时发送路由表而造成网络拥塞。
报文发送
- RIP 使用 UDP 协议进行路由信息交换。
- RIP1 和 RIP2 使用 UDP 520 端口发送或接收 RIP 报文。
路由更新
- 接收到邻居的路由表后,路由器采用距离向量算法更新自己的路由表。
- 在下一个发送周期,路由器将更新后的路由表再发送给自己的邻居路由器。
- 若网络拓扑结构不变,经过有限次的路由表交换后,所有 RIP路由器都会获得到达自治系统中所有网络的最短路由。此时称路由协议收敛(convergence)
** RIP的路由条目的更新规则:
发现了新的网络,添加
到达目的网络,不同下一跳,新路由优势,更新
到达目的网络,不同下一跳,等价负载均衡
到达目的网络,相同下一跳,最新消息,更新
到达目的网络,不同下一跳,新路由劣势,不更新
故障处理
-
实际环境中,网络或路由器可能出现故障。
-
从上一次接收到邻居路由器发送的路由表起,如果经过 180 秒还没有收到新的发送,就假定:
-
连接邻居路由器的网络发生故障,或邻居路由器发生故障。(跳数置为15)
-
路由器立即更新自己与故障相关的路由表项,并在随后的发送周期中将新的路由表发送给邻居路由器。
-
经过有限次的路由表交换后,RIP 协议将达到新的收敛状态。
RIP环路
产生环路的原因
- RIP网络中某一段网络的故障,由于收敛速度过慢,部分路由器认为该网络仍然可达,导致路由不断更新导致距离计数至无穷大。
防环机制
- 最大跳数:当一个路由条目作为更新信息发送给邻居路由器时,路由条目会自加1跳,通过设定最大跳数15防止路由条目被无限转发。同时16跳可作为路由不可达标记。
- 触发更新:当网络出现拓扑变更后,路由器会立即产生更新通告,并广播通知所有直连邻居,不需要考虑30秒的更新计时器。为减少带宽和资源占用,触发更新消息只包含更新的路由条目。
- 水平分割:RIP路由器路由表中的某条条目信息由路由器的a口学习而来,则路由器a口向外发送响应消息时,不会包含该路由项的信息。
- 毒性反转:RIP路由器路由表中的某条不可达路由条目信息由路由器的a口学习而来,则路由器a口向外发送响应消息时,会包含该路由信息,但Metric会设置为16,不可达