1.初始化

 

路由器开启选举算法时,DR、BDR被初始化为0.0.0.0——表明当前网络中无DR、BDR

 

2.收集信息

 

通过邻居发送的Hello消息,获取选举DRBDR所需的信息

 

3.创建List

 

此表只是示意作用,内容非真实

1加入List条件

①当前路由器与发送Hello消息的邻居至少处于 2WAY状态

②邻居Priority不能为0

注意:

当前设备若符合条件,也加入到List中

2作用

用以选举DR、BDR

 

4.选举

(1)记录

记录网络中DR、BDR的取值——用以后续比较

 

(2)选举BDR

条件

没有声明自己为DR—— 一台设备没有必要既是DR又是BDR

选举方式

创建子集,将没有声明自己为DR的设备的信息加入其中

a.有设备声明自己为BDR(却没有声明自己为DR)

在这些设备中,按照竞选机制选举出BDR

有该条件在,新加入OSPF网络的设备对应接口将无法成为BDR

b.没有设备声明自己为BDR

在子集中,按照竞选机制选举出BDR

 

(3)选举DR

针对对象

整个List

选举方式

a.有设备声明自己为DR

在这些设备中,按照竞选机制选举出DR

有该条件在,新加入OSPF网络的设备对应接口将无法成为DR

b.没有设备声明自己为DR

将新选举出的BDR也同时置为DR

该条件保证了当DR出问题时,BDR会直接成为DR

注意:

如果设备发送的Hello消息声明其它邻居DRBDR,只有与该邻居处于至少2WAY状态,且认为远端优先级不为0时考虑

 

(4)跳转

条件

a.当前设备成为新的DR或BDR

b.当前设备经过选举后以确定其它设备接口为DR或BDR

执行动作

一旦满足条件,则重复一次步骤(2)、(3),然后进入步骤(5)

意义

确保不会有路由器同时声明自己为DR和BDR

 

(5)接口状态

通过以上步骤后,已经选举出DR、BDR,此时本地接口状态已经可以被确定

 

(6)NBMA网络

接口角色为DR或BDR的设备,向该网段中的Priority为0的设备发送Hello

 

(7)邻接关系

如果接口角色发生了变化,则会导致邻接关系发生改变