- DR: Designate router,指定路由器
- BDR:Backup Disignate router,备用指定路由器
- DROthers:其余非DR/BDR路由器
- DR/BDR选举规则:先比较接口优先级,越大越优先。优先级相同,比较RID,越大越优先
在上一篇“OSPF邻居建立过程”的文章中,我们提到过“邻居的邻接关在到Two-way状态后,将触发DR/BDR的选举,才会进入到Exstart的DB报文交互阶段“,这边文章,我们将针对DR/BDR选举来做一次深如的分析。
在分析DR/BDR选举机制之前,我们要先了解下OSPF链路中的网络类型,以及它DR/BDR选举机制的关联。
1.网络类型
- 点到点(point-to-point):比如T1/DS3/SONET链路,所有点到点链路上的有效邻居,最终都能形成有效的邻接关系,无需DR和BDR。因为整个链路上就自己2个,谁发OSPF信息都一样。
- 广播网络(broadcast):比如ethernet/令牌环/FDDI网络,由于广播网络中是存在多地址的,而且是广播型的,所有发送的数据包,所有的终端都能收到,每个邻居都发信息,会造成混乱和不必要。所以在有了DR和BDR机制。广播网络中,DR和BDR将OSPFLSU/LSACK报文目标地址:224.0.0.5(ALLSPFRouter)组播,目标m ac地址:0100-5e00-0005。其余的路由器将LSU和LSA-ACK数据包则放松到224.0.0.6(ALLDRRouter),目标 Mac地址是0100-5e00-0006。简而言之,广播网络中OSPF的LSA和LSACK的传输和监听:DR将监听224.0.0.6,其余路由器监听224.0.0.5
- NBMA(非广播多路访问):比如帧中继,ATM等,但没有广播的能力。这种场景下下,一个路由发送的OSPF报文,这个网络中的其他相连路由器无法收到。这个时候需要在路由器上增加额外配置,比如用指定的atm链路来建立邻居,当atm存在多个router时。这时也需要指定DR和BDR。
Tips:在NBMA网络中,路由器默认给down状态的邻居发送时间间隔“Pollinterval“( 默认120s)发送一个hello报文,其余网络则是普通的"Hellointerval" (默认10s)发送一次hello报文
- 点到多点(point-to-multipoint):类似于多个点到点网络的一个集合,逻辑上可以看成一种hub-spoke或者full-mesh的状态,互联的路由器都是点对点链路,所有单个点对点连续上都能直接形成邻接关系,无需DR和BDR
综上,网络类型有4中(其实还有virtual-link,文章中暂不讨论),主要是针对路由器存在多址互联时,该如何来控制OSPF邻居的建立,和后续的OSPF报文转发,形成一个最优化的邻接拓扑,以达到一个最优化的OSPF报文转发。 在各种互联网络类型中,除了点对点(点对多点-其实也就类似多个点对点形成),广播和NBMA网络类型都有DR/BDR的概念,现在俨然已经是Ethernet(以太网)的天下,所以DR/BDR的出向实在是太常见了。下面我们来说说为什么需要DR。
2.说说为什么要有DR?
当一个互连链路中,链接了N个router,如果彼此都形成邻接关系,将存在N(N-1)/2个邻接关系,其实就是full-mesh结构,大大加大了LSA流量发泛洪(LSA泛洪机制会在文章后面讨论),DR的存在,则让其余所有路由和DR交互即可,作为整个多互联链路中的LS集散地。同时,如果是full-mesh结构,一个LSA传递到一个router,肯定也会从其他的router能接收到这个LSA,导致LSA重复流量大大