梅利333

从无到有,自有至精

导航

RIP距离矢量路由协议

RIP 动态路由协议已过时

距离矢量路由协议

根据跳数决定最优路径(是一个已经被需求所淘汰的协议,但为什么还要学习呢?因为和后面的BGP有些许的相像

 

无论是静态路由协议还是动态路由协议,

其目的只有一个,就是构建一张最优的路由表。

RIP版本

RIPv1

使用广播更新,这是很不理想的,因为不运行rip协议的设备,尤其是终端设备,样会收到这样更新,而他们本身也不是由设备,根本就不需要,所以无中浪费带宽。

RIP v2

引用了组播的概念,使用的地址是224.0.0.9,这样一来,以很大限度的去限制流量的浪费,

播,其实说白话,就是将一些设备义到一个组,你只给这个组的人发信息,而组外的人是收不到的,时的组播就是这个意思,只有运行了相同协议的设备,才是进组,才可以监听这个信息。

 

RIP性,为什么会被淘汰

数限制

这个协议是早期出现的,是无法满足现在的网络环境的,

有三点,

其一:根据跳数的限制,RIP最大只支持1516跳就是不可达,

不能适用于大型的网络(每经过一个路由设备为一跳),其实15跳也还可以了,

其二:它只会选择跳数最少的为最优路径不会去考虑带宽

 

其三:RIP的收敛时间那是相当的漫长的

  

RIP 的管理距离

[120/1]

120RIP协议的管理路由,系统自定,无法修改

1:度量值,协议的链路标准(跳数)

 

路由协议三大标准

决定一个路由协议的好坏,无外乎三个标准  

                        选路标准

                                           如何更新

                                           如何收敛

1选路标准

上面也提到了,RIP只根据跳数来决定最优路径

如图所示:

 

 R1想要访问R5,假设上面的链路带宽为10M,而下面的带宽为1G,那么在RIP协议中会被忽视,因为只认跳数,从上面的链路上看,只经过了一跳,而现在的链路会经过三跳

所以RIP 会选择上面的链路。

 

2如何更新  

224.0.0.9    30S更新一次

 RIP v2版本使用组播更新,这也是一个突破 ,因为在V1版本的时候使用的是广播,

那就要明白都有哪些更新的方式

  -1 单播 --

(单独给每一个人都发一份,其缺点就是浪费带宽,消耗资源,因为每人都要发一次)

  -2 广播

  (任何人都能收到,这会使不想收到的人也能看到,没有意思,浪费)

  -3 组播

(只发给想要收到这个消息的人,等于是建立了一个组)

只发给运行了rip协议的设备,

 

3如何收敛

(就是当主线路故障之后,备选线路多长时间能够启用)

最长240S

  180S的死亡时间+60S的刷新时间

180S的时候会将该路由条目标记为“可能down”状态 possibly down

再最后等60S的确认时间,如果还没有活过来,那就直接DOWN,删除这个条目。然后重新选路,再切换到备用线路

RIP配置

1) 启用rip

2) 修改版本

3) 关闭自动汇总

4) 宣告网段  RIP不支持VLSM

 宣告网段,就是把和对端设备相连的接口网段宣告出去,再加上自己的其它接口网段

版本有两个v1\v2,通常情况下,我们都用v2版本

关闭自动汇总,为什么?

 

 

 如上图所示,如果没有关闭路由自动汇总,那么默认情况下,R7所宣告出来的网段就会被显示成172.16.0.0/16,会根据主类地址进行汇总,如/8./16./24 ,

这样有什么不好吗?

 好处是可以缩小路由表的大小,

 坏处,就是会产生路由黑洞!

 

路由黑洞的形成,

假设现在R6收到访问172.16.4.0/24,请问可以发出去吗?根据172.16.0.0/16的路由条目是可以发过去的,但是R7收到数据后,查看自己的路由条目没有去往172.16.4.0/24的目标地址,就会进行丢弃,

R6这边一直发,R7这边一直丢,这就形成了路由黑洞,数据是有去无回的

 

路由汇总不是不好,但是我们一般不要自动汇总,我们都是要手动汇总的

 

配置:

 

 

 

全网运行RIPv2

配置IP不在赘述

R1

r1(config)#router rip                  ///启用RIP协议

r1(config-router)#version 2              ////版本2

r1(config-router)#no auto-summary       ///关闭路由自动汇总

r1(config-router)#network 10.0.0.0        //宣告网段

r1(config-router)#network 30.0.0.0       //因为有两个接口,所以要宣告两个

 

R2,R3,R4都一样,

R5

r5(config)#router rip

r5(config-router)#version 2

r5(config-router)#no auto-summary

r5(config-router)#network 50.0.0.0

r5(config-router)#network 20.0.0.0

r5(config-router)#network 5.5.5.0      //这里启用了一个环回口,模拟其它网段

 

然后用R1PING 5.5.5.5 是通的,但是现在要看的是究竟走的哪边

根据RIP的选路原则,肯定是选择上面的,因为上面的跳数少

我们在R2F0/0口上进行抓包,看看有没有数据经过

 

 可以看到 10.0.0.1 目的5.5.5.5icmp包,以及源目对调的ICMP reply包,

说明我们的判断没有问题,

 那在R3的接口上可以找到这样的包吗?

 

 

 

显然是没有的,

在这里,只能看到224.0.0.9的更新数据

 

分析路由表

这里只用看R1的,5.5.5.5条目

 

 

其中表明

     5.0.0.0/24 is subnetted, 1 subnets

R       5.5.5.0 [120/2] via 10.0.0.2, 00:00:09, FastEthernet0/0

  目的网段 [管理距离/度量值]  via下一跳  时间计时器  本设备出接口

 

现在我们模拟R2f0/0接口down掉,也就是上面的链路走不通了,看RIP多长时间能够收敛完成

 

时间真的很漫长,先要经过180S的死亡时间,然后再经过 60S的刷新时间,才能够正确的激活,

我们来看一下,这里的切图只切5.5.5.5这条了 

 

 时间一点一点的过,180S =3分钟

那么过了3分钟会是什么样呢?

 

 

 RIP会认为这个条目有可能DOWN,显示为possibly down

此时,肯定也是ping不通的

 

 

 

再过一会这些条目将会被删除,

 

 

 

 原有去往5.5.5.0的路由条目被删除了,

因为RIP 经过 240S 的收敛时间,就真的认为它已经死了

在这之后,开始重新选路,

 

 

 

5.5.5.0网段的条目又出来了,

测试Ping

 

 

 R3上抓包,结果可想而之,肯定是有的

 

 

 好像除了慢点儿没有别的问题

 

需要注意一个细节,

之前的去往5.5.5.5的条目是这样的

 

 

新的条目是这样儿的

 

 

 有什么变化吗?

[120/2]   [120/3],度量值发生了变化

原来从R1到达5.5.5.5只需要2跳所以被选为最优路径显示在路由表中

而现在因为原最优线路故障,导致重新收敛,新的线路需要经过3跳才可以到达,而且这条路还是仅有的,想要到达5.5.5.5,不走这里也没办法了。

 

 

 

RIP高级设置

Rip

无论是哪种路由协议,只要是动态路由协议,都会涉及到加密,为什么要加密呢?

其实不光是加密,而且一定标准下,密码还要定期更换,

主要是为了防止携带有相同密码的设备接入网络后影响原有网络拓扑环境。这很致命的。

 

 

1定钥匙名称

2定义钥匙

3定义具体的密码

4接口挂接

 

命令

R1(config)#key chain 11    //钥匙名称,为面的调用做准备

R1(config-keychain)#key  1   //钥匙号,两边要保证一样

R1(config-keychain-key)#key-string 123 //具体的密码,这里设置的为123

R1(config-keychain-key)#exit

R1(config-keychain)#exit

R1(config)#inter f0/0

R1(config-if)#ip rip authentication key-chain 11 //入接口下调用。

 

R2(config)#key chain 11

R2(config-keychain)#key 1

R2(config-keychain-key)#key-string 123  

R2(config-keychain-key)#exit

R2(config-keychain)#exit

R2(config)#inter f0/0

R2(config-if)#ip rip authentication key-chain 11

保证一致,如果是明文就都是明语言,如是密码就都是文,否则无法接到对方过来的目。

 

配置完以后,如查看具体配置呢?

 

R2#show run | se key

key chain 11

 key 1

   key-string 123

 

R2#show run | se authen

 ip rip authentication key-chain 11

密文

R1(config-if)#ip rip authentication mode md5

R2(config-if)#ip rip authentication mode md5

要在后面加上一个mode md5即

看还是一样的命令

R2#show run | se authen

 ip rip authentication mode md5

 ip rip authentication key-chain 11

 

密文配置思路和明文的一样,只是在最后加一个加密的方式。

 

 

负载均衡

,默认就是等价的,但通 常不是我们想要的

偏移列表

Offse-list   当去往同一个目的地,出现两个不同下一跳的路径时,会出负载均衡的情况,

可如果此时我想要人为的控制其走向,怎么办呢?

可以通过offset-list

其原理就是通过ACL来抓取相应的路由,再利用offset-list来对这个方向的路由进行metric进行控制,(增加)【之前我们一直提到,RIP的选路很单纯,只有一个,那就是跳数,越少越优,如果人为的将这个条目来给加大,那也就成为了次优,从而影响它的选路】

 

  

如图所未,R1去往4.4.4.4的路径肯定是有两条的,12.0.0.2 /13.0.0.3,

需求:要求首选13.0.0.3,次选12.0.0.2 ,也可以说当R3这边的链路故障时,可以进行路径切换,实现冗余备份的目的。

 

  

先是用ACL来抓取具体的条目,(切记,条目的抓取要按照路由表中显示的样子来【是字母后面的样式】,它写成什么样,你就写什么样)

 R1(config)#access-list 1 permit 4.4.4.4

 一使用offset-list进行调用

R1(config-router)#offset-list 1 in 5 f0/0

针对于acl列表1的条目,in方向,加5metric f0/0接口上。

在这里解读一下什么是in 什么是out

这取决于路由的传递方向,

4.4.4.4 本是R4的路由,传递到R1,做为R1而言这个条目是进来的,所以是in

而如果在R4看来,4.4.4.4这个条目是自己的,是发出去的,所以是OUT

【这个一定要搞清楚,不然到后面的distribute是无法弄明白的】

 

 

 这样一台,就只剩下一个了,VIA13.0.0.3

 

 

 

此时模拟R3这边的链路DOWN掉,就可以直接跳转到R2上了,

R1(config)#inter f0/1

R1(config-if)#shu

 

 

 达到效果

 

额外赠送一个小实例

自己动动手,看看仅通过offset-list这项技术能否达到效果

 

 

 

要求绿色为首选,红色为备选

只使用一种offset-list,偏移列表来实现,来验证你的学习成果。

 

 

发列表

Distribute-lis,这个在后面的eigrp,OSPF中都会用到,

通俗讲这项技术就是给与不给,收与不收的做用,

啥意思?说人话

就是我有很多条目,可以做选择性的传递和接收

还是需要和ACL相结合

ACL+distribute-list

ACL起决策作用

distribute-list负责调用acl,确切的说应该是部署

 

 

  

需求:

使用分发列表,r1在发而时不发布192.168.2.1

R2在接收时不拒收192.168.3.1

R1接收来自R2的条目时,只接收172.16.1.1

 

基本配置不再赘述了

需要1

R1(config)#access-list 1 deny 192.168.2.0

R1(config)#access-list 1 permit any

R1(config)#router rip

R1(config-router)#distribute-list 1 out

 

R2查看结果(要等待RIP的收敛时间,很漫长)

 

需求2

R2(config)#access-list 1 deny 192.168.3.0

R2(config)#access-list 1 per any

R2(config)#router rip

R2(config-router)#distribute-list 1 in

 

R2查看结果

 

  

需求3

R1(config)#access-list 2 per 172.16.1.0  //因为ACL有默认的DENY ANY,所以只允许了一条,其它全都拒绝,偷懒小技巧

 

R1查看结果

 

 

 路由汇总

RIP不是有自动汇总嘛,为什么不用呢?还想着手动汇总

因为自动汇总后会产生路由黑洞,

路由黑洞,转发现去的数据直接被丢到“黑洞”这是一个未知的世界,里面什么都没有,也没有人会给你回应,反应在设备上就是丢包,数据被转发,但是没有回应。

 

RIP的汇总有一个关键性的限制,那就是CIDR不支持,

VLSM,可变长子网掩码,

CIDR,超网,

啥是CIDR,

举个栗子,192.168.1.0/24是一个C类的网段,如果将这个表示为192.168.0.0/20

那这个就叫超网,越过其原有主类的形式汇总,就叫超网汇总,RIP是不支持的,

怎么说呢,这个事儿,其实也很好理解,在RIP宣告网段的时候就能看出来,只能按主类进行宣告,

 

那又如何操作呢?

实例(路由设备还是用gns3比较爽)省资源(可是哥也不差你那点内存)

 

 

 

R2上的F0/0接口上做汇总,

没有汇总之前R1看路由表是这样的

 

 

  

R2(config-if)#ip summary-address rip 172.16.0.0 255.255.0.0   //只能按主类进行汇总

 

 

 

R1上此时看到的就是172.16.0.0/16

???这么看和auto-summary有什么区别吗?好像区别并不大,

如果你看到这里,请记得给我回复,我是真没找出来有什么不同,

而且也亲自都测试了一下

播路由

单手路由?RIPv2版本不是使用的组播吗?为什么这里又出现了一个单播?

这东西干啥用的?

其实你可以这样理解,它的出现,就是为了解决RIP的水平分割问题的

RIP的水平分割,从这个接口收到的路由,至死都不会从这个接口再传出去。

基本情况

 

 下面再来看一个有意思的测试

 

 

 

R1-R3之间运行RIP

R2-R3之间运行STATIC,然后由R3STATIC重发布进RIP

请问R1能否收到2.2.2.2的路由条目?

答案是肯定不可以的,为什么?这就是因为RIP的水平分割原则,

因为路由是从F0/0接口学习进来的,不可能再从这里发布出去,RIP认为有环路,

 

那么现在我就让你发,你就得发,怎么办?使用单播路由,

指定邻居

R3(config)#ip route 2.2.2.0 255.255.255.0 10.0.0.2

R3(config)#router rip

R3(config-router)#redistribute static metric 1

 

R3(config-router)#passive-interface f0/0  //改变接口为被动接口

R3(config-router)#neighbor 10.0.0.1     //指定邻居为R1

 

 

 

R1收到了这个条目,但是你有没有发现这里的VIAR2,并非R3 ,这是为什么呢?

值得你去思考一下。

 

默认路由

由上游设备向下游设备下发默认路由,而不用去手动配置,一定程度上可以减轻配置压力,

另外,最主要的,由于是动态路由,还可以产生联动,当上面出现问题时,下面的默认路由也将不复存在。

 

 

 

R2做这作为出口网关设备,下连R3,之间运行RIP协议

R2上配置NAT,

R2下发一条默认路由,给R3

(如果是手动在R3上配置可不可行吗?当然可行,但不好,不会出现联动)

NAT部分不说明

R2(config-if)#inter f0/0

R2(config-if)#ip nat ou

R2(config-if)#inter f0/1

R2(config-if)#ip nat in

R2(config)#ip route 0.0.0.0 0.0.0.0 12.0.0.1

R2(config)#access-list 1 per any

R2(config)#ip nat in so li 1 inter f0/0 overload

 

R2(config-router)#default-information originate

 

 

R3(config-router)#do show ip route rip

R*   0.0.0.0/0 [120/1] via 23.0.0.2, 00:00:05, FastEthernet0/0

 

此时,在R3上可以看到下一跳为23.0.0.2R2)的0.0.0.0默认路由,且为R*,这和普通的R路由有所不同。

 

之前咱们提到过,如果上面的默认路由出现问题,这里也会消失,

我们将GW上和ISP相连的接口DOWN掉,看看这边还在不在

 

R2(config-router)#inter f0/0

R2(config-if)#shu

 

 

 

刷了几次,依然是没有的,看来是起做用了。

 

 

----------------------------------------------------------

CCIE成长之路 --- 梅利

 

posted on 2020-07-14 09:27  梅利333  阅读(825)  评论(0编辑  收藏  举报