选举DR/BDR

这个问题很多人会迷糊,因为OSPF协议复杂,这个选举还要从学生的问题出发,一个三个路由器的拓扑选举出两个DR,这个问题看起来很不正常,你耐心看完我的解析,你就觉得正常了!

以下图片来自我的微信公众号:51NET

我们今天直接了当点,先普及下OSPF协议中的网络类型:

 

网络类型

Hello时间

选举DR/BDR

邻居建立方式

点到点

Point-To-Point

10

自动

点到多点

Point-To-Multipoint

30

自动

广播

Broadcast 

10

自动

非广播

Non-Broadcast 

30

手工

点到多点非广播

Point-To-Multipoint  Non-Broadcast

30

手工

有人说没看懂?

 

我给你画个图,下图是啥网络?我们叫broadcast multiaccess 网络,就是我们说的多路访问网络,这个网络是要选举DR/BDR,如果你不懂DR/BDR是啥,你要先去了解下,不然你往下看不懂的。


 选举DR/BDR_第1张图片

点到点的网络啥样子。比如PPP链路,这个链路不需要选举DRBDR

选举DR/BDR_第2张图片

啥是非广播(Non-Broadcast )网络?比如帧中继网络,这种网络也要选举DR/BDR.

选举DR/BDR_第3张图片

选举规则:

比较接口优先级

选举优先级最高的成为DR,优先级数字越大,表示优先级越高,被选为DR的几率就越大,次优先级的为BDR,优先级范围是0-255,默认为1,优先级为0表示没有资格选举DRBDR

 

Route-Id大小

如果在优先级都相同的情况下,Route-Id 最大的成为DR,其次是BDR,数字越大,被选为DR的几率就越大。

 

在一个多路访问网络中,选举DRBDR是有时间限制的,该时间为Wait时间,默认为4倍的Hello时间,即与Dead时间相同,如果OSPF路由器在超过Wait时间后也没有其它路由器与自己竞争DRBDR的选举,那么就选自己为DR;当一个多路访问网络中选举出DRBDR之后,在DRBDR没有失效的情况下,不会进行重新选举,也就是在选举出DRBDR之后,即使有更高优先级的路由器加入网络,也不会影响DRBDR的角色,在越出选举时间(Wait时间)后,只有DRBDR失效后,才会重新选举。DR失效后,会同时重新选举DRBDR,而在BDR失效后,只会重新选举BDR

说了半天,下面才是重点!

注意:我们这个选举规则的前提是多路访问网络!!

 

请问下图的DR和BDR是哪个路由器?

选举DR/BDR_第4张图片

很显然,DRroute-id8.8.8.8的路由器R8BDRroute-id7.7.7.7 的路由器R7,其他路由器是DRother


选举DR/BDR_第5张图片

如果你配置完成后DRBDR不是按照选举规则,也是可能的。理论上默认选举Router-ID高的为DR,例如R1Router-ID1.1.1.1R2Router-ID22.2.2.2,应该选择R2DR,但我们看到的结果是R2BDRR1才是DR,这是因为R1先配置,R2后配置,在R1配置好40(默认以太网wait时间为40秒,是hello时间的4倍)后,没有路由器与它竟选DR,那么它就选自己为DR,当DR选举后,在DR没失效的情况下,将保持不变,除非重置OSPF进程。

怎么重置OSPF进程?问的好!!

r1# clear ip ospf   process 

 

是时候回归开篇的问题了!下个图有四台路由器,这里面会有多少个DRBDR,这个图不是广播网络,但是他的每个网段可以看成是一个广播网络,所以每个网段会选举出DRBDR

选举DR/BDR_第6张图片

看下上图,每个网段就是每个链路,这个链路是以太网口的链路,我标记的DRBDR你能看懂吗?这个链路两端各一台路由器,所以这个拓扑中不存在DRother路由器,如果每条链路上通过接口更改优先级选举的话,用啥命令

interfacef0/x

ip ospfpriority  0-255 

0-255 是优先级的范围,默认是1 ,优先级高就可以成为DR0是没资格选举成DRBDR