DR和BDR的选举是根据优先级来确定的,优先级越大约有可能成为DR,如果优先级相同,那么就根据route-id的大小来选举,越大越有可能成为DR。
首先,所有路由器向外发送hello包的时候,每个路由器都认为自己是DR,这个时候的状态为init,当达到2-way状态时,已经是邻居关系,这个时候在你给我发的数据包中我能看见我自己的信息。这个时候谁的优先级大谁是DR,如果优先级相同就比较route-id。
如果主从关系确定后,一个新加入的路由器比DR优先级大,那么原有的DR还是DR.只有当DR挂掉后,原有的bdr会向外发送其优先级route-id和其他路由器对比,如果该BDR优先级高,那么继任DR的工作。
这里有一点需要明确:优先级都为0的时候,不能参与主从选举。drther都是优先级为0.
drther和dr通讯的组播地址是:224.0.0.6.
其余的都是224.0.0.6.
希望楼主好好看看卷一。
网络之路慢慢长,我们共勉吧
OMIJ1230说的很详细了 但有几点我觉得说的不对 DR和BDR是在two-way状态上进行选举的 先比较优先级 然后是router-id
ospf建立邻接的过程有七个 1 down状态 2.init状态 3.two-way状态 4.exstart状态 5.exchange状态 6.loading状态 7.full状态
就像我说的 在第三个状态 也就是two-way状态中进行选举DR BDR omij1230说在主从中选举优先级为0时不能参与主从 虽然我没做过实验 但是 主从这个是在exstart中选举的 在exstart这个状态中 就是发送的第一个dbd 这个dbd里面不包含任何数据 但是 在exstart状态中的这个dbd里选举主从关系 主从 是为了下面的exchange中 有序 可靠传输lsa所以才选举主从 主从和选举DR BDR没有任何关系 我会做个实验 试一试 看看 omij1230说的对不对 如果有朋友做了实验证实了可以给我留言
还有一点错的是 drother监听的组播地址是224.0.0.5 DR BDR监听的是224.0.0.6 我想那是他的笔误
希望对楼主有所帮助
首先只有优先级大于0的路由器才有资格选举DR和BDR。
当选举DR/BDR的时候要比较hello包中得优先级,优先级最高的为DR,次高的为BDR,优先级不做修改,默认的端口上的优先级都是1,在优先级相同的情况下,比较router id,router id最高的为DR,次高的为BDR。当你把相应的端口优先级设为0时,ospf 路由器将不能再成为DR/BDR,就是上面说的不具备选举的资格,而只能成为DRother。希望对你有用!
1、首先比较优先级
2、然后比较router-id
记住路由比大,交换比小。