分类: 网络与安全
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的更新
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。
实验拓扑图如下: