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

news/2025/2/26 22:17:17

运行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)之间。

上面是选举了DR、BDR,各个路由器与DR、BDR建立了双向邻接关系,此时路由器就是处于预启动(exstart)状态了。这个状态下,路由器已经做 好了发现有关互联网络的链路状态信息并建立LSDB的准备。

处于预启动状态后,DR与BDR之间建立主从关系。接下来他们就开始互相交换DBD(此时就算是进入了交换状态),这个就是5种OSPF分组中的第二种。 里面包含的是LSDB中LSA条目的摘要信息。LSA是关于链路或者网络的。摘要信息包括链路状态类型、通告LSA的路由器的IP地址、链路的成本和序列 号。当路由器收到DBD后并不是将其中的包含的内容全部的收下,而是一步一步的采取下面的步骤:
1、 首先给对方一个LSACK,来确认下已经收到了这个分组;
2、 将收到的信息同本身的LSDB中信息进行比较。如果有更新的条目的话,那么就向发送方发送一个LSR(这时候你就想了,他知道这个LSR发给谁吗?只要想 要的是什么吗?呵呵、当然知道了,因为这些信息都在发送来的LSA摘要信息中包含着呢。尤其是那个“通告LSA的路由器的地址”。)
3、 对方用LSU分组进行响应,该LSU中包含着有关被请求的条目的完整信息。同样呢,收到这个LSU分组后,也要给对方一个LSACK进行确认下!
4、 路由器将提供来的新的完整的LSA条目加入到自己的LSDB中。
彼此给对方提供所需要的全部LSA后相邻路由器就处于同步和完全的邻接状态了。
上面说的是DR与BDR之间完全邻接的这么一个过程,那么其他的互为邻接关系的路由器达到完全邻接的状态也是这么一个过程。其实说的就是DRother 与 DR之间的完全邻接过程!
那么如何来判定条目的新旧呢?通过摘要信息中的序列号字段就可以了,这个序列号是个长32位的字段,最小的一个序列号是0X80000001,最大的是 0X8FFFFFFF。当序列号越大的时候,就表示越新!

路由器想转发数据流的话,必须处于完全邻接状态。至此,区域内所有路由器的LSDB都相同。

 

文章转载至http://bbs.net527.cn   无忧网客联盟

无忧网客联盟主站

无忧linux时代


http://www.niftyadmin.cn/n/3021123.html

相关文章

计算机博弈点格棋规则,点格棋计算机博弈平台通信接口.pdf

计 算 机 与 现 代 化2016年第 3期 JISUANJIYUXIANDAIHUA 总第247期文章编号 :1006-4275(2016)03-0096-04点格棋计算机博弈平台通信接 口张利群 ,曹 杨 ,李 厦(1.辽宁石油化工大学计算机与通信工程学院,辽宁 抚顺 1130…

Cisco 3550 配置不同 vlan DHCP

Cisco 3550配置 dhcp, 网络上多有讨论,按照网上介绍的配置 一 句“IP HELPER-ADDRESS DHCP服务器地址”后,工程当中发现客户机不能从DHCP服务器获取IP地址 ,本人最近也刚好配置了3550作为 DHCP服务器中继代理,最初也曾困惑很久&…

贵州大学计算机科学与技术学院电子信息,贵州大学科技学院电子信息科学与技术专业专业介绍...

电子信息科学与技术专业培养目标培养具备电子信息科学与技术的基本理论和基本知识,受到严格的实验科学训练和科学研究的初步训练,能在电子信息科学与技术、计算机科学与技术及相关领域和行政部门从事科学研究、教学、科技开发、产品设计、生产技术和管理…

mysql 5.7配置项最详细的解释

配置样例 首先提供一个我使用的配置样例 [client] #password88888888 socket/data/var/mysql/mysql.sock [mysqld_safe] pid-file/data/var/mysql/mysqld.pid log-error /data/local/mysql-5.7.19/log/mysql-error.log [mysql] socket/data/var/mysql/mysql.sock …

国家二级计算机选择题要求,国家计算机二级选择题汇总详细

选择题 包括真题和练习第1~2题(数据库基础知识)1.某工厂生产多种产品,每种产品要使用多种零件,一种零件可能安装在多种产品上,则产品和零件之间存在着()的联系。CD.表与表之间的关联可以通过公共属性实现。16. 关系数据库管理系统支持的三种基…

特殊权限,t权限,S权限 (资源)

2019独角兽企业重金招聘Python工程师标准>>> 1、 特殊权限set_uid set命令作用主要是显示系统中已经存在的shell变量,以及设置shell变量的新变量值。使用set更改shell特性时,符号""和"-"的作用分别是打开和关闭指定的模式…

Catalyst 6000 交换机系列问题

1.Catalyst 6000系列 的背板带宽和 包转发速率各为多少? Catalyst 6500系列的背板带宽可扩展到256Gbps, 包转发速率可扩展到150Mpps; Catalyst 6000系列作为一个经济有效的解决方案可提供到32Gbps的背板带宽和15Mpps的包转发速率。 2.Cat…

angular4 html转义,Angular4绑定html内容出现警告的处理方法

前言众所周知在Web前端开发中,我们经常会遇见需要动态的将一些来自后端或者是动态拼接的HTML字符串绑定到页面DOM显示,特别是在内容管理系统(CMS:是Content Management System的缩写),这样的需求,更是遍地皆是。但是最…