OSPF中DR和BDR到底是谁先选举出来的?
在OSPF的DRBDR选举的过程中,DR的选举依靠的是hello报文,在two-way之后,交互hello报文完成DR/BDR的选举。
那么在每台路由器根据收到的所有hello报文,会构建自己接口的数据结构,并按照一下算法,计算出DR/BDR:
1、路由器接口数据结构中维持三个集合,分别是:
(1)DR集合:通过hello报文学习到的所有的DR路由器
(2)BDR集合:通过hello学习到的所有BDR路由器
(3)DRother集合:没有被选举为DR/BDR的路由器,但优先级不为0,因为一旦优先级为0,则代表该路由器不参与选举。
2、当选举DR和BDR的算法工作时,在DR集合中选择最好的路由器,使其成为DR。在BDR集合中选择最好的路由器,使其成为BDR。
首先,DR的选举:
在DR的集合中应用以下规则:
如果DR集合为非空,则从中选择最好的路由器成为DR;
如果DR集合为空,则把当前BDR提升为DR;而如果BDR集合为空,则要先从DRother集合中选出BDR,再将其提升为DR。
BDR的选举:
与DR类似,如果BDR集合为非空,则从中选择最好的路由器为BDR;
如果BDR集合为空,则从DRother集合中选择最好的路由器成为BDR路由器。
由此可见,无论是DR还是BDR,除非他们本身在接口结构中的集合就包含所谓的DR、BDR,否则都要从下游的集合中以选举的机制,来确认DR、BDR,那么如何确保他们原本集合中就存在对应的DR呢?接下来我们来说一下关于DR/BDR的选举过程。
DR/BDR的选举过程:
OSPF路由器在DR/BDR未选举出来之前,hello报文中关于DR和BDR的字段全为0,即0.0.0.0。选举完成后,DR和BDR的字段记录一直的DR和BDR的routerid。
路由器接口根据侦听到的hello报文,生成邻居表并在接口维持三个集合:
DR集合{}
BDR集合{}
Dother集合{}
具体过程如下:
(1)当OSPF接口开启后,在HELLO报文中设置DR/BDR字段为全0,此时DR/BDR未知。同时,Waittimer启动,时长为4倍的Hello间隔。
(2)如果收到的Hello报文中DR及BDR字段为非空,则Wait计时器停止,接收当前DR/BDR的选择。
(3)如果在Wait计时器超时后,仍未学习到DR/BDR,则开始DR/BDR的选举。
(4)如果BDR集合为空,则从DRother集合选举BDR;如果DR集合为空,则从BDR集合选举DR。
(5)根据上述算法,如果再没有DR/BDR的网络上,Wait计时器超时后,网络上的每台路由器都会先从DRother集合选择BDR,再把BDR提升为DR;再重新从DRother集合选择BDR。至此,选举结束,开始建立邻接。
转自:https://www.douban.com/note/704095004/
OSPF中DR和BDR到底是谁先选举出来的?的更多相关文章
- OSPF的DR与BDR
一.实验拓扑 二.实验编址 三.实验步骤: 1.设置路由器的端口IP等信息 2.搭建ospf网络 重启(退出系统模式):reset ospf process 查看: 查看完整的邻居信息: 可以看到DR ...
- OSPF的特征、术语、包类型、邻居关系的建立、RID的选择、DR和BDR的选举、度量值的计算、默认路由、验证
链路状态路由协议OSPF的特征.术语.包类型.邻居关系的建立.RID的选择.DR和BDR的选举.度量值的计算.默认路由.验证等. 文章目录 [*1*].链路状态路由协议概述 工作过程 优缺点 [*2* ...
- HCNA Routing&Switching之动态路由协议OSPF DR和BDR
前文我们了解了OSPF建立邻居关系的条件,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15032907.html:今天我们来聊一聊OSPF中的DR和BDR: ...
- DR、BDR、SBR、ASBR等名词的解释和原理
DR是指定路由器的意思是为了解决LSA在一个area里浪费很大的带宽而设计的 BDR是备份指定路由器,就是DR的一个备用.DR和BDR只在广播网和NBMA网络中有,而P2P和P2MP中是没有的. AB ...
- 什么是LSA,在OSPF中LSA是什么
什么是LSA:链路状态通告,它存在于LSU(链路状态更新包) Type 1 LSA:路由器LSA 每个OSPF路由器都会产生路由器LSA,描述了对应设备的物理接口所连接的链路和接口,并指明 ...
- OSPF中 hello报文的 内容
邻居关系通过hello报文来建立.Hello报文中包含如下一些内容: 1.始发路由器的router-id 2.始发路由器接口的area-id 3.始发路由器接口的地址掩码 4.始发路由器接口的auth ...
- Spring Boot 中的静态资源到底要放在哪里?
当我们使用 SpringMVC 框架时,静态资源会被拦截,需要添加额外配置,之前老有小伙伴在微信上问松哥Spring Boot 中的静态资源加载问题:"松哥,我的HTML页面好像没有样式?& ...
- CNN中,1X1卷积核到底有什么作用呢?
CNN中,1X1卷积核到底有什么作用呢? https://www.jianshu.com/p/ba51f8c6e348 Question: 从NIN 到Googlenet mrsa net 都是用了这 ...
- CSS中背景图片的background-position中的left top到底是相对于谁的?
在学习的时候遇到了如下问题: CSS中背景图片的background-position中的left top到底是相对于谁的,content-box?padding-box?border-box? ba ...
随机推荐
- mybatis原理与设计模式-日志模块- 适配器模式
在讲设计模式之前,得先知道java程序设计中得六大原则,才能更好得理解我们得系统为什么需要设计模式 1 单一职责原则 一个类只负责一种职责,只有这种职责的改变会导致这个类的变更.绕口一点的正统说法:不 ...
- Python模块学习之xlrd 读取Excel时传入formatting_info=True报错:NotImplementedError: formatting_info=True not yet implemented
问题:xlrd读取Excel时传入 formatting_info=True 报错 之前我们使用读取xls文件的时候都是使用的xlrd库,但是这个库只能操作 .xls格式,对于后来的 .xlsx的版本 ...
- js全局变量优点和缺点
全局变量的优点:可以减少变量的个数,减少由于实际参数和形式参数的数据传递带来的时间消耗. 全局变量的缺点: (1)全局变量保存在静态存贮区,程序开始运行时为其分配内存,程序结束释放该内存.与局部变量的 ...
- upc组队赛2 Super-palindrome【暴力枚举】
Super-palindrome 题目描述 You are given a string that is consisted of lowercase English alphabet. You ar ...
- HBase 热点问题——rowkey散列和预分区设计
热点发生在大量的client直接访问集群的一个或极少数个节点(访问可能是读,写或者其他操作).大量访问会使热点region所在的单个机器超出自身承受能力,引起性能下降甚至region不可用,这也会影响 ...
- 关于软件IntelliJ IDEA的使用技巧(二)
二,IntelliJ IDEA的工具栏介绍 2,IntelliJ IDEA菜单栏 (5)code编码 ✌1.Override Methods:覆盖方法 ✌2.Implement Methods:实现方 ...
- python+tushare获取上市公司财务报表:资产负债表
接口:balancesheet 描述:获取上市公司资产负债表 积分:用户需要至少500积分才可以调取,具体请参阅本文最下方积分获取办法 注:tushare包下载和初始化教程,请查阅我之前的文章 提示: ...
- 菩提圣心诀---zabbix自定义key监控oracle连接状态(python脚本)
目的:此次实验目的是为了zabbix服务端能够实时监控某服务器上oracle实例能否正常连接 环境:1.zabbix_server 2.zabbix_agent(含有oracle) 主要知识点: 1. ...
- Apache Shiro反序列化远程代码执行
一.漏洞利用 wget https://raw.githubusercontent.com/sv3nbeast/ShiroScan/master/moule/ysoserial.jar 反弹shell ...
- (转)Unity Cinemachine插件,实现单目标和多目标之间切换
Unity Cinemachine插件学习笔记,实现单目标和多目标之间切换*版本要求Unity2017.1及以上. 参考资料: [官方] Unity 2017.1正式版发布 Cinemachine插件 ...