最新消息:

深入OSPF之DR与BDR选举

Cisco admin 3200浏览 0评论

深入OSPF之DR与BDR选举        原创:wildlee

在一个广播式的网络中采用了选举DR、BDR技术,是对OSPF网络的一种优化,减少了邻接关系数,同时也减少发送重复的SLA数目。在广播网络中的所有路由器都与DR、BDR形成邻接关系,DR与BDR之间也形成邻接关系。参于DR、BDR选举的路由器其优先级要大于0,优先级等于0的路由器不具有选举资格。路由器将一个多路访问接口上的DR、BDR信息记录到一个数据结构表中。网络中优先高的的路由器并不一定能成为DR或BDR,因为优先级高的路由器也不能取代已经存在的DR、BDR路由器位置。

DR与BDR选举过程

今天我参考TCP/IP卷一与OSPF RFC 2328,说下关于自己对OSPF选举的看法。记住以下选举过程只是路由器程式执行流程,无法体现在其它邻居上或报文上,并且在选举中并不一定会用到所有的选举过程。

触发选举与选举条件

当路由器X某个接口连接到一个广播网络,就要在其接口所连接的网络中选举出DR与BDR路由器。路由器X接收并检查邻居路由器发送过来的HELLO报文并记录其优先级、DR、BDR字段,为后面DR、BDR选举提供了依据。所有与路由器X建立了邻居关系的路由器其邻居状态已经达到TWO-WAY,而且所有路由器的优先级不能为0都具有选举DR路由器与BDR路由器的资格。路由器X在选举网络中的DR与BDR路由器的时候,不但计算符合条件的邻居路由器,同时也包括路由器X。网络中路由器优先选举BDR路由器,然后在选举DR路由器。

BDR路由器选举

a.在选举BDR的时候,根据HELLO报文构建的数据库,所有宣告自己是DR的路由器不再有BDR的选举资格。如果网络中有一个或多个路由器宣告自己为BDR路由器,那么优先级最高者被宣告为BDR路由器,优先级相同具有最高路由器ID将被宣告为BDR路由器。

b.在选举BDR的时候,根据HELLO报文构建的数据库,所有宣告自己是DR的路由器不再有BDR的选举资格。如果没有任何路由器宣告自己为BDR路由器,那么具有最高优先级的路由器被宣告为BDR路由器,优先级相同具有最高路由器ID的路由器被宣告为BDR路由器。

DR路由器选举

a.在选举DR的时候,根据HELLO报文构建的数据库,如果有一个或多个路由器宣告自己为DR路由器,那么具有最高优先级的路由器被宣告为DR路由器,优先级相同具有最高路由器ID的被宣告为DR路由器。

b.在选举DR的时候,根据HELLO报文构建的数据库,如果在DR选举列表中没有任何路由器宣告自己为DR路由器,那么新选举出的BDR路由器被提升为DR路由器,并重选BDR路由器。

DR与BDR选举分析

我们分为三个场景,论述选举过程。

1.网络初启动

在一个广播网络中所有路由器被重新启动,后经互相交换HELLO报文建立了邻居关系。此时假设路由器X WAITING时间已超时[第五个HELLO并未发送],此时路由器要进行DR与BDR路由器的选举。路由器X在WAITING时间内从邻居路由器收到的HELLO报文其DR与BDR字段都是0.0.0.0,此时还没有哪个邻居路由器宣告自己为DR或BDR路由器。所以路由器X在BDR选举中采用了b过程,在DR路由器选举中直接使用了b过程。路由器X在发送第五个HELLO报文的时候,在DR、BDR字段填入自己选举出的DR与BDR路由器,注意这时选举出的DR、BDR是同一个路由器。

2.网络中同时出现多个DR或BDR

当网络中的路由器HELLO时间不匹配、某个路由器网络通信故障、两个广播网络合为一个,这样同一个广播网络中不同路由器在其接口数据结构表中记录了不同的DR与BDR路由器,造成网络中多个DR或BDR路由器现象,一山不能容二虎,此时路由器如何决策网络中新的DR或BDR路由器。如果网络中是出现多个BDR路由器,则用BDR路由器选举过程a做决策,如果是多个DR路由器,则用DR路由器选举过程a做决策。

3.网络中新加入路由器

当一个路由器X新加入到广播网络中,该路由器与所有路由器建立了邻居关系,并根据其HELLO报文中的DR、BDR字段发现了网络中已经存在的DR与BDR路由器,在其计算网络中DR与BDR路由器的时候,根据其BDR选举过程a与DR选举过程a就确定了网络中的DR与BDR路由器,因为网络中宣告自己为DR或BDR路由器只是其中的某个路由器。也可以说新加入的路由器继承原网络中的DR、BDR,不在进行选举。

在卷一中有这么一段话:“接着,所有的路由器将宣称自己是DR路由器(HELLO报文的DR字段是它们自身的接口的地址);所有的路由器也将宣称它们自己是BDR路由器(HELLO报文的BDR字段是它们自身接口的地址)”,经过反复测试验证,发现报文里根本没有这种宣告报文,在RFC中也没有看到,是书作者误解了意思,还是我错了,有待大家验证。

 

 

wildlee博客

转载请注明:爱开源 » 深入OSPF之DR与BDR选举

您必须 登录 才能发表评论!