RIP(Routing Information Protocol,路由信息协议)是一种内部网关协议(IGP),是一种动态路由选择协议,用于自治系统(AS)内的路由信息的传递。RIP协议基于距离矢量算法(DistanceVectorAlgorithms),使用“跳数”(即metric)来衡量到达目标地址的路由距离。这种协议的路由器只关心自己周围的世界,只与自己相邻的路由器交换信息,范围限制在15跳(15度)之内,再远,它就不关心了。RIP应用于OSI网络七层模型的应用层。各厂家定义的管理距离(AD,即优先级)如下:华为定义的优先级是100,思科定义的优先级是120。
路由信息协议RIP
路由信息协议RIP是最早得到广泛使用的内部网关协议IGP(IGP:路由信息能用于网间协议或者其它网络协议来说明路由传送是如何进行的。)
RIP是一种基于距离矢量D-V算法协议,他采用跳数作为度量来衡量到达目的网络的距离
RIP基本原则
1.rip协议认为跳数最少则开销越少
2.rip更新每30秒一次
3.rip对等价的开销会做负载均衡,讲数据在等价路由上轮流转发
4.默认情况,直连路由的跳数为0
5.路由器与它到非直连网络的距离等于中间结果的路由器数量
6.跳数的取值范围是0~15,等于或大于16的距离为网络不可达
RIP的路由条目更新规则
路由条目更新规则先比Cost是否小于原Cost
1.若收到的某路由条目在路由表中没有,则直接在路由表中添加该路由条目,这是发现了新网络
2.若路由表中已有到达相同目的网络的路由表条目,则按以下两种情况做相应处理:
2.1若来自相同下一跳路由器,则进行更新,以为这是到达该目的网络且吓一跳相同的最新路由信息
2.2若来自不同下一跳路由器,则需要比较路径:
2.2.1若新路由条目中的距离小于原路由条目中的距离,则进行更新,这是因为新路由更有优势
2.2.2若新路由条目中的距离等于原路由条目中的距离,则添加新路由条目,以便等价负载均
2.2.3若新路由条目中的距离大于原路由条目中的距离,则不更新,这是因为新路由没有原路由的优势大
(更新定时器:30秒)为了解决路由器不同时开启的问题,开启rip后路由器每隔30秒向邻路由器发送rip更新
(失效定时器:180秒)如果路由某条目对应设备出现故障,在180秒超时时间内收到rip更新,则失效定时器会重新计时,当超过180秒后则将该条路由条目标注为PD(Possibly Down),则这条路由不会放在周期性发送的rip报文中,也不会用来转发数据包(设置180秒是因为UDP本是不可靠协议,所以避免不了丢包的可能性)
(清除定时器:240秒)当某条路由条目在清楚定时器的超时范围内被更新时,则清楚定时器会重新计时,当超过清楚定时器的超时范围则该路由条目会被删除
路由环路的造成
-------------R1--------------------------------------------------R2---------------------------------------×-------------------------------R3------------
G0/1:172.16.0.1 G0/0:172.16.0.2 G0/1:192.168.1.1(故障) G0/0:192.168.1.2
R1的路由表
目的网络 接口 下一跳IP 距离
192.168.1.0 1 172.16.0.2 1
R2的路由表
目的网络 接口 下一跳 距离
192.168.1.0 1 192.168.1.2 DP
当R1更新定时器超时后,则R1向R2发送rip更新报文,因此R2认为R1发送的报文比原报文优,则R2收到报文后将自己的路由条目更新,则R1和R2的路由表更新为
-------------R1--------------------------------------------------R2---------------------------------------×-------------------------------R3------------
G0/1:172.16.0.1 G0/0:172.16.0.2 G0/1:192.168.1.1(故障) G0/0:192.168.1.2
R1的路由表
目的网络 接口 下一跳IP 距离
192.168.1.0 1 172.16.0.2 1
R2的路由表
目的网络 接口 下一跳 距离
192.168.1.0 0 172.16.0.1 2
当R2更新定时器超时后,R2向R1发送rip更新报文,此时R1认为此条路由更新了,则更新原路由条目,这属于路由条目更新规则的2.1,则R1和R2的路由表更新为
-------------R1--------------------------------------------------R2---------------------------------------×-------------------------------R3------------
G0/1:172.16.0.1 G0/0:172.16.0.2 G0/1:192.168.1.1(故障) G0/0:192.168.1.2
R1的路由表
目的网络 接口 下一跳IP 距离
192.168.1.0 1 172.16.0.2 3
R2的路由表
目的网络 接口 下一跳 距离
192.168.1.0 0 172.16.0.1 2
当R1更新定时器超时后,R1向R2发送rip更新报文,此时R2认为此条路由更新了,则更新原路由条目,这属于路由条目更新规则的2.1,则R1和R2的路由表更新为
-------------R1--------------------------------------------------R2---------------------------------------×-------------------------------R3------------
G0/1:172.16.0.1 G0/0:172.16.0.2 G0/1:192.168.1.1(故障) G0/0:192.168.1.2
R1的路由表
目的网络 接口 下一跳IP 距离
192.168.1.0 1 172.16.0.2 3
R2的路由表
目的网络 接口 下一跳 距离
192.168.1.0 0 172.16.0.1 4
依次循环,直到距离增加到16时则不会继续发送rip更新报文,此时路由环路才消失,这条属于RIP基本原则6和路由条目更新规则2.2.3
此种方法导致收敛方法很慢
RIP减少路由环路产生以及加快收敛速度的方法
1.水平分割:从某接口学习来的路由信息不能再从改接口发送出去(强制使用)
2.带有毒化逆转的水平分割:从某接口学习来的路由信息可以再从该接口发送出去,但需要将距离更改为16,即不可达,可以理解为路由器告诉他的邻居路由器你不可以通过我到达我之前从你那里学来的目的网络(可选,他与水平分割机制互斥)
3.触发更新:只要录条目被更新,则立刻将该路由条目发给邻居,而不必等更新定时器到时
4.最大距离:最大距离为16时表示网络不可达
5.路由毒化:当R3路由器上发现路由失效 就会发送一条毒化信息infinity,当相连接的路由器收到infinity信息时就会把自己的这条路由设置为possibly down (16跳)
以上办法只能减少路由环路的机会以及加快收敛速度
RIP无法完全避免路由环路
比如在三个路由互联时,某个路由的非互联接口出现故障,即这个路由器向其余两个路由器发送rip更新报文,但是其中有一个报文丢包了,则又会造成路由环路问题
距离矢量和链路状态路由协议的区别
距离矢量更新的是路由条目,只要有一条链路发生变化,则路由器的邻居都会收到路由变化的报文并且周期性的发送rip更新报文
链路状态路由是发送链路状态绘制拓扑,根据拓扑计算去往目标的最佳路径
华为路由器RIP配置基础
rip 1 #进入rip视图
version 2 #设置rip版本为2
network 10.0.0.0 #宣告10.0.0.0网络
undo summary #关闭路由汇总
首先看一副拓扑图
将上面网络配置好IP地址之后使得R5能够pingR1,我们可以采用修改路由条目来实现,但是如果在整个因特网中这样做是非常的麻烦的,所以这里将简单的演示RIP功能,他可以通过邻居路由器互相学习到相邻路由器中自己没有的条目。
在每台路由器中开启rip并宣告10.0.0.0网段。