1、协议内容

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

   

2、路由交换过程

    (1)RIP更新方式

网络初始化后,每一台使用RIP协议的路由器,通过间隔30秒向邻居路由器广播同步路由表配置同
步报文,同时邻居也会不断广播同步路由表报文,经过收敛事件后,每台路由器都会包含去往整个
自制系统内所有路由器的路由信息。
        (注:在整个系统稳定的状态下,路由信息交换也是会持续进行。)

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

    (2)距离向量算法

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

             a.将邻居路由器R发送来的路由表中所有条目的距离字段加一,并将吓一跳地址都更改为R。
                   (路由表项目条目的三个关键字段:目的地网络N,距离D,吓一跳路由器X)
              b.逐条分析更新过后的路由表:
                若条目中的目的网络不在自身路由表中,则将该路由条目加入到自身路由表中;
                若条目中的目的网络在自身路由表中且下一跳同时为R,则使用该条目替换自身路由
                表该条记录;
                若条目中的目的网络在自身路由表中但下一跳不同为R,则比较距离D,系统优先考虑
                距离更小对的条目。
              c.若180s后还没有收到RIP网络中某一路由器的更新路由表,则把该路由器标记为不可
                达距离,即把距离设置为16;
             d.返回。

     (3)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消息的报文丢弃。

3、RIP报文格式

(1)报文类型:

请求报文:RIP路由器开始启动后,立即向其他所有邻居路由器发送RIP请求消息,以获取整个RIP
                  网络的网络信息;
                  RIP网络运行过程中,根据自身需要可向邻居发送请求报文。

响应报文:RIP路由器收到请求报文后,会立即发出RIP响应报文;
                  RIP网络中,路由器总是间隔30秒向邻居发送响应报文,告知邻居当前路由表信息。

(2)报文格式:

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

路由的度量值,也记为跳数

4、RIP定时器机制----三个倒计时计时器

(1)更新计时器:路由器每隔30s就会发送更新信息,为防止同一时间所有路由器发报文,添加了5s
     对的偏移,在[25,35]之间取值;(收到RIP请求消息时,不影响更新计时器)

(2)过期计时器:在180s内未收到该路由器的任何信息,就将其设为不可达,即将该表项的距离字段
     设置为16。

(3)刷新计时器(Holddown):一条记录失效后不会,立即删除,而是等待指定时间后删除,一般为12
    0s,目的是将该无效路由告知所有邻居,倒计时至0时,立即删除该无效路由。

注:

a.每一条路由表项对应两个定时器:老化定时器和垃圾收集定时器。当学到一条路由并添加
   到路由表中时,老化定时器启动。如果老化定时器超时,设备仍没有收邻居发来的更新报
文,则把该路由的度量值置为16(表示路由不可达),并启动垃圾收集定时器。如果垃圾收
集定时器超时,设备仍然没有收到更新报文,则在路由表中删除该条目。

b.如果在没有触发更新的前提下,一个路由表项最多需要300秒才能被删除(老化时间+垃圾收集时间);
   如果存在触发更新,那么一个路由条目最多需要120秒才能被删除(即为老化时间).

5、RIP环路问题

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

(2)防环机制:

a.最大跳数:当一个路由条目作为更新信息发送给邻居路由器时,路由条目会自加1跳,通过设定
    最大跳数15防止路由条目被无限转发。同时16跳可作为路由不可达标记。

b.触发更新:当网络出现拓扑变更后,路由器会立即产生更新通告,并广播通知所有直连邻居,不
   需要考虑30秒的更新计时器。为减少带宽和资源占用,触发更新消息只包含更新的路由条目。

c.水平分割:RIP路由器路由表中的某条条目信息由路由器的a口学习而来,则路由器a口向外发送
    响应消息时,不会包含该路由项的信息。

d.毒性反转:RIP路由器路由表中的某条不可达路由条目信息由路由器的a口学习而来,则路由器a口
   向外发送响应消息时,会包含该路由信息,但Metric会设置为16,不可达

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

6.RIP问题

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

7.比较RIPv1 RIPv2

维度

RIPv1

RIPv2

更新方式

广播 255.255.255.255

广播/组播 224.0.0.9

协议类别

有类

无类

CIDR

不支持

支持

VLSM

不支持

支持

路由聚合

不支持

支持

报文认证

不支持

支持

路由标记tag

不携带

携带

下一跳地址

不携带

携带

掩码信息

不携带

携带

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐