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

七、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】

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

狼人杀系列

目录 杀人游戏(天黑请闭眼) (1)入门版 (2)标准版 (3)延伸版——百度百科 (3.1)引入医生和秘密警察 (3.2)引入狙击手、森林老人和…

Excel+vue+java实现批量处理功能

需求背景: 产品创建流程比较复杂,有时候需要一次性创建多至10个,所以做了Excel维护产品信息,直接导入创建的功能。能极大提高效率。 简要概括实现: 一、参考单个创建,设计创建模板,表头对应填写字段名&…

CC1利用链分析

分析版本 Commons Collections 3.1 JDK 8u65 环境配置参考JAVA安全初探(三):CC1链全分析 分析过程 我的Github主页Java反序列化学习同步更新,有简单的利用链图 首先看下CC1利用链的RCE利用点,在接口Transformer 接下来查看此接口的实现类&#xf…

GBJ406-ASEMI无人机专用整流桥GBJ406

编辑:ll GBJ406-ASEMI无人机专用整流桥GBJ406 型号:GBJ406 品牌:ASEMI 封装:GBJ-4 最大重复峰值反向电压:600V 最大正向平均整流电流(Vdss):4A 功率(Pd):中小功率 芯片个数:…

【小学期】常用基于Swing的七个静态界面

示例1:基本的带按钮和标签的界面 import javax.swing.*; import java.awt.*;public class SimpleSwingApp1 {public static void main(String[] args) {JFrame frame new JFrame("Simple Swing App 1");frame.setDefaultCloseOperation(JFrame.EXIT_ON_C…

申请免费6个月SSL证书方式和证书特点槽点

当前,HTTPS访问已成为网站标配。随着免费证书平台的不断涌现,Lets Encrypt尤为瞩目,其提供的泛域名和多域名证书申请功能,显著降低了站长和企业的经济负担。从一开始,来此加密就支持通过Lets Encrypt申请免费的域名SSL…

OpenFAST软件中linux-gnu,linux-intel,macos-gnu,vtk,windows-intel文件的作用

在OpenFAST中,5MW_Land_DLL_WTurb目录下的这五个文件夹分别有不同的用途,主要是为了支持不同操作系统和平台的编译和仿真工作。以下是每个文件夹的总结及其作用: linux-gnu 作用:包含用于GNU编译器套件(GCC&#xff09…

【高性能服务器】单进程服务器

🔥博客主页: 我要成为C领域大神🎥系列专栏:【C核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞👍收藏⭐评论✍️ 本博客致力于知识分享,与更多的人进行学习交流 ​ 单进程服务器 …

基于Java的地方废物回收机构管理系统

你好呀,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言:Java 数据库:MySQL 技术:Java技术,MIS的总体思想,MySQL数据库 工具:Eclipse,…

落石滑坡监测报警系统:创新保障高速公路安全

​ ​​在现代交通建设中,高速公路的安全性和稳定性至关重要。特别是易发生落石区域,如何有效预防和应对落石滑坡带来的事故成为了一项关键性挑战。为此,落石滑坡监测报警系统应运而生,它通过先进的技术手段,为高速…

计算机网络微课堂(湖科大教书匠)TCP部分

计算机网络微课堂(湖科大教书匠)TCP部分 【计算机网络微课堂(有字幕无背景音乐版)】 TCP的流量控制 一般来说,我们希望数据传输得更快一些。但如果发送方把数据发送得过快,接收方就可能来不及接收&#…

win11 (将星x17promax) 安装WSL 子系统

最初只是想着在win11系统下挂载ext4盘符,方便使用。 目录 0. 简介1.安装WSL子系统1.1 环境确认1.1.1 虚拟化设置1.1.2 系统设置1.1.3 开启开发者模式(此项有必要?)1.1.4 安装WSL子系统 2.WSL操作指令2.0 WSL相关命令2.1 WSL重置2.…

pytorch神经网络训练(VGG-19)

VGG-19 导包 import torchimport torch.nn as nnimport torch.optim as optimimport torchvisionfrom torchvision import datasets, transformsfrom torch.utils.data import DataLoaderimport matplotlib.pyplot as plt 数据预处理和增强 transform transforms.Compose(…

java的序列化和反序列化

一、概念 序列化是将对象的常态存储到特定的存储介质中的过程。 反序列化是将特定的存储介质中的数据重新构建对象的过程。 问题 为每个对象属性——编写读写代码,过程很繁琐且非常容易出错,如何解决? 二、使用Object Output Stream类实现…

C++:enum枚举共用体union

enum枚举 C继承C的枚举用法 (1)典型枚举类型定义,枚举变量定义和使用 (2)枚举类型中的枚举值常量不能和其他外部常量名称冲突: 举例1宏定义,举例2另一个枚举 // 定义一个名为Color的枚举类型 enum Color {RED, // 红色,默认值…

golang跨平台GUI框架fyne介绍与使用详解,开放案例

golang跨平台GUI框架fyne介绍与使用详解 Fyne 是一个使用 Go 编写的易于使用的 UI 工具包和应用程序 API。 它旨在构建使用单一代码库在桌面和移动设备上运行的应用程序。 通过批量调用身份证实名和三网手机实名和银行卡核验等接口,完成fyne框架的基本使用介绍 主要…

AES加密算法及AES-CMAC原理白话版系统解析

本文框架 前言1. AES加密理论1.1 不同AES算法区别1.2 加密过程介绍1.2.1 加密模式和填充方案选择1.2.2 密钥扩展1.2.3分组处理1.2.4多轮加密1.2.4.1字节替换1.2.4.2行移位1.2.4.3列混淆1.2.4.4轮密钥加1.3 加密模式1.3.1ECB模式1.3.2CBC模式1.3.3CTR模式1.3.4CFB模式1.3.5 OFB模…

技术周总结2024.06.17~06.23(Doris数据库)

文章目录 一、06.18 周二1.1) 问题01: doris数据表写入使用 stream load好还是 inser into好 一、06.18 周二 1.1) 问题01: doris数据表写入使用 stream load好还是 inser into好 对于Doris数据表的写入操作,通常推荐…

动手学深度学习(Pytorch版)代码实践 -计算机视觉-46语义分割和数据集

46语义分割和数据集 # 图像分割和实例分割 """ 图像分割将图像划分为若干组成区域,这类问题的方法通常利用图像中像素之间的相关性。 它在训练时不需要有关图像像素的标签信息,在预测时也无法保证分割出的区域具有我们希望得到的语义。 图…

PDF处理篇:如何调整 PDF 图像的大小

将视觉效果无缝集成到 PDF 中的能力使它们成为强大的通信工具。然而,笨拙的图像大小会迅速扰乱文档的流程,阻碍清晰度和专业性。幸运的是,GeekerPDF 和Adobe Acrobat等流行的应用程序提供了用户友好的解决方案来应对这一挑战。这个全面的指南…