【每天三分钟】谈谈OSPF DR和BDR的选举

白昼怎懂夜的黑 提交于 2020-12-26 17:25:59

1

DR、BDR的概念



多路访问网络有两种类型:广播型多路访问网络(BMA)及非广播型多路访问网络(NBMA)。以太网就是一种典型的广播型多路访问网络(见上图),连到这个MA网络的路由器接口都属于同一个广播域和逻辑子网。在MA网络中每台OSPF路由器需与其他的所有路由器建立OSPF(FULL)的邻居关系,这意味着网络中共有n(n-1)/2个邻接关系,导致每台路由器不得不为维护这些邻居关系消耗更多的资源,而且当拓扑出现变更时,网络中的LSA泛洪可能会造成带宽的浪费和设备资源损耗。


为减少MA网络中的LSA泛洪及邻接关系数量,OSPF会在每一个MA网络中选举一个指定路由器 DR(Designated Router)和一个备用指定路由器BDR(Backup Designated Router)。MA网络中的路由器都只与DR、BDR建立(FULL)的邻接关系,DRother之间不会建立OSPF(FULL)邻接关系,而只是停滞在2way状态。



2


选举过程


当一台OSPF路由器(的接口)激活后并去发现它的邻居路由器时,它将去检查网络中是否已经存在有效的DR和BDR路由器。如果DR和BDR路由器存在的话(网络中某台路由器发出的Hello消息中DR字段为其自身的Router ID),这台路由器将接受己经存在的DR和BDR路由器。


如果BDR路由器不存在,则执行一个选举过程,选出具有最高DR优先级的路由器作为BDR路由器(已经宣称自己是DR的路由器不能参与BDR的选举)。如果存在多台路由器具有相同的优先级,那么在数值上具有最高Router ID的路由器将被选中。如果没有有效的DR路由器存在,那么BDR路由器将被选举为DR路由器,然后再执行一个选取过程选取BDR路由器。


每台路由器的每一个多点访问接口都有一个路由器的DR优先级(范围是0-255,默认为1)。



3


要点总结



1

如果在—个MA网络上只有惟—的一台具有DR选举资格的路由器,那么这台路由器将成为DR,而且在这个网络上没有BDR。其他所有的路由器都将只和这台DR路由器建立邻接关系。




2

如果没有具有DR选举资格的路由器和一个MA网络相连(例如所有路由器的接口DR优先级都是0),那么这个网络上将没有DR或者BDR路由器,而且也不建立任何邻接关系。




3

DR、BDR的身份是非抢占的,也就是一旦网络中DR确立,则即使后来者的优先级比当前DR更高,也无法抢占DR的身份。当DR失效,BDR成为DR,同时再产生BDR。




4

DR与BDR、DR与Drother、BDR与Drother之间都是FULL状态,Drother之间是2way状态。所有的Drother都只和DR以及BDR建立FULL关系。




5

OSPF定义了一个Wait计时器,缺省等于Dead时间40s,当一个MA接口激活OSPF时,它会等待Wait计时器定义的时间,这个时间用于搜集MA网络中具有DR选举资格的路由器。这就是为什么我们在以太网接口上配置OSPF时,邻居关系的建立总是很慢,而在串行接口上配置OSPF,邻居关系很快就建立起来了,串行接口不选举DR、BDR,无需经过WAIT计时器。




6

DR、BDR是一个接口级别的概念。严格的说“这台路由器是DR” 这句话其实并不严谨,例如下图所示,


在192.168.1.0/24这个MA网络中,R1的Fa0/2口最终被选举为DR的话,我们不会说R1就是DR,因为DR是接口级别的角色,只能说R1的Fa0/2口在直连的网络中是DR。并且R1的Fa0/1连接到另一个MA网络,那么在那个MA网络中,也要选举DR、BDR,至于R1的Fa0/1能否成为那个网络的DR,也是要看PK的结果。



4



关于DR、BDR选举的深入探讨



1
如果下图中两台路由器(的接口)同时激活OSPF,则在接口OSPF状态机的演进过程中,2way状态后会各自启动WAIT计时器,用于搜集MA网络中具有选举资格的OSPF路由器,在各自泛洪的Hello报文中,包含着他们自身的接口DR优先级、Router ID等信息。 40s后R1成为DR,R2成为BDR。此时大家发送出来的Hello消息中,DR字段填写的是R1的Router ID,BDR字段填写的是R2的Router ID。




2
此后,如果R3也加入到了MA网络中,并且它的接口DR优先级比R1更高:R3的接口激活OSPF后,也会启动一个WAIT计时器,但是它会收到R1发送出来的Hello消息,该Hello消息中DR字段填写的正是R1自己的Router ID,这意味着“网络中有人宣称自己是老大”,因此R3将接受这个事实,它的WAIT计时器迅速超时。这就是所谓的DR的不可抢占性。




3
但是我们考虑另一种情况:假设初始情况下R1、R2处于一个LAN中,R3自己处于另外一个LAN中,大家的接口IP都是同网段的,但是属于不通的LAN。例如三台路由器都连接在同一台交换机上,但是R1、R2属于一个LAN,R3属于另一个LAN。那么三台路由器的接口激活OSPF后,R1会成为LAN1的DR,而R3会成为LAN2的DR,也就是他们各自发送出来的Hello消息中,都宣称自己就是DR。现在假设两个LAN连接了起来,这就会有问题了,因为同一个LAN中,有两人宣称自己是老大,这就得重新干一架,重新DR选举。




5


小实验


R1、R2接口DR优先级设置为0,则R1、R2不建立FULL邻居关系

R1 接口优先级为0,R2为1,则R2成为DR,并且该MA网络中没有BDR

在上一步的基础上,R1接口优先级改为100,对网络没有影响(DR非抢占)

在上一步的基础上,R2(此时为DR)重启OSPF进程,则R1成为DR,R2成为BDR




对技术帖内容有任何疑问,请联系瑞哥: qq号:1584708135,也欢迎各位同仁投稿!




本文分享自微信公众号 - 网络技术联盟站(wljslmz)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!