您的位置:首页 > 其它

3.6 RIP的防环机制

2008-03-09 21:10 260 查看

[align=left] [/align]
[align=center]RIP[/b]的防环机制[/b][/b][/align]
[/b]
[align=center]实验连接图[/b][/b][/align]


[/b]
[align=center]提要描述[/b][/align]
[align=left]1-[/b]记数无穷大(maximum hop count):[/b]定义最大跳数(最大为15跳),当跳数为16跳时,目标为不可达。

[/align]
[align=left]2-[/b]水平分割(split horizon)[/b]:从一个接口学习到的路由不会再广播回该接口。cisco可以对每个接口关闭水平分割功能。这个特点在( N B M A )非广播多路访问hub-and-spoke 环境下十分有用。[/align]
[align=left] [/align]
[align=left]3-[/b]毒性逆转[/b](poison reverse):从一个接口学习的路由会发送回该接口,但是已经被毒化,跳数设置为16跳,不可达。[/align]
[align=left] [/align]
[align=left]4-[/b]触发更新[/b](trigger update):一旦检测到路由崩溃,立即广播路由刷新报文,而不等到下一刷新周期。[/align]
[align=left] [/align]
[align=left]5-[/b]抑制计时器[/b](holddown timer):防止路由表频繁翻动,增加了网络的稳定性。[/align]
[align=left] [/align]实验目标:[/b] 通过实验调试出各个现象[/b]
[align=center]基本配置[/b][/b][/align]
[align=center]R1[/b]的配置[/b][/b][/align][align=center]R2[/b]的配置[/b][/b][/align]
[align=left]![/align]
[align=left]hostname R1[/align]
[align=left]![/align]
[align=left]interface Loopback0[/align]
[align=left] ip address 1.1.1.1 255.255.255.0[/align]
[align=left]![/align]
[align=left]interface Serial1/0[/align]
[align=left] ip address 13.1.1.1 255.255.255.0[/align]
[align=left]no shut[/align]
[align=left]![/align]
[align=left]interface Serial1/1[/align]
[align=left] ip address 12.1.1.1 255.255.255.0[/align]
[align=left] no shut[/align]
[align=left]![/align]
[align=left]router rip[/align]
[align=left] network 1.0.0.0[/align]
[align=left] network 12.0.0.0[/align]
[align=left] network 13.0.0.0[/align]
[align=left]![/align]
[align=left]![/align]
[align=left]hostname R2[/align]
[align=left]![/align]
[align=left]interface Serial1/0[/align]
[align=left] ip address 12.1.1.2 255.255.255.0[/align]
[align=left] no shut[/align]
[align=left]![/align]
[align=left]interface Serial1/1[/align]
[align=left] ip address 23.1.1.2 255.255.255.0[/align]
[align=left] no shut[/align]
[align=left]![/align]
[align=left]router rip[/align]
[align=left] network 12.0.0.0[/align]
[align=left] network 23.0.0.0[/align]
[align=left]![/align]
[align=center]R3[/b]的配置[/b][/b][/align]
[align=left]![/align]
[align=left]hostname R3[/align]
[align=left]![/align]
[align=left]interface Serial1/0[/align]
[align=left] ip address 23.1.1.3 255.255.255.0[/align]
[align=left] no shut[/align]
[align=left]![/align]
[align=left]interface Serial1/1[/align]
[align=left] ip address 13.1.1.3 255.255.255.0[/align]
[align=left] no shut[/align]
[align=left]![/align]
[align=left]router rip[/align]
[align=left] network 13.0.0.0[/align]
[align=left] network 23.0.0.0[/align]
[align=left]![/align]
[align=center]↓调试配置及监测步骤↓[/b][/b][/align]
[align=left] [/align]
[align=left]注意[/b]!![/b]:[/b]请在完成每个分解实验的时候,重启路由器重新配置表格的基本配置,再进行调试。[/b][/align]
[align=left] [/align]

(一) 记数无穷大,16跳情况

[/b]
产生16跳的工作过程:[/b][/b]
1: [/b] R1丢失了looback接口的网络(下面简称网络A)后,产生一个即时更新送往R2和R3。这个更新信息要告诉R2和R3,R1不再有到达网络A的路径。然而这个更新信息传输到R3被推迟了( C P U忙、链路拥塞等),但到达了R2。R2从路由表中去掉到网络A的路径。
[/b]
2: [/b] R3仍未收到R1的即时更新信息,并发出它的常规路由选择更新信息,通告网络A以2跳的距离可达。R2收到这个更新信息,认为出现了一条新路径到网络A。
[/b]
3: [/b] R2告诉R1它能以3跳的距离到达网络A。
[/b]
4: [/b] R1告诉R3它能以4跳的距离到达网络A。
[/b]
5: [/b] 这个循环将进行到跳数为无穷,在R I P中定义为1 6。一旦一个路由器达到无穷,它将声明这条路径不可用并从路由表中删除此路径。由于记数到无穷大问题,路由选择信息将从一个路由器传到另一个路由器,每次段数加一。路由选择环路问题将无限制地进行下去,除非达到某个限制。这个限制就是R I P的最大跳数。当路径的跳数超过1 5,这条路径就从路由表中删除。
[align=left][/b] [/align]
[align=left][/b] [/align]
[align=left]操作步骤:[/b][/b][/align]
[align=left] [/align]
[align=left]第一步:[/b]各个路由器完成基本配置,[/b]R2[/b]的路由表如下:[/b][/b][/align]
[align=left]R2#sh ip route[/b][/align]
[align=left]R 1.0.0.0/8 [120/1] via 12.1.1.1, 00:00:01, Serial1/0[/align]
[align=left] 23.0.0.0/24 is subnetted, 1 subnets[/align]
[align=left]C 23.1.1.0 is directly connected, Serial1/1[/align]
[align=left] 12.0.0.0/24 is subnetted, 1 subnets[/align]
[align=left]C 12.1.1.0 is directly connected, Serial1/0[/align]
[align=left]R 13.0.0.0/8 [120/1] via 23.1.1.3, 00:00:23, Serial1/1[/align]
[align=left] [120/1] via 12.1.1.1, 00:00:01, Serial1/0[/align]
[align=left]网络[/b]1.0.0.0[/b]是学自[/b]R1[/b]的[/b][/b][/align]
[align=left] [/align]
[align=left]第二步:[/b]被动[/b]R1[/b]的[/b]s1/1[/b]接口,令[/b]R2[/b]学到网络[/b]A[/b]是来自[/b]R3[/b],而不是[/b]R1[/b],[/b][/b][/align]
[align=left]大约[/b]4[/b]分钟后,[/b]R2[/b]的路由表如下:[/b][/b][/align]
[align=left]R1(config)#router rip[/align]
[align=left]R1(config-router)#passive-interface s1/1[/align]
[align=left]R2#show ip route [/b][/align]
[align=left]R 1.0.0.0/8 [120/2] via 23.1.1.3, 00:00:06, Serial1/1[/align]
[align=left] 23.0.0.0/24 is subnetted, 1 subnets[/align]
[align=left]C 23.1.1.0 is directly connected, Serial1/1[/align]
[align=left] 12.0.0.0/24 is subnetted, 1 subnets[/align]
[align=left]C 12.1.1.0 is directly connected, Serial1/0[/align]
[align=left]R 13.0.0.0/8 [120/1] via 23.1.1.3, 00:00:22, Serial1/1[/align]
[align=left]现在[/b]R2[/b]学到[/b]1.0.0.0[/b]的网络是来自[/b]R3[/b]了[/b][/b][/align]
[align=left] [/align]
[align=left]第三步:[/b]把[/b]R1[/b]的[/b]s1/0[/b]的接口也被动掉,且断开[/b]lookback0[/b]接口。且打开个各个路由器的[/b]debug ip rip[/b][/align]
[align=left] [/align]
[align=left]R1(config)#router rip[/align]
[align=left]R1(config-router)#passive-interface s1/0[/align]
[align=left] [/align]
[align=left]R1(config)#int loopback 0[/align]
[align=left]R1(config-if)#shutdown[/align]
[align=left] [/align]
[align=left]第四步:[/b]直到[/b]R1[/b]收来[/b]1.0.0.0[/b]的网络是来自[/b]R2[/b]后,再取消[/b]R1[/b]被动[/b]s1/0[/b]接口。[/b][/b][/align]
[align=left] [/align]
[align=left]R1#sh ip route[/b][/align]
[align=left]R 1.0.0.0/8 [120/3] via 12.1.1.2, 00:00:01, Serial1/1[/align]
[align=left]R 23.0.0.0/8 [120/1] via 13.1.1.3, 00:00:19, Serial1/0[/align]
[align=left] [120/1] via 12.1.1.2, 00:00:01, Serial1/1[/align]
[align=left] 12.0.0.0/24 is subnetted, 1 subnets[/align]
[align=left]C 12.1.1.0 is directly connected, Serial1/1[/align]
[align=left] 13.0.0.0/24 is subnetted, 1 subnets[/align]
[align=left]C 13.1.1.0 is directly connected, Serial1/0[/align]
[align=left]R1[/b]现在的路由表学到的[/b]1.0.0.0[/b]网络是来自[/b]R2[/b]的[/b][/b][/align]
[align=left] [/align]
[align=left]R1(config)#router rip[/align]
[align=left]R1(config-router)#no passive-interface s1/0[/align]
[align=left] [/align]
[align=left]第五步:[/b]通过上面的一系列设置,[/b]1.0.0.0[/b]这个网络已经在拓扑上出现[/b]R1—R3—R2—R1[/b]这样的路由环。下面我们看看[/b]debug[/b]信息:[/b][/b][/align]
[align=left] [/align]
[align=left]R3#debug ip rip[/b][/align]
[align=left]*Mar 9 00:49:27.839: RIP: sending v1 update to 255.255.255.255 via Serial1/0 (23.1.1.3) #----发送到R2[/align]
[align=left]*Mar 9 00:49:27.839: RIP: build update entries[/align]
[align=left]*Mar 9 00:49:27.843: network 1.0.0.0 metric 2[/align]
[align=left]*Mar 9 00:49:27.843: network 13.0.0.0 metric 1[/align]
[align=left]R3#[/align]
[align=left]*Mar 9 00:49:39.335: RIP: received v1 update from 13.1.1.1 on Serial1/1[/align]
[align=left]*Mar 9 00:49:39.339: 1.0.0.0 in 4 hops #----接收来自R1为4跳[/align]
[align=left]*Mar 9 00:49:39.339: 12.0.0.0 in 1 hops[/align]
[align=left]*Mar 9 00:49:41.343: RIP: sending v1 flash update to 255.255.255.255 via Serial1/0 (23.1.1.3)[/align]
[align=left]*Mar 9 00:49:41.343: RIP: build flash update entries[/align]
[align=left]*Mar 9 00:49:41.347: network 1.0.0.0 metric 5[/align]
[align=left]R3#[/align]
[align=left]*Mar 9 00:49:45.463: RIP: received v1 update from 13.1.1.1 on Serial1/1[/align]
[align=left]*Mar 9 00:49:45.463: 1.0.0.0 in 7 hops[/align]
[align=left]*Mar 9 00:49:47.463: RIP: sending v1 flash update to 255.255.255.255 via Serial1/0 (23.1.1.3)[/align]
[align=left]*Mar 9 00:49:47.463: RIP: build flash update entries[/align]
[align=left]*Mar 9 00:49:47.463: network 1.0.0.0 metric 8[/align]
[align=left]R3#[/align]
[align=left]*Mar 9 00:49:51.347: RIP: received v1 update from 13.1.1.1 on Serial1/1[/align]
[align=left]*Mar 9 00:49:51.347: 1.0.0.0 in 10 hops[/align]
[align=left]*Mar 9 00:49:53.355: RIP: sending v1 flash update to 255.255.255.255 via Serial1/0 (23.1.1.3)[/align]
[align=left]*Mar 9 00:49:53.355: RIP: build flash update entries[/align]
[align=left]*Mar 9 00:49:53.359: network 1.0.0.0 metric 11[/align]
[align=left]*Mar 9 00:49:53.507: RIP: sending v1 update to 255.255.255.255 via Serial1/0 (23.1.1.3)[/align]
[align=left]*Mar 9 00:49:53.507: RIP: build update entries[/align]
[align=left]*Mar 9 00:49:53.511: network 1.0.0.0 metric 11[/align]
[align=left]*Mar 9 00:49:53.511: network 13.0.0.0 metric 1[/align]
[align=left]R3#[/align]
[align=left]*Mar 9 00:49:57.387: RIP: received v1 update from 13.1.1.1 on Serial1/1[/align]
[align=left]*Mar 9 00:49:57.391: 1.0.0.0 in 13 hops[/align]
[align=left]R3#[/align]
[align=left]*Mar 9 00:49:59.395: RIP: sending v1 flash update to 255.255.255.255 via Serial1/0 (23.1.1.3)[/align]
[align=left]*Mar 9 00:49:59.395: RIP: build flash update entries[/align]
[align=left]*Mar 9 00:49:59.399: network 1.0.0.0 metric 14[/align]
[align=left]R3#[/align]
[align=left]*Mar 9 00:50:03.583: RIP: received v1 update from 13.1.1.1 on Serial1/1[/align]
[align=left]*Mar 9 00:50:03.587: 1.0.0.0 in 16 hops (inaccessible) #--跳数去到16,已经无限大,不可达了。于是R3马上向所有接口发送16跳不可达信息。↓↓[/align]
[align=left]R3#[/align]
[align=left]*Mar 9 00:50:05.587: RIP: sending v1 flash update to 255.255.255.255 via Serial1/1 (13.1.1.3)[/align]
[align=left]*Mar 9 00:50:05.587: RIP: build flash update entries[/align]
[align=left]*Mar 9 00:50:05.591: network 1.0.0.0 metric 16[/align]
[align=left]*Mar 9 00:50:05.591: RIP: sending v1 flash update to 255.255.255.255 via Serial1/0 (23.1.1.3)[/align]
[align=left]*Mar 9 00:50:05.595: RIP: build flash update entries[/align]
[align=left]*Mar 9 00:50:05.595: network 1.0.0.0 metric 16[/align]
[align=left]R3# --------------------同时R3也收到其他路由器发来不可达的信息------------[/align]
[align=left]*Mar 9 00:50:07.603: RIP: received v1 update from 23.1.1.2 on Serial1/0[/align]
[align=left]*Mar 9 00:50:07.607: 1.0.0.0 in 16 hops (inaccessible)[/align]
[align=left]*Mar 9 00:50:07.863: RIP: received v1 update from 13.1.1.1 on Serial1/1[/align]
[align=left]*Mar 9 00:50:07.867: 1.0.0.0 in 16 hops (inaccessible)[/align]
[align=left]*Mar 9 00:50:07.867: 12.0.0.0 in 1 hops[/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]

(二) 水平分割

[align=left] [/align]
[align=left]水平分割规则是:从一个接口学习到的路由不会再广播回该接口。[/b][/b][/align]
[align=left] [/align]
[align=left]下面我们看看在串行链路中水平分割的情况。为了方便测试我们先断开[/b]R1[/b]的[/b]s1/0[/b]接口[/b][/b][/align]
[align=left][/b] [/align]
[align=left]R1(config)#int s1/0[/align]
[align=left]R1(config-if)#shutdown[/align]
[align=left] [/align]
[align=left]看看[/b]R2[/b]、[/b]R3[/b]的路由表[/b][/b][/align]
[align=left]R2#sh ip route[/b][/align]
[align=left]R 1.0.0.0/8 [120/1] via 12.1.1.1, 00:00:17, Serial1/0[/align]
[align=left] 23.0.0.0/24 is subnetted, 1 subnets[/align]
[align=left]C 23.1.1.0 is directly connected, Serial1/1[/align]
[align=left] 12.0.0.0/24 is subnetted, 1 subnets[/align]
[align=left]C 12.1.1.0 is directly connected, Serial1/0[/align]
[align=left]可以看到[/b]R2[/b]学到了来自[/b]R1[/b]的[/b]1.0.0.0/8[/b]路由条目[/b][/b][/align]
[align=left] [/align]
[align=left]R3#sh ip route[/b][/align]
[align=left]R 1.0.0.0/8 [120/2] via 23.1.1.2, 00:00:14, Serial1/0[/align]
[align=left] 23.0.0.0/24 is subnetted, 1 subnets[/align]
[align=left]C 23.1.1.0 is directly connected, Serial1/0[/align]
[align=left]R 12.0.0.0/8 [120/1] via 23.1.1.2, 00:00:14, Serial1/0[/align]
[align=left]可以看到[/b]R3[/b]通过[/b]R2[/b]学到了[/b]1.0.0.0/8[/b]路由条目[/b][/b][/align]
[align=left] [/b][/align]
[align=left] [/b][/align]
[align=left]现在通过[/b]debug ip rip[/b]看看[/b]R2[/b]的接收和发送情况。[/b][/b][/align]
[align=left] [/align]
[align=left]R2#debug ip rip[/b][/align]
[align=left]RIP protocol debugging is on[/align]
[align=left]*Mar 9 14:30:51.939: RIP: received v1 update from 12.1.1.1 on Serial1/0[/align]
[align=left]*Mar 9 14:30:51.943: 1.0.0.0 in 1 hops #---接收到来自R1为1跳的路由[/align]
[align=left]R2#[/align]
[align=left]*Mar 9 14:30:53.695: RIP: sending v1 update to 255.255.255.255 via Serial1/0 (12.1.1.2) #----发送到R1的更新[/align]
[align=left]*Mar 9 14:30:53.695: RIP: build update entries[/align]
[align=left]*Mar 9 14:30:53.699: network 23.0.0.0 metric 1[/align]
[align=left]R2#[/align]
[align=left]*Mar 9 14:31:03.315: RIP: sending v1 update to 255.255.255.255 via Serial1/1 (23.1.1.2) #----发送到R3的更新[/align]
[align=left]*Mar 9 14:31:03.315: RIP: build update entries[/align]
[align=left]*Mar 9 14:31:03.319: network 1.0.0.0 metric 2[/align]
[align=left]*Mar 9 14:31:03.319: network 12.0.0.0 metric 1[/align]
[align=left]从[/b]debug[/b]信息可以看到,[/b]R2[/b]从[/b]s1/0[/b]接收[/b]来自[/b]R1[/b]的[/b]1.0.0.0/8[/b]路由条目,再从[/b]s1/0[/b]发送[/b]更新时,只有[/b]23.0.0.0[/b]的网络,并没有包括了[/b]1.0.0.0[/b]的网络,但从[/b]s1/1[/b]发送[/b]到[/b]R3[/b]的更新时,却包括了[/b]1.0.0.0[/b]的网络,这就是说水平分割已经起作用了。[/b][/b][/align]
[align=left] [/align]
[align=left]现在我们来看看关闭水平分割的情况[/b][/b][/align]
[align=left] [/align]
[align=left]R1(config)#int s1/1[/align]
[align=left]R1(config-if)#no ip split-horizon[/align]
[align=left] [/align]
[align=left]R2(config)#int s1/0 [/align]
[align=left]R2(config-if)#no ip split-horizon[/align]
[align=left] [/align]
[align=left] [/align]
[align=left]R2# debug ip rip[/b][/align]
[align=left] [/b][/align]
[align=left]*Mar 9 14:46:03.123: RIP: received v1 update from 12.1.1.1 on Serial1/0[/align]
[align=left]*Mar 9 14:46:03.127: 1.0.0.0 in 1 hops[/align]
[align=left]*Mar 9 14:46:03.127: 12.1.1.0 in 1 hops[/align]
[align=left]*Mar 9 14:46:03.127: 23.0.0.0 in 2 hops[/align]
[align=left]*Mar 9 14:46:03.651: RIP: sending v1 update to 255.255.255.255 via Serial1/0 (12.1.1.2)[/align]
[align=left]*Mar 9 14:46:03.651: RIP: build update entries[/align]
[align=left]*Mar 9 14:46:03.655: network 1.0.0.0 metric 2[/align]
[align=left]*Mar 9 14:46:03.655: subnet 12.1.1.0 metric 1[/align]
[align=left]*Mar 9 14:46:03.655: network 23.0.0.0 metric 1[/align]
[align=left]从[/b]debug[/b]信息可以看到,关闭水平分割之后,[/b]R2[/b]从[/b]S1/0[/b]接收[/b]来自[/b]R1[/b]的[/b]1.0.0.0[/b]网络,又从[/b]S1/0[/b]发送回[/b]给[/b]R1[/b]。[/b][/b][/align]
[align=left] [/b][/align]
[align=left]现在我们来玩个小游戏,就是利用在[/b]R1[/b]、[/b]R2[/b]都关闭了水平分割,只用两个路由器就能产生一跳一跳地增加到[/b]16[/b]跳的效果,实验前都要打开[/b]R1[/b]、[/b]R2[/b]的[/b]debug ip rip[/b]来监测[/b][/b][/align]
[align=left] [/align]
[align=left]1:[/b]先被动掉[/b]R1[/b]的[/b]s1/1[/b]接口[/b][/b][/align]
[align=left]R1(config)#router rip[/align]
[align=left]R1(config-router)#passive-interface s1/1[/align]
[align=left] [/align]
[align=left]2:[/b]关闭[/b]loopback0[/b]接口[/b][/b][/align]
[align=left]R1(config)#int loopback 0[/align]
[align=left]R1(config-if)#shutdown [/align]
[align=left]*Mar 9 15:13:25.567: %LINK-5-CHANGED: Interface Loopback0, changed state to administratively down[/align]
[align=left] [/align]
[align=left]3:[/b]取消[/b]R1[/b]的[/b]S1/1[/b]接口的被动[/b][/b][/align]
[align=left]R1(config-if)#[/align]
[align=left]R1(config-router)#no passive-interface s1/1[/align]
[align=left] [/align]
[align=left]4:[/b]以[/b]R2[/b]为例看看它的[/b]debug ip rip[/b]信息[/b][/b][/align]
[align=left] [/align]
[align=left]R2#debug ip rip[/b][/align]
[align=left]*Mar 9 15:13:54.551: RIP: sending v1 update to 255.255.255.255 via Serial1/0 (12.1.1.2)[/align]
[align=left]*Mar 9 15:13:54.551: RIP: build update entries[/align]
[align=left]*Mar 9 15:13:54.555: network 1.0.0.0 metric 2[/align]
[align=left]*Mar 9 15:13:54.555: subnet 12.1.1.0 metric 1[/align]
[align=left]*Mar 9 15:13:54.555: network 23.0.0.0 metric 1[/align]
[align=left]R2#[/align]
[align=left]*Mar 9 15:14:10.347: RIP: received v1 update from 12.1.1.1 on Serial1/0[/align]
[align=left]*Mar 9 15:14:10.351: 1.0.0.0 in 3 hops[/align]
[align=left]*Mar 9 15:14:10.351: 12.1.1.0 in 1 hops[/align]
[align=left]*Mar 9 15:14:10.355: 23.0.0.0 in 2 hops[/align]
[align=left]R2#[/align]
[align=left]*Mar 9 15:14:12.351: RIP: sending v1 flash update to 255.255.255.255 via Serial1/0 (12.1.1.2)[/align]
[align=left]*Mar 9 15:14:12.351: RIP: build flash update entries[/align]
[align=left]*Mar 9 15:14:12.355: network 1.0.0.0 metric 4[/align]
[align=left]R2#[/align]
[align=left]*Mar 9 15:14:14.371: RIP: received v1 update from 12.1.1.1 on Serial1/0[/align]
[align=left]*Mar 9 15:14:14.375: 1.0.0.0 in 5 hops[/align]
[align=left]R2#[/align]
[align=left]*Mar 9 15:14:16.375: RIP: sending v1 flash update to 255.255.255.255 via Serial1/0 (12.1.1.2)[/align]
[align=left]*Mar 9 15:14:16.375: RIP: build flash update entries[/align]
[align=left]*Mar 9 15:14:16.379: network 1.0.0.0 metric 6[/align]
[align=left]R2#[/align]
[align=left]*Mar 9 15:14:18.495: RIP: received v1 update from 12.1.1.1 on Serial1/0[/align]
[align=left]*Mar 9 15:14:18.499: 1.0.0.0 in 7 hops[/align]
[align=left]R2#[/align]
[align=left]*Mar 9 15:14:20.499: RIP: sending v1 flash update to 255.255.255.255 via Serial1/0 (12.1.1.2)[/align]
[align=left]*Mar 9 15:14:20.499: RIP: build flash update entries[/align]
[align=left]*Mar 9 15:14:20.503: network 1.0.0.0 metric 8[/align]
[align=left]R2#[/align]
[align=left]*Mar 9 15:14:22.623: RIP: received v1 update from 12.1.1.1 on Serial1/0[/align]
[align=left]*Mar 9 15:14:22.627: 1.0.0.0 in 9 hops[/align]
[align=left]*Mar 9 15:14:22.763: RIP: sending v1 update to 255.255.255.255 via Serial1/0 (12.1.1.2)[/align]
[align=left]*Mar 9 15:14:22.763: RIP: build update entries[/align]
[align=left]*Mar 9 15:14:22.767: network 1.0.0.0 metric 10[/align]
[align=left]*Mar 9 15:14:22.767: subnet 12.1.1.0 metric 1[/align]
[align=left]*Mar 9 15:14:22.767: network 23.0.0.0 metric 1[/align]
[align=left]R2#[/align]
[align=left]*Mar 9 15:14:24.895: RIP: received v1 update from 12.1.1.1 on Serial1/0[/align]
[align=left]*Mar 9 15:14:24.899: 1.0.0.0 in 11 hops[/align]
[align=left]R2#[/align]
[align=left]*Mar 9 15:14:26.899: RIP: sending v1 flash update to 255.255.255.255 via Serial1/0 (12.1.1.2)[/align]
[align=left]*Mar 9 15:14:26.899: RIP: build flash update entries[/align]
[align=left]*Mar 9 15:14:26.903: network 1.0.0.0 metric 12[/align]
[align=left]R2#[/align]
[align=left]*Mar 9 15:14:28.967: RIP: received v1 update from 12.1.1.1 on Serial1/0[/align]
[align=left]*Mar 9 15:14:28.971: 1.0.0.0 in 13 hops[/align]
[align=left]R2#[/align]
[align=left]*Mar 9 15:14:30.971: RIP: sending v1 flash update to 255.255.255.255 via Serial1/0 (12.1.1.2)[/align]
[align=left]*Mar 9 15:14:30.971: RIP: build flash update entries[/align]
[align=left]*Mar 9 15:14:30.975: network 1.0.0.0 metric 14[/align]
[align=left]R2#[/align]
[align=left]*Mar 9 15:14:33.023: RIP: received v1 update from 12.1.1.1 on Serial1/0[/align]
[align=left]*Mar 9 15:14:33.027: 1.0.0.0 in 15 hops[/align]
[align=left]R2#[/align]
[align=left]*Mar 9 15:14:35.027: RIP: sending v1 flash update to 255.255.255.255 via Serial1/0 (12.1.1.2)[/align]
[align=left]*Mar 9 15:14:35.027: RIP: build flash update entries[/align]
[align=left]*Mar 9 15:14:35.027: network 1.0.0.0 metric 16[/align]
[align=left]R2#[/align]
[align=left]*Mar 9 15:14:37.083: RIP: received v1 update from 12.1.1.1 on Serial1/0[/align]
[align=left]*Mar 9 15:14:37.087: 1.0.0.0 in 16 hops (inaccessible)[/align]
[align=left]R2#[/align]
[align=left]*Mar 9 15:14:39.087: RIP: sending v1 flash update to 255.255.255.255 via Serial1/0 (12.1.1.2)[/align]
[align=left]*Mar 9 15:14:39.087: RIP: build flash update entries[/align]
[align=left]*Mar 9 15:14:39.091: network 1.0.0.0 metric 16[/align]
[align=left]上面就是两路由器间关闭水平分割,产生[/b]16[/b]跳的效果了,为了直观中间我删除了部分[/b]debug[/b]信息。[/b][/b][/align]
[align=left] [/b][/align]
其实原理很简单:[/b][/b]
[align=left]我们把R1的S1/1出口passive 了,R1 就不能把lo 0被shutdown掉的信息以flash update 的形式发给R2,同时我们也把R1和R2的两接口的水平分割关了。[/align]
[align=left]这时不知道情况的R2就发送更新对R1说:“你到lo 0是2跳”。而现在R1本身已经没有了与自身直连的lo 0的0跳信息,所以它别无选择的接受R2发来的2跳。[/align]
[align=left]当我们取消R1的S1/1被动功能,R1再对R2说:“你到lo 0是3跳”。虽然比原来的差,且是从同一个接口收到的,但R2它也别无选择。[/align]
[align=left]就这样它们之间就相互“欺骗”,如此循环直到出现16跳。[/align]

(三) 毒性逆转

毒性逆转的规则是:从一个接口学习的路由[/b]会发送回[/b]该接口,但是已经被毒化,跳数设置为16跳,不可达。[/b]

实验步骤:[/b][/b]
[/b]
1[/b]:为了方便测试我们断开[/b]R1[/b]与[/b]R3[/b]链接的[/b]S1/0[/b]接口[/b][/b]
R1(config)#int s1/0
R1(config-if)#shutdown

2[/b]:各个路由器全部路由都学到了,在各个路由器打开[/b]debug ip rip[/b]观察[/b][/b]
[/b]
3: [/b]断开[/b]R1[/b]的[/b]loopback0[/b]接口[/b][/b]
R1(config)#int loopback 0
R1(config-if)#shutdown

R1#debug ip rip[/b]
*Mar 9 17:18:08.811: RIP: received v1 update from 12.1.1.2 on Serial1/1
*Mar 9 17:18:08.815: 1.0.0.0 in 16 hops (inaccessible)
*Mar 9 17:18:08.815: 23.0.0.0 in 1 hops
R1#
*Mar 9 17:18:12.807: RIP: sending v1 update to 255.255.255.255 via Serial1/1 (12.1.1.1)
*Mar 9 17:18:12.807: RIP: build update entries
*Mar 9 17:18:12.811: network 1.0.0.0 metric 16
从接口[/b]S1/1[/b]收到,又出接口[/b]S1/1[/b]发出去,但已经标记为[/b]16[/b]跳不可达[/b][/b]

R2#debug ip rip[/b]
*Mar 9 17:17:46.727: RIP: received v1 update from 12.1.1.1 on Serial1/0
*Mar 9 17:17:46.731: 1.0.0.0 in 16 hops (inaccessible)
R2#
*Mar 9 17:17:48.731: RIP: sending v1 flash update to 255.255.255.255 via Serial1/0 (12.1.1.2)
*Mar 9 17:17:48.731: RIP: build flash update entries
*Mar 9 17:17:48.735: network 1.0.0.0 metric 16

*Mar 9 17:17:48.735: RIP: sending v1 flash update to 255.255.255.255 via Serial1/1 (23.1.1.2)
*Mar 9 17:17:48.739: RIP: build flash update entries
*Mar 9 17:17:48.739: network 1.0.0.0 metric 16
R2#
*Mar 9 17:17:50.799: RIP: received v1 update from 23.1.1.3 on Serial1/1
*Mar 9 17:17:50.803: 1.0.0.0 in 16 hops (inaccessible)
从信息也已经看到从同一个接口收到,也在同一个接口发出,但也是已经毒化[/b][/b]

R3#debug ip rip[/b]
*Mar 9 17:18:07.551: RIP: received v1 update from 23.1.1.2 on Serial1/0
*Mar 9 17:18:07.555: 1.0.0.0 in 16 hops (inaccessible)
*Mar 9 17:18:07.555: 12.0.0.0 in 1 hops
R3#
*Mar 9 17:18:20.955: RIP: sending v1 update to 255.255.255.255 via Serial1/0 (23.1.1.3)
*Mar 9 17:18:20.955: RIP: build update entries
*Mar 9 17:18:20.955: network 1.0.0.0 metric 16
R3[/b]的情况也是一样,从相同的接口接收和发送。[/b][/b]

注意[/b]!!:[/b]以上的效果是不用关闭水平分割的,否则不能说明毒性逆转[/b][/b]

(四) 触发更新

触发更新的规则是[/b]:[/b]一旦检测到路由崩溃[/b],[/b]立即广播路由刷新报文[/b],[/b]而不等到下一刷新周期[/b][/b]

[/b]
下面我们就以[/b]R1[/b]、[/b]R2[/b]为例子做实验[/b][/b]

1[/b]:完成基本配置,都学全路由后,我们在[/b]R1 [/b]打开[/b]debug ip rip[/b]和[/b]debug ip rip trigger[/b]

2: [/b]先在[/b]R1[/b]的[/b]S1/1[/b]启动触发更新([/b]ip rip triggered[/b])[/b][/b]

R1(config)#int s1/1
R1(config-if)#ip rip triggered

3[/b]:查看[/b]debug[/b]信息[/b][/b]
R1#debug ip rip[/b]
RIP protocol debugging is on
R1#debug ip rip trigger [/b]
RIP trigger debugging is on

*Mar 9 18:26:55.963: RIP: sending triggered request on Serial1/1 to 255.255.255.255 #----第一次请求
*Mar 9 18:26:55.963: RIP: Start poll timer from 12.1.1.1 on Serial1/1
*Mar 9 18:26:59.707: RIP-TIMER: sending timer on Serial1/1 expired
*Mar 9 18:26:59.999: RIP-TIMER: age timer expired
*Mar 9 18:27:00.247: RIP-TIMER: sending timer on Loopback0 expired
*Mar 9 18:27:00.963: RIP-TIMER: polling timer on Serial1/1(12.1.1.1) expired #----第一次超时
*Mar 9 18:27:00.963: RIP: sending triggered request on Serial1/1 to 255.255.255.255 #----第二次请求
*Mar 9 18:27:00.967: RIP: Start poll timer from source 12.1.1.1 on Serial1/1
R1#
*Mar 9 18:27:05.967: RIP-TIMER: polling timer on Serial1/1(12.1.1.1) expired #----第二次超时
*Mar 9 18:27:05.967: RIP: sending triggered request on Serial1/1 to 255.255.255.255 #----第三次请求
*Mar 9 18:27:05.967: RIP: Start poll timer from source 12.1.1.1 on Serial1/1
R1#
*Mar 9 18:27:09.999: RIP-TIMER: age timer expired
*Mar 9 18:27:10.967: RIP-TIMER: polling timer on Serial1/1(12.1.1.1) expired #----第三次超时
*Mar 9 18:27:10.967: RIP: sending triggered request on Serial1/1 to 255.255.255.255 #----第四次请求
*Mar 9 18:27:10.971: RIP: Start poll timer from source 12.1.1.1 on Serial1/1
R1#
*Mar 9 18:27:15.971: RIP-TIMER: polling timer on Serial1/1(12.1.1.1) expired #----第四次超时
*Mar 9 18:27:15.971: RIP: sending triggered request on Serial1/1 to 255.255.255.255 #----第五次请求
*Mar 9 18:27:15.975: RIP: Start poll timer from source 12.1.1.1 on Serial1/1
R1#
*Mar 9 18:27:19.999: RIP-TIMER: age timer expired
*Mar 9 18:27:20.975: RIP-TIMER: polling timer on Serial1/1(12.1.1.1) expired #----第五次超时
*Mar 9 18:27:20.975: RIP: sending triggered request on Serial1/1 to 255.255.255.255 #----第六次请求
*Mar 9 18:27:20.979: RIP: Start poll timer from source 12.1.1.1 on Serial1/1
R1#
*Mar 9 18:27:25.979: RIP-TIMER: polling timer on Serial1/1(12.1.1.1) expired
*Mar 9 18:27:25.979: RIP: Poll 6 times on Serial1/1 thru 12.1.1.1 without any ack #----经过6次触发请求后还没有收到确认消息
R1#
*Mar 9 18:27:29.463: RIP-TIMER: sending timer on Serial1/1 expired
*Mar 9 18:27:29.463: RIP: sending v1 update to 255.255.255.255 via Serial1/1 (12.1.1.1) #---请求无效后,发送一个普通的广播更新
*Mar 9 18:27:29.467: RIP: build update entries
*Mar 9 18:27:29.467: network 1.0.0.0 metric 1
*Mar 9 18:27:29.467: network 13.0.0.0 metric 1
*Mar 9 18:27:29.999: RIP-TIMER: age timer expired
R1#
*Mar 9 18:27:32.895: RIP: received v1 update from 12.1.1.2 on Serial1/1
*Mar 9 18:27:32.899: 23.0.0.0 in 1 hops #----还可以收到R2来的信息,是因为R2始终在广播着他自己的RIP更新

从[/b]R1[/b]的[/b]debug[/b]调试信息中,显示的就是[/b]R1[/b]启动了触发更新试图与链路的另一端的[/b]R2[/b]建立触发更新关系。[/b]R1[/b]以[/b]5s[/b]为每个周期发送轮询([/b]Poll[/b])[/b]并等待确认,但发送了[/b]6[/b]个[/b]触发请求后还没有收到确认消息,那么整个轮询过程就认为超时,触发更新建立不成功,路由器[/b]R1[/b]等待下一个普通的更新时间,并广播一个普通[/b]RIP[/b]的更新。而在整个过程[/b]R2[/b]始终在广播着他自己的[/b]RIP[/b]更新。[/b][/b]

4: [/b]我们现在在[/b]R2[/b]也打开[/b]debug ip rip[/b]和[/b]debug ip rip[/b],并且把[/b]R2[/b]的[/b]S1/1[/b]接口也启动触发更新([/b]ip rip triggered[/b])。[/b][/b]

R2#debug ip rip[/b]
RIP protocol debugging is on
R2#debug ip rip trigger [/b]
RIP trigger debugging is on
R2(config)#int s1/0[/b]
R2(config-if)#ip rip triggered[/b]
*Mar 9 19:43:45.231: RIP: sending triggered request on Serial1/0 to 255.255.255.255 #----R2发送触发更新请求
*Mar 9 19:43:45.231: RIP: Start poll timer from 12.1.1.2 on Serial1/0
*Mar 9 19:43:45.347: RIP: received v1 triggered update from 12.1.1.1 on Serial1/0 #----由S1/0收到来自R1的触发更新
*Mar 9 19:43:45.351: RIP: sending v1 ack to 12.1.1.1 via Serial1/0 (12.1.1.2), #----R2通过S1/0接口向R1发送确认信息
flush, seq# 0
*Mar 9 19:43:45.355: RIP: Stop trigger rip poll timer for 12.1.1.2 on Serial1/0 #----停止向R1发送触发更新的轮询
*Mar 9 19:43:45.355: RIP: Trigger rip running on network 12.0.0.0 thru Serial1/0 #----透过S1/0接口在网络12.0.0.0上运行着RIP的触发更新
*Mar 9 19:43:45.359: RIP: 12.1.1.1 change state from DOWN to INIT
*Mar 9 19:43:45.359: RIP: send v1 triggered flush update to 12.1.1.1 on Serial1/0 with no route
*Mar 9 19:43:45.363: RIP: assigned sequence number 0 on Serial1/0
*Mar 9 19:43:45.363: RIP: start retransmit timer of 12.1.1.1
*Mar 9 19:43:45.363: 1.0.0.0 in 1 hops
*Mar 9 19:43:45.367: 13.0.0.0 in 1 hops
*Mar 9 19:43:45.443: RIP: received v1 triggered ack from 12.1.1.1 on Serial1/0
R2#
*Mar 9 19:43:45.447: RIP: 12.1.1.1 change state from INIT to LOADING
*Mar 9 19:43:45.447: RIP: send v1 triggered update to 12.1.1.1 on Serial1/0
*Mar 9 19:43:45.447: RIP: assigned sequence number 1 on Serial1/0
*Mar 9 19:43:45.451: RIP: build update entries
*Mar 9 19:43:45.451: route 8: network 23.0.0.0 metric 1
*Mar 9 19:43:45.455: RIP: Update contains 1 routes, start 8, end 8
*Mar 9 19:43:45.455: RIP: start retransmit timer of 12.1.1.1
*Mar 9 19:43:45.463: RIP: received v1 triggered ack from 12.1.1.1 on Serial1/0
seq# 1
*Mar 9 19:43:45.463: RIP: 12.1.1.1 change state from LOADING to FULL
*Mar 9 19:43:46.539: RIP-TIMER: age timer expired #----计数器超时
R2#
*Mar 9 19:43:53.259: RIP-TIMER: sending timer on Serial1/1 expired
*Mar 9 19:43:53.259: RIP: sending v1 update to 255.255.255.255 via Serial1/1 (23.1.1.2)
*Mar 9 19:43:53.263: RIP: build update entries
*Mar 9 19:43:53.263: network 1.0.0.0 metric 2
*Mar 9 19:43:53.263: network 12.0.0.0 metric 1
R2#
*Mar 9 19:43:55.491: RIP: received v1 update from 23.1.1.3 on Serial1/1
*Mar 9 19:43:55.495: 1.0.0.0 in 2 hops
*Mar 9 19:43:55.495: 13.0.0.0 in 1 hops
R2#
*Mar 9 19:43:56.539: RIP-TIMER: age timer expired
R2#
*Mar 9 19:44:06.539: RIP-TIMER: age timer expired
*Mar 9 19:44:07.383: RIP-TIMER: sending timer on Serial1/0 expired
从上面的[/b]debug[/b]信息,可以看到,由请求到轮询到确认是很短的时间的。再就是触发状态从[/b]DOWN[/b]状态[/b]开始,经过[/b]INT[/b]和[/b]LOADING[/b]状态,最后到为[/b]FULL[/b]状态。而后的就是进行路由信息的交换和更新确认了。而在输出信息的后面也出现了[/b]RIP[/b]更新计时器超时,做实验时候花多些时间,细心观察[/b]debug[/b]信息,[/b]R2[/b]会一直没有向[/b]R1[/b]发送新的更新[/b]和从[/b]R1[/b]那里接收新的更新[/b]。这就是[/b]RIP[/b]启用触发更新会关闭计时器的效果。

下面再看看R1R2的路由表和RIP 数据库[/b]

R1#show ip route [/b]
1.0.0.0/24 is subnetted, 1 subnets
C 1.1.1.0 is directly connected, Loopback0
R 23.0.0.0/8 [120/1] via 12.1.1.2, 00:10:05, Serial1/1
[120/1] via 13.1.1.3, 00:00:03, Serial1/0
12.0.0.0/24 is subnetted, 1 subnets
C 12.1.1.0 is directly connected, Serial1/1
13.0.0.0/24 is subnetted, 1 subnets
C 13.1.1.0 is directly connected, Serial1/0

R2#show ip route [/b]
R 1.0.0.0/8 [120/1] via 12.1.1.1, 00:10:40, Serial1/0
23.0.0.0/24 is subnetted, 1 subnets
C 23.1.1.0 is directly connected, Serial1/1
12.0.0.0/24 is subnetted, 1 subnets
C 12.1.1.0 is directly connected, Serial1/0
R 13.0.0.0/8 [120/1] via 12.1.1.1, 00:39:40, Serial1/0
[120/1] via 23.1.1.3, 00:00:14, Serial1/1

R1#show ip rip database [/b]
1.0.0.0/8 auto-summary
1.1.1.0/24 directly connected, Loopback0
12.0.0.0/8 auto-summary
12.1.1.0/24 directly connected, Serial1/1
13.0.0.0/8 auto-summary
13.1.1.0/24 directly connected, Serial1/0
23.0.0.0/8 auto-summary
23.0.0.0/8
[1] via 13.1.1.3, 00:00:06, Serial1/0
[1] via 12.1.1.2, 00:10:22 (permanent), Serial1/1
* Triggered Routes:
- [1] via 12.1.1.2, Serial1/1

R2#show ip rip database [/b]
1.0.0.0/8 auto-summary
1.0.0.0/8
[1] via 12.1.1.1, 00:11:14 (permanent), Serial1/0
* Triggered Routes:
- [1] via 12.1.1.1, Serial1/0
12.0.0.0/8 auto-summary
12.1.1.0/24 directly connected, Serial1/0
13.0.0.0/8 auto-summary
13.0.0.0/8
[1] via 23.1.1.3, 00:00:02, Serial1/1
[1] via 12.1.1.1, 00:11:14 (permanent), Serial1/0
* Triggered Routes:
- [1] via 12.1.1.1, Serial1/0
23.0.0.0/8 auto-summary
23.1.1.0/24 directly connected, Serial1/1
从上面的信息我们已经看到,路由表阴影部分的路由条目时间已经变得很大了,这是因为启动了触发更新学[/b]到的条目是[/b]永久[/b]([/b]permanent[/b])的,在[/b]R1[/b]、[/b]R2[/b]的[/b]RIP[/b]数据库也已经证明了。[/b][/b]

(五) 抑制计时器

[/b]请看以前的实验[/b](RIP[/b]的定时器情况[/b])[/b]:[/b][/b]http://sharkii.blog.51cto.com/325987/64146
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息