[CCNP] 关于eigrp和ospf的问题 - 考试认证 - 电脑技术大全 - IT技术...

来源:百度文库 编辑:神马文学网 时间:2024/04/29 15:05:10

[CCNP] 关于eigrp和ospf的问题
ospf, eigrp, CCNP
eigrp和ospf都是通过hello包建立邻接关系,但是为什么eigrp中如果hello和holdtime时间不一致,一样可以建立邻接关系,而ospf就要求非要hello和downtime时间一致才能建立邻接关系呢?
 

收藏 分享 
-
 
 
 
 

发短消息
加为好友
吉普2020 当前离线

帖子34921 主题0 精华0 积分23938 金币23938  贡献17887  阅读权限30 在线时间0 小时 注册时间2010-1-9 最后登录2010-1-9  
IT高级经理

 

积分23938 金币23938  在线时间0 小时 注册时间2010-1-9 最后登录2010-1-9  沙发
 吉普2020发表于 2010-1-11 13:59 | 只看该作者
你说的eigrp hello和holdtime时间不一致,是不是指不向ospf那样holdtime是hello的几倍的关系呢?

ospf的holdtime一定是hello的4倍,但好像记得eigrp的holdtime缺省是hello的3倍,没有实际验证过eigrp的hello和holdtime是不是可以分别设置,如果真是这样的话,那也许是和DAUL算法有助于快速收敛的设计有关吧
 
 
 TOP
 
 

发短消息
加为好友
大个仔 当前离线

帖子34627 主题0 精华0 积分23611 金币23611  贡献17653  阅读权限30 在线时间0 小时 注册时间2009-12-26 最后登录2009-12-26  
IT高级经理

 

积分23611 金币23611  在线时间0 小时 注册时间2009-12-26 最后登录2009-12-26  藤椅
 大个仔发表于 2010-1-11 14:38 | 只看该作者
事实上ospf中hold time时间是hello的4倍,而eigrp也有这种倍数关系不过它是3倍的,楼上这位老兄说的DUAL算法只是对路由的一种选择机制,而hello和holdtime则是建立邻接关系的重要参数,二者不是同一个过程,我想应该不是DUAL算法的原因!

 

以下是我在cisco上查到的原话:

It is possible for two routers to become EIGRP neighbors even though the hello and hold timers don't match. The hold time is included in the hello packets so each neighbor should stay alive even though the hello interval and hold timers don't match

按这个解释,它的意思很明确的表示了就是由于hold time在hello包里面,而且通过hello包向外发送,所以邻居互相知道对方的hold time,故可以建立邻接关系,但是ospf中的hello包也包括了hello时间和down机判断时间呀,为什么就要求建立邻接关系的router中这两个时间一定要一致呢?郁闷ing:(
 
 
 TOP
 
 

发短消息
加为好友
2138688 当前离线

帖子34871 主题0 精华0 积分23791 金币23791  贡献17752  阅读权限30 在线时间0 小时 注册时间2010-1-6 最后登录2010-1-6  
IT高级经理

 

积分23791 金币23791  在线时间0 小时 注册时间2010-1-6 最后登录2010-1-6  板凳
 2138688发表于 2010-1-11 15:17 | 只看该作者
这个朋友提的问题的确很有意思,我们可以先看看OSPF的运行机制:

 

当一个OSPF路由器初始化时,首先初始化路由器自身的协议数据库,然后等待低层次协议(数据链路层)提示端口是否处于工作状态。

 

——如果低层协议得知一个端口处于工作状态时,OSPF会通过其Hello协议数据包与其余的OSPF路由器建立交互关系。一个OSPF路由器向其相邻路由器发送Hello数据包,如果接收到某一路由器返回的Hello数据包,则在这两个OSPF路由器之间建立起OSPF交互关系,这个过程在OSPF中被称为adjacency。在广播性网络或是在点对点的网络环境中,OSPF协议通过Hello数据包自动地发现其相邻路由器,在这时,OSPF路由器将Hello数据包发送至一特殊的多点广播地址,该多点广播地址为ALLSPFRouters。在一些非广播性的网络环境中,我们需要经过某些设置来发现OSPF相邻路由器。在多接入的环境中,例如以太网的环境,Hello协议数据包还可以用于选择该网络中的指定路由器DR。

 

——一个OSPF路由器会与其新发现的相邻路由器建立OSPF的adjacency,并且在一对OSPF路由器之间作链路状态数据库的同步。在多接入的网络环增中,非DR的OSPF路由器只会与指定路由器DR建立adjacency,并且作数据库的同步。OSPF协议数据包的接收及发送正是在一对OSPF的adjacency间进行的。

 

——OSPF路由器周期性地产生与其相联的所有链路的状态信息,有时这些信息也被称为链路状态广播LSA(Link State Advertisement)。当路由器相联接的链路状态发生改变时,路由器也会产生链路状态广播信息,所有这些广播数据是通过Flood的方式在某一个OSPF区域内进行的。Flooding算法是一个非常可靠的计算过程,它保证在同一个OSPF区域内的所有路由器都具有一个相同的OSPF数据库。根据这个数据库,OSPF路由器会将自身作为根,计算出一个最短路径树,然后,该路由器会根据最短路径树产生自己的OSPF路由表。

 

——OSPF路由协议通过建立交互关系来交换路由信息,但是并不是所有相邻的路由器会建立OSPF交互关系。下面将OSPF建立adjacency的过程简要介绍一下。

 

——OSPF协议是通过Hello协议数据包来建立及维护相邻关系的,同时也用其来保证相邻路由器之间的双向通信。OSPF路由器会周期性地发送Hello数据包,当这个路由器看到自身被列于其它路由器的Hello数据包里时,这两个路由器之间会建立起双向通信。在多接入的环境中,Hello数据包还用于发现指定路由器DR,通过DR来控制与哪些路由器建立交互关系。

 

——两个OSPF路由器建立双向通信这后的第二个步骤是进行数据库的同步,数据库同步是所有链路状态路由协议的最大的共性。在OSPF路由协议中,数据库同步关系仅仅在建立交互关系的路由器之间保持。

 

——OSPF的数据库同步是通过OSPF数据库描述数据包(Database Description Packets)来进行的。OSPF路由器周期性地产生数据库描述数据包,该数据包是有序的,即附带有序列号,并将这些数据包对相邻路由器广播。相邻路由器可以根据数据库描述数据包的序列号与自身数据库的数据作比较,若发现接收到的数据比数据库内的数据序列号大,则相邻路由器会针对序列号较大的数据发出请求,并用请求得到的数据来更新其链路状态数据库。

 

——我们可以将OSPF相邻路由器从发送Hello数据包,建立数据库同步至建立完全的OSPF交互关系的过程分成几个不同的状态:

——Down:这是OSPF建立交互关系的初始化状态,表示在一定时间之内没有接收到从某一相邻路由器发送来的信息。在非广播性的网络环境内,OSPF路由器还可能对处于Down状态的路由器发送Hello数据包。

 

——Attempt:该状态仅在NBMA环境,例如帧中继、X.25或ATM环境中有效,表示在一定时间内没有接收到某一相邻路由器的信息,但是OSPF路由器仍必须通过以一个较低的频率向该相邻路由器发送Hello数据包来保持联系。

 

——Init:在该状态时,OSPF路由器已经接收到相邻路由器发送来的Hello数据包,但自身的IP地址并没有出现在该Hello数据包内,也就是说,双方的双向通信还没有建立起来。

 

——2-Way:这个状态可以说是建立交互方式真正的开始步骤。在这个状态,路由器看到自身已经处于相邻路由器的Hello数据包内,双向通信已经建立。指定路由器及备份指定路由器的选择正是在这个状态完成的。在这个状态,OSPF路由器还可以根据其中的一个路由器是否指定路由器或是根据链路是否点对点或虚拟链路来决定是否建立交互关系。

 

——Exstart:这个状态是建立交互状态的第一个步骤。在这个状态,路由器要决定用于数据交换的初始的数据库描述数据包的序列号,以保证路由器得到的永远是最新的链路状态信息。同时,在这个状态路由器还必须决定路由器之间的主备关系,处于主控地位的路由器会向处于备份地位的路由器请求链路状态信息。

 

——Exchange:在这个状态,路由器向相邻的OSPF路由器发送数据库描述数据包来交换链路状态信息,每一个数据包都有一个数据包序列号。在这个状态,路由器还有可能向相邻路由器发送链路状态请求数据包来请求其相应数据。从这个状态开始,我们说OSPF处于Flood状态。

 

——Loading:在loading状态,OSPF路由器会就其发现的相邻路由器的新的链路状态数据及自身的已经过期的数据向相邻路由器提出请求,并等待相邻路由器的回答。

 

——Full:这是两个OSPF路由器建立交互关系的最后一个状态,在这时,建立起交互关系的路由器之间已经完成了数据库同步的工作,它们的链路状态数据库已经一致。

 

 

通过以上我们可以看看,对于OSPF协议来说,hello 数据包的信息在建立neighbor、adjacency

关系和维持这种关系时期着决定性的作用,所以相对EIGRP来说,hello time和holdown time就至关重要了,想象一下,如果hello time和holdown time不一致,一方OSPF路由器向另一方OSPF路由器请求建立neighbor关系时,会出现什么状况???
 
 
 TOP
 
 

发短消息
加为好友
野仔 当前离线

帖子34830 主题1 精华0 积分23711 金币23711  贡献17924  阅读权限30 在线时间0 小时 注册时间2010-1-7 最后登录2010-1-7  
IT高级经理

 

积分23711 金币23711  在线时间0 小时 注册时间2010-1-7 最后登录2010-1-7  报纸
 野仔发表于 2010-1-11 15:56 | 只看该作者
又查了查资料,原来EIGRP在互相建立邻接关系的时候,不是象OSPF那样需要进行确认,只要收到hello包就可以建立EIGRP的邻居了!感谢楼上的详细注释!
 
 
 TOP
 
 

发短消息
加为好友
liulangren 当前离线

帖子34485 主题0 精华0 积分23649 金币23649  贡献17590  阅读权限30 在线时间0 小时 注册时间2010-1-6 最后登录2010-1-6  
IT高级经理

 

积分23649 金币23649  在线时间0 小时 注册时间2010-1-6 最后登录2010-1-6  地板
 liulangren发表于 2010-1-11 16:35 | 只看该作者
OSPF的HELLO包中,很多东西是要匹配的。
 
 
 TOP
 
 

发短消息
加为好友
叶哥哥 当前离线

帖子34541 主题1 精华0 积分23543 金币23543  贡献17699  阅读权限30 在线时间0 小时 注册时间2010-1-6 最后登录2010-1-6  
IT高级经理

 

积分23543 金币23543  在线时间0 小时 注册时间2010-1-6 最后登录2010-1-6  7#
 叶哥哥发表于 2010-1-11 17:14 | 只看该作者
两者建立邻居的目的是不同的eigrp始终是DV算法的路由协议,之所以建立邻居关系,是因为她的算法必须要求她在极其短的时间内,对相邻的路由器进行确认,和进行可靠的路由传送,所以就有了5秒的hello和RTP机制,而且她的邻居机制很强,不需要匹配两边的hold time,要收到hello包就可以建立EIGRP的邻居了,但同时也意味着排错比链路协议困难,因为会出现一边已经建立邻居,一边却没有的现象,ospf和isis的邻居建立关系虽然严格要求匹配,但易于排错,假如eigrp不是DV协议的话会是一种很完美的路由协议(个人觉得)
 

From: IT技术论坛(http://bbs.itjsj.com/)
Link:http://bbs.itjsj.com/redirect.php?fid=107&tid=39661&goto=nextnewset