1

路由选择协议三剑客--RIP协议

一、背景
通过配置静态路由表可以获得静态路由选择,其特点是配置方式简单、开销小,一般适用于小型网络,缺点是不能及时适应网络状态的变化。与静态路由对应的是动态路由选择,路由器可以通过路由选择协议自动获取路由信息,能较好第适应网络状态的变化,适合大型网络,缺点是比较复杂、开销比较大。
当前因特网使用的就是动态路由选择。因特网是全球最大的互联网络,其具有以下特点:

  • 自适应:动态路由选择,能较好地适应网络状态的变化。
  • 分布式:因特网中的各路由器通过相互间的信息交互,共同完成路由信息的获取和更新。
  • 分层次:将整个因特网划分为许多小的自治系统(Autonomous System, AS)。例如将较大的因特网服务提供商作为一个自治系统。在自治系统内部和自治系统外部,分别使用不同类型的路由选择协议,分别进行路由选择。

因特网巨大,因此使用动态路由选择实现自适应是最好的选择,此外一个路由器肯定无法完成整个网络的互联,需要很多路由器互联才行。通常把路由器比喻为交棒的选手,路由器之间也需要经常交互信息,更新自己的路由表,达到自适应和分布式的目的。

自治系统就是几个路由器组成一个小团体,小团体内部使用专用的协议进行通信,而小团体和小团体之间也是用专用的协议进行通信。从AS划分的角度看,AS之间的路由选择协议称为外部网关协议(Exterior Gateway Protocol, EGP),各AS内部使用的路由选择协议统称为内部网关协议(Interior Gateway Protocol, IGP),EGP和IGP只是大的分类名称,并不是具体的路由选择协议。另外,这里使用的是网关这个名词,这是因为在因特网早期的RFC文档中,没有使用路由器,而是使用网关这个名词,现在新的RFC中又使用路由器了,外部网关协议EGP可以称为外部路由协议(External Router Protocol,ERP),内部网关协议IGP可称为内部路由协议(Interior Gateway Protocol,IGP)。此外,各自治系统内部可根据各自需求使用不同类型的内部网关协议,互不影响,比如一个AS内部网关协议使用路由信息协议(Routing Information Protocol, RIP),另一个AS内部网关协议使用开放式最短路径优先协议(Open Shortest Path First, OSPF),两个AS之间使用的外部网关协议可以是边界网关协议(Border Gateway Protocol, BGP)。其中,可供内部网关协议选择的协议还有很多,除了上面提到的RIP、OSPF,还有内部网关路由协议(Interior Gateway Routing Protocol, IGRP),增强型内部网关路由协议(Enhanced Interior Gateway Routing Protocol, EIGRP)、中间系统到中间系统(Intermediate system to intermediate system,IS-IS,读"i-sys")等等,而外部网关协议一般就是BGP。值得强调的是路由选择协议是在路由器上运行,路由器根据所使用的路由选择协议,周期性地与其他路由器进行路由信息的交互,互相告知各自的路由信息,来更新路由表。

补充1:实际上,路由器还有一张转发表,转发表是根据路由表的信息得出的,使用特殊的数据结构使得可以快速查找,不过这里不严格区分路由表和转发表。
补充2:路由器的各端口还应具有输入缓冲区和输出缓冲区,输入缓冲区用来暂存新进路由器但还来不及处理的分组,输出缓冲区用来暂存已处理完毕但还来不及发送的分组。

动态路由选择协议三剑客包含RIP协议、OSPF协议、BGP协议。
二、RIP基本原理
路由选择协议RIP,是内部网关协议IGP中最先得到广泛使用的协议之一。RIP要求自治系统AS内的每一个路由器都要维护从它的自己到AS内其他每一个网络的距离记录,RIP使用跳数作为度量,来衡量达到目的的网络的距离。将路由器到其直连网络的距离定义为1,路由器到非直连网络的距离定义为所经过的路由器数加1。

如图所示,路由器R1到网络N1的距离认为是1跳,而路由器R3到网络N2则需要再经历一个路由器才行,需要2跳。
在RIP协议中,允许一条路径最多只能包含15个路由器,当距离等于16时则相当于不可达,因此RIP只适用于小型互联网(需要说明的是,有些厂商的路由器并没有严格按照RIP标准文档的规定来实现RIP,例如思科路由器中的RIP将路由器到直连网络的距离定义为0)。在RIP看来,好的路由就是距离短的路由,也就是所通过路由器数量最少的路由。

可以看到,有两条路径,RIP根据距离会选择R1->R4->R5,这条路由,尽管这条路由上各段链路的带宽都非常小。还有另外一种情况,就是两条路径距离相等,该如何选择呢?

当到达同意目的网络有多条距离相等的路由时,则可进行等价负载均衡,即将通信量均衡地分布到各条等价的路由上。
RIP包含以下三个要点:

  • 和谁交换信息:仅和自己相邻路由器交换信息
  • 交换什么信息:自己的路由表
  • 何时交换信息:周期性交换,比如每隔30秒发送一次RIP更新报文。(每个RIP路由器的定时器都独立于网络中其他路由器,因此它们都同时广播的可能性很小)

什么是相邻路由器呢?看下图所示即可明白。

RIP的基本工作过程,可以归纳为如下三个过程:

  • 路由器刚开始工作时,只知道自己到直连网络的距离为1
  • 每个路由器仅和相邻路由器周期性地交换并更新路由信息
  • 若干次交换和更新后,每个路由器都知道到达本AS内各网络的最短距离和下一跳地址,称为收敛

收敛:所有路由器对于所有链路所有网段的路径信息达成一致的过程,路由选择协议越好收敛速度越快
收敛时间:从网络拓扑发生变化到网络中所有路由器都知道这个变化的时间
RIP协议下路由器如何更新的呢?

假设路由器C和路由器D,他们互为相邻路由器,他们之间周期性地交换并更新路由信息。其中路由器C和路由器D的路由表假设为如下所示,其中路由器C的路由表中的到达各目的网络的下一跳都记为了问号,因为路由器D不关心路由器C的这些内容。

此时,路由器C将自己的路由表发送给路由器D,,路由器D收到后,对路由器C发来的路由表进行改造,将下一跳全部改为C,并将距离全部加1

操作理由比较简单,因为路由器C可以达到这些目的网络,那么路由器D作为路由器C的邻居路由器,当然也可以通过路由器C到达,只是跳数增加1。此时路由器D要按照改造好的路由表来更新自己的路由表。

更新的规则就是几点:

  • 如果没有则添加
  • 如果有则按照最短距离不变或更新
  • 如果都有则均保留,做等价负载均衡

三、RIP优缺点
优点:

  • RIP协议非常适合小型网络,易于理解和配置
  • RIP路由保证支持几乎所有的路由器
  • RIP不需要每次网络拓扑更改时都进行更新
    缺点:
  • RIP可能造成流量瓶颈,因为每30秒广播一次更新,由于RIP中的任何路由更新都会占用大量带宽,因此关键IT流程的资源是有限的。
  • RIP的跳数限制为15跳,因此超出该距离的任何路由器都被视为无穷大,因此无法访问。
  • 收敛速度慢,当任何链接出现故障时,选择替代路线需要花费大量时间
  • RIP不支持同一路由上的多条路径,这可能产生更多的路由环路,使用固定跳数度量来选择最佳路由时,根据实时数据比较路由时,RIP无法工作,由于重复的过程,会导致数据包丢失和网络操作过载。

四、RIP坏消息传播慢问题
RIP存在坏消息传播慢的问题。假设路由器R1和直连网络N1之间出现故障,此时路由器R1将跳数置为16即不可达。此时路由器R2还保留着原来的路由信息即通过R1到N1的距离为2。

此时要发送RIP路由信息了,路由器R2先发出来,此时就会造成一个问题,路由器R1收到相邻路由器R2的RIP更新路由后,将自己的路由表被误导更新为了如下:

此时我们知道发生了错误,但是路由器R1和R2并不知道,此时R1页发出了更新信息,导致R2进行了错误更新,直到跳数变为16,才知道R1和R2被互相错误误导。

所谓“坏消息传播得慢”指的是路由器R1和N1之间的网路故障信息没有及时通知到相邻路由器,导致出现上述路由环路问题。因此“坏消息传播得慢”问题又称为“路由环路”或者“距离无穷计数”问题,可以采取多种措施减少出现这种问题的概率或者减少该问题带来的危害。

  • 16跳不可达可减少该问题带来的危害
  • 当路由表发生变化时就立即发送更新报文,即触发更新,而不是周期性发送
  • “水平切割”:由于路由器可能收到它自己发送的路由信息,而这种信息是无用的,解决办法就是在路由信息传送过程中,不再把路由信息发送到接收到此路由信息的接口上,从而在一定程度上避免环路产生。
    RIP的度量值为跳数,跳数越小路径最优,而不考虑带宽,这一点简单粗暴,但并不科学。
posted @ 2024-04-17 16:56  Bonne_chance  阅读(605)  评论(0编辑  收藏  举报
1