八一式马步枪 汉阳造:RIP路由信息问题(回答正确有追加,回到不出请不要乱复制网上信息)

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/05 03:46:42
请问:
假如用两个路由器连接三个网络:10.0.0.0(网络1) 20.0.0.0(网络2)和30.0.0.0(网络3)
router1与网络1连接的端口ip为10.0.0.1与网络2连接的端口ip为20.0.0.1
router2与网络2连接的端口ip为20.0.0.0与网络3连接的端口ip为30.0.0.1
路由器间按照RIP协议通讯
请问:router2与网络3的线路突然中断,30秒后router1上网络1到网络3的路由信息是怎样的?跳数是多少?为什么?
连接模型:
10.0.0.0→(10.0.0.1[router1]20.0.0.1)→20.0.0.0→(20.0.0.2[router2]30.0.0.1)→30.0.0.0
你们说的删除路由,必须要等到240秒后。30秒时router1只是会将去网络3的路由信息置为不可用,而且由于网络3断掉router2也无法得到有关网络3的信息,也就是检测不到网络的变化(router2需要靠网络3的数据包获得网络3的有关信息),根本就不会广播有改变的路由信息,只有在有数据传往网络3时返回一个无法到达的ICMP信息。而且router2与网络3间的线路断掉也不可能会出现环路(又不是短路)。
RIP协议交换路由信息的周期是30秒,使用RIP的路由器,期待在180秒(6个更新周期)内从邻接路由器获得更新。如果没有收到更新信息,则将路由信息标志为不可用,并强制把ICMP网络不可达消息返回给未通过更新的路由器(资源请求者),一旦超过240秒(8个更新周期),未更新路由起的路由表项将被路由表中移去。
参考答案是(书上的):router1上到网络3的路由表项为:经过router2的20.0.0.2端再到网络3 路由跳数是3。但我的理解跳数应该是1。我想问的就是为什么跳数是3?
虽然到目前为止还没有人答对。但是仍然感谢各位的热心帮助!希望不知道的朋友不要copy别人的答案或到网上乱复制。

楼上几位说路由环路是正确的说法。路由环路又叫路由循环,即router1到网络3的路由端口指向router2的端口,而router2到网络3的路由指向router1的端口。
RIP协议更新周期是30秒。在30秒后的路由信息也就是一个更新周期后的的路由信息。
1、第一种情况(router1的更新周期先到):
首先,当网络3断掉时,route2立即就可以发现,down掉去往网络3的路由信息,即认为网络3不是和自己直接相连的。但是router1中去往网络3的路由信息仍存在。router1的更新周期到了的时候,router1向router2发送更新信息,其中包括一条去往网络3的路由信息(跳数为1),此时,router2发现自己没有该信息,于是学习到一条去往网络3的路由信息(当然是条错误的信息,是去往网络2端口的),此时跳数变成2。当到了router2的更新周期到了时,向router1发送更新信息,其中包括一条去往网络3的路由信息(跳数是2),于是router1就学习到新的路由信息,把去往网络3的路由信息改为3条。这种情况的话就必须经过8个更新周期(240秒)跳数才能达到16跳(RIP最大跳数),才会在整个网络上删除该条路由信息。
2、第二种情况(router2的更新周期先到):
首先,当网络3断掉时,route2立即就可以发现,down掉去往网络3的路由信息,即认为网络3不是和自己直接相连的。但是router1中去往网络3的路由信息仍存在。router2的更新周期到了的时候,router2向router1发送更新信息,其中不包括去往网络3的路由信息,对router1来说没有新的路由信息,所以router1不改变自己的路由表。到了router1的更新周期时,向router2发送包含去往网络3的(跳数为1)的更新信息,于是router2就学习到一跳去往网络3的跳数为2路由信息(当然是错的,同样是去往网络2端口的)。这种情况30秒后(没到router1的第二个更新周期前)router1的去往网络3的跳数仍然为1。这种情况的话同样必须经过8个更新周期(240秒)跳数才能达到16跳(RIP最大跳数),才会在整个网络上删除该条路由信息。

我想你说的应该是第一种情况吧。这就是路由环路(循环)的具体表现。
RIP的高版本对此采取定义路由权的最大值、水平分割、路由保持法等一系列(基于时间、权限、优先级等)机制来解决路由循环的问题。
好好去看下CCNA方面的东西吧。

这是有点荒唐吧?r1怎么可能吧r2发给他的n3路由信息发回给r2呢?这不就违反了水平分割的规则吗?我记得这条路由是不可能发回去的啊!
看来我还没理解哦!等我做了实验再回来告诉你们吧~!

ROUTER2与网络3中断后
ROUTER2发现网络3不可达,会把原路由删除,并将距离改为16
之后会出现两种情况
1、ROUTER2在还没收到ROUTER1的路由通报前把自己的新路由表广播给ROUTER1,ROUTER1也删除原来到网络3的路由信息。这样,网络不会出现环路。仍然正常。
2、ROUTER2在广播自己的路由信息之前先收到ROUTER1的的广播报文,而此时ROUTER1的报文里是有一条到网络3的记录的,并且记录是1跳,这样,ROUTER2就会根据ROUTER1的报文更新自己的路由表,并标识到网络3的跳数是1,环路产生!

我的原本答案都被人复制N遍了,我这里补充就不带原来的说明了。

补充如下:
16跳是RIP里的不可达的一个标志
路由表是30秒更新一次
240秒是8个更新周期
所以你的问题问的30秒后的信息
也就是问的一个更新周期后的信息

这是收敛的过程
RIP的收敛过程是慢的
240秒完成
也就说240秒内是个环路(你说不可能形成环路,那还要水平分割干吗)

接着我之前说的
网络3一断开,是ROUTER2先收到ROUTER1的路由更新
到网络3的跳是1,而ROUTER2找不到网络3,即认为不是和自己直连的网络,所以他会在自己路由表里把到网络3的再加一跳,此时ROUTER2里的网络3的跳是2,
30后ROUTER2向ROUTER1发布路由更新
他告诉ROUTER1他自己到网络3的跳数是2
ROUTER1收到更新通告
并且在与自己直连的网络中找不到网络3
所以他会在自己的路由表中再加1跳
即到网络3的跳为3

ROUTER1继续发布路由更新给ROUTER2
如此循环8次
直到跳数增加到16跳
RIP会认为是不可达路由
然后删除网络3的记录

这是一个完整的收敛
过程

你上面补充的也有不是很确切的地方

这个收敛过程
每个30秒后
ROUTER1的网络3记录的跳都会增加2跳的

多的就不说了

前面几位大侠说的好啊 ,不过在下仔细看过了,好像全出自一人之口。我有一点小小的看法:30秒之前,R1的路由信息显示到达网络3的跳数是2,下一跳是R2,30秒过后,网络3断了,此时出现两种情况:
(一)R2先收到来自R1的更新信息,此时R2看到R1到达网络3的跳数是2,自然得到R2到达网络3的跳数是3,下一跳是R1,就此形成循环,直到到达16跳结束 。
(二)R1先收到来自R2的更新信息,此时不会出现任何异常,R1直接更改自己的路由信息即可。

做过实验了,CISCO2621的路由器用水平分割阻止了那条路由回来!只显示路由为16跳,用debug看见7个周期后刷新了路由!
不知道你的路由是什么,怎么会不水平分割??

参看 现代通信网中的交换技术
问题打错几个字 人很浮 所以不成事