RIP(Routing Information Protocol)的简称:
它是一种基于距离矢量(Distance-Vector)算法的协议,使用跳数作为度量来衡量到达目的网络的距离。RIP主要应用于规模较小的网络中。
RIP工作原理:
路由器运行RIP后,会首先发送路由更新请求,收到请求的路由器会发送自己的RIP路由进行响应。 网络稳定后,路由器会周期性发送路由更新信息。路由器启动时,路由表中只会包含直连路由。运行RIP之后,路由器会发送Request报文,用来请求邻居路由器的RIP路由。
运行RIP的邻居路由器收到该Request报文后,会根据自己的路由表,生成Response报文进行回复。路由器在收到Response报文后,会将相应的路由添加到自己的路由表中。
RIP网络稳定以后,每个路由器会周期性地向邻居路由器通告自己的整张路由表中的路由信息,默认周期为30秒。邻居路由器根据收到的路由信息刷新自己的路由表。
RIP度量:
RIP使用跳数作为度量值来衡量到达目的网络的距离。在RIP中,路由器到与它直接相连网络的跳数为0,每经过一个路由器后跳数加1。为限制收敛时间,RIP规定跳数的取值范围为0~15之间的整数,大于15的跳数被定义为无穷大,即目的网络或主机不可达。
RIPv 1 VS RIP V2:
RIP包括RIPv1和RIPv2两个版本:
RIPv1:为有类别路由协议,不支持VLSM和CIDR。 RIPv2:为无类别路由协议,支持VLSM,支持路由聚合与CIDR。 RIPv1使用广播发送报文;RIPv2有两种发送方式:广播方式和组播方式,缺省是组播方式。RIPv2的组播地址为224.0.0.9。
组播发送报文的好处是在同一网络中那些没有运行RIP的网段可以避免接收RIP的广播报文;另外,组播发送报文还可以使运行RIPv1的网段避免错误地接收和处理RIPv2中带有子网掩码的路由。 RIPv1不支持认证功能,RIPv2支持明文认证和MD5密文认证。
RIP协议通过UDP交换路由信息,端口号为520。RIPv1以广播形式发送路由信息,目的IP地址为广播地址255.255.255.255。
RIPv2在RIPv1基础上进行了扩展,但RIPv2的报文格式仍然同RIPv1类似:
RIPv2的认证功能:
是一种过滤恶意路由信息的方法,该方法根据key值来检查从有效对端设备接收到的报文。这个key值是每个接口上都可以配置的一个明文密码串,相应的认证类型(Authentication Type)的值为2。
早期的RIPv2只支持简单明文认证,安全性低,因为明文认证密码串可以很轻易地截获。随着对RIP安全性的需求越来越高,RIPv2引入了加密认证功能,开始是通过支持MD5认证(RFC 2082)来实现,后来通过支持HMAC-SHA-1认证(RFC 2082)进一步增强了安全性 。
RIP环路:
RIP网络正常运行时,RTA会通过RTB学习到10.0.0.0/8网络的路由,度量值为1。一旦路由器RTB的直连网络10.0.0.0/8产生故障,RTB会立即检测到该故障,并认为该路由不可达。
此时,RTA还没有收到该路由不可达的信息,于是会继续向RTB发送度量值为2的通往10.0.0.0/8的路由信息。RTB会学习此路由信息,认为可以通过RTA到达10.0.0.0/8网络。此后,RTB发送的更新路由表,又会导致RTA路由表的更新,RTA会新增一条度量值为3的10.0.0.0/8网络路由表项,从而形成路由环路。这个过程会持续下去,直到度量值为16。
水平分割:
RIP路由协议引入了很多机制来解决环路问题,除了之前介绍的最大跳数,还有水平分割机制。水平分割的原理是,路由器从某个接口学习到的路由,不会再从该接口发出去。
也就是说,RTA从RTB学习到的10.0.0.0/8网络的路由不会再从RTA的接收接口重新通告给RTB,由此避免了路由环路的产生。
毒性反转:
RIP的防环机制中还包括毒性反转,毒性反转机制的实现可以使错误路由立即超时。
配置了毒性反转之后,RIP从某个接口学习到路由之后,发回给邻居路由器时会将该路由的跳数设置为16。利用这种方式,可以清除对方路由表中的无用路由。
RTB向RTA通告了度量值为1的10.0.0.0/8路由,RTA在通告给RTB时将该路由度量值设为16。如果10.0.0.0/8网络发生故障,RTB便不会认为可以通过RTA到达10.0.0.0/8网络,因此就可以避免路由环路的产生。
触发更新:
缺省情况下,一台RIP路由器每30秒会发送一次路由表更新给邻居路由器。 当本地路由信息发生变化时,触发更新功能允许路由器立即发送触发更新报文给邻居路由器,来通知路由信息更新,而不需要等待更新定时器超时,从而加速了网络收敛。
下面是我自己所做的一个RIP的实验拓扑:
我就拿R1路由器来进行讲解:
<Huawei>system // 进到系统视图
[Huawei]system R1 // 修改一下名字
[R1]int g0/0/0 // 进到接口视图
[int-g0/0/0] 配置一下PC1 的IP地址 // ip address 192.168.10.254 24
[int -g0/0/1] 配置IP 地址 // ip address 192.168.1.1 24
[int-g0/0/2]配置IP 地址 // ip address 192.168.3.1 24
配置完就启用RIP协议:
[R1]输入 : [r1-rip-1] // 启用RIP
[r1-rip-1]version 2 //可用于使能RIPv2以支持扩展能力
[r1-rip-1]network //宣告直连网段
[r1-rip-1]network // 192.168.10.254 24 给PC1宣告网关路径
[r1-rip-1]network //192.168.1.0 24 192.168.2.0 24 宣告网段路径
最后用ping 测试一下网络是否通信:
能ping通 ,代表网络通信正常。