Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1199180
  • 博文数量: 146
  • 博客积分: 6619
  • 博客等级: 准将
  • 技术积分: 1621
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-29 14:06
文章分类

全部博文(146)

文章存档

2020年(1)

2019年(4)

2018年(3)

2017年(5)

2015年(5)

2014年(7)

2013年(5)

2012年(11)

2011年(15)

2010年(13)

2009年(14)

2008年(63)

分类: 网络与安全

2017-12-19 16:54:20

众所周知,RIP有四个计数器:
1. update timer 更新计时器 默认30s
2. Invalidation timer 无效计时器 默认180s
用来限制停留在路由表中的路由未被更新的时间。也可称为expiration timer限时计时器或timeout timer
这个时间到了后,路由条目会变成16跳标记不可达路由 possibly down。
Gateway of last resort is not set
R 3.0.0.0/8 is possibly down, routing via 9.9.12.2, FastEthernet0/0
// 这个时候,他自己如果收到数据包去3.0.0.0依然转发,但是不会向其他rip路由器去更新3.0.0.0的路由
3. Garbage colletion / flush timer
一般为比无效计时器多60S---240秒,如果连这个时间也超时了,那么路由条目彻底删除。
思科默认60s(注意是比invalidtimer多60s) RFC默认120s
4. Holddown timer
默认6个更新周期,即180s。当收到一个更大跳数的条目时,该路由条目标记为不可达,同时启动抑制计时器,
如果计时器超时后,同一个邻居仍然通告该路由,则接受更新。

理解1:

R1向R2更新1.1.1.0,1跳,当R1 DOWN掉(passive掉直连接口),而R3向R2更新1.1.1.0为5跳时, R2上 去往R1的路由会随着invalid计时器的到期变成pdown状态,随后进holddown timer的计时器,holddown timer计时器超时后,R2接受R3的更新

怎样理解Holddown timer
将RIP计时器设置为:update timer 10s invalid 30s holddown 30s flush 120s

R1更新1.0.0.0给R2,passive掉R1上与R2的直连接口,到30S invalid时间到后,路由变成pdown,
这时取消R1上的passive interface,R1继续更新路由给R2,
R2关于1.0.0.0的路由进入holddown timer的30s周期,在该周期内,R2不接受该更新,直到holddown timer超时,路由回复正常。
怎样理解Holddown timer

possibly down就代表该条路由在等待holdtimer超时后,该路由从路由表中被移去。
所以应该理解1和2都是对的

 

无效计时器走完180s后,会通知它的邻居把该此条目删掉,而它自己则进入holddown time;60s过后刷新计时器走完,它会删掉此条目,在此60s中,路由器不会接受任何该条目的更新信息,这是holddown的作用造成的,但是很多参考书上在描述holddown时候是说在收到一个大于路由表现在条目的更新后即进入holddown,其实就实验现象来看进入holddown准确时刻是在invalid计时器超时之后,但在默认设置下flush timer总是在holddown timer之前超时,造成的现象就是该路由条目被删除后再次接到更新的时候路由器又将其添加到路由表,所以如果不细心的话这个计时器很可能会被忽视掉。

 

前几周重新看到RIP协议的时候,发现RIP的4个计时器中的holddown timer有些问题。在RFC中,并没有关于抑制计时器的定义。这是cisco自己加到rip中的。书上一直没有明确的说明holddown timer的起点,只是说长度为180s。功能是在抑制阶段不接受也不发送所抑制的路由条目的任何信息。后来在TCP/IP路由卷一重发布部分看到RIP的holddown timer是从invalid timer超时后开始的,同时发现在失效计时器超时后路由条目进入possibilly down状态,这个状态下路由器并不接受关于该条目的任何信息。但是当flush timer结束后(invalid timer后60s)只有60s,路由信息就被删除了,并不能说明holddown的作用。于是,设计实验验证holddown timer。
实验拓扑图如下:


3台路由器启用RIPv2,将3台路由器的计时器分别设计为update 10s invalid 30s holddown 30s flush 120s
在3台路由器上开始debug ip rip,passive R1的S1/0,让R2收不到更新消息,R2路由表中1.1.1.0/24的条目经过30s后状态变成possibilly down,迅速开启R1的S1/0(no passive interface s1/0).从debug信息可以看出来,R2收到R1发来的关于1.1.1.0/24的路由更新,但是在holddown时间并没有接受(超时计时器超时后的30s)。过了大约30s后(自己计时为32s)R2接受了该条目,此时flush timer还没有到
以上实验可以验证holddown timer是从invalid timer超时后开始的,但默认情况下,应该只有60s,cisco却把它设为180s...
关于RIP还有一些问题,RIP的请求消息中本来应该有两种,全部路由,单条路由。但是从来没有见过请求单条路由的情况。这个是不是也和tos字段一样,从来都没有使用过呢?哪位仁兄如果知道相关的情况,还望留言指教。
阅读(4875) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~