RIP简述
RIP协议
RIP(Routing Information Protocol),路由信息协议,是一种距离矢量算法的协议,使用跳数作为度量来衡量到达目的网络的距离。
RIP的特点
- RIP是距离矢量路由协议,属于IGP协议。直连网络跳数为0,路由器发送路由更新时,会把度量值加1,最大15跳;
- RIP适用于规模较小的网络,有RIPv1和RIPv2两个版本;
- RIP基于UDP协议,目标端口号为520,周期性发送更新(25.5-30s);
- RIP支持水平分割、毒性逆转和触发更新等防环特性。
RIPv1和RIPv2的对比
RIPv1
- 有类路由协议,不支持VLSM和CIDR;
- 以广播形式发送报文;
- 不支持认证。
RIPv2
- 无类路由协议,支持VLSM,支持路由聚合与CIDR;
- 支持以广播或者组播(224.0.0.0)方式发送报文;
- 支持明文认证和MD5密文认证。
验证
R1开启rip协议
抓包查看
RIPv1版本使用广播地址,且路由信息不含掩码
R2开启RIP协议
查看路由信息
将RIPv1换成RIPv2
抓包查看
RIPv2使用组播地址,且路由信息包含掩码
RIP的特性
RIP为了防止环路产生,有三个特性:水平分割、毒性逆转和触发更新
环路的产生
准备
为了产生环路,需要将水平分割、毒性逆转功能关闭
可通过如下命令查看这两个功能的状态
接下来我们给R1和R2关闭这两个功能
环路产生过程
R1与R2都开启RIP,正常流程
- 第一步:R2将自己的路由2.0.0.0通过RIP告知给R1,由于是直连metric为0,发送时metric会加1
- 第二步:R1收到2.0.0.0的路由会记录一条2.0.0.0的路由,且该路由的metric为1
- 第三步:R1也会通过rip协议将自己的路由信息通知给R2,此时R1有2.0.0.0的信息,所以R1会将2.0.0.0发送给R2,由于该路由metric为1,发送时metric加1,发送的该路由metric为2
- 第四步:R2收到的R1给它的2.0.0.0 metric 2的路由信息后,由于其已有直连的2.0.0.0,所以并不会更新2.0.0.0的路由
当前场景不会有任何环路问题
如果R2的回环口lo0有故障,比如down掉,那么问题就产生了
- 第一步:R2将自己的路由2.0.0.0通过RIP告知给R1,由于是直连metric为0,发送时metric会加1
- 第二步:R1收到2.0.0.0的路由会记录一条2.0.0.0的路由,且该路由的metric为1
- 第三步:R2的lo0口down掉,R1也会通过rip协议将自己的路由信息通知给R2,此时R1有2.0.0.0的信息,所以R1会将2.0.0.0发送给R2,由于该路由metric为1,发送时metric加1,发送的该路由metric为2
- 第四步:R2收到的R1给它的2.0.0.0 metric 2的路由信息后,由于R2此时没有2.0.0.0的路由了,此时2.0.0.0 metirc 2,那么就会将这条路由记录在路由表中
- 第五步:R2发送给R1的路由信息2.0.0.0 并将metric加1变为3,R1收到后由于其自身的2.0.0.0为通过rip学习到的,所以会更新此时R1的2.0.0.0 metirc 3
- 第六步:R1会再次发送2.0.0.0 metirc 4给R2,R2由于其自身的2.0.0.0为rip学习到的,所以会更新2.0.0.0 metirc 4
- ...
- ...
- 如此反复最终metirc到16截止
实际验证
R1发给R2的2.0.0.0 metric 2 的rip信息
R2发送R1的 2.0.0.0 metric 3
如此反复
直到metirc 变为16
水平分割
水平分割作用是路由器从某个接口学到的路由,不会从该接口再发回给邻居路由器,该功能默认是打开的。
在上面演示中已经产生了环路,此时我们将R2的回环口添加回来
开启R1和R2的水平分割功能
我们查看路由表
查看R2发给R1的2.2.2.0路由信息不回再由R1发回给R2了
down掉R2的lo0口
抓包看到R2立即通知R1 2.2.2.0不可达
查看R1的RIP路由信息
毒性逆转
路由器从某个接口学到路由后,将该路由的跳数设置为16,并从该接口发送给邻居路由器。
该特性是默认关闭的,且如果毒性逆转与水平分割同时打开,那么生效的是毒性逆转。
开启方法
可以看到R1收到R2的2.2.2.0的路由后,将该路由设置为metirc 16发回给R2
同理
触发更新
当路由发生变化时,立即向邻居设备发送触发更新报文
通过前面抓包可以看到,当down掉一个口或者启用一个口时会立即发送rip报文
RIP的其它操作
改变RIP的metric值
发送rip时可以对metric值做改变
rip metricin 5 在接受路由时增加度量值
rip metricout 5 在发送路由时修改度量值
我们对R1做操作
控制rip的收发
undo rip input 禁止接收rip数据
undo rip output 禁止发送rip数据
silent-interface g0/0/0 配置被动接口,只收不发
.