为啥ospf要选举dr和bdr

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥ospf要选举dr和bdr相关的知识,希望对你有一定的参考价值。

选举DR是为了在广播网中节省带宽资源。多台路由器接入同一个广播网时,非DR的路由器只和DR、BDR建立邻接关系。减少报文泛洪时广播网的负担。
BDR则是DR的备份,backupDR。一旦DR故障,BDR立刻接管这个广播网。选举是处于安全的角度考虑的。
参考技术A ma网络当中如果是广播交互数据的话 太占用资源 所以选举dr 由他来收集信息并下发给drother bdr是dr的备份 dr坏了 bdr变成dr 网络会重新收敛从bdr接收信息 参考技术B 如果网络中路由器很多时,那么需要维护的建立的邻接关系就很多,需要发送的报文也很多。而且每台路由器之间都相互发送lsa,这样就造成好多重复的lsa在网络中传递,浪费了太多带宽资源,所以选取dr和bdr用来节省带宽资源。 参考技术C 为了节省资源和稳定 !应为OSPF有触发更新 和周期更新!所以有个DR 更稳定 !不过PTP的情况下可以不选举!

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选举,之后还有主从关系选举!

OSPF中DR和BDR到底是谁先选举出来的?

OSPF的DR与BDR选举

选举DR/BDR

OSPF-DR与BDR的选举及作用

3.5OSPFNP十二班第四天-OSPF接口状态机及DR和BDR选举-1