编程世界 - 计算机爱好者和编程爱好者的天堂!

编程世界

当前位置: 主页 > CISCO > 网络协议 > OSPF >

OSPF路由器完全邻接关系的建立详细过程

时间:2010-05-01 11:33来源:编程世界 整理 作者:编程世界 点击:
运行OSPF协议的路由器,如果你想正常运转的话,那么就得和其他的路由器建立完全邻接的关系。因为这种状态下,同一个区域中的所 有的路由器的LSDB都是完全同步的、一致的。呵呵、、、其实呢,应该反过来说,当同一个区域中的所有的路由器的LSDB的完全同步、一致的情况 下,OSPF路由器才算是达到了这个完全邻接的状态! 有这么几个过程: OSPF 处于 down 状态---- Init状态----- 双向(twoway)状态----- 邻接状态-- 预启动( exstart )状态 ------ 交换(excha

运行OSPF协议的路由器,如果你想正常运转的话,那么就得和其他的路由器建立完全邻接的关系。因为这种状态下,同一个区域中的所 有的路由器的LSDB都是完全同步的、一致的。呵呵、、、其实呢,应该反过来说,当同一个区域中的所有的路由器的LSDB的完全同步、一致的情况 下,OSPF路由器才算是达到了这个完全邻接的状态!

    有这么几个过程:

    OSPF 处于 down 状态----à Init状态-----à 双向(two—way)状态-----à 邻接状态--à 预启动( exstart )状态 ------à 交换(exchange )状态----à 完全( full )邻接状态!

    当配置了OSPF的路由器刚刚启动的时候,这个协议还是 处于down的状态的,为什么呢?因为还没有其他的路由器和他交换信息 啊。所以他接下来要做的就是通过所有的OSPF接口向外发送HELLO分组,并且分组的目标地址是224.0.0.5 (这个地址代表的是哪些路由器呢?我认识吧,他代表的是与发送HELLO分组的路由器直接相连的那些路由器,就是指的那些直连路由器。并且在这里需要说明 的是,HELLO分组不会被路由,这个HELLO分组的行程只有一跳。那我们看到的“HELLO分组在整个区域中的多个路由器之间进行扩展”又该如何解释 呢?HELLO分组在同一个区域中的多个路由器之间进行扩展,运用的不是路由功能,而是一个路由器发送这个HELLO分组到了直接相连的所有的路由器后, 这些路由器就复制一个副本,并且将自己的信息添加进去后,就还是运用目标地址为224.0.0.5来分发这个HELLO分组到与自己直接相连的各个路由器 上。就这样一直下去,以此类推!)

    所有的直连OSPF路由器接收到这个路由器发送来的HELLO分组后,就将这个路由器加入到邻居列表中。这就是Init状态!(这里说的这个“邻居列表” 说的是HELLO分组中的数据部分。如果不理解的话,可以去看看5种类型的OSPF分组的格式)

    所有的这些收到HELLO分组的路由器,都会向发送这个HELLO分组的路由器发送一个单播应答分组;其中包含着自己的信息(因为人家这个路由器也不是死 的啊,人家也同时在进行这个过程啊,人家也有自己的一些邻居啊),这个发回去的应答分组中的“邻居列表”中自然是包含那个开始发送这个HELLO分组的路 由器了。现在这个应答分组就是返回给他的。

    原来那个路由器接收到这个应答分组后,先看看这个邻居列表中是否包含自己。如果包含自己的话,就说明一个问题:即对方已经知道我的存在了。并且接下来就将 这个HELLO分组中带来的那些邻居表中包含的路由器ID加入到自己的LSDB中。这样一来呢,这些路由器就建立了双向( two-way )状态。到此为止,所有的路由器之间都建立了双向状态,即路由ID彼此出现在对方的邻居列表中;

    接下来,要看看网络类型,确定下是否有必要进行DR与BDR的选举。如果这个网络属于广播类型的网络(如以太网),那么就需要进行选举。具体的选举过程可 以自己去查阅相关的资料。选择了DR与BDR后,那么网络中的路由器都只与这种身份的路由器建立双向邻接关系,然后路由器之间才能进行交换链路状态信息。

    注:当一个路由器加入到已经有DR与BDR的广播网络时,将同所有的路由器(包括DR、BDR、DROTHER)建立双向状态,但是只与DR与BDR建立 双向邻接关系!并且我们需要知道的是,网络中的所有的路由器都会定期的进行HELLO包的交换,以确保通信不中断。默认的时间间隔是10S。这个 HELLO分组中包含DR、BDR与一个路由器列表,其实他们都是邻居,也可以说是已经相互建立了双向状态的路由器。

    还想来分析下这个“双向状态”与“邻接”状态的不同之处:

    双向状态:这个状态下的路由器之间定期进行交换的是HELLO分组,通过这个HELLO分组可以学习到的是所有可能存在的邻居。这个定期的交换,指的是 10S一次,并且这个对象说的是同一个区域中的所有的路由器,他们相互之间都会定期的进行这个动作,而不是某些具备特定条件的路由器才进行定期的交换!

    邻接状态:这种状态是在“双向状态”状态下的一种提升。且,这种状态下进行交换的已经不是HELLO分组了,而是LSU了。并且,这种动作并不是定期的, 而是触发式的,即只要有链路状态的改变,就会进行相应的LSU的建立、发送。并且这个动作也不是发生在同一个区域中的所有路由器之间了。而是发生具有特定 身份的路由器之间的。即发生在一个普通的路由器(DROTHER)与一个特殊角色路由器(DR/BDR)之间。 (责任编辑:编程世界)

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
栏目列表
推荐内容