当前位置: 首页 > news >正文

OSPF在广播类型的网络拓扑中DR和BDR的选举

指定路由器(DR):

一个网段上的其他路由器都和指定路由器(DR)构成邻接关系,而不是它们互相之间构成邻接关系。

备份指定路由器(BDR):

当DR出现问题,由BDR接手DR的工作,同时会在选举出一个BDR。

其他路由器我们叫做DR Other。

BDR首先会和DR形成邻接关系;

其它的路由器(DR Other)也要和BDR形成邻接关系。

这样做是有原因的,当DR出故障以后,BDR会成为新的DR。如果DR other不和BDR形成邻接关系,网络的流量就会中断时间很长,因为建立邻居关系是要花一定时间的,在这段时间内,网络的流量是不通的!

DR other和BDR形成邻接关系,当BDR切换为DR时,只需要发送LSA,向DR other告知新的DR即可,LSDB的内容基本上不变!所以能够节省时间,让BDR真正的起到备份的作用!

DR和BDR的选举规则:

具有最高OSPF优先级的路由器会被选为DR,优先级默认为1。

如果OSPF优先级相同,则具有最高Router ID的路由器会被选为DR。

Route-id选举规则:

  1. 手工配置最优先

  2. 当设备有loopback口时,路由器选取它所有loopback接口上数值最高的IP地址

  3. 如果没有loopback接口,就在所有物理端口中选取一个数值最高的IP地址

需求:(描述实验的要求)

  1. R1 R2 R3属于OSPF 的骨干区域,R1 R2 R3位于10.1.1.0/24 网段.

  2. R2 R3 R4 位于OSPF 的40.1.1.0/24 网段.

  3. 希望R2 作为 10.1.1.0 网段的DR, R3作为BDR;R3 作为40.1.1.0 网段的DR,R2 作为BDR.

拓扑:

 

分析难点以及完成的思路

按照要求配置,首先正常配置OSPF的基础命令,保证在修改DR和 BDR之前全网互通,配置完成之后再去测试连通性,全部测试完毕之后,修改我们的DR和BDR,查看我们修改之后的DR和BDR设备是否成功达到我们的要求

配置命令

R1 配置:

R1(config)#line console 0

R1(config-line)#exec-timeout 0 0

R1(config-line)#logging synchronous

R1(config-line)#exit

R1(config)#no ip do lo

R1(config)#interface loopback 0

R1(config-if)#ip address 1.1.1.1 255.255.255.255

R1(config-if)#no shutdown

R1(config-if)#exit

R1(config)#interface f0/0

R1(config-if)#ip address 10.1.1.1 255.255.255.0

R1(config-if)#no shutdown

R1(config-if)#exit

R2配置:

R2(config)#line console 0

R2(config-line)#exec-timeout 0 0

R2(config-line)#logging synchronous

R2(config-line)#exit

R2(config)#no ip do lo

R2(config)#ho R2

R2(config)#interface loopback 0

R2(config-if)#ip address 2.2.2.2 255.255.255.255

R2(config-if)#no shutdown

R2(config-if)#exit

R2(config)#interface f0/0

R2(config-if)#ip address 10.1.1.2 255.255.255.0

R2(config-if)#no shutdown

R2(config-if)#exit

R2(config)#interface f0/1

R2(config-if)#ip address 40.1.1.2 255.255.255.0

R2(config-if)#no shutdown

R2(config-if)#exit

R3配置:

R3(config)#line console 0

R3(config-line)#exec-timeout 0 0

R3(config-line)#logging synchronous

R3(config-line)#exit

R3(config)#no ip do lo

R3(config)#ho R3

R3(config)#interface loopback 0

R3(config-if)#ip address 3.3.3.3 255.255.255.255

R3(config-if)#no shutdown

R3(config-if)#exit

R3(config)#interface f0/0

R3(config-if)#ip address 10.1.1.3 255.255.255.0

R3(config-if)#no shutdown

R3(config-if)#exit

R3(config)#interface f0/1

R3(config-if)#ip address 40.1.1.3 255.255.255.0

R3(config-if)#no shutdown

R3(config-if)#exit

R4配置:

R4(config)#line console 0

R4(config-line)#exec-timeout 0 0

R4(config-line)#logging synchronous

R4(config-line)#exit

R4(config)#no ip do lo

R4(config)#ho R4

R4(config)#interface loopback 0

R4(config-if)#ip address 4.4.4.4 255.255.255.255

R4(config-if)#no shutdown

R4(config-if)#exit

R4(config)#interface f0/1

R4(config-if)#ip address 40.1.1.4 255.255.255.0

R4(config-if)#no shutdown

R4(config-if)#exit

启用OSPF,默认情况下,OSPF进行DR选举时的优先级 默认为1,比较规则是 优先级越大越优先,优先级相同, router-id越大越优先。因此干预选举可以通过设置router-id和修改接口的优先级进行。在10.1.1.0 网段上,由于R1 R2 R3的优先级为默认的1 ,因此 优先级大的 R3(3.3.3.3),就成为DR,R2(2.2.2.2)成为BDR.但是要考虑,如果R1 R2率先接入网络,当DR BDR选举完成之后再接入R3的话,R3错过选举之后,就不能抢占DR BDR了。

R2 R3 R4也一样,因此正常情况下R4为DR,R3为BDR

R1配置:

R1(config)#router ospf 1

R1(config-router)#router-id 1.1.1.1 //手工指定router-id

R1(config-router)#network 1.1.1.1 0.0.0.0 area 0 --------采取反子网掩码的方式进行通告,类似于通告了一个1.1.1.1 255.255.255.255 的路由信息,采用反子网掩码,是为了区别配置IP地址是的子网掩码

R1(config-router)#network 10.1.1.0 0.0.0.255 area 0

R1(config-router)#exit

R1(config)#end

R2配置:

R2(config)#router ospf 1

R2(config-router)#router-id 2.2.2.2

R2(config-router)#network 2.2.2.2 0.0.0.0 area 0

R2(config-router)#network 10.1.1.0 0.0.0.255 area 0

R2(config-router)#network 40.1.1.0 0.0.0.255 area 0

R2(config-router)#end

R3配置:

R3(config)#router ospf 1

R3(config-router)#router-id 3.3.3.3

R3(config-router)#network 3.3.3.3 0.0.0.0 area 0

R3(config-router)#network 10.1.1.0 0.0.0.255 area 0

R3(config-router)#network 40.1.1.0 0.0.0.255 area 0

R3(config-router)#exit

R4 配置:

R4(config)#router ospf 1

R4(config-router)#router-id 4.4.4.4

R4(config-router)#network 4.4.4.4 0.0.0.0 area 0

R4(config-router)#network 40.1.1.0 0.0.0.255 area 0

R4(config-router)#end

这时,为了满足要求,让R2成为10.1.1.0 网段的DR,可以修改R2的router-id,改为22.22.22.22

,只要比R3的3.3.3.3 大就可以;为了是R3成为40.1.1.0 网段的DR,可以修改R3的f0/1

的接口优先级。

R2配置:

R2(config)#router ospf 1

R2(config-router)#ro

R2(config-router)#router-id 22.22.22.22

Reload or use "clear ip ospf process" command, for this to take effect //系统提示,要想新的router-id生效,要重启OSPF进程

R2(config-router)#end

R3 配置:

R3(config)#interface f0/1

R3(config-if)#ip ospf priority 5

R3(config-if)#end

这个时候,将R1 R2 R3 R4的OSPF进程重启,然后再观察。

R1配置:

R1#clear ip ospf process

Reset ALL OSPF processes? [no]: y //重启OSPF进程,这个要在四个路由器上同时敲下去

这时可以看到10.1.1.0网段,R2的router-id最大成为DR,R3的router-id次之,成为BDR;

40.1.1.0 网段,R3的优先级最大成为DR,R2的router-id最大,成为BDR.

按照正常配置完成之后,全网互通,在修改DR和BDR之后需要清一下OSPF的进程,让他们重新选举DR和BDR,如果不重启进程会发现DR和 BDR没有变化

当DR优先级为0时,通过这个配置,也可以控制DR、BDR的选取!如果想让某台路由器永远都是一个LAN上的DR,则可以将其它的路由器的DR优先级都配置为0。

DR、BDR是终身制,不能被抢占的,这一知识点也是比较奇怪的,我们上面说了DR/BDR是选取出来的,理论上在一个LAN上,应该是优先级最大的路由器被选取为DR的。

但在很多场景中,小伙伴看到的并不是优先级最大的路由器作为DR!因为DR/BDR的选取是不能被抢占的!

只要某台路由器在一个LAN上,已经被选取为DR,则它会一直是DR!只有等它重启或者关机了,才会重新选取,也就是说DR/BDR是终身制的!

这样做主要是为了网络的稳定,在真实网络中,稳定是压倒一切的!即使某种技术最新,某个设备性能最强,但是如果影响到稳定,就不会被优先选择!

所以想要让某个路由器永远作为DR,则只能其它路由器的优先级修改为0!

 

相关文章:

OSPF在广播类型的网络拓扑中DR和BDR的选举

指定路由器(DR): 一个网段上的其他路由器都和指定路由器(DR)构成邻接关系,而不是它们互相之间构成邻接关系。 备份指定路由器(BDR): 当DR出现问题,由BDR接…...

系统学习Linux-Mariadb高可用MHA

概念 MHA(MasterHigh Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。 MHA 的出现就是解决MySQL 单点的问题。 MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。 MHA能在故障切换的过程中最大程度上…...

慢SQL的原因

如何排查慢SQL问题 识别慢SQL:使用数据库性能监控工具,如慢SQL日志,识别耗时较长的查询。执行计划分析:使用数据库提供的分析工具,例如EXPLAIN来查看查询的执行计划,判断是否存在全表扫描,索引…...

php正则替换文章的图片

要使用正则表达式替换文章中的图片链接,可以按照以下步骤进行操作: 1. 获取文章内容:首先,你需要获取包含图片链接的文章内容。你可以从文件中读取文章,或者从数据库中检索文章内容。 2. 使用正则表达式匹配图片链接…...

57 | TAPTAP客户端分析

TAPTAP客户端分析 一、用户群分析 首先,TapTap用户群可分为三大类: 游戏爱好者游戏发烧者游戏开发者(次要用户,有开发者后台,可以显示数据,不重点分析)注:爱好者与发烧者区别在于,前者是用空余时间来玩游戏,时间不如后者充足,且后者更执着于游戏,游戏种类更多。 …...

开源了一套基于springboot+vue+uniapp的商城,包含分类、sku、商户管理、分销、会员、适合企业或个人二次开发

RuoYi-Mall-JAVA商城-电商系统简介 开源了一套基于若依框架,SringBoot2MybatisPlusSpringSecurityjwtredisVueUniapp的前后端分离的商城系统, 包含分类、sku、商户管理、分销、会员、适合企业或个人二次开发。 前端采用Vue、Element UI(ant…...

Android进阶之多级列表

遇到一个需求需要显示多级列表,因为界面是在平板上的,所以层级是从左向右往下排的,类似于 我当时的写法是在xml布局里一个个RecyclerView往下排的 当然前提是已经规定好最大的层级我才敢如此去写界面,如果已经明确规定只有两级或…...

Stochastic: Distribution-Expectation-Inequalities

见:https://www.math.hkust.edu.hk/~makchen/MATH5411/Chap1Sec2.pdf...

Java算法_ 二叉树的最大深度(LeetCode_Hot100)

题目描述:给定一个二叉树 ,返回其最大深度。root 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 获得更多?算法思路:代码文档,算法解析的私得。 运行效果 完整代码 /*** 2 * Author: LJJ* 3 * Date: 2023/…...

行业追踪,2023-08-18

自动复盘 2023-08-18 凡所有相,皆是虚妄。若见诸相非相,即见如来。 k 线图是最好的老师,每天持续发布板块的rps排名,追踪板块,板块来开仓,板块去清仓,丢弃自以为是的想法,板块去留让…...

js将项目中的图片上传到服务器

项目上有时候会有奇怪的需求,比如前端有一些示例,想点击按钮就能上传图片,而这个图片是在前端的项目中的,如果不上传吧,又获取不到一些业务数据的id,但后端又不想为这块功能做特殊的处理,这时想通过前端直接上传到后端,需要file对象才可以。 这个时候我们需要将img转换…...

【C语言】指针的进阶

目录 一、字符指针 二、指针数组 三、数组指针 1.数组指针的定义 2.&数组名和数组名区别 3.数组指针的使用 四、数组参数与指针参数 1.一维数组传参 2.二维数组传参 3.一级指针传参 4.二级指针传参 五、函数指针 六、函数指针数组 七、指向函数指针数组的指针…...

【Windows系统编程】03.远线程注入ShellCode

shellcode&#xff1a;本质上也是一段普通的代码&#xff0c;只不过特殊的编程手法&#xff0c;可以在任意环境下&#xff0c;不依赖于原有的依赖库执行。 远程线程 #include <iostream> #include <windows.h> #include <TlHelp32.h>int main(){HANDLE hPr…...

第1天----验证一个字符串是否是另一个字符串的子串

本文我们将学习如何去验证一个字符串是否是另一个字符串的子串。 一、小试牛刀&#xff1a; 题目描述 输入两个字符串&#xff0c;验证其中一个串是否为另一个串的子串。 输入格式 两行&#xff0c;每行一个字符串。 输出格式 若第一个串 s 1 是第二个串 s 2 的子串&#xff0c…...

项目实战第四十三讲:使用模版模式优雅实现财务编辑费用

项目实战第四十三讲:财务编辑费用 本文是项目实战第43讲:使用模版模式优雅实现财务编辑费用。支持查看司机填写费用信息,并且附件管理支持展示司机上传费用照片。 文章目录 项目实战第四十三讲:财务编辑费用1、项目背景2、主要技术3、项目职责4、项目实现4.1、表结构4.2、流…...

[JavaWeb]【六】web后端开发-请求响应

前言&#xff1a;请求响应 目录 一 引子 二 请求 2.1 Postman 2.1.1 安装 2.1.2 创建工作空间 2.1.3 添加接口 2.2 简单参数 2.2.1 原始方式&#xff08;不推荐&#xff09; 2.2.2 SpringBoot方式-GET(参数名与形参变量名相同) 2.2.3 SpringBoot方式-POST(参数名与形参…...

uniapp websocket机制 心跳 重连

在开发程序过程中通信功能还是比较常用到的&#xff0c;本文主要介绍的是uniapp中websocket的使用 websocket建立连接后&#xff0c;断开、心跳机制重新链接的一个过程。 关于uni.connectSocket可仔细阅读uniapp官网中的uni.connetSocket以及连接socket创建的实例SocketTask …...

labelme安装以及标注自己的目标检测数据集

目录 一、labelme安装指令 二、使用教程 三、 快捷键 一、labelme安装指令 winR之后在弹出的对话框中输入cmd按回车进入终端 conda activate 虚拟环境名称 pip install labelme -i https://pypi.tuna.tsinghua.edu.cn/simple/ 二、使用教程 安装成功之后在终端输入label…...

归并排序JS

当然&#xff0c;下面是使用JavaScript编写的归并排序的示例代码。归并排序是一种分治算法&#xff0c;其基本思想是将数组分成两半进行排序&#xff0c;然后将排序后的结果合并在一起。 function mergeSort(arr) {if (arr.length < 1) {return arr;}const middle Math.fl…...

matlab 计算点云平均密度

目录 一、算法原理二、代码实现三、结果展示四、C++版计算结果本文由CSDN点云侠原创,爬虫自重。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、算法原理 采样设备不同、设备距离场景远近不同,会使点云密度产生差异。现有的对点云密度的估算方法有基…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…...

超短脉冲激光自聚焦效应

前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应&#xff0c;这是一种非线性光学现象&#xff0c;主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场&#xff0c;对材料产生非线性响应&#xff0c;可能…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动

一、前言说明 在2011版本的gb28181协议中&#xff0c;拉取视频流只要求udp方式&#xff0c;从2016开始要求新增支持tcp被动和tcp主动两种方式&#xff0c;udp理论上会丢包的&#xff0c;所以实际使用过程可能会出现画面花屏的情况&#xff0c;而tcp肯定不丢包&#xff0c;起码…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要&#xff1a;设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP&#xff08;Work-in-Progress&#xff09;弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中&#xff0c;设立专门的紧急任务通道尤为重要&#xff0c;这能…...

Android第十三次面试总结(四大 组件基础)

Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成&#xff0c;用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机&#xff1a; ​onCreate()​​ ​调用时机​&#xff1a;Activity 首次创建时调用。​…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)

本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解

在 C/C 编程的编译和链接过程中&#xff0c;附加包含目录、附加库目录和附加依赖项是三个至关重要的设置&#xff0c;它们相互配合&#xff0c;确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中&#xff0c;这些概念容易让人混淆&#xff0c;但深入理解它们的作用和联…...

[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.

ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #&#xff1a…...

Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐&#xff1a;「storms…...