RIP 基础.note
RIP(Routing Information Protocol):
·距离矢量协议
·度量值:只看跳数,跳数超过15为不可达
·每30秒收敛一次(周期性地更新(广播)整张路由表)
·v1使用广播,v2使用组播,组播地址224.0.0.9
·管理距离(AD值):120
是一种内部网关协议(IGP),旨在自治系统(AS)中分发路由信息。
RIP工作原理:
(1)每个路由器使用其本地连接的网络列表初始化其路由表
(2)每个路由器定期通过其所有启用了RIP的接口通告其路由表的全部内容。每当RIP路由器接收到此类通告时,它就会将所有适当的路由放入路由表中,并开始使用它来转发数据包。此过程可确保连接到每个路由器的每个网络最终都能为所有路由器所知。如果路由器不继续接收远程路由器的通告,它最终会使该路由超时并停止通过其转发数据包。
(3)每个路由器都有一个称为“度量”的属性,该属性表示到路由器目标的“距离”。每次路由器接收到路由通告时,它都会递增跃点数。
RIP路由表的形成:
R1 ---- R2
(1)RIP协议启动后,R1会向相邻的设备广播一个Request报文
(2)R2从接口接收到R1发送的Request报文后,把自己的RIP路由表封装在Response报文内,然后向该接口对应的网络广播
(3)R1根据R2发送的Response报文形成自己的路由表
(4)RIP按照路由通告进行路由更新和路由选择,在这种情况下,设备并不了解整网络的拓扑,只知道到达目的网络的距离以及到达目的网络应该走哪个方向或接口。
RIP协议 --- 使用毒性逆转
EIGRP --- 使用的是普通的水平分割
RIP距离矢量协议:
使用距离矢量路由协议的路由器并不了解到达目的网络的整条路径,该路由器只知道:
·自身与目的网络之间的距离
·应该往哪个方向或使用哪个接口转发数据包
【RIP路由的传递更新不能跨设备更新】
假设R1 -- R2 -- R3
R1只会发送更新给R2,再由R2发送更新给R3。
不存在R1直接发送更新给R3的情况
RIP是逐跳进行转发、更新的
为什么要关闭自动汇总:
通过一个接口发送一条路由,判断路由得前缀和发送路由接口得IP地址是否属于同一个网络,路由以明细形式发送
自动汇总在有类协议(RIPv1)不能关闭
RIPv2自动汇总可能会造成黑洞路由,且不可控

在RIP协议启动后默认30秒发送一次组播更新(Cisco与华为都一样)

当这个更新周期R1收到R2发送来的路由表时,会更新自己的路由表,并在自己到达该目的网络的跳数上加上1
当下一个更新周期的时候,R1又将这个更新过的路由表发送给R2,而R2又在这个跳数上加1,然后等到下一个更新周期发送给R1
RIP造成环路的原因:
路径不优
生成树 --- 解决二层环路的
路由协议 --- 解决三层路由环路的
RIP解决环路的方法:
·水平分割:
从一个接口收到的路由条目不会再从这个接口发送出去
·毒性逆转的水平分割:
从一个接口收到的路由会从这个接口发送出去,但是会将这条路由标记为16跳<不可达状态>
(这样做起到了给RIPv2的一个确认的作用)
假如R1发送了一个路由给R2,那么R2会将这个路由标记为16跳并发送给R1,因为RIPv2有一个触发更新,这样做起到了一个给RIPv2的确认的作用,使得R1不会误以为R2 DOWN掉了
触发更新:当一台路由器发送一个更新给其他路由,必须要收到确认,而确认就是通过这样16跳的形式实现的
RIPv2支持明文认证,MD5认证
Cisco RIP没有进程号,ensp RIP有进程号,但仅具有本地意义



路由协议分类:
静态路由
由管理员手工在每台设备上进行添加和维护(安全性)
动态路由
路由器自动进行路由信息的更新和同步,并且当网络扩扑变更时,能够进行自动收敛。

距离矢量协议传递的是本地路由器的整张路由表信息,将它更新给下一位,下一位路由器再把它的路由表信息更新给它的下一位
距离矢量协议传递的是路由
RIP度量值:
只参考跳数
同一台路由器收到多条去往同一个目的地的路由的时候,会比较度量值(metric),也就是跳数
假如有几条路径metric相等,那么这几条路径将会被同时使用,这就叫做负载均衡
超过15跳被认定为不可达
每30秒收敛一次(将本地路由器的整张路由表发送给下一位)
v1:
使用广播更新
有类路由:
在传递路由时不传递子网掩码,无法做到精确匹配
RIPv1:
1、有类路由协议
2、不支持可变长子网掩码(VLSM)
3、更新方式为广播
4、不支持认证
5、每个更新包最大支持25条路由条目
6、路由表查询方式主类网段
7、不支持不连续子网
v2:
使用组播更新
组播地址:224.0.0.9
无类路由:
传递子网掩码,能做到精确匹配
RIPv2
1、RIPv2是一种无类路由协议
2、RIPv2支持外部路由标记,可以在路由策略中根据Tag对路由进行灵活地控制
3、RIPv2报文中携带掩码信息,支持路由聚合和CIDR
4、RIPv2支持指定下一跳,在广播网上可以选择到目的网段地最优下一跳地址
5、RIPv2支持以组播方式发送更新报文,只有支持RIPv2地设备才能接收协议报文,减少资源消耗
6、RIPv2支持对协议报文进行验证,增强安全性
7、支持明文及密文认证(思科私有)
8、路由表查询机制是由小类 --> 大类(按位查询,最长匹配、精确匹配,先检查32位掩码的)
9、支持不连续子网
管理距离(AD)值:
120
AD值越小越优先
一台路由器,当它从两种不同的动态路由选择协议中,学习到去往同一个目的地的路由时,它会比较AD值,取信小的,将路由写入路由表,进行数据转发,另一条路径,只有当优选的路径DOWN掉的时候,才会出现和使用;次优的进行后台隐藏

一台路由器,当它从同种动态路由协议,但不同方向(邻居)学习到去往同一个目的地的路由,则会比较metric度量值,选择最优的,写入路由表,进行数据转发;次优的进行后台隐藏;metric相等的进行负载均衡
RIP是一个运行在UDP上的应用层协议,协议号为:
17
因为RIP使用UDP,所以会有协议号
默认支持的等价负载均衡:
4
最大6条【最大能够支持多少条负载均衡与设备IOS系统,设备型号有关系】

RIP防环机制:

RIP能够避免环路:
·RIP最大跳数为15,(16跳被认定为无限大,16跳被定义为不可达)
水平分割(Split Horizon):
·(RIP默认开启)一台路由器从这个接口收到有关一个网络的路由更新后,这个周期内我就不会再向这个接口发送更新
路由中毒(RoutePoisoning):
·当一台路由器感知到一条链路DOWN掉的时候,直接将这条DOWN掉的链路跳数直接设为16跳,然后不用等待,第一时间泛洪出去
毒性反转(Poison Reverse):
·可以称为带有路由中毒的水平分割;
抑制计时器(Hold-Down Timers)
·为正在重新收敛的网络增加了应变能力;
引入某种程度的怀疑量
触发更新(Triggered Updates)
·当扩扑发生变更时,路由器立即发送更新消息

子网掩码:255.255.255.255:
物理接口上无法配置
环回可以配置255.255.255.255
这表示该网络是一个没有所属的独立网络
如果未配置版本号,那么路由器会处于v1和v2之间
A路由器未配置版本号,是以广播的形式发送给B路由器,而B路由器配置了版本号v2,则使用组播的形式发送给A路由器,而A路由器能够读取。
network功能(宣告直连网段):
1.把该网段宣告进组播分组
2.把该网段通告出去
·路由失效计时器:

·30s周期更新 --- 每隔30秒更新一次
180s无效计时器 --- 当180秒没有接收到一个路由器的更新时,认为 可能 DOWN掉了,将从该路由器这接收到的路由条目,标记成 可能 DOWN掉了,但是并不删除
60s --- 等到60秒之后,还是没有接收到该路由器的更新,就会直接将从该路由器接收到的路由条目删除
【30s 周期更新,240s没收到 删除】
RIP的缺点:
·周期更新 --- 浪费带宽
·计量标准 --- 根据跳数来判断,不准确,不一定是最优的路径
·收敛速度 --- 慢
触发更新:
当网络拓扑发生改变时,立即发送更新
RIPv1 -- 没有触发更新 都有周期更新
RIPv2 -- 有触发更新 都有周期更新
触发更新与周期更新互不影响:
有变化立即更新,到了30s还会再次更新
·在IGP中,RIP是个广泛使用的协议
·RIP也称距离矢量协议,用信息包所经过的网关来做距离的单位,超过15跳便无法到达
·IGRP是cisco专用的路由协议,可以服务于大型互连网络,不受限于16跳的限制(默认是100跳)
关于支持多少条等价负载均衡:
取决于路由器IOS的版本,以及设备型号与版本型号的关系
RIP是通过UDP的520端口来进行操作的,RIP信息包是封装在UDP segment中的.RIP定义了2种信息类型
·Request message(请求信息)
·Response message(应答信息)
请求信息是用来向邻居请求发送一个update(更新)
应答信息运载着这个被请求的update
·RIP的 metric(度量值)是基于hop couont(跳数)的,metric为16代表着不可达
刚启动时,RIP启用了RIP接口上向外广播请求信息,接下来RIP进程进入一个循环状态:
监听来自其他路由器的请求信息和应答信息
·当邻居收到请求信息以后,就发送应答信息(update),这个update包含了路由器完整的路由表
RIP默认开启自动汇总
开启自动汇总后,RIP会根据地址主类进行汇总
假如:
A类地址:
10.255.255.0 255.255.255.0
10.1.1.0 255.255.255.0
明细会被汇总成:10.0.0.0 255.0.0.0

而假如PC想要往10.2.1.1/24发送数据,而该网络种没有该地址,没有开启自动汇总的路由器收到它后,若没有去往该目的的条目,则会将它丢弃;
若开启了自动汇总的路由器R3收到该条目则会发送给汇总后的10.0.0.0/8,发送给R2,而R2因为路由表中也有这个条目,则会发送给R1,而R1并不是该数据包的目的网络,这个数据包到了R1后被R1丢弃。
这样浪费了中间的带宽
自动汇总不精确

