OSPF路由器不能成为DR/BDR唯一的方法:DR优先级=0

网络 路由交换
我们都知道DR/BDR是一个路由器接口的属性,它只能表示某个路由器在某个网段上是什么角色,并不能代表整个路由器,所以DR/BDR的选取是针对某个网段的。

很多小伙伴学习完OSPF中的DR/BDR选取规则以后,感觉很简单,不过在做实验的时候,会发现有的时候选取的DR/BDR并不是自己预期的,又会感觉很迷惑:难道是自己学习的选取规则有问题吗?

其实不是的,DR/BDR的选取,还有一个重要的知识点:DR/BDR是不可抢占的!不过在学习新知识点之前,我们先来复习一下DR/BDR的选择规则!

DR/BDR的选举规则

我们都知道DR/BDR是一个路由器接口的属性,它只能表示某个路由器在某个网段上是什么角色,并不能代表整个路由器,所以DR/BDR的选取是针对某个网段的。

例如在下面的多点接入拓扑中,有四台路由器在同一个网段10.1.1.0/24里,在这个网段上会选取DR、BDR。

 

 

OSPF路由器不能成为DR/BDR唯一的方法:DR优先级=0

 

 

一个网段

 

四台路由器在初始的情况下,都会认为自己是DR/BDR, 在它们发送的报文中,也会把DR和BDR的标记置位。

当一台路由器收到比自己DR优先级更大的报文时,就会停止申明自己的DR/BDR,转为声明DR优先级更大的路由器为DR/BDR。

OSPF路由器不能成为DR/BDR唯一的方法:DR优先级=0

根据DR优先级选取

如果一台路由器收到的报文,DR优先级是相同的,就会比较Router ID,如果对方的Router ID比自己更大,也会声明对方是DR/BDR。

OSPF路由器不能成为DR/BDR唯一的方法:DR优先级=0

根据Router ID选取

上面就是DR/BDR的选择规则:

  • 先比较DR优先级,最大的路由器会被选取为DR/BDR;
  • 如果DR优先级相同,则会根据Router ID来选取DR/BDR;

DR/BDR选取的不可抢占性

如果事情都按照DR/BDR的选取规则来,则小伙伴就不会有疑问了,整个世界也就清静了。不过在我们查看DR和BDR的角色时,经常会看到成为DR/BDR的路由器并不是我们期望的。例如下图,有3个路由器,初始情况下,R3的DR优先级为30,值最大的,所以它会被选择为这个网段上的DR;R2的优先级次之,它会选择为这个网段上的BDR。

OSPF路由器不能成为DR/BDR唯一的方法:DR优先级=0

DR/BDR

此时如果在网络上,再添加一台路由器R2,DR优先级是50,这时会有什么反应呢?会不会R2成为新的DR,R3变成BDR呢?

OSPF路由器不能成为DR/BDR唯一的方法:DR优先级=0

新增一台路由器R2

事实上这时时候,网络上什么都不会变化,R3仍然作为DR存在,R1作为BDR存在!如果此时查看路由器的状态,你就会觉得DR/BDR的选择规则是错误的!

OSPF路由器不能成为DR/BDR唯一的方法:DR优先级=0

网络没有变化

其实上面所说的DR/BDR的选择规则并没有错误,出现这种情况的原因是DR/BDR的选取还需要遵循另外一个规则:DR/BDR的选取是终身的,不会被抢占!

意思就是说,在一个网段上,选取出DR/BDR以后,那在它Fail之前,就会一直是DR/BDR,不会被后来的高优先级的路由器取代!

为什么要这么做呢?OSPF的这种做法其实是符合实际网络的使用要求:稳定压倒一切。

切换DR/BDR时,需要重新通告LSA,网络会有短暂的流量不通,这在实际工作中,是不允许的。如果有高优先级的路由器加入网络,就切换DR/BDR,会有可能造成网络的震荡。比如新加入的OSPF路由器不稳定,一会UP,一会Down,那整个网络就没有办法使用了。

所以OSPF在设计的时候,就考虑到了这一点,DR/BDR选取以后,就不会发生改变了!

我们在实验室遇到这种情况,不用担心,直接把所有路由器的OSPF进程清除,让它们重新选取就可以了!但在实际网络中,是不能随便清除OSPF进程的!

并且很多时候,我们遇到DR/BDR不是我们期望路由器的情况,是我们的敲命令的动作慢了。初始情况下,一台路由器会等待40秒(默认)的时间,才会选取DR/BDR。如果高DR优先级的路由器在40秒以后才加入网络,就没有机会成为DR/BDR了!

DR优先级为0的路由器,不参与DR/BDR的选取

经过上面的描述,小伙伴应该能够明白了,即使路由器的DR优先级最大,也不一定能成为DR/BDR。而想让一台OSPF路由器永远的成某个为网段的DR/BDR,通过修改DR优先级和Router ID是行不通的。其实想让路由器永远成为DR,有且只有一种方法:将其它OSPF路由器的DR优先级设置为0。

当路由器的DR优先级被设置为0以后,它就不会参与这个网段上DR/BDR的选取了,它的角色永远就是DR Other。

OSPF路由器不能成为DR/BDR唯一的方法:DR优先级=0

DR优先级设置为0

当然这种做法的风险就是如果DR路由器Fail以后,整个网络就瘫痪了,没有办法转发报文。因为DR Other只能和DR交换路由信息,DR Other之间是不交换路由信息的。

总结

经过上面的描述,各位小伙伴应该对DR/BDR的选取机制和不可抢占的原因了解了吧?我在做一下简单的总结:

 

  • 在同一个网段上,会选择DR优先级最高的路由器作为DR;
  • 如果DR优先级相同,则会选取Router ID最大的路由器作为BDR;
  • DR/BDR选取以后,就不能被抢占,永久生效,直到路由器Fail。

 

责任编辑:赵宁宁 来源: 今日头条
相关推荐

2013-06-24 10:12:52

OSPF协议DRBDR选举

2010-08-09 14:13:16

路由器优先级比较

2019-12-03 08:13:06

BDRDR路由器

2011-06-28 13:39:39

北塔IT运维BSM

2023-06-08 18:17:07

OSPF路由协议

2010-01-12 14:09:17

华为交换机路由

2010-05-16 08:09:35

马化腾乔布斯

2011-12-29 13:56:56

数据中心IBM惠普

2010-01-05 15:45:51

Linux成为路由器

2011-07-15 16:57:43

AJAX

2011-08-23 09:52:54

路由路由协议

2012-12-27 10:23:12

Google Now谷歌

2021-03-16 19:27:25

人脸识别指纹生物信息

2010-08-31 17:03:44

2015-11-09 10:25:25

2012-07-20 09:41:43

2012-08-14 09:38:29

WAN优化

2013-06-28 11:25:46

2023-02-09 09:56:32

架构

2019-05-20 09:28:09

物联网操作系统IOT
点赞
收藏

51CTO技术栈公众号