RIP协议
RIP(Routing Information Protocol,路由信息协议)是一种内部网关协议(IGP),是一种动态路由选择协议,用于自治系统(AS)内的路由信息的传递。RIP协议基于距离矢量算法(DistanceVectorAlgorithms),使用“跳数”(即metric)来衡量到达目标地址的路由距离。这种协议的路由器只关心自己周围的世界,只与自己相邻的路由器交换信息,范围限制在15跳(15度,16跳不可达)之内,再远,它就不关心了。RIP应用于OSI网络七层模型的应用层。
-
RIP(Routing Information Protocols,路由信息协议)。
-
是应用较早的内部网关协议(IGP)。
-
适用于小型网络,是典型的距离矢量协议。
-
RIP基于UDP,端口520。
-
华为定义的优先级是100,思科定义的优先级(管理距离)是120。
-
RIP有三个版本:RIPv1、RIPv2及RIPng。
路由协议的分类
- 直连路由:路由器直连接口所在的网段,当接口物理状态及协议状态都UP时自动学习该直连路由到路由表。
- 静态路由:根据数据访问需求,手工在设备上配置的路由条目。
- 动态路由:路由器自动进行路由信息的更新和同步,并且当网络拓扑变更时,能够自动收敛。
动态路由协议的分类
距离矢量路由选择协议
使用距离矢量路由协议的路由器并不了解网络的拓扑。该路由器只知道:
-
自身与目的网络之间的距离。
-
应该往哪个方向或使用哪个接口转发数据包。
特点:
- 周期性地更新(广播)整张路由表。
- 距离:到达目标网络的度量值。
- 方向:去往目标网络的下一跳路由器。
工作原理
路由建立
路由器运行RIP后,会首先发送路由更新请求,收到请求的路由器会发送自己的RIP路由进行响应;网络稳定后,路由器会周期性发送路由更新信息。
距离矢量的计算
RIP度量的单位是跳数,其单位是1,也就是规定每一条链路的成本为1,而不考虑链路的实际带宽、时延等因素,RIP最多允许15跳。所谓的跳数指的是去往目标网络所需要经过的路由器个数。
RIP利用度量来表示它和所有已知目的地间的距离。
当一个RIP更新报文到达时,接收方路由器和自己的RIP路由表中的每一项进行比较,并按照距离矢量路由算法对自己的RIP路由表进行修正。
定时器
-
更新定时器(Update timer):用来激发RIP路由器路由表的更新,每个RIP节点只有一个更新定时器,设为30s。每隔30s路由器会通过udp520端口向其邻居广播自己的路由表信息。每个RIP路由器的定时器都独立于网络中其他路由器,因此它们同时广播的可能性很小。
-
老化定时器(Age timer):用来判定某条路由是否可用。每条路由有一个超时定时器,设为180s。当一条路由激活或更新时,该定时器初始化,如果在180s之内没有收到关于那条路由的更新,则将该路由度量值置为16,并启动垃圾收集定时器。
-
垃圾收集定时器(Garbage-collect timer):用来判定是否清除一条路由。每条路由有一个垃圾收集定时器,设为120s。当路由器认识到某条路由无效时,就初始化一个定时器,如果在120s内还没收到这条路由的更新,就从路由表中将该路由删除。
-
抑制定时器(Suppress timer):当RIP设备收到对端路由更新,度量值cost为16,则对应路由条目进入抑制状态,并启动抑制定时器,缺省180s。为了防止路由震荡(路由不稳定),在抑制定时器超时之前,即使收到对端cost小于16的路由,也不接受;等待抑制计时器超时,重新学习该路由条目。
三个定时器的关系
IP 的更新信息发布是由更新定时器控制的,默认为每30 秒发送一次。
每一条路由表项对应两个定时器:老化定时器和垃圾收集定时器。当学到一条路由并添加到路由表中时,老化定时器启动。如果老化定时器超时,设备仍没有收邻居发来的更新报文,则把该路由的度量值置为16(表示路由不可达),并启动垃圾收集定时器。如果垃圾收集定时器超时,设备仍然没有收到更新报文,则在路由表中删除该条目。
(1)如果在没有触发更新的前提下,一个路由表项最多需要300秒才能被删除(老化时间+垃圾收集时间)。
(2)如果存在触发更新,那么一个路由条目最多需要180秒才能被删除(即为老化时间)。
环路
当网络发生故障时,RIP网络有可能产生路由环路。可以通过水平分割、毒性反转、触发更新、抑制时间等技术来避免环路的产生。
下一跳
下一跳特性使得RIP在多路访问网络中能够选择最优的下一跳。在上图中,R1将2.0.0.0/8路由引入RIP,通过RIP通告给R3,在其发送RIP路由时,将下一跳字段设置为192.168.123.2,如此一来,R3收到路由后,将2.0.0.0/8安装进路由表时,将下一跳设置为R2(而不是R1)。
Silent-Interface
静默端口
-
R1连接着192.168.1.0/24网段,该网段中都是终端设备,并无其他RIP路由器,通过执行silent-interface命令,将GE0/0/1接口配置为静默接口,从而抑制RIP接口向外发送报文,如此一来,主机不会再收到RIP报文,减少了资源及网络带宽损耗。
-
如果一个接口被抑制,该接口所在网段的直连路由仍然可以发布给其它接口。
报文格式
RIPv1报文格式
RIPv2报文格式
-
command字段:占1个字节,取值为2时表示该报文是一个回应报文。其中包含路由信息。
-
version字段:占1个字节,取值为2时表示RIPv2。
-
address Family字段:占2个字节,ipv4取值为2。
-
route tag字段:占2个字节,标记外部重分发进RIPv2中的路由
-
ip address字段:占4个字节,表示路由的目的地址,该地址是网络地址。
-
netmask字段:占4个字节,是子网掩码,RIPv2是有类别的,所以有这个字段。
-
next hop字段:占4个字节,它表示一个比通告路由器的地址更好的下一跳。如果这个字段设置为0.0.0.0说明通告路由器的地址就是最优的下一跳。
-
metric字段:占4个字节,指度量值,在RIP中就是跳数。
RIP版本区别
RIPv1
RIPv2
-
RIPv2为无类别路由协议,支持VLSM,支持路由聚合与CIDR
-
支持以广播或者组播(224.0.0.9)方式发送报文
组播发送报文的好处是在同一网络中那些没有运行RIP的网段可以避免接受RIP的网段可以避免接受RIP的广播报文;另外,组播发送报文还可以使运行RIPv1协议的网段避免错误接受和处理RIPv2中带有子网掩码的路由
-
支持外部路由标记(Route Tag),可以在路由策略中根据Tag对路由进行灵活的控制。
-
支持指定下一跳,在广播网上可以选择到目的网段最优下一跳地址。
-
支持明文和md5密文认证
-
更新中携带掩码
Route Preference
路由器通过多种不同的路由协议发现去往同一个目的网络的路由时,会选择路由优先级(Preference)值最小的路由;如果这些路由学习自相同的路由协议,则优选度量值(Metric)最优的。
华为厂商标准
路由协议或路由种类 | 路由优****先级 |
---|
DIRECT | 0 |
OSPF | 10 |
IS-IS | 15 |
STATIC | 60 |
RIP | 100 |
OSPF ASE | 150 |
OSPF NSSA | 150 |
IBGP | 255 |
EBGP | 255 |
环路的产生
3.0.0.0/8的网络故障,R3收到故障信息,将这条路由设置为不可达,等待更新周期来通知相邻的R2路由器。
如果自己的更新周期还没来,R2路由器的更新周期先来了,R1就会从R2中重新学到3.0.0.0/8的路由,即错误的路由。这里的度量值,也就是跳数会+1。
然后继续相互通告学习,形成环路,不断的累加跳数。
防环机制
为了防止RIP路由在网络中被无限泛洪从而跳数累加到无穷大,RIP规定:路由的最大跳数为15跳,也就是如果度量值大于等于16跳则被视为不可达;
最大跳数的设定虽然解决了度量值技术到无穷大的问题,但是却也极大地限制了RIP所能支持的网络的规模。
- 水平分割(Split Horizon),原理是,RIP从某个接口学到的路由,不会从该接口再发回给邻居路由器。这样不但减少了带宽消耗,还可以防止路由环路。
- 毒性反转(Poison Reverse),原理是,RIP从某个接口学到路由后,从原接口发回邻居路由器,并将该路由的开销设置为16(即指明该路由不可达)。利用这种方式,可以清除对方路由表中的无用路由。(开启毒性反转,水平分割失效)
- 毒性路由 RoutePoisoning,是指在路由信息在路由表中失效时,先将度量值变为无穷大,(等待老化时间)而不是马上从路由表中删掉这条路由信息。(这句话要理解,如RIP协议中,其度量值变为16,意味着路由不可达)再将其信息发布出去,这样相邻的路由器就得知这条路由己无效了…
- 触发更新,是指当路由信息发生变化时,立即向邻居设备发送触发更新报文,而不用等待更新定时器超时,从而避免产生路由环路。
基本配置
启动RIP进程,并进入RIP配置视图:
[Router] rip 1
在指定网段使能RIP(RIP只支持classful网络宣告):
[Router-rip-1] network 192.168.12.0
指定RIP的版本(默认为版本1):
[Router-rip-1] version 2
在宣告网络时必须是有类路由,不过RIPv2发送路由更新的数据包中是无类路由并且会携带掩码信息
如通告10.0.0.0的路由
配置:
[AR1]rip 1
[AR1-rip-1]version 2
[AR1-rip-1]network 192.168.1.0
[AR1-rip-1]network 192.168.12.0
[AR2]rip 1
[AR2-rip-1]version 2
[AR2-rip-1]network 192.168.12.0
[AR2-rip-1]network 192.168.23.0
[AR3]rip 1
[AR3-rip-1]version 2
[AR3-rip-1]network 192.168.23.0
[AR3-rip-1]network 192.168.2.0
查看路由信息
pc1测试连通性