OSPF协议之:DR和BDR的选举

在OSPF协议中,根据hello包中的字段来进行DR和BDR的选举。

Hello包的报头如下:

OSPF协议之:DR和BDR的选举_第1张图片

在选举的过程中,主要用到的字段为上表中高亮的字段。选举的过程如下所述:

前提:
1 一个网元在所有邻居进入two way状态之后进行DR和BDR的选举。
2 优先级为0的路由器不具备选举资格。
3 路由器优先的比较方法为首先比较优先级,优先级越高的越优先;在优先级相等的前提下,比较Router ID。Router ID大的优先,因为在全网中Router ID是唯一的,所以此方法一定能够比较出两个Router的优先关系。
4 出于稳定性考虑,在DR和BDR选举出来之后,如果两个Router没有出故障,是不会去更改的。也就是说在一个稳定的网络中,新添加一个Router,即使该Router具有最高优先级也不会将其设置为DR。
5 当DR挂掉的时候,将BDR推举为DR,并重新选举出一个BDR。如果BDR挂掉,直接选举出来一个BDR就可以了。

选举步骤:
1 所有Router都宣称自己是DR和BDR发送Hello包,除非自己没有选举资格。
2 在选举的过程中,每个Router在接收到Hello包之后,检查其DR和BDR字段。建立一个备选的BDR的集合。该集合包括所有未宣称未DR的Router,因为参加DR竞选的Router不具备BDR的选举资格。那么在网络的最开始状态,所有的Router都同时宣称自己是DR和BDR,那么该候选的BDR集合为空。所以实际中总是先选择出来DR,再选择出来BDR。
3 在2统计的集合中,选取出一个最优先的Router被选举为BDR。
4 在所有宣称自己为DR的路由其中选举一个最优先的Router为DR。如果没有任何的Router宣称自己为DR,那么BDR被推举为DR。

你可能感兴趣的:(网络)