RIPv1协议详解

    作者:课课家教育更新于: 2016-09-08 17:45:01

    软考,您想通过吗?一次通过才是硬道理

       即使现在RIP协议已经很少出现在实际工作中,不过可以把它作为入门,对路由间协议的工作方式进行了解。所以小编主要给大家介绍一下经典路由协议RIPv1,并且结合实例,对RIPv1的特征、配置进行详细介绍  

         (一)RIP主要特征

      RIP,即路由信息协议,这是早前较为普遍的内部网关协议,为典型的距离矢量路由协议,适用于小型的网络,它比较大的缺点是没有办法在具有冗余链路的网络当中有效的运用。

      RIP协议中默认的管理距离为120,RIP接收的路由信息都被封装在UDP协议的数据当中,在UDP的520端口接收来自远程路由的信息。

      RIP使用跳计数当作路径选择的度量值。其中,最大跳数为15,当最大跳数大于15时,就默认该网络失效。RIPv1采用广播式进行更新,RIPv2采用组播的方式更新,RIP默认每隔30秒周期性的发送整个路由表给邻路由。

      (二)RIP路由互相学习过程的解析

      RIP协议运行之前R1、R2、R3的路由表中只存在直连路由的信息,如图:

    RIPv1协议详解_cnna基础_cnna教程_cnna认证_课课家

      A.运行RIP路由协议后,R1、R2、R3宣告各自直连网络

      B.先假如R1首先发送路由更新,R1把自己直连网络10.1.0.0和10.2.0.0以1跳的度量值告知R2。

      C.R2在收到R1的路由表以后,把路由与R1传过来的路由对比,R2知道了路由表中没有10.1.0.0,R2记下这条路由以及路由对应的接口和跳数1;而R2知道路由表中已经有10.2.0.0这个条目,并且,是一条直连条目,直连路由的管理距离为0,学到的RIP路由的管理距离是120,就是说R2忽略R1传过来的10.2.0.0该条目。

      D.然后,R2将路由表中的直连网络10.2.0.0以及10.3.0.0以1跳的度量值告诉了R3,并把从R1那里学到的10.1.0.0网络以2跳的度量值告诉了R3。

      E.R2发过来的路由条目被R3收到之后,将自己的路由表以及R2发过来的条目对比,R3发现了自己路由表中没有10.1.0.0,R3记下这条路由跟对应端口和跳数2,R3发现了自己路由表中没有10.2.0.0,R3记录下这条路由和对应端口以及跳数1,然后,R3发现自己的路由表中已经存在10.3.0.0,更重要的是它是直连,具有很好的度量值,R3忽略R2发送来的10.3.0.0。R3就可以学到完整的路由条目。

      F.同样的道理,R3也会把路由发给R2,然后,再由R2再发给R1。到最后,所有路由都可以学到所有条目。在运行RIP以后,各路由上的路由表如下图:

    路由表

      (三)RIP定时器

      运行了RIP协议以后,在路由上查看RIP定时器的情况:

    rip定时器

         在不考虑使用任何防止距离矢量协议路由选择环路下,可以此理解四种定时器。结合下图,在默认的情况下,网络路由30秒发送一次RIP路由更新,而此时R1上面的"网路1"失效,R1发往R2的路由在更新中不再含有"网路1",在R2上的路由抑制定时器、路由失效定时器、路由刷新定时器同时进行开启,连续6个更新周期,就是说180秒以后,R2都没有收到R1发送的"网路1"的路由更新,R2就觉得"网路1"失效,在这使用的是路由失效定时器。在R2认为"网路1"失效以前,就是说180秒以内,要是R2收到发往"网路1"的数据,R2依然转发数据给R1。在R2认为,在"网路1"失效前的这180秒当中,在R2上"网路1"是处于抑制状态的。在接下来的60秒中,也就是R2认为"网路1"失效后,R2就认为"网路1"是有可能down掉了,而且不再转发送往"网路1"的数据给R1。

    rip定时器

      (四)RIP路由环路形成解析

      如上图所示,R1将网络1的路由信息发给R2,R2知道了网络1并将度量值标记为1跳,指的是经过一台路由就可以到达,下一跳是R1。路由R2把网络1的路由信息发送给R3和R5,R3和R5都已经学到了网络1,而且把度量值标记为2跳,就是说经过两台路由就能到达,而下一跳是路由R2;R3和R5都将网络1发送给R4,R4也知道网络1,并标记度量值为3跳,下一跳的路由为R3或R5,就是从两台路由都能到达,R4去往网络1的数据将负载均衡。这时,全部的路由都有一样的认识和正确的路由表,这个时侯,网络就被称作”已收敛”。这是,在网络1断开的时候,R1把网络1不可达的信息发送给R2,R2把网络1到达不了的信息发送给R3和R5,R4不知道网络1不可达的信息,这时,R4发送了一个更新给R5,觉得通过R3可以到达网络1;另外,也有可能是发送给R3,告知它通过R5可以到达网络;

      在这里解释,R5收到通过R4可以到达网络1的更新后,把自己的路由表进行更新,

      并且把网络1可到达的信息发送给了R2,R2更新自己的路由表并发送给R3和R1。

      R3更新自己的路由表然后把它发送给R4,到这里为止,路由环路形成。

      (五)距离矢量路由环路的解决方法

      解决距离矢量路由环路的方法有五种:

      A.最大跳计数,RIP允许跳计数最大可以达到15,所有需要经过16跳才可以到达的网络都被认为是不可到达的。

      B.水平分隔,如图3,限制路由器不可以按照接收信息的方向去把接收到的信息发回去。比如说,路由R3和R5有关网络1的信息是从R2学习到的,它们是不会将网络1的信息再重新从与R2相连的接口发回去的。所以,R4到最后会学习到网络1不可达的信息。

      C.路由中毒,路由中毒通过把故障网络设置成为最大跳计数加1来暗示网络不可达,毒性反转是避免环路的另一种方法。比如说,R2学习到R1发送过来的网络1不可达的信息,它先将网络1的跳计数更改成16跳,然后根据毒性反转,它把向R1送回一条网络1不可达的更新。

      D.触发更新,此后,周期性发送更新,RIP是默认每隔30秒。

      E.抑制定时器,如图3,R2收到了R1发来的网络1不可达的信息以后,R2先标记此网络不可达,同时,R2的抑制定时器启动,在RIP中抑制定时器是180秒倒计时,要是在抑制定时器到期前,又收到网络1从R1发送的可达的信息了,所以删除这个抑制定时器,并且标记网络1可达;要是在抑制定时器期满前,收到一个来自其他路由的,即R3或者R4的关于网络1的更新,并且这个更新具有更好的度量值(注意:假设以前学到的是3跳,这里有其他路由告诉它只需要1跳就能到达网络1),R2删除抑制定时器,并且标记网络1可达;如果在抑制定时器到期前,R2收到另外路由器发来的关于网络1的更新,并且具有更差的度量值,那么忽略此更新;在抑制定时器期满后,R2删除抑制定时器,接收所有源路由的与网络1相关的更新。

      (六)RIPv1配置实例

      使用RIPv1来配置下图:

    配置实例

      三台路由器配置相同的部分:

    三台路由器配置相同的部分:

      R1配置:

    R1配置

      R2配置:

    R2配置

      R3配置:

    R3配置

      配置完成以后,大约等待十几秒查看一下R1的路由表:

    R1的路由表

      断开R1和R2之间的链路,等网络再次收敛后查看R1的路由表:

    R1的路由表

      (1)负载均衡

      从R1的路由表输出可以看到,去往23.0.0.0/24的路径有两条:

    负载均衡

      R1去往23.0.0.0/8网络的数据将被负载到这两条线路上,在本例中R1和R3之间的以太网线路速率为100Mb/s,而R1和R2之间的串行线路速率仅仅只有1.544Mb/s,可以看出RIP协议并不会不考虑线路带宽,仅考虑度量值,RIP默认支持四条线路的负载均衡,可以使用下面的命令更改最大负载均衡线路数:

    负载均衡

      测试负载均衡是否被使用:

    测试负载均衡是否被使

      以上测试,没有将数据负载到两条线路中的原因,是因为思科的iOS软件提供了两种负载均衡的方式:

      第一:基于每个分组的负载均衡,称作进程交换;

      第二:基于每个目的的负载均衡,称作快速交换;

      IOS默认使用快速交换,要是使用进程交换,IOS将会将交替使用每条线路,

      接着就关闭快速交换,使用进程交换:

    使用进程交换

      (2)查看路由协议

      在R1上使用"showipprotocols"查看R1上运行的路由协议:

    查看路由协议

    查看路由协议

      (3)debugiprip

      使用"debugiprip"实时监控路由收发RIP更新的情况:

    debugiprip

      debugiprip

    debugiprip

          (4)水平分隔

      查看是否有接口开启了水平分隔:

    水平分割

      关闭R1s0/0接口的水平分隔,然后使用debugiprip查看发送更新情况:

    关闭水平分割

      (5)被动接口配置

      前面的Debug信息中包含了RIP向回环接口发送的更新,这些都是没有意义的更新,可以将回环接口设置成被动接口,这样这个接口就将不再向外发送路由更新:

    被动接口配置

      (6)单播更新实例

      在GNS3中搭建下面的拓扑,如图5,SW1是普通交换机127.0.0.1:8000,而非IOU中的交换机,路由全部是c3640,通过配置单播更新,实现路由R1可以和R2互相学习路由,但是不跟R3交换路由:

    单播更新实例

      R1配置:

    R1配置

      R2配置:

    R2配置

      R3配置:

    R3配置

      运用showiproute对R1、R2、R3上面的路由信息进行分别查看,发现R1和R2可以彼此学习到路由信息,R3学习不到任何路由信息,也不向外发送任何路由信息。使用debugiprip可以在R1和R2上查看到"sendingv1updateto123.1.1.2"这样的单播更新包。

      (7)触发更新

      距离矢量路由用的是周期性更新,能在串口上使用触发更新,以太网接口不支持触发更新:

    触发更新

      (8)缺省路由

      如图所示,R1是公司内部路由,R2是公司边界路由,R3相当于ISP的边界路由。在公司内部运行了RIPv1协议。如果公司内部有许多路由,为了访问InterNET,需要在公司内部每台路由上面都做默认路由指向公司边界路由R2。这里使用RIP缺省路由自动向公司内部路由宣告一条默认路由,在R2上做一条默认路由指向ISP的边界路由R3即可:

    缺省路由

      R1配置:

    R1配置

      R2配置:

    R2配置

      R3配置:

    R3配置

      以下是R1的路由表:

    R1路由表

      这时,R1上虽然没有去往R3回环接口的路由,但R1ping3.3.3.3依旧能够ping通,但这条从RIP学习到的默认路由,如果使用高级ping命令,让R1使用IP1.1.1.1作为源去pingR3,就ping不通了,是什么原因呢。因为R3上只有一条去往12.1.1.0/24网段的静态路由,它并不知道发往1.1.1.1的数据应该怎么发送,就进行丢弃。

      (9)浮动静态路由

      如图所示,R1和R2使用快速以太网和串行线路相连,要是R1是公司总部路由,R2是分部路由,它们之间的快速以太网线路模拟快速专线连接,而串行线路模拟普通慢速线路;R1和R2运行RIPv1协议,在没有出现故障前,总部和分部使用快速专线通信,当专线发生故障时,要求自动切换到慢速串行线路,并且保持总部和分部的数据通信正常:

    浮动静态路由

      R1配置:

    R1配置

      R2配置:

    R2配置

      这时,随便在哪个路由上查看路由表,都只能看到RIP学到的条目

    路由表

      此时,要是我们手动关闭R2的fa1/0,再次查看路由表:

    手动关闭R2的fa1/0,

      注意:在这个例子中因为GNS3模拟器的关系,需要关闭两端的fa1/0接口才能让静态路由起作用,而真实环境中只要关闭一端的端口,另一端就会立刻down掉。

      (10)更改定时器

      可以更改RIP的四个定时器,但不建议更改,更改方法如下:

    更改定时器

      以上就是关于经典路由协议RIPv1的全部内容了,还有关于RIPv1的特征、配置进行详细介绍的实例。如果希望能够学习到更多关于CCNA的内容,那就请继续关注我们的网站:课课家教育吧。

课课家教育

未登录