在说RIP之前,先来想想什么是动态路由协议,动态路由协议是对多个路由协议的统称。根据自制系统(AS)可以分为内部网关协议和外部网关协议。这里的自治域指一个具有统一管理机构、统一路由策略的网络。而动态说明这些协议不需要过多的人工操作,是协议之间自动运行的。

回忆古老的动态路由协议--RIP_target

IGP(内部网关协议)和EIG(外部网关协议)中又有不同类型的协议:链路状态型和距离矢量型 以及比较特殊的EIGRP

简单的介绍一下这些协议

IGRP:Interior Gateway Routing Protocol  动态距离向量协议 Cisco私有

EIGRP:Enhanced Interior Gateway Routing Protocol  增强型的内部网关协议 Cisco私有

RIP :Routing Information Protocol  路由选择信息协议 公有协议

OSPF:Open Shortest Path First 开放式最短路径优先 公有协议

IS-IS :Intermediate system to intermediate system  中间系统协议 公有协议

BGP:Border Gateway Protocol 边界网关协议 公有协议

这些路由协议不用多说,都是生成路由表的,那么不同协议之间有没有高低之分那,有。就是Administrative Distance 简称AD值。

AD值的作用就是判断 不同协议 生成的 去往同一目标 的路由条目,运行那一条路由条目。

如下图

客户端去往Internet 的路径有两条

回忆古老的动态路由协议--RIP_动态_02

很显然 数据会通过运行OSPF 链路出去,因为他的AD值小,优先级就越高。

每种路由条目的AD值 (可信度)

            路由协议

                 AD值

     直连

                   0

     静态

                   1

     EBGP

                   20

     内部GIGRP

                   90

     OSPF

                  110

     Is-is

                  115

     RIP

                  120

     外部EIGRP

                  170

     BGP

                  200

     未知

           255.255.255.255

不管是哪一种的动态路由协议(我们可以把协议理解成为语言,每一种协议都是一门独特的语言)让路由器运行一种协议就是赋予了它一门语言,路由器通过相同的语言/协议来沟通网络状况或各自的“地图”。从而获得最好的路线(路由)。

   在他们交流的时候总会经过以下几个步骤:

① 想起他路由器传递路由信息

② 接受其他路由发来的信息

③ 根据收到的信息得出最好的路由,并生成路由表

④ 能够根据网络的变化做出反应,调整路由

简单的总结一下就是  说话 收听 生成地图  维护地图    (有点形象化了)

关键是第三个 怎么生成最好的路由

每种路由协议都有自己的判断依据,依据就是 度量值 (Metric)

他就是来判断 同一种路由协议 收到 多条 去往 同一个目标的时候  来决策出“多条当中”

哪一条是最好的。

度量值的计算可以只考虑路径的一个特性,但路径更复杂的时候,度量值是综合了径的多个特性产生的。这些特性都包括:

- 跳数 :经过一个路由器就是一条,跳数越小越好。

- 带宽 : 不用多说, 带宽当然越高越好,也越有限。

- 负载 : 负载反应了一条带宽的使用情况,带宽占用越小优先级越高。但是负载这一特性 是动态变化的,所以对网络的稳定和路由器的运行都会有影响。

- 时延 : 值数据包经过一跳链路所花费的时间,时延越小说明网络链路越好,成为最佳路 径的可能性就越高。

- 可靠性 :用来判断一跳链路发生故障的可能性或几率,可靠性这一特性也是动态变化的。

- 成本: cost 成本值是逻辑上来表示一跳链路的大小,从原地址到目标地址cost值越小 就越有可能成为最优路径。

- 最大传输单元(MTU):指一条路径上所能链接的最大数据单位 (字节)。

如图  不同的路由协议可能有不同的路径选择 比如EIGRP会选择1M的链路,而RIP 就会选择上面那条链路

回忆古老的动态路由协议--RIP_style_03

为什么,因为这就是路由协议的算法,不同的算法产生的结果就不同。比如汉语成就了中国的长城,英语成就了胜利的女神什么的。。。

下面就说说RIP 他为什么选择56K的链路

RIP

RIP属于距离矢量协议 公有协议

他的特点

① 定期更新,想其他路由器通告路由信息。通告的频率不能过于频繁(造成网络堵塞),也不能间隔太长时间,这样网络收敛就慢。收敛:网络的一个状态,收敛完成了,就表示整个网络稳定了。

② 邻居,在RIP中,邻居之间各自的路由表示共享的。比较统一的。

③ RIP I 宣告网络是通过广播的方式, RIP II 组播地址 224.0.0.9

④ 全路由表的更新方式。表示路由器之间交流的是整张路由表。

⑤ RIP 采用的是跳数作为自己的metirc 跳数越小,优先级就越大。并且RIP 规定了最大跳数是15跳  16跳就不可达 (RIP 的缺陷造成)

⑥ RIP 采用UDP 的520端口通信

⑦ RIP的更新时间

触发更新 1~5 s 避免广播风暴(同一时间都广播自己的路由表)

更新时间 30s 每隔30s通信一次

失效时间 180s 如路由器收到更新的路由后 过了180s后还没有收到路由跟新,就将这条路由设为失效 并通告这条消息

抑制时间 180s 上面那个180s过后,那条失效的路由还没有彻底的失效,他还会用期望的心情在等待180s  到这条路由恢复

刷新时间 240s 在失效时间后的240s 将把失效的路由彻底删除

RIP路由的生成:

初识状态 每个路由只有自己的直连路由条目

回忆古老的动态路由协议--RIP_blank_04

第一次互相学习 30s

回忆古老的动态路由协议--RIP_动态_05

再一次互相交换路由表

回忆古老的动态路由协议--RIP_style_06

最后 能够互相通信

但是 RIP 的最大缺点是他能产生环路,我们来看一下

当R3的直连down的时候 R3能够很快的发现(自己的接口) 就把这一条路由标记为不可达 ,准备将这条坏消息通告出去

回忆古老的动态路由协议--RIP_target_07

但是,在R3通告之前 R2通告了

回忆古老的动态路由协议--RIP_target_08

于是 R3学到了错误的路由 因为R2也不能到达40.0.0.0网段

回忆古老的动态路由协议--RIP_机构_09

于是 一错再错 R2和R3之间一值通告这条错误的路由,知道这条路由的跳数到16跳不可达

他的纠正机制有很多方法,其中一条就是定义了最大跳数15跳 16跳不可达

还有就是 水平分割

水平分割: 从一个借口收到的路由信息,将不再从这个接口发送出去,另外也减少了通告信息所占用的带宽。在一定程度上减少了路由的环路。(默认开启的)

RIP 的配置

Router(config)#  router rip   启用RIP 进程

Router(config-router)# network network-number  宣告网络号 如 network 12.12.12.0

Router(config-router)# version 2 使用rip版本2

Router(config-router)# split horizon   启用水平分割 (默认开启)

Router(config-router)# no split horizon  关闭水平分割

Router# show ip route   查看路由表

Router# show ip protocols  查看路由协议的配置

RIP1和RIP 2 的区别

回忆古老的动态路由协议--RIP_动态_10

RIP1可以接收到RIP 1  RIP2发来的宣告

RIP2 可接收RIP2的宣告