首页 学无止境网络笔记正文

RIP(路由信息协议)

By无邪 网络笔记 2019-12-01 50 0

一。路由协议的介绍

            自治系统(AS)在网络通信中,一个自治系统是指由若干个二层网络及若干台路由器组成的集合,集合中的这些网络及路由器均属于同一个管理机构。但是由于规模大小的不同,一个internet可能只包含一个自治系统,也可能包含多个自治系统。


路由协议的分类:

  1. IGP——内部网关协议:成员有RIP协议、OSPF协议、IS-IS协议等等其他的协议。

  2. EGP——外部网关协议:成员现在只有BGP协议。

通常情况下,一个自治系统中的所有路由器需要运行同一种具体的、由该自治系统的管理机构指定的IGP协议(有时也会运行不同的IGP协议)。同时,IGP协议的运行,将使自治系统中的每一台路由器都能发现通往本自治系统内各个目的网络的路由。在一个由多个自治系统组成的internet中,通常还需要发现通往本自治系统内各个目的网络的路由,而且还要能够发现通往其他自治系统中的目的网路的路由。

二。路由协议的基本原理

     (1)RIP——路由信息协议:是一种基于距离矢量(DV)算法的IGP协议,它的优先级的值为100

    (2)RIP协议只能以“跳数”来定义路由的开销“跳数”:指到达目的地所需要经过的路由器的个数

    (3)RIP协议规定,跳数等于或大于16的路由将被看成是不可达的路由,所以呢,限制了该协议只能应用在规模较小的网络中

   (4)运行RIP协议的路由器被称为RIP路由器。若一个自治系统选定了RIP协议作为IGP协议,那么该自治系统内的所有路由器都是RIP路由器,该自治系统也被称为一个RIP网络。

   (5)RIP路由器除了拥有IP路由表外,还要单独创建并维护一个RIP路由表,该路由表是专门来存放该路由器通过运行RIP协议而发现的路由。

路由交换过程:

一台RIP路由器在创建自己的RIP路由表之前,是只包含了该路由器自动发现的直连路由。在一个RIP网络中,每台RIP路由器都会每隔30s向它所有的邻居路由器发布它最新的RIP路由表中国的所有路由信息,同时也会不断的接收它的邻居路由器发来的路由信息,并根据这些接收到的路由信息来更新自己的RIP路由表。该过程是反复循环进行的。



在经过RIP路由的收敛时间后,每台路由器的RIP路由表中的路由信息不再发生变化,每台路由器的RIP路由表都包含了该路由器去往整个RIP网络的各个目的网络的路由信息。


强调:在稳定的状态下,路由交换过程是仍然会进行的。当网络的结构发生变化后,稳定状态被打破时,随着路由交换过程的进行,经过足够长的时间之后,每台路由器的RIP路由表便又会达到新的稳定状态。

三。RIP路由表的生成

QQ截图20191025205534.jpg

QQ截图20191025205534.jpg

四。RIP消息的格式

            RIP路由器之间是通过交换RIP消息来实现路由信息的交换过程的。

RIP消息的分类:

            RIP请求消息在RIP路由器开始启动之后,立即向它的所有的邻居路由器发送RIP请求消息,以便快速获得关于整个RIP网络的路由信息;运行中的RIP路由器也可以随时的根据自身的需要向它的所有的邻居发出RIP请求消息。

            RIP响应消息RIP路由器在接收到RIP请求消息后,会立即发出RIP响应消息进行回应。RIP路由器总是会每隔30秒的时间向它的所有的邻居路由器周期性的发送RIP相应消息,而该消息中携带了该路由器的RIP路由表中的最新的路由信息。

RIP的版本:

RIP-1(RIPv1):以下是RIP-1消息的通用格式


               命令(8bit)                           版本(8bit)                               保留
                                                   协议簇(16bit)                             全0
                                                                                                网络地址(32bit)
                                                                                                   全0
                                                                                                   全0
                                                                                                跳数(32bit)

(1)命令:取值为1时表示该消息是一个请求消息;取值为2时表示该消息是一个响应消息。


(2)版本:取值为1时表示该消息是一个RIP-1消息;取值为2时表示该消息是一个RIP-2消息。


(3)协议簇:表示所使用的协议簇。相对于TCP/IP协议簇来讲,该值应为2。


(4)网络地址:表示一个路由项的目的网络地址。但是,该协议簇字段后面的14个字节都是用来表示一个路由项的目的网络地址的。相对于TCP/IP协议簇来讲,一个网络地址只需要4个字节来表示,其余都为0。

(5)跳数:表示该路由项的Cost。Cost的最小取值为1,最大取值为16.若Cost>=16,则表示该路由不可达。

(7)一个RIP消息中最多可包含25条路由信息。

RIP请求消息的分类:

(1)用来请求关于某一些指定的路由信息;

(2)用来请求关于整个RIP网络的路由信息的;

在RIP路由刚启动时,向其邻居路由发送的便是第二种RIP请求信息,请求关于整个RIP网络的路由信息的。

五。RIP-1和RIP-2的相关内容

Snipaste_2019-12-01_13-11-52.jpg

(1)路由标记:可用来携带自治系统的编号等信息,以至于RIP-2可以接收来自BGP协议的信息。

(2)子网掩码:携带了网络地址字段中IP地址的子网掩码。

(3)下一跳IP地址:表示去往网络地址字段中的目的网络的下一跳IP地址。

两者比较:

(1)RIP-1消息中不能携带子网掩码信息,RIP-2却可以携带该信息,所以RIP-1只能适合于有类编址(采用缺省掩码),实现有类路由的功能,RIP-2则可以支持无类路由,支持VLSM(可变长子网掩码)、CIDR(无类别遇见路由选择)等特性。

(2)RIP-1不支持认证功能,RIP-2可以支持认证功能。认证的作用是用来对付网络中的恶意路由器所发布的一些虚假或者错误的路由信息。

支持认证功能的RIP-2消息的格式:

Snipaste_2019-12-01_13-13-22.jpg

RIP消息的封装过程:

RIP-1和RIP-2的RIP消息都是封装在UDP报文中的,端口号是520。而且UDP报文又是封装在IP报文中的,IP把奥文是封装在以太帧中的。

运行RIP-1时:

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

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

运行RIP-2时:

(1)对于请求消息或周期性的响应消息,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。

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

比较:

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

RIP-2的优势:

(1)RIP-1只支持有类路由;RIP-2支持无类路由,支持VLSM、CIDR等特性。

(2)RIP-1不支持认证功能;RIP-2支持认证功能,所以安全性较高。

(3)RIP-1不能采用组播方式发布消息;RIP-2可以采用组播方式发布消息,所以RIP-2可以比RIP-1占用更少的设备的处理资源。

补充:RIP-2是可以后向兼容RIP-1的。

六。RIP定时器

RIP协议共使用了三种定时器:更新定时器、无效定时器、垃圾收集定时器。

1.新定时器(或称为周期定时器)

每台RIP路由器都有一个属于自己的RIP更新定时器。缺省情况下,更新定时器的周期值为30s。该定时器是一个倒计时定时器,每当更新定时器的值倒数到0时,路由器便会向它的所有邻居发送RIP响应消息。

当路由器接收到RIP请求消息的时候,立即发送的RIP响应消息,是不会影响到基于更新定时器的周期的RIP响应消息的发送的。

2.无效定时器

每台RIP路由器都会为自己的RIP路由表中的每一个路由项建立并维护一个无效定时器。该定时器也是一个倒计时定时器。在缺省情况下,无效定时器的初始值为180s(是更新定时器的周期值的6倍)一个路由项被建立或每次更新时,该路由项的无效定时器便开始工作。通常情况下,一个路由器每隔30s就会被更新一次。当一个路由项的无效定时器的值变为0时,表示该路由表项已经有180秒未更新,所以路由器会认为这个路由项已经成为一个无效的路由项了即成为不可达的路由项,最后路由器会将其的Cost设置为16。

3.垃圾收集定时器.

当一个路由项变成无效路由项时,该路由器时不会立即将这个无效的路由项删掉,而是会为该无效路由项启动一个垃圾收集定时器的倒数计时器,其缺省初始值为120s。在垃圾收集定时器变为0之前,该路由器仍然可以在周期性的RIP响应消息中携带这个无效路由的信息,目的是告诉它的所有邻居这个路由对自己是无效的,方便邻居路由对自己的RIP路由表中的相应路由作出更新。

当该定时器的值变为0时,路由器便会将这个无效路由项的所有信息(包含原该路由项对应的无效定时器和来及收集定时器)立即删除掉。

但是当垃圾收集定时器的值在倒数到0之前的某个时间,若无效路由被更新成为一条有效路由,那么该路由项的无效定时器便会开始工作,而相应的垃圾收集定时器便会被删除。

七。RIP网络的路由环路问题

解决方法:触发更新、水平分割、毒性逆转。

1.触发更新

指当RIP路由表中的某些路由项的内容发生改变时,路由器应该立即向它的所有邻居发布响应消息,并不是等待更新定时器所规定的下一个响应消息的发送时刻。

为了减少带宽和路由器处理资源的浪费,触发更新的响应消息中只需要包含路由消息发生改变了的路由项。

QQ截图20191025205534.jpg

2.水平分割

该方法可以在很大的程度上降低路由环路的产生,但是无法完全的避免路由环路的产生。

原理是:如果一个路由器的RIP路由表中目的地/掩码为z/y的路由信息时通过该路由器的Interface-x接口学习而来的,则该路由器在通过Interface-x接口向外发送响应消息时,响应消息是一定不能包含该z/y这个路由项的信息的。

QQ截图20191025205534.jpg

3.毒性逆转

原理是:如果如果一个路由器的RIP路由表中目的地/掩码为z/y的路由信息时通过该路由器的Interface-x接口学习而来的,则该路由器在通过Interface-x接口向外发送响应消息时,响应消息是需要包含z/y这个路由项的,但是这个路由项的Cost总要设置为16,及不可达。

QQ截图20191025205534.jpg


补充:毒性逆转和水平分割方法都可以避免产生路由环路,但是两者是互斥的。RIP路由器可以具备水平分割的功能或毒性逆转功能,但是不能同时具备两个功能。同时,在实际的应用中,通常会在RIP路由器上配置触发更新功能,该功能不仅可以减低路由环路的产生,还可以加快路由收敛的速度,然后在水平分割和毒性逆转中选择一个进行配置。

本文标题:RIP(路由信息协议)
本文链接:https://dingqidong.com/?id=99
作者授权:除特别说明外,本文由 By无邪 原创编译并授权 无邪-blog 刊载发布。
版权声明:本文使用「署名-非商业性使用-相同方式共享 4.0 国际」创作共享协议,转载或使用请遵守署名协议。

评论