目录

一、实验原理 

二、实验拓扑

三、实验步骤 

四、实验过程

总结 


实验难度

1

实验复杂度

2

 

 

一、实验原理 

DR(Designated Router),指定路由器。

BDR(Backup Designated Router),备份指定路由器。

为什么会有这两个角色呢?我们来看看以下的多路访问网络拓扑图,在一个广播多路访问网络或非广播多路访问网络中,若任意两台路由器之间交换路由信息,那么它们就应该建立N*(N-1)/2个邻接关系,例如,有5台路由器,那么建立邻接关系的个数就为10个,若是更大的网络呢?在一个网络中,邻接关系太多就会导致了任一台路由器的路由发生变化时就会发生大量的更新信息,这样会浪费带宽资源的。为了解决这个问题,OSPF定义了DR与BDR的概念,除了了DR与BDR,剩下的路由器就都是DRother,所有的路由器都只会把信息发送给DR,然后再由DR发送到链路上。若DR发送故障了,那么网络中的路由器就会重新DR,路由器会与新的DR进行信息的同步。那么选举DR是需要一个过程的,这个过程时间比较长,在一个生产环境中这个过程肯定是不合理的,为了缩短这个过程,OSPF就提出了备份路由器BDR的概念。当DR出现故障时,BDR会马上成为DR,而其他的角色DRother中也会选举出一个BDR。

BDR就是备份DR的所有数据,但是发送路由更新信息都是由DR接收与发送的,BDR也会接收到其他路由更新信息,但是它不会主动发送路由更新给其他路由器。存在DR与BDR后,我们来看看下图只需要多少个邻接关系就够了。这时只需要七个邻接关系就可以了。在OSPF网络中,DR与BDR的LSDB是相同的,它们会包含整个网络的拓扑。

DRother之间不会建立邻接关系,它们只能维持在双向通信关系,DRother只会与DR和BDR建立邻接关系。DR的功能就是在一个局域网中学习所有的LSA信息,然后把这些路由更新信息发送给新加入的路由器。在OSPF邻接关系形成后就会交换LSA来同步LSBD,接着就会由DR把相关的LSA更新发送给所有的路由器。

ospf里里有几个dr ospf一个区域有几个dr_优先级

DR与BDR的选举规则:

1.优先级高的路由器成为DR,优先级次高的成为BDR;(默认情况下,接口处的OSPF优先级都为1)

2.若优先级都相同,那么会选举路由器ID最大的路由器为DR,次大的为BDR;(若优先级为0,那么这台路由器是不能成为DR与BDR的,只能成为DRother)

3.若存在一台优先级更高的OSPF加入到已经处于选举完成DR与BDR的网络时,它并不会抢占DR或BDR的。只有DR或BDR发生了故障时,才会更换DR或BDR,也就是说,当DR发生了故障,那么BDR就成为DR,BDR发生故障的话,将重新选举BDR;

 

二、实验拓扑

ospf里里有几个dr ospf一个区域有几个dr_ospf里里有几个dr_02

三、实验步骤 

1.搭建如图所示的网络拓扑;

2.初始化路由器,配置相应的IP地址,测试网络连通性;

3.配置进程号为100,区域为0的OSPF协议,查看相关效果;

4.修改R1的优先级为100,重启OSPF路由进程;

5.关闭R1的物理接口,等网络中选举好DR与BDR角色会再重新打开R1,查看效果。

四、实验过程

1.搭建如图所示的网络拓扑;

略。

2.初始化路由器,配置相应的IP地址,测试网络连通性;

略。

3.配置进程号为100,区域为0的OSPF协议,查看相关效果;

ospf里里有几个dr ospf一个区域有几个dr_优先级_03

ospf里里有几个dr ospf一个区域有几个dr_ospf里里有几个dr_04

ospf里里有几个dr ospf一个区域有几个dr_ospf里里有几个dr_05

ospf里里有几个dr ospf一个区域有几个dr_ospf里里有几个dr_06

ospf里里有几个dr ospf一个区域有几个dr_OSPF_07

效果:

ospf里里有几个dr ospf一个区域有几个dr_OSPF的DR与BDR选举_08

在默认情况下,所有路由器的优先级都是相同的,所以这里会选择RID最大的路由器成为DR,RID次大的BDR。

4.修改R1的优先级为100,重启OSPF路由进程;

ospf里里有几个dr ospf一个区域有几个dr_OSPF的DR与BDR选举_09

ospf里里有几个dr ospf一个区域有几个dr_OSPF的DR与BDR选举_10

这时我们修改了R1的OSPF优先级为100,但是我们发现DR与BDR的角色现在也没有发生变化,为什么会这样呢?因为网络是稳定,DR与BDR的选举是不会涉及到抢占行为的,所以已经选举完成后,就不会存在抢占DR这个角色了。

重启OSPF路由进程:

ospf里里有几个dr ospf一个区域有几个dr_优先级_11

ospf里里有几个dr ospf一个区域有几个dr_ospf里里有几个dr_12

ospf里里有几个dr ospf一个区域有几个dr_OSPF_13

ospf里里有几个dr ospf一个区域有几个dr_OSPF的DR与BDR选举_14

ospf里里有几个dr ospf一个区域有几个dr_DR与BDR的选举_15

效果:

ospf里里有几个dr ospf一个区域有几个dr_OSPF_16

在重新启用OSPF路由进程后,发现DR变成了DR,而R5就由DR变成了BDR。

5.关闭R1的物理接口,等网络中选举好DR与BDR角色会再重新打开R1,查看效果。

ospf里里有几个dr ospf一个区域有几个dr_OSPF的DR与BDR选举_17

ospf里里有几个dr ospf一个区域有几个dr_DR与BDR的选举_18

好了,现在已经完成选举过程了,我们重新打开接口:

ospf里里有几个dr ospf一个区域有几个dr_ospf里里有几个dr_19

效果:

ospf里里有几个dr ospf一个区域有几个dr_优先级_20

我们发现现在DR与BDR是不会重新选举的,因为重新选举会造成网络动荡的。

代码解析

R1(config-if)#ip ospf priority 100   //修改OSPF的优先级为100

 

注意:

1.DR的概念是链路级的,同一台路由器在一条链路上是DR,但是在其他链路是可能就是BDR或DRother了;

2.修改OSPF路由器的优先级为0,表示不选举DR与BDR角色;

 

总结 

这个DR与BDR的选举是一个小实验而已,操作多几遍会更好地理解DR与BDR的选举原理。好了,我们在下一个章节再见,加油!