RIP:路由信息协议
RIP分为三个版本:RIPV1,RIPV2(在IPv4中使用),RIPNG(在IPv6中使用)
RIPV1是一种有类别的距离矢量型路由协议(不传递网络掩码)。
RIPV2是一种无类别的距离矢量型路由协议(传递网络掩码)。
RIP只传路由信息,不传拓扑信息,是一种传闻型路由协议(问路式,道听途说式路由协议不确定真假)。
RIP中传递的数据包有两个,request(请求)包和response(响应)包。
request:请求路由信息。
response:传递路由信息。
数据包基于UDP封装。端口号为520(RIPV1和RIPV2都是520),RIPNG为521.
RIP使用周期传输保证其可靠性,默认周期为30S(30S是根据大量统计得出30S最合适,改小后路由学习速度更快,但是发送频率过高对路由器资源占用链路资源占用更高,改大则路由学习速度变慢',对资源占用变小,而30S两者都可兼顾)。
RIP发送路由更新地址如下:
RIPV1中使用255.255.255.255广播地址,将RIP信息以广播形式发送给所有人,但只要接口运行RIP的接收,则会对无关的设备发送RIP信息,不够精准。
RIPV2中使用224.0.0.9(D类地址"224.0.0.X是一个特殊组播"),只有当一个路由器运行了RIPV2时才会去接收224.0.0.9的信息,其余无关设备(没有运行RIPV2)则不接收,传递的更准确了。
RIP的三层封装其源IP为路由器出接口地址,目标地址RIPV1使用255.255.255.255,RIPV2使用224.0.0.9.
RIP的cost计算方法如下图所示:RIP优先级默认为100,思科中为120
RIP的四个特性:
1、同步更新问题:使用异步更新机制(思科发明的)一般为25.5-30S.RIP协议工作时,每隔30S,所有路由器都会更新,更新时会发送大量的广播或组播帧,会占用路由器链路资源,导致内网访问外网时没30秒会卡一次。
异步更新机制:
拓扑图:
在3第一个30S更新后,每个路由器会运行一个二进制的退避算法(是一个随机的散列数),范围为0.00到0.15,随机出一个数,例如0.02再用0.02*30S=0.6S,则3再下一次更新时提前0.6S完成,即在这次更新之后再过29.4S进行更新,所以这一个算法将每个路由器更新时稍微错开一些。当更新周期时间改变时,异步时的计算也会改变,例如30S改为60S,则为散列数*60S。所以30S更新时间时。同步更新时间为25.5~30S。
2、水平分割机制:所有距离矢量型协议都有!!!
例如:
拓扑图:
3在周期更新时将X这条路由传递给2,2学到之后,优先级为100,开销值为1,2周期更新再传递给1和3,1收到学习,优先级为100,开销值为2,3收到之后,因为有一个更优的X路由信息,所以不学习。若此时X网段没有了,关闭停了,3就在下一次周期更新时就不给2发送X的路由信息。但不能保证下一次是3线发送路由信息(因为异步更新机制),若2先发送优先级100,开销值2的X的路由信息给3,3就得学习,在3更新时度量值变为了3,则当3想去往X网段时,则发送信息给2,2又发给3,3又发给2,2与3都认为去往X的下一个是对方,导致出现环路。
为避免这个问题,则通过这个接口接收到的路由不能再通过该接口转发回去,这就是水平分割机制。
3、思科:updata更新30S,invalid无效180S,hold down抑制180S,flush刷新计时器240S.
华为:更新30S,无效180S。垃圾回收计时器120S.
当X没有之后,3再下一次更新时不会传递X信息,则2没有收到,会认为3传丢了,当6次更新180S之后,2没有收到,思科中会将这条路由标记为possible down可能性down(基本上死了),这个时间叫无效时间,连续180S没有收到,认为路由无效。在这180S内2一直在给1传,180S后2不会再向1传递X,当累积240S没有收到X时,2才会彻底删除这条路由信息,简而言之,180S认为X可能没了,240S认为X真没了。
华为:180S之内认为X存在,而180S之后,直接删除,但不是彻底删除,知识从正常路由表删除放在一个不活动路由表中,在不活动路由表120S后彻底删除(垃圾回收计时器),只要X在彻底删除前能活过来则恢复正常。
如果X真的不在了,2可能得等180S才知道,1得多等180S,若1后面还有其他路由器则更长。
当X真的不在时,3传时会将X得度量值设为16告诉2X不可达了,则将X这条度量值为16得信息扩散并彻底删除,告知其他路由器也删除。
若是传丢了,则2会破坏水平分割,收到之后原封不动的传回给3,告诉3,X网段它已经没了,我已经收到,若3没有收到这个回复,则3一直发送度量值为16得X信息给2.
4、当一个网段真的不存在时,发送一个度量值为16得路由,这种现象就叫做路由的中毒现象,这个路由称为毒化路由。告诉其他路由这个路由已经去不了了,而收到毒化路由的设备会破坏水平分割机制将这个毒化路由原封不动的发送回来,这就叫带毒性逆转的水平分割机制。
抑制计时器:
1有一个1.1.1.0/24的网段的路由,1将这个路由传给2,2给3,3给4,但1也给了4。
若1与4之间出现故障,1给4的路由传丢了(可能是因为UDP不可靠传输传丢了,也可能是版本换了......)4没有学到1的路由信息,则4等待180S标记死亡状态,而这时3将这个路由信息发送过来了,从1->2->3来的度量值为3,但4不接收,因为接收过1发来的更优的路由信息,按理说4应该去学习3发来的这个路由,虽然更次了点,但RIP认为如果这个网络更复杂点,带宽比较低的情况下,RIP工作效率比较低,这条1.1.1.0/24的路由也是1给2,2给3,3给4的,其实1.1.1.0/24已经不存在了,但因为2,3这些设备没有到180S,一旦4学习了这条路由,则2与3之间又会出现路由环路问题。
所以4收到一个度量值较小的路由,在180S超时后又收到一个度量值较大的路由,按理会加表,但此时会抑制它加表,因为怕出环,抑制时间180S,实际上不能抑制180S,最多抑制60S,真实情况会抑制60S。
RIP配置请查看:RIP小实验配置及缺省路由下发-CSDN博客