RIP基础

动态路由:

静态路由配置较麻烦,且考虑的问题较多。于是产生了动态路由

所谓动态路由,即根据我们提前布置的算法来自主生成路由信息。

动态路由适用于大型网络部署;而静态路由适用于小型网段。

自治系统—AS:将网络分为AS区域

  • 由单一的机构或者组织所管理的一系列IP以及网络设备的集合。

AS编号:ASN—1~65535

管理编号:IANA(互联网数字分配机构)

AS的范围无法定义

  • AS通讯方式:

    AS内部—运行相同的路由协议—内部网关协议(IGP)

    AS之间—具备专用的路由协议进行通讯—边界网关协议(BGP)

动态路由协议分类:

  • 按照范围分类(AS内部、外部):

​ IGP—内部网关协议(RIP、OSPF、ISIS、EIGRP)

​ EGP—外部网关协议

  • **内部网关协议(IGP协议)**按照协议特点分类

    1.距离矢量型—DV—共享路由表(具体路径)

RIP—路由信息协议(公有,所有厂商都能够使用

EIGRP—加强型内部网关路由协议(cisco专有

​ 2.链路状态型—LS—共享网络拓扑(地图)

OSPF—开放式最短路径优先协议

IS-IS—中间系统到中间系统

  • IGP协议按照是否携带真实掩码分类

​ 1.有类别路由协议—不传递真实掩码(传递主类A、B、C)—RIPv1

​ 2.无类别路由协议—传递真实掩码

RIP—路由信息协议(应用层协议)

  • 版本

RIPv1—IPv4

RIPv2—IPv4

RIPng—IPv6

  • 距离矢量型协议、应用层协议。

基于UDP协议进行封装,端口号520。

RIP算法—贝尔曼福特算法

RIP使用该算法来处理接收到的路由表。

1.当接收到的数据包中含有本地路由表中没有的路由项时(本地路由表中没有该目标网段),那么直接加载到本地路由表(这操作主要发生在该路由器第一次接收到数据包时,将路由项大批量载入本地路由表)。

2.当接收到的数据包中含有本地路由表中已经具备的路由项,且下一跳的地址相同,那么将数据包中的路由项更新到本地路由表。

  • 既然已经具备了该路由项,那么为什么还要更新该路由项?或者说更新了关于该路由项的什么内容?

​ 这是因为,该信息不能永久地保存在本地路由表中,也就是说,实际上,每个路由表中的表项都存在一定的**老化时间,超出了该时间,那么该路由项就会失效。**那么,为了保证该路由项能够在路由表中存在较长的时间,就需要路由器每隔一定的时间向外发送一次路由表给邻居,然后邻居在接收到路由表时,会更新路由项的老化时间。

上述操作称为周期更新,发送的时间间隔为30秒

周期更新机制的目的是为了确认邻居路由器的状态是否是正常的。如果路由器接收到了一个请求报文,那么如果该路由器在180秒之内发送了应答报文,则说明该路由器是正常的。

3.当接收到的数据包中含有本地的路由表中已经具备的路由项,但下一跳的地址不相同,则比较开销值,若本地路由表中的cost值大,则说明数据包中的路径相较已有的路径较优,则将数据包中的路由项更新到本地路由表;若本地的cost值较小,则不更新。

  • RIP开销值(度量值)

    以跳数计算开销值,最大15跳。超过15时,该协议会认为该路由不可信。

​ 数据包中传递的开销值 = 本地的开销值+1。

RIP数据报文:

  • request包—请求报文

​ 当一台路由器启动了RIP协议后,它就会发出该报文,向周边的邻居申请它们的路由表。

  • response包—应答报文

​ 当邻居接收到请求报文后,它们就会发送应答报文。它们会将整个路由表打包到该报文内并发送出去。

RIP工作原理:

  • 初始化:对于一个启动了RIP协议的路由器,在接口激活后,会发送request报文,请求下一个接口发送完整的路由表。发送方式:组播(只会向启动了RIP协议的那部分路由器发送请求报文)。地址:224.0.0.9

  • 接收请求:将整个路由表以应答报文的方式打包发送。

  • 接收响应:对比路由表并通过算法进行操作。之后,路由器完成了RIP协议的收敛工作。

  • 常规路由更新和定时

​ 当路由收敛完成后,路由器会以30s一次的频率发送应答报文。邻居路由器收到应答报文时,会设置一个**180s(无效计时器)**的时间(超时时间)。

若180s内接收到了邻居发送的第二条应答报文,那么会将原有计时器更新为180s。

若180s内没有收到邻居路由器发来的第二条应答报文,那么本地路由器会认为邻居出现了问题,即邻居不可达,并将下一跳为邻居接口IP地址的路由项的开销值设置为16。并且向自身周围还存在的邻居发送该路由项

再经过120s时间后,删除该路由项。

RIP计时器

周期更新计时器:

  • 每台启动了RIP协议的路由器都有一个属于自己的更新计时器;
  • 该计时器的周期为30s(可更改),当计时器为0时,会向所有邻居以组播的形式发送内含本地路由表的应答报文。
  • 有这样的规定:当RIP路由器接收到另一个RIP路由器发送的请求报文后,无论此时更新计时器是否为0,都必须立即发送应答报文。

无效计时器:

  • 每台路由器上的每一个路由项都有一个无效计时器,且时间可能不同,互不干扰。

  • 该计时器的时间为周期更新计时器的6倍。注意,由于更新计时器的时间可以改变,所以当更新计时器的时间改变时,无效计时器的时间也会随之改变。但是,无论如何,这两个时间之间的6倍关系永远不变。

  • 每次路由条目更新时,计时器刷新为180s。

  • 当该计时器时间为0时,会认为该路由项在网络中已经被删除了(即该目标不可达),则路由器会将该路由项的cost设置为16,并立即告知其它RIP路由器该目标不可达。

  • 注意,在每次周期更新时,仍会将设置为无效的路由项包含在应答报文中。

  • 为什么在每次周期更新时路由器仍会将设置为无效的路由项包含在应答报文中?

​ 因为路由器告知邻居有关失效路由的那个数据包可能会发生丢失(RIP协议基于UDP协议进行数据传输)。

垃圾收集计时器:

  • 当无效计时器为0过后,该路由项变为无效路由项,开销值被设为16,但是该路由项不会被立即删除。

​ 此时启动垃圾收集计时器,时间为120s。尽管该路由项已经失效,但是它仍然存在于本地的数据库中。

  • 发送四次周期更新后,会删除该路由项。

  • 为什么无效计时器为0时不立即删除该路由?

​ 这是因为,该路由失效可能仅仅是因为设备出现了暂时的故障。试想:如果在无效计时器为0时就立即删除该路由项,那么如果此时,或者过了一段时间,设备恢复了正常,那么该设备就会向邻居发送含有已经被删除了的路由项的路由表,这时由于该路由项已经被删除,于是邻居只能重新学习该路由项;而如果本地还存有该路由项,那么当接收到含有该路由项的应答报文时,只需将cost由16更改为原来的值即可。这样就省去了重新学习的麻烦,降低了成本。

  • 也就是说,如果在这120s之内,路由器接收到了关于该路由项的更新信息,那么路由器就会重新将该路由项设置为可用路由,并且删除垃圾收集计时器

  • 注意,对于一条路由项而言:

1.无效计时器归零时才会产生垃圾收集计时器。

2.无效计时器和垃圾收集计时器只能同时存在一个。

3.实际环境中,该计时器的时间并非是120s整,而是90~120s之间

  • 为什么垃圾计时器的时间不是定值?

​ 试想这样的情况:路由器刚把一条路由项设置为无效(即无效计时器刚刚变为0),这时恰好更新计时器也为0,那么此时垃圾收集计时器就为90s;而如果路由器刚进行一次周期更新,这时恰好把一条路由项设置为无效,那么只能等待大概30秒后才进行第一次更新。所以,垃圾计时器的时间取决于将路由项设置为无效的时刻与上一次更新时刻的时间间隔。

抑制计时器-----cisco专属:

  • 当一个路由项失效时,会开启该计时器,为180s。那么在这180s内,就算再接到关于该路由项可达的信息,也不会理会。

RIP周期更新:

  • 使用response报文进行更新操作
  • 周期更新原因
    • RIP本身没有确认机制和保活机制;
    • UDP传输是不可靠的传输;

在静态路由中,环路是令人头疼的问题。那么,在动态路由中,如何解决这个问题?

在这里插入图片描述

如图,三台设备都是RIP路由器,且都在相应的接口激活。并且三台设备均已完成收敛工作。

对于R1、R2而言,R3上的网段3.0.0.0/24是未知的。那么,R1、R2在经过RIP收敛工作之后都会有这个目标的路由。

现计算在R2路由表中通往3.0.0.0/24的开销值:因为该路由项在R3本地的开销值为0(直连路由),那么根据RIP开销值计算方法,cost = 0 + 1 = 1,且该路由项的目标为R3。将该路由项在R2上标出:

在这里插入图片描述

  • 现假设出现了这种情况:R3右端的网段与R3突然失去了连接,那么,对应的那条直连路由就会失效。但是,根据之前学习的内容,此时R3并不会立刻告知它的邻居该目标不可达,而是会在下一次周期更新时才将该路由项不可达告知邻居(根据之前学的知识,只有当路由项的无效计时器为0时,路由器才会立刻告知邻居)。

关键是,此时只有R3知道该路由不可达,但是由于R3并没有立刻告知邻居,则R2此时依然认为该路由可达。那么,如果**R2比R3早一步进行周期更新,**将会造成怎样的情况?

由于R2并不知道R3右侧的网段不可达,那么R2在周期更新时就会依然把它当作正常的路由,发送给R3:

在这里插入图片描述

此时,对于R3而言,由于右侧网段已经与它断开了连接,导致R3路由表中并没有关于该网段的路由项。于是,根据贝尔曼福特算法,当它接收到R2的应答报文时,R3会将这个实际上不可达的路由学习到它的本地路由表中。

由于这路由在R2本地的开销值为1,那么对于R3而言,cost = 1 + 1 = 2,目标为R2

此时,如果R2接收到了一个目标为3.0.0.0的数据包,观察R2与R3的路由表,发现会形成环路。

如何解决这个问题?

思考这个问题出现的原因,实际上就是当3.0.0.0/24网段失效时,R3未能及时地告知邻居R2,导致R2在周期更新时依旧认为该目标可达,继而让R3错误地将3.0.0.0/24以正常路由添加到路由表中。那么,只要这样:

当某直连路由不可达时,立即通知邻居。

RIP触发更新:

  • 触发更新:当某一个路由器的某一条路由项发生改变时,不需要等待下一次周期更新的到来,立即将发生改变的路由项从所有接口发送出去。

  • 如果在1s内在同一个路由器上断了两个网段,那么只发送一条数据报文。时间间隔**大于1s时,**发送两条报文。

  • 加快路由器的收敛速度。

考虑一种较为极端的情况:假设R3已经将触发更新的报文发送出去了,但是还是R2在接到触发更新报文之前进行了一次周期更新,那么此时,R2与R3的路由表将会变成啥样?

首先,当R3接收到R2的周期更新报文时,会将那个已经不可达的路由项加载到本地路由表中:
在这里插入图片描述

然后,当R2接收到了R3的触发更新报文时,会将那个目标设为不可达:

在这里插入图片描述

接着,对于R2而言,原本可达的目标变成了不可达,路由项发生了改变,于是进行触发更新发送给R3;对于R3而言,原本不可达的路由项变为了可达,于是进行触发更新发送给R2:
在这里插入图片描述

此时,R2、R3的路由项又发生了改变,于是又互相发送触发更新报文…就这样,新的环路产生了。

另外,在环路中,发现路由项的开销值不断增加,直至增至16

如何解决该环路?

产生该环路的根本原因,是由于R2将R3告诉它的信息又发给了R3导致了环路。实际上,这就是触发更新的缺点。

RIP水平分割:

  • 如果有一个X/Y的路由项从路由器的某接口学习到,那么在周期更新发送时,该路由项就不能从该接口出。

从此口进,则不从此口出

这样,当R2从0/0/1口学到路由项时**,就不能从这个接口将该路由项更新出去。**

但是,如果将R1与R3直接相连:

在这里插入图片描述

那么,当整个网络呈环形,并且有路由项改变,就会再次形成环路。

RIP毒性逆转:

  • 如果有一路由项发生了改变,从路由器的某接口进入,那么在周期更新时,该路由项会从所有接口发出,并会将cost设置为16。

:水平分割和毒性逆转原理相同,但做法不同,所以只能选择其中一个和触发更新搭配使用。但是,毒性逆转更优先。

RIP基本配置:

RIPv1:
[r1]rip 1                   启动RIP协议,并配置进程号(进程号仅具备本地意义) 
[r1-rip-1]version 1         选择RIP版本为RIPv1
[r1-rip-1]network 12.0.0.0  宣告主类地址(前八位),激活接口并发布路由
  • 宣告:

1.需要宣告所有直连网段(即所有接口都要激活)

2.必须按照主类地址宣告。

  • 查看RIP路由项:

在这里插入图片描述

如图是R2从R1学到的路由,发现在R2的路由表中,该路由项的目标地址的掩码与原目标的掩码不同。这是因为RIP不携带真实掩码。

RIPv2:
[r1]rip 1
[r1-rip-1]version 2
[r1-rip-1]undo summary  关闭自动汇总功能,如果不关闭,宣告的属于同一主类的路由将自动汇总。该功能在华为上不需要配置,因为华为默认自动关闭自动汇总功能。
[r1-rip-1]network 192.168.0.0
RIPv1与RIPv2的区别:

RIPv1

1.不传递真实掩码(有类路由协议)

2.广播发送报文

3.不支持VLSM、没有认证的功能、没有手工汇总的功能

RIPv2

1.传递真实掩码(无类路由协议)

2.组播发送报文,地址224.0.0.9

3.在关闭自动汇总的前提下可以进行手工汇总、支持VLSM、支持认证功能

RIP扩展配置:

1.手工汇总:
  • 前提:要事先宣告那些将要汇总的网段
  • 去往多个可以汇总的目标网段范围,且具备相同下一跳,则可以不用具体的多个路由,仅需要汇总的路由即可。
    在这里插入图片描述

以上图为例,R8上有三个环回可以汇总

[r1-g0/0/0]rip summary-address 10.1.0.0 255.255.252.0

注意,要在接口进行配置

以下图为例:
在这里插入图片描述

对于R9而言,因为R8在0/0/0口配置了汇总,所以R9中含有一条关于R8上的换回接口的汇总路由:

在这里插入图片描述

但是,对于R12和R13而言,由于R8并没有在与它们相连的接口配置汇总,所以它们的路由表中含有的是R8上所有的环回的路由:

在这里插入图片描述

此时在0/0/2口配置汇总:
在这里插入图片描述

再次查看R13的路由表:

在这里插入图片描述

2.缺省路由:
  • 只在一台设备上配置,在与运营商相连的边界路由器配置、指向运营商(即下图中的R2)。
  • 缺省路由的下发具备强制性条件,即本地需要存在一条指向ISP的缺省路由。
  • 边界路由器通过下发,即以发送更新报文的方式,使得网络中其他的路由器具有指向ISP的缺省路由。

在这里插入图片描述

[r2-rip-1]default-route originate   //下发缺省路由
3.静默接口:

我们知道,运行RIP的路由器在接口激活后,接口就可以收发报文。

但是考虑一个问题:对于一个RIP路由器而言,是否所有的接口都需要具备收发RIP报文的能力?

在这里插入图片描述

假设R1、R2启动了RIP协议并在接口激活,那么对于0/0/0接口而言,该接口就不需要具备收发RIP报文的能力,因为该接口直接与PC相连,而PC很明显不能运行动态路由协议,所以,该接口不需要具备收发报文的能力。但是也不能不激活该接口,这样会导致其它的RIP路由器学习的路由不全。

于是出现了静默接口。这种接口无法主动发送数据包,只能接收数据包。

  • 之所以还要保留该接口的接收RIP报文的能力,是因为该接口可能还会与路由器相连,那么此时路由器就会向该接口发送请求报文。当接收到更新报文或请求报文时,该接口就会立刻切换为正常的接口,此时接口又具有了收发报文的能力。

  • 实际上,不仅是PC,如果该接口与一个未运行RIP协议的路由器相连,那么此时也需要将该接口配置为静默接口。

[r1-rip-1]silent-interface g0/0/0    //将R1的0/0/0配置为静默接口
4.手工认证:

在现实的网络环境中,可能有别有用心之人,原本是PC与路由器的接口相连,但是某天他将PC换成了一台路由器,并且该路由器也运行RIP协议,那么这个人就可以窥探到整张网络的路由信息,可能会对网路安全造成威胁。

为了尽量保证网络环境的安全性,RIP产生了一套认证功能。即在链路两端配置密码。当一个接口接收到一个请求报文时,会现核实密码是否正确,只有当密码正确时才会发送应答报文。

  • 注意,需要同时在双方路由器相连的接口上配置
[r1-g0/0/0]rip authentication-mode simple cipher 123456  //以简单认证的方式在R1的0/0/0设置密码

5.加快收敛—减少计时器时间

[r1-rip-1]timers rip 10 60 40  分别对应更新计时器、无效计时器、垃圾收集计时器。单位:S

注意:三个计时器之间的倍数关系不要改变。

RIP优缺点:

  • 优点:配置简单
  • 缺点:
    • 周期更新,且时间不同。占用资源过多;
    • 选择路径不佳—RIP仅靠cost进行选择;
    • 仅支持小规模网络—跳数最大为16;
    • 收敛速度慢。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值