问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

RIP协议详解

创作时间:
作者:
@小白创作中心

RIP协议详解

引用
CSDN
1.
https://blog.csdn.net/Barista_Z/article/details/125662061

RIP(Routing Information Protocol)是一种古老的动态路由协议,基于距离矢量算法计算最佳路径。本文将详细介绍RIP协议的工作原理、路由交换过程、报文封装、定时器机制、环路问题及解决方案,以及RIPv1和RIPv2的比较。

协议内容

RIP(Routing Information Protocol)是一种古老的动态路由协议,基于距离矢量算法计算到达目的网络的最佳路径。RIP报文承载于UDP报文,使用UDP端口520,属于应用层协议。在RIP协议中,路由根据到达目的地的跳数作为路由选择的度量值。

路由交换过程

RIP更新方式

网络初始化后,每一台使用RIP协议的路由器,通过间隔30秒向邻居路由器广播同步路由表配置同步报文,同时邻居也会不断广播同步路由表报文,经过收敛事件后,每台路由器都会包含去往整个自制系统内所有路由器的路由信息。

(注:在整个系统稳定的状态下,路由信息交换也是会持续进行。)

所谓逐跳,如上图所示,拓扑更新时,B首先更新本地路由表,然后将自己的路由表信息广播至自治系统内的邻居路由器,如图上的路由器A,然后A开始路由信息的学习,然后再向A的邻居们进行广播同步。

距离向量算法

使用RIP协议的路由器会对邻居路由器广播发送来的的报文进行以下处理:

a. 将邻居路由器R发送来的路由表中所有条目的距离字段加一,并将吓一跳地址都更改为R。
(路由表项目条目的三个关键字段:目的地网络N,距离D,吓一跳路由器X)

b. 逐条分析更新过后的路由表:

  • 若条目中的目的网络不在自身路由表中,则将该路由条目加入到自身路由表中;
  • 若条目中的目的网络在自身路由表中且下一跳同时为R,则使用该条目替换自身路由表该条记录;
  • 若条目中的目的网络在自身路由表中但下一跳不同为R,则比较距离D,系统优先考虑距离更小对的条目。

c. 若180s后还没有收到RIP网络中某一路由器的更新路由表,则把该路由器标记为不可达距离,即把距离设置为16;
d. 返回。

RIP报文封装过程

RIP报文消息都是封装在UDP报文中,端口号是520,而UDP报文是封装在IP报文中的,IP把报文封装在以太帧中。

RIPv1:

a. 对于请求消息或周期性的响应消息,IP报文的目的地址为广播IP地址255.255.255.255,源地址为发送该请求消息或响应消息的接口的IP地址,协议字段为0x11。以太帧的目的地址为广播MAC地址ff-ff-ff-ff-ff-ff,源地址为发送该请求消息或响应消息的接口的MAC地址,类型字段是0x0800。

b. 对于为了回应请求消息而发送的响应消息,IP报文的目的地址为发送请求消息的接口的IP地址,源地址为发送该响应消息的接口的IP地址,协议字段的值为0x11。以太帧的目的地址为发送请求消息的接口的MAC地址,源地址为发送该响应消息的接口的MAC地址,类型字段是0x0800。

RIPv2:

a. 对于请求消息或周期性的响应消息,IP报文的目的地址可以是组播IP地址224.0.0.9(这个组播地址是对应所有运行RIP-2的路由器的),也可以是广播IP地址255.255.255.255,源地址为发送该请求消息或响应消息的接口的IP地址,协议字段为0x11。以太帧的目的地址为广播MAC地址ff-ff-ff-ff-ff-ff,也可以是某个选定的组播MAC地址,源地址为发送该请求消息或响应消息的接口的MAC地址,类型字段是0x0800

b. 对于为了回应请求消息而发送的响应消息,IP报文的目的地址为发送请求消息的接口的IP地址,源地址为发送该响应消息的接口的IP地址,协议字段的值为0x11。以太帧的目的地址为发送请求消息的接口的MAC地址,源地址为发送该响应消息的接口的MAC地址,类型字段是0x0800

注:RIP-2要比RIP-1少占用计算机的处理资源,因为计算机在网络层就可以把携带有RIP-2消息的报文丢弃,而必须在传输层才能把携带有RIP-1消息的报文丢弃。

RIP报文格式

报文类型

  • 请求报文:RIP路由器开始启动后,立即向其他所有邻居路由器发送RIP请求消息,以获取整个RIP网络的网络信息;

  • RIP网络运行过程中,根据自身需要可向邻居发送请求报文。

  • 响应报文:RIP路由器收到请求报文后,会立即发出RIP响应报文;

  • RIP网络中,路由器总是间隔30秒向邻居发送响应报文,告知邻居当前路由表信息。

报文格式

RIPv1:

RIP报文字段
字段含义
所占字节
描述
Command
命令
1
表示报文类型,值为1时表示请求Request报文,向直连路由器请求全部或部分路由信息值为2时表示Response报文,一个Response报文最多携带25个路由条目,多于25会发送多个Response
Version
版本号
1
RIP共有两个版本,值为1代表RIPv1,值为2代表RIPv2
Must be zero
未使用
2
未使用
Addr fam id
地址表示符
2
值为2时表示IP协议。如果是请求整个路由表的Request报文,则值为0,同时Request报文有且只有一个路由条目,路由的目的网段为0.0.0.0,度量值为16。
Must be zero
未使用
2
未使用
IP address
IP地址
4
路由的目的网络地址
Must be zero
未使用
4
未使用
Must bu zero
未使用
4
未使用
Metric
度量值
4
路由的度量值,也记为跳数

RIPv2:

RIP报文字段
字段含义
所占字节
描述
Command
命令
1
表示报文类型,值为1时表示请求Request报文,向直连路由器请求全部或部分路由信息值为2时表示Response报文,一个Response报文最多携带25个路由条目,多于25会发送多个Response
Version
版本号
1
RIP共有两个版本,值为1代表RIPv1,值为2代表RIPv2
Must bu zero
未使用
2
未使用
Addr fam id
地址表示符
2
值为2时表示IP协议。如果是请求整个路由表的Request报文,则值为0,同时Request报文有且只有一个路由条目,路由的目的网段为0.0.0.0,度量值为16。
Route Tag
未使用
2
标记外部路由器或者引入到RIPv2协议中的路由
IP address
IP地址
4
路由的目的网络地址
Subnet Mask
未使用
4
用于标记IPV4地址的网络和子网部分
NextHop
未使用
4
表示比通告路由器地址更好的下一跳地址。若为0.0.0.0,则说明通告路由器地址为最优下一跳。
Metric
度量值
4
路由的度量值,也记为跳数

RIP定时器机制

三个倒计时计时器:

  1. 更新计时器:路由器每隔30s就会发送更新信息,为防止同一时间所有路由器发报文,添加了5s的偏移,在[25,35]之间取值;(收到RIP请求消息时,不影响更新计时器)
  2. 过期计时器:在180s内未收到该路由器的任何信息,就将其设为不可达,即将该表项的距离字段设置为16。
  3. 刷新计时器(Holddown):一条记录失效后不会,立即删除,而是等待指定时间后删除,一般为120s,目的是将该无效路由告知所有邻居,倒计时至0时,立即删除该无效路由。

注:
a. 每一条路由表项对应两个定时器:老化定时器和垃圾收集定时器。当学到一条路由并添加到路由表中时,老化定时器启动。如果老化定时器超时,设备仍没有收邻居发来的更新报文,则把该路由的度量值置为16(表示路由不可达),并启动垃圾收集定时器。如果垃圾收集定时器超时,设备仍然没有收到更新报文,则在路由表中删除该条目。
b. 如果在没有触发更新的前提下,一个路由表项最多需要300秒才能被删除(老化时间+垃圾收集时间);如果存在触发更新,那么一个路由条目最多需要120秒才能被删除(即为老化时间).

RIP环路问题

产生环路的原因

RIP网络中某一段网络的故障,由于收敛速度过慢,部分路由器认为该网络仍然可达,导致路由不断更新导致距离计数至无穷大。

防环机制

a. 最大跳数:当一个路由条目作为更新信息发送给邻居路由器时,路由条目会自加1跳,通过设定最大跳数15防止路由条目被无限转发。同时16跳可作为路由不可达标记。
b. 触发更新:当网络出现拓扑变更后,路由器会立即产生更新通告,并广播通知所有直连邻居,不需要考虑30秒的更新计时器。为减少带宽和资源占用,触发更新消息只包含更新的路由条目。
c. 水平分割:RIP路由器路由表中的某条条目信息由路由器的a口学习而来,则路由器a口向外发送响应消息时,不会包含该路由项的信息。
d. 毒性反转:RIP路由器路由表中的某条不可达路由条目信息由路由器的a口学习而来,则路由器a口向外发送响应消息时,会包含该路由信息,但Metric会设置为16,不可达

注:毒性反转和水平分割都可避免路由环路的产生,但是两者原则上为互斥的,即RIP网络中RIP路由器不会同时开启水平分割和毒性反转功能。通常,RIP网络中的路由器都会配置触发更新功能,然后再水平分割和毒性反转功能中选择其一开启。

RIP问题

“好消息传的块,坏消息传的慢”

比较RIPv1 RIPv2

维度
RIPv1
RIPv2
更新方式
广播 255.255.255.255
广播/组播 224.0.0.9
协议类别
有类
无类
CIDR
不支持
支持
VLSM
不支持
支持
路由聚合
不支持
支持
报文认证
不支持
支持
路由标记tag
不携带
携带
下一跳地址
不携带
携带
掩码信息
不携带
携带
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号