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!

相关推荐
龙哥说跨境9 分钟前
如何利用指纹浏览器爬虫绕过Cloudflare的防护?
服务器·网络·python·网络爬虫
懒大王就是我24 分钟前
C语言网络编程 -- TCP/iP协议
c语言·网络·tcp/ip
Elaine20239137 分钟前
06 网络编程基础
java·网络
海绵波波1072 小时前
Webserver(4.3)TCP通信实现
服务器·网络·tcp/ip
sanzk3 小时前
华为鸿蒙应用开发
华为·harmonyos
热爱跑步的恒川5 小时前
【论文复现】基于图卷积网络的轻量化推荐模型
网络·人工智能·开源·aigc·ai编程
云飞云共享云桌面6 小时前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络
音徽编程8 小时前
Rust异步运行时框架tokio保姆级教程
开发语言·网络·rust
ClkLog-开源埋点用户分析8 小时前
ClkLog企业版(CDP)预售开启,更有鸿蒙SDK前来助力
华为·开源·开源软件·harmonyos
mg6688 小时前
鸿蒙系统的优势 开发 环境搭建 开发小示例
华为·harmonyos