首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 计算机考试 > 认证考试 > 思科认证 >

Cisco路由技术辅导二--rip和ospf路由循环问题(1)

2013-01-01 
rip和ospf路由循环问题

  链路状态路由协议在共享路由信息之前必须先建立逻辑连接--邻居关系。

  当邻居关系建立完成后,路由器之间开始发送LSA,术语"泛洪"可以看出这些LSA将会被通告给整个网络中所有的邻居路由器,路由器保存接收到的LSA, 并将其拷贝发给其他路由器,但是除了发送该LSA的路由器外(水平分割)。

  在网络拓扑发生改变时,LSA几乎是立即被转发,而距离矢量路由协议在发送路由更新之前先运行算法并更新自身路由表,连触发更新也是如此,所以这里就是链 路状态路由协议鱿于距离矢量的原因之一

  泛洪扩散是链路状态路由协议中比较复杂的一部分。我们采用了很多种方法来使泛洪扩散更加可靠,单播和组播地址,校验和以及主动确认机制等等,有两个过程对 泛洪扩散是极其重要的:排序和老化

  大家想象一下,当一个运行链路状态协议的网络中所有路由器都收到了所有的LSA,这个时候,LSA的泛洪扩散必须停止下来!如果不那样的话,LSA将继续 在网络中扩散下去,会对网络造成拥塞甚至是无法通信。LSA报文是被封装在IP包内的,那么大家都知道TTL值,假设泛洪扩散仅仅依赖于TTL值的话,那 么只能依赖到TTL超时,但是直到LSA超时为止,TTL几乎不能有效的允许LSA继续在网络中扩散。

  假设在网络中,某路由器A后的网络状态发生改变,那么路由器A将会第一时间发现这一状况,并构建LSA发送出去,它会向所有的邻居发送相同内容的LSA --完全一样的内容,LSA拷贝。在每个拷贝中都有一个序列号字段,它们的序列号都是一致的!这个序列号会连同LSA的其他部分一同被保存在拓扑数据库 中。

  每台收到该LSA的路由器都会拿自己的拓扑数据库中的信息与该LSA的序列号进行比较,如果发现自己已有的序列号和刚收到的LSA的序列号相同,那么路由 器将丢弃这些信息,注意,这里是丢弃,而不是转发。但是如果其他内容相同,但是自己数据库中的相应条目序列号要比刚收到的LSA的小,那么路由器将接收新 的LSA信息,并更新自己的序列号,而且还会泛洪该LSA.按照这种方式,当所有的路由器都收到LSA的拷贝时候,泛洪将停止。

  因为序列号是存放LSA的一个固定字段内的,所以它的长度有一定的上限,如果当序列号达到了上界会发生什么情况呢?

  1、第一种解决办法,就是给出一个非常长的序列号空间,而且是假定无法到达该上界。例如,我们采用32位长的字段。如果从0开始计算的话,将会有 4294967296个可用的序列号。非常的长。但是,这个世界无奇不有!虽然这个序列号空间非常的长,如果路由器10秒发一次新的LSA,也需要用 1361年才能用完,但是,在这种情况下故障依然会发生!如果一台路由器的序列号即将被用完,那么新的序列号将从哪一位开始编号呢?如果从0开始的话,那 么其他的路由器的序列号都已经到达了顶点,相比0来说,它们会做出一个选择--丢弃0序列号的LSA,因为它们会认为0比本身的序列号更老!那怎么办呢? 如果我们路由器在序列号到达顶点时全部停止,并且等待LSA在所有的数据库中老化死亡。然后全部重新开始采用0序列号。但是如果老化时间很长,比如在一个 小时或者更长,那么这种办法将毫无吸引力!

  那么对于此,有一个更好的解决办法:当一台新启动的路由器加入网络后,如果它想其他路由器发送的LSA序列号比邻居保存的序列号要小,那么邻居将把自己拓扑数据库的LSA和序列号发给它,这个路由器就由此可知自己启动前的序列号,并做出相应调整。

  但是又有问题:如果该路由器发现自己启动前的序列号已经接近序列号空间上界,这时,该路由器的协议进程将重新启动……这样的话就会再次进入一个恶性循环中。

热点排行