一次看懂RIP协议。

了解更多请关注微信公众号獭獭笔记。
獭獭笔记
“ 一次看懂RIP协议。”

路由信息协议(英语:Routing Information Protocol,缩写:RIP),是一种使用最广泛的内部网关协议(IGP),属于网络层,一种在网关与主机之间交换路由选择信息的标准。在国家性网络中如当前的因特网,拥有很多用于整个网络的路由选择协议。作为形成网络的每一个自治系统(AS),都有属于自己的路由选择技术,不同的 AS 系统,路由选择技术也不同。虽然RIP仍然经常的被使用,但大多数人认为它将会而且正在被诸如OSPF和IS-IS这样的路由协议所取代。

01

静态路由和动态路由介绍
①静态路由是一种需要管理员手工配置的特殊路由。

静态路由在不同网络环境中有不同的目的:

当网络结构比较简单时,只需配置静态路由就可以使网络正常工作。

在复杂网络环境中,配置静态路由可以改进网络的性能,并可为重要的应用保证带宽。

静态路由可在VPN实例中使用,主要用于VPN路由的管理。

②动态路由动态路由协议通过路由信息的交换生成并维护转发引擎所需的路由表。当网络拓扑结构改变时动态路由协议可以自动更新路由表,并负责决定数据传输最佳路径。

在动态路由中,管理员不再需要与静态路由一样,手工对路由器上的路由表进行维护,而是在每台路由器上运行一个路由协议。这个路由协议会根据路由器上的接口的配置(如IP地址的配置)及所连接的链路的状态,生成路由表中的路由表项。

所有的动态路由协议在TCP/IP协议栈中都属于应用层的协议。但是不同的路由协议使用的底层协议不同。

OSPF将协议报文直接封装在IP报文中,协议号89,由于IP协议本身是不可靠传输协议,所以OSPF传输的可靠性需要协议本身来保证。

BGP使用TCP作为传输协议,提高了协议的可靠性,TCP的端口号是179。

RIP使用UDP作为传输协议,端口号520。

IS-IS协议是开放系统互联(OSI)协议中的网络层协议,IS-IS协议基础是CLNP(Connectionless Network Protocol,无连接网络协议)。

02

RIP协议的原理

RIP是一种内部网关协议(IGP),是一种动态路由选择协议,用于自治系统(AS)内的路由信息的传递。RIP协议基于距离矢量算法(DistanceVectorAlgorithms),使用“跳数”(即metric)来衡量到达目标地址的路由距离。这种协议的路由器只关心自己周围的世界,只与自己相邻的路由器交换信息,范围限制在15跳(15度)之内。RIP应用于OSI网络七层模型的网络层。

各厂家定义的管理距离(AD,即优先级)如下:华为定义的优先级是100,思科定义的优先级是120。

RIP协议采用距离向量算法,在实际使用中已经较少适用。在默认情况下,RIP使用一种非常简单的度量制度:

距离就是通往目的站点所需经过的链路数,取值为0~16,数值16表示路径无限长。RIP进程使用UDP的520端口来发送和接收RIP分组。

RIP分组每隔30s以广播的形式发送一次,为了防止出现“广播风暴”,其后续的的分组将做随机延时后发送。在RIP中,如果一个路由在180s内未被刷,则相应的距离就被设定成无穷大,并从路由表中删除该表项。

RIP分组分为两种:

请求分组

响应分组。

RIP不可能在大型网络中得到应用

03

RIP维护更新

1.更新( update)计时器:
定义了发送路由更新的时间间隔 30s

2.老化/超时/失效(timeout )计时器:
定义了路由老化时间、如果在老化时间内没有收到关于某条路由的更新报文,则该条路由的度量值会被设置为无穷大(16),并从ip路由表中撤销,定时器默认值为180s。

3.垃圾收集/刷新(Garbage-Collect)计时器:
定义了一条路由从度量值变为16开始,直到它从路由表里面被彻底删除所经过的时间。如果Garbage-Collect超时,该路由仍没有得到更新,则该路由将被彻底删除。默认值是120s。

04

RIP防环机制

1.水平分割(split horizon)

路由器中某接口发送出去的路由,不会再从该接口接收并从原接口发回邻居路由器。

2.毒性逆转

从一个接口学习到的路由会发送回该接口,但是已经被毒化,跳数设置为16跳,不可达。

3.触发更新计时器:
一旦检测到路由崩溃,立即广播路由刷新报文,而不等到下一刷新周期。

4.抑制计时器:

防止路由表频繁翻动,增加了网络的稳定性。

05

RIPv2增强特性

RIPv2跟RIPv1的相同点:
用跳数作为度量值,最大值为15

同样是距离矢量路由协议

容易产生路由环路,使用最大跳计数,水平分隔,触发更新,路由中毒和抑制定时器来防止路由环路

同样是周期更新,默认每30秒发送一次路由更新

RIPv2的增强特性:
在路由更新中携带有子网掩码的路由选择信息,所以支持VLSM和CIDR;

提供身份验证功能,支持明文和MD5验证;

下一跳路由器的IP地址包含在路由更新信息中;

使用外部标记;

运用组播地址224.0.0.9代替RIPv1的广播更新;

关闭自动汇总,然后支持手动汇总;

06

RIP路由聚合

路由聚合:
同一个自然网段内的不同子网的路由在其它网段发送时,聚合成一个网段的路由发送。仅RIPV2支持路由聚合。包括基于RIPv2进程的有类聚合和基于接口的聚合。

RIPv2支持路由聚合,因为RIPv2报文携带掩码位,所以支持子网划分。在RIPv2中进行路由聚合可提高大型网络的可扩展性和效率,缩减路由表。

基于RIPv2进程的有类聚合即实现自动聚合。


基于接口的聚合即实现手动聚合。


如果被聚合路由携带了Tag,那么路由聚合发生之后,Tag信息将被清除。

07

RIP协议特点

(1)RIP是自治系统内部使用的协议即内部网关协议,使用的是距离矢量算法。

(2)RIP使用UDP的520端口进行RIP进程之间的通信。

(3)RIP主要有两个版本:RIPv1和RIPv2。RIPv1协议的具体描述在RFC1058中,RIPv2是对RIPv1协议的改进,其协议的具体描述在RFC2453中。

(4)RIP协议以跳数作为网络度量值。

(5)RIP协议采用广播或组播进行通信,其中RIPv1只支持广播,而RIPv2除支持广播外还支持组播。

(6)RIP协议支持主机被动模式,即RIP协议允许主机只接收和更新路由信息而不发送信息。

(7)RIP协议支持默认路由传播。

(8)RIP协议的网络直径不超过15跳,适合于中小型网络。16跳时认为网络不可达。

(9)RIPv1是有类路由协议,RIPv2是无类路由协议,即RIPv2的报文中含有掩码信息。

08

RIP的路由算法

RIP所使用的路由算法是Bellman-Ford算法.这种算法最早被用于一个计算机网络是在1969年,当时是作为ARPANET的初始路由算法。


同一自治系统(A.S.)中的路由器每 30秒会与相邻的路由器 交换子讯息,以动态的建立路由表。

RIP 允许最大的hop数(跳数)为15 多于15跳不可达。

目前RIP共有三个版本,RIPv1,RIPv2,RIPng

其中RIPV1和RIPV2是用在IPV4的网络环境里,RIPng是用在IPV6的网络环境里。

r i p为每个目的地只记录一条路由的事实要求r i p积极地维护路由表的完整性。通过要求所有活跃的r i p路由器在固定时间间隔广播其路由表内容至相邻的r i p路由器来做到这一点,所有收到的更新自动代替已经存储在路由表中的信息。


1. 初始化表更新

r i p路由器每隔3 0秒触发一次表更新。更新计时器用于记录时间量。一旦时间到, r i p节点就会产生一系列包含自身全部路由表的报文。

这些报文广播到每一个相邻节点。因此,每一个r i p路由器大约每隔3 0秒钟应收到从每个相邻r i p节点发来的更新。

注意在更大的基于r i p的自治系统中,这些周期性的更新会产生不能接受的流量。因此,一个节点一个节点地交错进行更新更理想一些。r i p自动完成更新,每一次更新计时器会被复位,一个小的、任意的时间值加到时钟上。

如果更新并没有如所希望的一样出现,说明互联网络中的某个地方发生了故障或错误。故障可能是简单的如把包含更新内容的报文丢掉了。故障也可能是严重的如路由器故障,或者是介于这两个极端之间的情况。显然,采取合适的措施会因不同的故障而有很大区别。由于更新报文丢失而作废一系列路由是不明智的(记住, r i p更新报文使用不可靠的传输协议以最小化开销)。因此,当一个更新丢失时,不采取更正行为是合理的。为了帮助区别故障和错误的重要程度,r i p使用多个计时器来标识无效路由。

2. 标识无效路由

有两种方式使路由变为无效:

    路由终止。

    路由器从其他路由器处学习到路由不可用。

在任何一种情形下, r i p路由器需要改变路由表以反映给定路由已不可达。

一个路由如果在一个给定时间之内没有收到更新就中止。比如,路由超时计时器通常设为1 8 0秒。当路由变为活跃或被更新时,这个时钟被初始化。

1 8 0秒是大致估计的时间,这个时间足以令一台路由器从它的相邻路由器处收到6个路由表更新报文(假设它们每隔3 0秒发送一次路由更新),如果1 8 0秒消逝之后, r i p路由器没收到关于那条路由的更新, r i p路由器就认为那个目的i p地址不再是可达的。因此,路由器就会把那条路由表项标记为无效。通过设置它的路由度量值为1 6来实现,并且要设置路由变化标志。这个信息可以通过周期性的路由表更新来与其相邻路由器交流。

注意对于r i p节点而言,1 6等于无穷。因此,简单的设置耗费度量值为1 6能作废一条路由。

接到路由新的无效状态通知的相邻节点使用此信息来更新它们自己的路由表。这是路由变为无效的第二种方式。

 无效项在路由表中存在很短时间,路由器决定是否应该删除它。即使表项保持在路由表中,报文也不能发送到那个表项的目的地址:r i p不能把报文转发至无效的目的地。

3. 删除无效路由

一旦路由器认识到路由已无效,它会初始化一个秒计时器:路由刷新计时器。因此,在最后一次超时计时器初始化后1 8 0秒,路由刷新计时器被初始化。这个计时器通常设为9 0秒。

如果路由更新在2 7 0秒之后仍未收到( 1 8 0秒超时加上9 0秒路由刷新时间),就从路由表中移去此路由(也就是刷新)。而为了路由刷新递减计数的计时器称为路由刷新计时器。这个计时器对于r i p从网络故障中恢复的能力绝对必要。

4.主动和被动站点

注意到为了使r i p互联网络正常工作,网络中的每一个网关必须参与进去这一点很重要。参与可以是主动参与也可以是被动参与,但所有的网关必须参与。主动节点是那些主动地进行共享路由信息的节点。它们从相邻者处接收更新,并且转发它们的路由表项拷贝至那些相邻节点。

被动站点从相邻者处接收更新,并且使用那些更新来维护它们的路由表。然而被动节点不主动地发布它们自己路由表项的拷贝。 

被动维护路由表的能力在硬件路由器出现之前的日子里是特别有用的特性,那时路由是一个运行在u n i x处理器下的后台程序,这样会使u n i x主机上的路由开销达到最小。

第一种,接收到邻居的路由表,某个网络条目自己表中没有,那么就将该网络条目添加自己的路由表中,并且跳数+1

第二种,接收到邻居路由表表,某个网段自己也也有,且跳数比邻居发过来的该网络条目带的跳数还小,所以自己这个网络条目保持不变。

另外,如果在180秒内没接收到某条网络条目的更新,则自动从路由表中删除!

你可能感兴趣的:(一次看懂RIP协议。)