OSPF 邻居路由器之间之所以要建立邻接关系,是为了相互交换路由信息。在广播网络环境中,并非每台邻居路由器之间都要建立“齐备的” OSPF 邻接关系。OSPF邻居路由器之间会通过 Hello协议(互发 Hello 数据包),来建立和维持邻接关系。

路由器会从所有参与OSPF进程的接口定期外发Hello数据包。当本路由器(的Router-ID)被邻居路由器列入其Hello数据包的邻居路由器字段时,则表明建立起了双向( two-way)通信。在广播和NBMA网络环境中,OSPF路由器之间还会利用Hello数据包来选举DR/BDR。

与邻居路由器建立起 two-way通信(关系)之后,本 OSPF路由器会做出是否与其建立邻接关系的决定。建不建立邻接关系,则要视邻居路由器的状态和 OSPF 网络类型而定。若(用来连接OSPF邻居关系的路由器接口的)OSPF网络类型为 broadcast或nonbroadcast,则OSPF路由器只会跟DR 及 BDR建立邻接关系。而若OSPF网络类型为其他任意类型,则OSPF邻居路由器之间会两两建立起OSPF邻接关系。

完成数据库的同步,是建立OSPF邻接关系的第一步。为此,每台路由器都会互发DBD数据包,包中的内容是对路由器本身所掌握的链路状态数据库信息的简要描述。也就是说,OSPF邻居路由器之间只会交换LSA包头。在数据库的交换过程中,还会发生“主/从”路由器的选举。每台路由器会对自己在 DBD交换过程中收到的LSA包头进行记录。在DBD交换的最后阶段,OSPF路由器会发送LSR数据包,向邻居路由器请求相关LSA,这些LSA的包头则在DBD交换过程中获知。邻居路由器会回复以LSU数据包,其中会包含其所请求的LSA的完整内容。收到LSU数据包之后,OSPF路由器会发送 LSack数据包进行确认。至此,OSPF邻居双方将自己所掌握的数据库信息相互交换完毕,邻接关系也将进入Full状态。

OSPF路由器可与邻居路由器维系多种邻居状态,如下所列:

· Down状态;

· Attempt状态;

· Init状态;

· 2-way状态;

· Exstart状态;

· Exchange状态;

· Loading状态;

· Full状态。

OSPF Down状态

如图所示,R1和R2都运行OSPF。邻居状态显示为Down状态,表明OSPF路由器尚未从邻居路由器收到任何OSPF协议数据包。

OSPF Attempt状态

只有在NBMA网络环境中,才会出现Attempt状态。若一台 OSPF路由器将其邻居路由器显示为Attempt状态,则表示未从该邻居路由器收到任何OSPF协议数据包,但自己已“尽其所能”地(serious effort)“联络”过该邻居路由器。“尽其所能”意谓:此OSPF路由器会定期(按Hello数据包中Hello interval字段所指明的时间值)连续发出Hello数据包,来“联络”邻居路由器。如图所示,R1发出了Hello数据包,表明自己既未发现其他路由器,也不知DR何在。

OSPF Init状态

Init状态表示有一方收到了Hello数据包。如图所示,R1发出了Hello数据包。收到此Hello数据包之后,由于R2在其所含邻居路由器字段中未发现自己的Router-ID,因此邻居双方会步入单向(接收)状态。

OSPF 2-way状态

当OSPF邻居双方都收到了对方发出的Hello数据包之后,就会建立起2-way状态,这也就拉开了OSPF邻接关系建立的序幕。在2-way状态的建立过程中,会选举出了DR和BDR。如图所示,R2所发Hello数据包的邻居路由器字段中包含了R1 的Router-ID,收到此包之后,R1就知道R2已经收到了自己先前发出的Hello数据包。由于R2的Router-ID更高,因此会在此Hello数据包的指定路由器字段中填入自己的Router-ID,表明自己的DR身份。

OSPF Exstart状态

在此状态下,OSPF邻居双方会发起数据库同步过程。此外,还会选举出主/从路由器。为DBD交换所用的第一个序列号也会在Exstart状态下确定。如图所示,R1和R2都发出了自己的第一个DBD数据包。Router-ID最高的路由器被推举成为主路由器。本例,R2的Router-ID更高,故成为主路由器。

OSPF Exchange状态

在Exchange状态下,OSPF邻居双方会互发描述本机所持完整链路状态数据库的DBD数据包。每个DBD数据包都必须明确得到确认。只允许存在一个未经确认的(在途)DBD数据包。在此状态下,OSPF路由器还会发出LSR数据包,来请求新的LSA实例。如图所示为OSPF邻居双方在Exchange状态下的“所作所为”。由下图可知,R1和R2正交换各自的链路状态数据库信息。此外,还可获知R2 将其发出的最后一个DBD数据包中的M位置0(图中最后一个箭头),表明“主”路由器已无更多DBD数据包要发。在此情形, R1(“从”路由器)会发送其余的DD数据包,发完之后,也会顺带在最后一个DD数据包中将M位置0。此时,便标志着OSPF邻居双方已经交换完描述各自链路状态数据库的完整信息了。

OSPF Loading状态

在Loading状态下,OSPF邻居双方会互发LSR数据包,以请求在Exchange状态下(由对方通过DBD数据包通告,但自己)未曾收到的LSA的最新实例。由图可知,R1正处于Loading状态,且已发出LSR数据包,要求R2向其发出某条 LSA的最新实例。

OSPF Full状态

此状态表示OSPF邻居双方已经交换了完整的信息。如图所示,R1和R2已经交换完了各自的链路状态数据库信息,且同处于Full状态。

OSPF是一种链路状态路由协议。OSPF协议数据包分5种—Hello数据包、DBD数据包、链路状态请求数据包、链路状态更新数据包和链路状态确认数据包。在OSPF邻居双方建立邻接关系的过程中,会随邻居关系状态的变迁来发送上述数据包。OSPF LSA的类型也有数种,包括:路由器 LSA、网络 LSA、汇总LSA、ASBR汇总LSA、外部LSA和NSSA LSA 等。OSPF支持多种区域类型,包括普通区域、stub区域、 totally stub区域、 NSSA区域以及totally NSSA区域。可根据网络设计需求来构建上述区域。stub区域受到的限制最多,只能依仗ABR以汇总LSA形式通告的默认路由,来转发目的网络在本区域之外的流量。

OSPF 可在多种介质上运行,包括:多路访问介质、点到点介质、NBMA介质和按需电路。在部分互连的NBMA网络环境中,推荐使用的OSPF网络类型为point-to-multipoint。

当介质不支持多播时,才建议使用 OSPF point-to-multipoint nonbroadcast网络类型。在此情形,不会进行 DR和 BDR的选举。

OSPF邻居双方在建立起邻接关系之前,要经历多个阶段。邻居关系为Full状态则表明邻接关系建立完毕,邻居路由器之间也已交换完了各自的链路状态数据库。广播介质网络环境中,OSPF路由器只会与DR和BDR建立邻接关系,与其他所有邻居路由器维系2-way状态。这是为了简化网络中的 OSPF邻接关系,降低LSA泛洪流量。

关注公众号:网络技术平台,回复 “ 资料 ” 获取视频、培训教程、实验手册、电子书。

OSPF邻居状态详解相关推荐

  1. OSPF工作机制——OSPF邻居状态机详解(附图)

    目录 一.七种OSPF邻居状态机: 二.图解:​ 一.七种OSPF邻居状态机: init--初始状态:此状态在接受和发送OSPF--hello包,hello包目的IP地址为224.0.0.5,IP头部 ...

  2. 【IPv6】IPv6 NDP邻居状态详解

    NDP 邻居状态 任意两个通信的主机在通信之前,先要建立邻居.(省的去查找arp了) 因为接下来的文字会很乱,排版费劲,所以用这个来. 未完成(Incomplete),可达(Reachable),陈旧 ...

  3. 《OSPF和IS-IS详解》一第6章 链路状态数据库同步6.1 OSPF数据库同步

    本节书摘来自异步社区<OSPF和IS-IS详解>一书中的第6章,第6.1节,作者 [美]Jeff Doyle,更多章节内容可以访问云栖社区"异步社区"公众号查看 第6章 ...

  4. donotage标记、MTU及MTU不匹配问题、OSPF邻居状态记录

    目录 一. donotage标记 二.MTU详解 (1)-- MTU简介 (2)--图解 (3)--!!!邻居关系起不来原因: (4)-- 解决: 三.两种特殊的邻居关系: 四.OSPF邻居状态的记录 ...

  5. 《OSPF和IS-IS详解》

    <OSPF和IS-IS详解> 基本信息 作者: (美)Jeff Doyle 译者: 孙余强 出版社:人民邮电出版社 ISBN:9787115347886 上架时间:2014-4-25 出版 ...

  6. 《OSPF和IS-IS详解》一1.5 ARPANET内的路由选择

    本节书摘来异步社区<OSPF和IS-IS详解>一书中的第1章,第1.5节,作者: [美]Jeff Doyle 译者: 孙余强 责编: 傅道坤,更多章节内容可以访问云栖社区"异步社 ...

  7. 《OSPF和IS-IS详解》一6.2 IS-IS数据库同步

    本节书摘来异步社区<OSPF和IS-IS详解>一书中的第6章,第6.2节,作者: [美]Jeff Doyle 译者: 孙余强 责编: 傅道坤,更多章节内容可以访问云栖社区"异步社 ...

  8. 《OSPF和IS-IS详解》一6.1 OSPF数据库同步

    本节书摘来异步社区<OSPF和IS-IS详解>一书中的第6章,第6.1节,作者: [美]Jeff Doyle 译者: 孙余强 责编: 傅道坤,更多章节内容可以访问云栖社区"异步社 ...

  9. 《OSPF和IS-IS详解》一1.7 独立且平等

    本节书摘来异步社区<OSPF和IS-IS详解>一书中的第1章,第1.7节,作者: [美]Jeff Doyle 译者: 孙余强 责编: 傅道坤,更多章节内容可以访问云栖社区"异步社 ...

最新文章

  1. Substance Painter实时角色制作视频教程
  2. Spring自学教程-ssh整合(六)
  3. xml python gb2312_使用Python处理XML格式数据的方法介绍
  4. android eclipse 按钮事件,android eclipse按钮的OnClick事件 - java
  5. 用VC写Assembly代码(6)--附录1[堆和栈的区别]
  6. Win8Metro(C#)数字图像处理--2.18图像平移变换
  7. [UVA 11374] Airport Express
  8. [日常摸鱼]Luogu2878 [USACO07JAN]Protecting the Flowers
  9. 配电室环境监测系统,智能配电室环境监控系统完整方案
  10. 电子词典系统vc++_《VC++ 编程词典(珍藏版)》
  11. Django之Model操作之select_related和prefetch_related【ORM篇八】
  12. tesserocr的安装
  13. Spring Cloud Alibaba Nacos Config - - - >多配置文件/共享配置
  14. Linux常用操作命令和命令行编辑快捷键
  15. 爆款小程序是怎么炼成的
  16. ROS中的roslaunch命令和launch文件(ROS入门学习笔记四)
  17. 实用科普|推荐收藏:我的车,到底该选什么功率充电桩?
  18. Android Zygote进程启动过程
  19. windows下实现定时任务重启多台tomcat
  20. 模型优化与tensorflow

热门文章

  1. 【汤姆猫的实现 Objective-C语言】
  2. 完整版 :数据分析师的一天
  3. Stereo Matching文献笔记之(六):浅谈置信度传播算法(Belief-Propagation)在立体匹配中的应用~
  4. BERT in tweet_sentiment_extraction
  5. 《uni-app》一个非canvas的飞机对战小游戏实现-碰撞检测的实现
  6. 如何使用powertoys全盘搜索文件
  7. PS内存不足恰当解决方法
  8. linux 五笔中文输入法,Linux下如何使用五笔和拼音,区位输入法
  9. 《炬丰科技-半导体工艺》 蓝宝石上的非极性氮化镓紫外光电探测器
  10. 独立成分分析 与 功能连接之间的关联尝试 by 张高燕