这个问题很多人会迷糊,因为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是啥,你要先去了解下,不然你往下看不懂的。
点到点的网络啥样子。比如PPP链路,这个链路不需要选举DR和BDR。
啥是非广播(Non-Broadcast )网络?比如帧中继网络,这种网络也要选举DR/BDR.
选举规则:
★比较接口优先级
选举优先级最高的成为DR,优先级数字越大,表示优先级越高,被选为DR的几率就越大,次优先级的为BDR,优先级范围是0-255,默认为1,优先级为0表示没有资格选举DR和BDR。
★Route-Id大小
如果在优先级都相同的情况下,Route-Id 最大的成为DR,其次是BDR,数字越大,被选为DR的几率就越大。
在一个多路访问网络中,选举DR和BDR是有时间限制的,该时间为Wait时间,默认为4倍的Hello时间,即与Dead时间相同,如果OSPF路由器在超过Wait时间后也没有其它路由器与自己竞争DR与BDR的选举,那么就选自己为DR;当一个多路访问网络中选举出DR与BDR之后,在DR与BDR没有失效的情况下,不会进行重新选举,也就是在选举出DR与BDR之后,即使有更高优先级的路由器加入网络,也不会影响DR与BDR的角色,在越出选举时间(Wait时间)后,只有DR与BDR失效后,才会重新选举。DR失效后,会同时重新选举DR与BDR,而在BDR失效后,只会重新选举BDR。
说了半天,下面才是重点!
注意:我们这个选举规则的前提是多路访问网络!!
请问下图的DR和BDR是哪个路由器?
很显然,DR是route-id8.8.8.8的路由器R8,BDR是route-id7.7.7.7 的路由器R7,其他路由器是DRother。
如果你配置完成后DR和BDR不是按照选举规则,也是可能的。理论上默认选举Router-ID高的为DR,例如R1的Router-ID为1.1.1.1,R2的Router-ID为22.2.2.2,应该选择R2为DR,但我们看到的结果是R2是BDR,R1才是DR,这是因为R1先配置,R2后配置,在R1配置好40秒(默认以太网wait时间为40秒,是hello时间的4倍)后,没有路由器与它竟选DR,那么它就选自己为DR,当DR选举后,在DR没失效的情况下,将保持不变,除非重置OSPF进程。
怎么重置OSPF进程?问的好!!
r1# clear ip ospf process
是时候回归开篇的问题了!下个图有四台路由器,这里面会有多少个DR和BDR,这个图不是广播网络,但是他的每个网段可以看成是一个广播网络,所以每个网段会选举出DR和BDR。
看下上图,每个网段就是每个链路,这个链路是以太网口的链路,我标记的DR和BDR你能看懂吗?这个链路两端各一台路由器,所以这个拓扑中不存在DRother路由器,如果每条链路上通过接口更改优先级选举的话,用啥命令
interfacef0/x
ip ospfpriority 0-255
0-255 是优先级的范围,默认是1 ,优先级高就可以成为DR,0是没资格选举成DR和BDR。