前言:这个路由协议是属于动态路由的一种,虽然现在不常用,但是还是需要了解的
背景
静态路由存在一个致命的缺陷,那就是不能自适应网络拓扑的变化,于是为了解决这个缺陷,动态路由出现,第一个动态路由就出现了,那就是rip,路由信息协议
原理
基本原理
- RIP协议是基于UDP的,端口号是520,是基于跳数来控制的,主要依靠request报文和response报文来实现
- 缺省情况下,设备到与它直接相连网络的跳数为0,通过一个设备可达的网络的跳数加1
- 最大条数为15跳,如果超过15跳,那么就会认为该RIP路由不可达
- RIP路由的优先级是100
- RIP宣告必须是按照有类路由来宣告,不能按照无类
形成过程
- 首先是RIP协议启动之后,会向相邻的路由器广播一个Request报文
- 当接口接收到发送的Request报文后,把自己的RIP路由表封装在
- 根据发送的Response报文,形成自己的路由表
定时器
- 这是为了加快收敛而设计的
- 更新定时器(Update timer):当此定时器超时时,立即发送更新报文(默认为30秒)
- 老化定时器(Age timer):RIP设备如果在老化时间内没有收到邻居发来的路由更新报文,则认为该路由不可达
- 垃圾收集定时器(Garbage-collect timer):如果在垃圾收集时间内不可达路由没有收到来自同一邻居的更新,则该路由将被从RIP路由表中彻底删除
- 抑制定时器(Suppress timer):当RIP设备收到对端的路由更新,其cost为16,对应路由进入抑制状态,并启动抑制定时器
防环机制
- 水平分割(Split Horizon)的原理是,RIP从某个接口学到的路由,不会从该接口再发回给邻居路由器
- 毒性反转(Poison Reverse)的原理是,RIP从某个接口学到路由后,从原接口发回邻居路由器,并将该路由的开销设置为16(即指明该路由不可达)
实验
抓包实例
这里因为我用的是version 2,所以这里的response是使用组播地址为目的地址,这是版本2的一个特性,就是说会自己进行路由聚合,具体版本1和版本2有什么区别,自己查看华为文档
代码
RIP 1//配置进程号为1,并进入rip视图下,范围是1-65535
version 2//配置版本为2,默认为1
network 10.0.0.0//宣告地址,注意只能按照有类来宣告,否则会报错
rip poison-reverse//配置毒性反转,在接口视图下
rip split-horizon//配置水平分割,在接口视图下
display rip//查看rip的信息
ps:注意一个网段只能宣告进一个进程