在说RIP之前,先来想想什么是动态路由协议,动态路由协议是对多个路由协议的统称。根据自制系统(AS)可以分为内部网关协议和外部网关协议。这里的自治域指一个具有统一管理机构、统一路由策略的网络。而动态说明这些协议不需要过多的人工操作,是协议之间自动运行的。
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 的路径有两条
很显然 数据会通过运行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 他为什么选择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路由的生成:
初识状态 每个路由只有自己的直连路由条目
第一次互相学习 30s
再一次互相交换路由表
最后 能够互相通信
但是 RIP 的最大缺点是他能产生环路,我们来看一下
当R3的直连down的时候 R3能够很快的发现(自己的接口) 就把这一条路由标记为不可达 ,准备将这条坏消息通告出去
但是,在R3通告之前 R2通告了
于是 R3学到了错误的路由 因为R2也不能到达40.0.0.0网段
于是 一错再错 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 的区别
RIP1可以接收到RIP 1 RIP2发来的宣告
RIP2 可接收RIP2的宣告