学习笔记——动态路由——OSPF(OSPF状态机、DR\BDR选举)

news2025/1/17 0:56:48

七、OSPF状态机、DR\BDR选举

1、OSPF的8种状态机

 

   

OSPF在邻居与邻接建立的过程中会经过多个状态机的变化,状态机的出现不仅能让我们了解OSPF建立过程,也能在OSPF出现故障的时候通过状态机的状态来粗略判断问题的所在。

(1)邻居建立状态变化过程

1、Down状态:这是邻居的初始状态表示没有从邻居收到任何信息

启用了OSPF功能的链路默认成为down状态,并开始向外发送Hello报文(基于网络类型的不同发送方式也会不同,广播类型Hello为组播发送)报文发出之后,从Down状态转Init状态。

在NBMA网络上,此状态下仍然可以向静态配置的邻居发送Hello报文,发送间隔为Poll Interval,通常和Router Dead Interval间隔相同。

注意:OSPF的每条链路都会经历状态机,每条OSPF链路的状态机互不影响

启用OSPF的链路从Down状态开始,向外发送Hello报文后转为Init状态。

2、Init状态:在此状态下,路由器已经从邻居收到了Hello报文。

在Init状态下的链路,如果接收到传来的Hello包中含有自己的router-id,则表示对端已经发现了自己,此时链路就能成为2-way状态了。

3、Attempt状态(NBMA)

该状态仅发生在NBMA网络中,表明该链路在发送Hello报文之后,到达了失效时间(dead interval)仍然没有收到对端回复Hello报文。如果Router Dead Interval间隔内未收到邻居的Hello报文,则转为Down状态。

处于该状态下的链路仍然会向对端发送Hello报文。

4、2-way状态:在此状态下,双向通信已经建立,但是没有与邻居建立邻接关系。这是建立邻接关系以前的最高级状态。

其它链路类型在成为2-way之后,发送第一个空DD报文后,进入Exstart状态。(因为在其它网络类型中,DD报文通过单播发送,无法确认谁先发送DD报文,同时为了保障DD的可靠传递,需要进行选举主机设备)

如果链路为P2P类型,则直接进入Exchange状态进行交互DD报文(因为p2p类型链路所有报文交互都是组播,同时p2p是点到点网络,完全不需要担心LSA传递过程中丢失)

在邻居建立过程中,为了提高OSPF网络收敛的速度。在广播网络中建立邻居时,需要同时进行DR与BDR的选举。(2-way建立之前或之后就已经选举出DR与BDR了)

选举DR与BDR主要为了解决同网络中,报文信息相互发送造成网络中流量过大的问题。通过选举DR与BDR实现流量的统一整理与发送,减少网络中的OSPF报文过多,同时提高收敛的速度。

(2)邻接建立状态变化过程

ExStart:这是形成邻接关系的第一个步骤,邻居状态变成此状态以后,路由器开始向邻居发送DD报文,主从关系是在此状态下形成的。初始DD序列号是在此状态下决定的,在此状态下发送的DD报文不包含链路状态描述。

Exchange:此状态下路由器相互发送包含链路状态信息摘要的DD报文描述本地LSDB的内容

Loading:相互发送LS Request报文请求LSA,发送LS Update通告LSA

Full:两台路由器的LSDB已经同步

(3)OSPF的3种稳定状态

什么是稳定的状态?即链路状态会长时间所处的状态机。

在OSPF状态机中,有三个稳定的状态机状态:Down、2-way、Full

Down:启用OSPF功能的链路默认所处状态机 或者 邻居失效后的状态。

2-way:在交互了Hello报文建立邻居之后所处的状态,DR-Other与DR-Other之间所处的状态。

Full:在邻接建立成功之后的状态,也是OSPF的最终状态。

2、DR、BDR

(1)DR、BDR、DR-Other介绍

每一个含有至少两个路由器的广播型网络和NBMA网络都有一个DR和BDR。

DR和BDR可以减少路由器之间的邻接关系的数量,从而减少链路状态信息以及路由信息的交换次数,这样可以节省带宽,降低对路由器处理能力的压力。同时保证网络的稳定性和可靠性。

DR负责收集本地链路信息并分发给其他邻居路由器,BDR备份DR的信息,并在DR故障时自动接替其角色,从而维护网络拓扑信息的更新和分发。

为优化MA网络中OSPF邻接关系,OSPF指定了三种OSPF路由器身份:

1)DR(Designated Router,指定路由器):一个广播性、多接入网络中的指定路由器(DR)。OSPF协议启动后开始选举而来。

DR是某个网段中的概念,是针对路由器的接口而言的。某台路由器在一个接口上可能是DR,在另一个接口上有可能是BDR,或者是DR Other。

DR并不一定就是路由器优先级最高的路由器接口;同理,BDR也并不一定就是路由器优先级次高的路由器接口。

DR特点和作用

1)在每个多播或非广播多点接入(NBMA)网络中,选举一个DR。BMA网络中必须有DR,可以没有BDR。

2)DR负责与其他路由器交换Hello报文和链路状态信息(LSA)。

3)DR汇总其他路由器的链路状态信息,并将其反映在区域内的LSDB中。

4)DR与所有人建立FULL邻接关系。

5)DR能够减少链路状态信息更新的洪泛,提高网络的收敛速度。

6)DR和BDR之间建立邻居关系,DR负责向BDR和其他路由器发送链路状态信息

2)BDR(Backup Designated Router,备份指定路由器):是作为DR的备份存在的路由器。BDR接收并转发来自其他路由器的链路状态信息。是由OSPF启动后选举而来。

BDR特点和作用

1)在每个多播或非广播多点接入(NBMA)网络中,选举一个BDR。

2)BDR的功能与DR类似,但仅在DR不可用时才接替其角色。

3)BDR负责与其他路由器交换Hello报文和链路状态信息(LSA)。

4)BDR仅向其他路由器发送链路状态信息,不向其他BDR发送信息。

5)BDR能够快速接管DR的角色,并确保网络中的DR角色不会出现间断。

6)BDR只向其他路由器发送链路状态信息,不向其他BDR发送信息。

7)DR和BDR之间维护特殊的邻居关系,确保在DR发生故障时BDR可以接替其角色。

8)BDR会与所有人建立FULL的邻接关系

3)非指定/备份指定路由器(Designated Router Other,DR-Other)没有成为DR与BDR设备的其它OSPF设备称为DR-Other设备。

DR-Other特点和作用

1)DR-Other之间只会建立2-WAY邻居关系。

2)DRother之间不会建立全毗邻的OSPF邻接关系,双方停滞在2-way状态。

(2)DR、BDR、DR-Other的关系

    

每条MA/NBMA链路中,都会独立选举DR、BDR。BDR会与所有人建立FULL的邻接关系

BDR是DR备份,DR失效之后,BDR成为DR,同时也将重新选举新的BDR。

DR与BDR没有抢占性,当网络中出现新的更优先的路由器,也不会成为抢占现有网络中的DR身份。

接口优先级为0将不参与选举,如果此时为DR/BDR将立马失效,成为DRother。

区别:

1)DR和BDR选举发生在2-WAY状态。作用:保证一个广播域中减少无用的泛洪的OSPF报文的流量。

2)主从关系选举发生在exstart状态。作用:保证数据库同步时的可靠及有序。

 主题

描述

DR(Designated Router)

被选举为网络中某一段子网的代表,负贵与其他路由器交换链路状态信息并汇总网络拓扑信息。

BDR(Backup Designated Router)

作为DR的备份,接收并转发链路状态信息,当DR不可用时,BDR将接替其角色并成为新的DR。

DR和BDR的选举过程

通过Hello报文交换和优先级比较来选举DR和BDR,优先级高的路由器将成为DR,第二高的则成为BDR。

DR和BDR的特点

DR和BDR之间建立邻居关系,DR负责向BDR和其他路由器发送链路状态信息,BDR只向其他路由器发送链路状态信息。

3、DR和BDR选举

(1)为什么选举DR和BDR

在一个共享的广播网络多台路由器建立OSPF,有可能会产生大量的OSPF邻居。在这些大量的OSPF邻居发送大量的OSPF报文,造成其他路由器接收到大量的OSPF重复报文,浪费带宽资源和设备CPU计算资源。

通过DR和BDR的特点和选举过程,OSPF网络能够减少链路状态信息的洪泛和更新开销,提高网络的性能和可靠性。

选举DR与BDR主要为了解决同网络中,报文信息相互发送造成网络中流量过大的问题。通过选举DR与BDR实现流量的统一整理与发送,减少网络中的OSPF报文过多,同时提高收敛的速度。

        

如上左图:当DR和BDR选举完成之后,R4将路由通告给R1和R2,然而R2作为BDR,此时他知道DR还在(不会去代替DR,去通告其他DRother),所以R2收到路由存放在本地之后不会通告出去,而是由BR通告给R3。此时减少了重复通告,优化设备性能。

(2)DR和BDR选举过程

DR/BDR选举过程的流程图:

在邻居建立过程中,为了提高OSPF网络收敛的速度。

在P2P网络及P2MP网络上,具有邻居关系的路由器之间会进一步建立邻接关系。

在广播网络中建立邻居时,需要同时进行DR与BDR的选举。(2-way建立之前或之后就已经选举出DR与BDR了)DR和BDR的选举过程是通过Hello报文的交换和优先级比较来实现的

在广播型及NBMA网络上,DR-Other路由器之间只能建立邻居关系不能建立邻接关系DR-Other路由器与DR/BDR路由器之间会建立邻接关系,DR与BDR之间也会建立邻接关系。

注意:

1、优选广播域接口优先级大的默认接口优先级为1

2、优先级相同比较router-id大的成为DR,次BDR、其它DRother。

3、在配置OSPF的时候,第一台配置之后的40秒内同一个广播域中如果没有遇到比自己更优先的设备自己将成为DR,往后的其它设备将是这个广播网络中的BDR与DRother。

所以在配置OSPF的时候,先配置实际DR的设备,其它再配置BDR、DRother设备,这样能有效保障初始的正常选举。

4、当然也能通过reset ospf process的方式将的身份有误的OSPF设备进程注销,从而进行重新选举,但在实际环境中谨慎使用。

(3)DR和BDR选举方法

1)自动选举DR和BDR   网段上Router ID最大的路由器将被选举为DR,第二大的将被选为BDR.

2)手动选举DR和BDR   (上右图)

在MA网络中,才会涉及DR和BDR的选举。DR是基于链路的,基于接口的,而不是基于路由器。

1)接口的DR优先级越大越优先,范围为0~255,数值越大,优先级越高默认为1

display ospf interface all    //查看接口优先级

ip ospf priority 2          //修改接口优先级

2)接口的DR如果优先级相同,则需要比较Router-ID,Router-ID越大越优先。

如果没有Router-ID则会以环回接口为Router-ID。

如果没有环回接口则会选择最大IP的物理接口为Router-ID。

3)如果路由器的优先级被人为修改为0,他将不参与DR和BDR的选举。DR没有有抢占性。

4)DR和BDR的选举过程是先选BDR再选DR

在邻居发现完成之后,路由器会根据网段类型进行DR选举。在广播和NBMA网络上,路由器会根据参与选举的每个接口的优先级进行DR选举。

在P2P或P2MP网络中完全不存在DR与BDR的概念,DR与BDR只适用于Broadcast网络或NBMA网络。不同网络类型中的DR与BDR的选举

网络类型

常见链路层协议

是否选举DR

是否和邻居建立邻接关系

Point-to-point

PPP链路;HDLC链路

Broadcast/BMA

以太网链路

DR与BDR、DRother建立邻接关系

DRother之间只建立邻居关

NBMA

帧中继链路

P2MP

需手工指定

4、DR\BDR选举实验

(1)选举过程示例

配置先后顺序不一致,如何保证按照优先级及RID的方式选举DR/BDR

1.最开始,所有设备都认为自己是DRother,[AR1,AR2,AR3,AR4]DRother的集合,此时如果DR及BDR为空,此时选举BDR。

2.此时AR4成为BDR[AR4]BDR的集合,[AR1,AR2,AR3]DRother.此时如果DR为空,从BDR选出一个DR.

3.此时AR4成为DR[AR4]DR的集合,[AR1,AR2,AR3]为DRother的集合,BDR为空。

4.[AR1,AR2,AR3]DRother的集合,此时如果BDR为空,此时选举BDR。

5.[AR3]成为BDR,[AR4]为DR,[AR1/AR2]为DRother,至此选举过程完成。

如果是不同的系统加入,此时DR的集合中选举DR,BDR的集合中选举BDR。=优先级/RID

Area 0.0.0.0 interface 192.168.1.4(GigabitEthernet0/0/0)'s neighbors

区域0                            G0/0/0[192.168.1.4]的邻居信息

Router ID:1.1.1.1           Address:192.168.1.1

[建立邻接关系的设备的RID]      [对端设备的接口Ip地址]

State:Full       Mode:Nbr is Slave Priority:1

[邻接是个从]     [接口的DR优先级][FULL]

DR:192.168.1.4         BDR:192.168.1.3           MTU:0

[DR的接口IP]             [BDR的接口IP]       [当前接口的MTU信息]

Dead timer due in 33 sec    [死亡时间33s]

Retrans timer interval:5    [重传时间5S]

(2)配置DR/BDR优先级(配置Router Priority)

[RTB]interface Ethernet 0/0

[RTB-Ethernet0/0]ospf dr-prlority 100

[RTB-Ethernet0/0]quit


整个华为数通学习笔记系列中,本人是以网络视频与网络文章的方式自学的,并按自己理解的方式总结了学习笔记,某些笔记段落中可能有部分文字或图片与网络中有雷同,并非抄袭。完处于学习态度,觉得这段文字更通俗易懂,融入了自己的学习笔记中。如有相关文字涉及到某个人的版权利益,可以直接联系我,我会把相关文字删除。【VX:czlingyun    暗号:CSDN】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1895140.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

搜维尔科技:Xsens实时动作捕捉,驱动人形机器人操作!

搜维尔科技:http://www.souvr.comhttp://www.souvr.com实时动作捕捉,驱动人形机器人操作! 搜维尔科技:Xsens实时动作捕捉,驱动人形机器人操作!

Vue3Echarts写关于温湿度统计的好看折线图

在项目统计界面,我们离不开对Echarts的使用,接下来是我在做项目过程中做的一个关于温湿度统计的好看折线图,统计的是温度蓝色和湿度绿色,它们还会有告警和断电,分别用橘黄色和红色区分,以下是示例&#xff…

anaconda命令大全

目录 查看所有虚拟环境查看某虚拟环境安装的包创建虚拟环境激活创建好的虚拟环境回到之前的环境删除创建的虚拟环境查看conda所在的位置、虚拟环境位置等信息conda修改虚拟环境所在的位置 查看所有虚拟环境 conda env list查看某虚拟环境安装的包 激活要查看的虚拟环境之后&a…

欢乐钓鱼大师游戏攻略:在什么地方掉称号鱼?云手机游戏辅助!

《欢乐钓鱼大师》是一款融合了休闲娱乐和策略挑战的钓鱼游戏。游戏中的各种鱼类不仅各具特色,而且钓鱼过程充满了挑战和乐趣。下面将为大家详细介绍如何在游戏中钓鱼,以及一些有效的钓鱼技巧,帮助你成为一个出色的钓鱼大师。 实用工具推荐 为…

如何计算弧线弹道的落地位置

1)如何计算弧线弹道的落地位置 2)Unity 2021 IL2CPP下使用Protobuf-net序列化报异常 3)编译问题,用Mono可以,但用IL2CPP就报错 4)Wwise的Bank在安卓上LoadBank之后,播放没有声音 这是第393篇UWA…

oracle存储结构-----逻辑存储结构(表空间、段、区、块)

文章目录 oracle存储结构图(逻辑存储物理存储)oracle逻辑存储结构图逻辑存储结构、表空间、段、区、数据块的关系:1、数据 块(block)---逻辑存储最小单位2、 数据区(extent)--存储空间分配和回收…

使用 Git Hooks 防止敏感信息泄露

欢迎关注公众号:冬瓜白 在日常开发中,我们可能会不小心将敏感信息提交到 Git。为了防止这种情况,可以利用 Git Hooks 编写一个简单的脚本,当发现提交中包含敏感词时,给出提示。 以下是一个基于 pre-commit 钩子的示例…

记录在Linux(龙蜥8.6)配置jdk环境变量不生效问题

在Linux中,将jdk解压至 /opt/soft/jdk 目录中,使用root用户配置在/etc/profile中配置环境变量并source后,使用root用户是正常的,但是切换到普通用户后提示: 这个问题是普通用户对 /opt/soft/jdk 目录无执行权限 解决&…

面向对象-封装

一.包 1.简介 当我们把所有的java类都写src下的第一层级,如果是项目中,也许会有几百个java文件。 src下的文件会很多,开发的时候不方便查找,也不方便维护如果较多的文件中有同名的,十分麻烦 模块1中有一个叫test.ja…

汇聚荣拼多多评价好不好?

汇聚荣拼多多评价好不好?在探讨电商平台的口碑时,用户评价是衡量其服务质量和商品质量的重要指标。拼多多作为国内领先的电商平台之一,其用户评价自然成为消费者选择购物平台时的参考依据。针对“汇聚荣拼多多评价好不好?”这一问题,可以从…

Pinia:Vue 2 和 Vue 3 中更好用的状态管理框架

前言 还在用Vuex? 在Vue应用程序的开发过程中,高效且易于维护的状态管理一直是开发者关注的核心问题之一。随着Vue 3的发布,状态管理领域迎来了一位新星——Pinia,它不仅为Vue 3量身打造,同时也向下兼容Vue 2,以其简…

uni-appx,实现登录功能,弹窗功能。组件之间传值

这篇文章的内容使用组合式API实现的,只有弹窗部分有选择式API的写法介绍。如果想要看其他选择式API,还请下载官方的hello-uni-appx源码进行学习,查看。想要看组合式API的写法,请查看源码 hello-uvue。 hello-uni-appx源码 相比于…

JavaSE (Java基础):面向对象(下)

8.7 多态 什么是多态? 即同一方法可以根据发送对象的不同而采用多种不同的方式。 一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多。在句话我是这样理解的: 在实例中使用方法都是根据他最开始将类实例化最左边的类型来定的&…

http数据传输确保完整性和保密性整流程方案(含源码)

往期文章回顾 【深度学习】 【深度学习】物体检测/分割/追踪/姿态估计/图像分类检测演示系统【含源码】【深度学习】YOLOV8数据标注及模型训练方法整体流程介绍及演示【深度学习】行人跌倒行为检测软件系统【深度学习】火灾检测软件系统【深度学习】吸烟行为检测软件系统【深度…

element-ui el-select选择器组件下拉框增加自定义按钮

element-ui el-select选择器组件下拉框增加自定义按钮 先看效果 原理&#xff1a;在el-select下添加禁用的el-option&#xff0c;将其value绑定为undefined&#xff0c;然后覆盖el-option禁用状态下的默认样式即可 示例代码如下&#xff1a; <template><div class…

Maxwell 数据采集工具详解

欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;欢迎订阅相关专栏&#xff1a; 欢迎关注微信公众号&#xff1a;野老杂谈 ⭐️ 全网最全IT互联网公司面试宝典&#xff1a;收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来&a…

修改头文件版本需要修改的文件

以修改ui的头文件版本为例&#xff0c;还需要同时更新 PJ10PC20240120041_c928\components\master-t5\hikauto\module\app\include PJ10PC20240120041_c928\components\master-t5\hikauto\module\app\include\dsp PJ10PC20240120041_c928\components\master-t5\hikauto\incl…

文华财经T8多空量化交易策略模型源码

//定义变量 N : 3; // 连续K线数量&#xff08;可根据需要调整&#xff09; Q : 0.05; // 止盈比例5%&#xff08;可根据需要调整&#xff09; HIGH_PRICE : REF(HIGH, 1); // 记录前根阳线的最高价 LOW_PRICE : REF(LOW, 1); // 记录前根阴线的最低价 //做多策略 REF(EV…

开发国际短剧系统的策略解析

一、明确项目目标和需求 1、功能需求&#xff1a;确定系统应具备的基本功能&#xff0c;如用户注册、登录、浏览短剧、评论、分享、个性化推荐等。 2、性能需求&#xff1a;确保系统能够承受高并发访问&#xff0c;保证视频流畅播放&#xff0c;减少卡顿和延迟。 3、跨文化传播…

Redis基础教程(四):redis键(key)

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; &#x1f49d;&#x1f49…