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 ...
随机推荐
- AutoMapper用法 转载https://www.cnblogs.com/youring2/p/automapper.html
AutoMapper是对象到对象的映射工具.在完成映射规则之后,AutoMapper可以将源对象转换为目标对象. 配置AutoMapper映射规则 AutoMapper是基于约定的,因此在实用映射之前 ...
- 点读系列《jmeter官方用户手册》
官网:http://jmeter.apache.org/usermanual/ 说明:十八元件.十九属性.二十函数,涉及清单内容暂未仔细阅读,个人觉得一是仅供使用参考,二是适合单独写文章来解读 一.让 ...
- JeeSite配置多数据源方案
jeesite简介 JeeSite是基于多个优秀的开源项目,高度整合封装而成的高效,高性能,强安全性的 开源 Java EE快速开发平台. JeeSite本身是以Spring Framework为核心 ...
- vue自定义指令clickoutside实现点击其他元素才会触发
clickoutside.js // 代码内容 const clickoutsideContext = '@@clickoutsideContext'; export default { bind(e ...
- USACO 2014 US Open Decorating The Pastures
题目大意: 给定n个点m条边的无向图 判断这个图能否将所有点依次染色为F J F J 若能输出最多能染多少个J 若不能输出-1 就是给一个图01染色 过程中判断是否出现不符合的情况 即点1到点2到点3 ...
- 怎么在vue-cli中利用 :class去做一个底层背景或者文字的点击切换
// html <div class="pusherLists" :class="{hidden: isHidden}"> <span @cl ...
- org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/json;charset=UTF-8' not supported
最后找到我的问题,springmvc配置文件中没加 <mvc:annotation-driven/> java代码: @RequestMapping(value="/reques ...
- shell script 二 判断符号【】 shift 偏移量 if then fi
判断符号[]类似于test.但是[]有通配符及正则表达式,为了区分,利用[]来做判断时,前后都需要加空格来区分.又一个坑 [ -z "$HOME" ];echo $? 例: 1 r ...
- accept 修改后
- Dubbox服务的消费方配置
在src/main/resources下创建applicationContext-web.xml <?xml version="1.0" encoding="UTF ...