OSPF协议 DR/BDR的选取规则

OSPF,开放式最短路径优先协议,属于自治区域内部使用的网关协议之一,他是基于链路状态制定的。

ospf有5种网络类型:

1.点对点类型,由思科提出的,自动发现邻居,不选举DR/BDR,hello报文发布时间为10s。

2.广播类型:由思科提出的网络类型,自动发现邻居,选举DR/BDR,hello报文发布时间为10s。

3.非广播型网络,由RFC提出的网络类型,手工配置邻居,选举DR/BDR,hello报文发布时间30s。

4.点到多点网络 ,由RFC提出,自动发现邻居,不选举DR/BDR,hello报文发布时间30s。

5.点到多点非广播,由cisco提出的网络类型,手动配置邻居,不选举DR/BDR,hello报文发布时间30s。

因为点对点网络类型比较好了解,所以本片文章主要说一下广播型网络类型

在广播型ospf中,DRBDR出现之前,由于任何路由器和他的邻居都要建立邻接关系,这样路由器之间就会形成很多的邻接关系,这样就会发送太多的 LSA,而且在广播型中还存在自己发给邻居的LSA又从邻居那重新发回来,导致网络中产生很多的重复的信息,因此,产生了DR|BDR。

DR|BDR的任务是:

1. 描述这个多址网络和该网络上剩下的其他相关路由器

2. 管理这个多址网络上的flooding过程.

3. 同时为了冗余性,还会选取一个BDR,作为双备份之用.

DR|BDR的选取规则

1.路由器的每个路由端口都有优先级,优先级共8为,范围是0-255,端口的默认优先级是1,当优先级变成0时将无法被选举成DR|BDR,设置端口的优先级的代码是:ip ospf priority

2.hello报文中包含了端口的优先级,还有可能成为DR|BDR的端口的ip地址

3.当端口在多路路由中初次启动时,它把DR|BDR设置成0.0.0.0,同时设置等待计时器的值等于路由器无效间隔

路由器的路由标识的定义:

1.可以在ospf中自己设定路由标识

2.如果没有定义路由标识,而且路由器定义了loopback,那么选择ip地址最大的loopback端口当做路由标识

3.如果这些都没有,那么将使用ip地址最大的物理端口的ip地址作为路由标识

DR|BDR选取过程:

1.路由器在和邻居建立双向通信之后,检查邻居hello报文中的primary、DR和BDR字段,列出所有可能参与选举DR|BDR的邻居(primary为0除外)

2.如果有多台路由器宣告自己是BDR(即在hello报文将自己表示成BDR),将选举优先级大的作为BDR,如果优先级都相同,则选择路由器标识大的作为BDR。如果没有路由器宣告自己是BDR,则选择优先级大的作为BDR(同时排除宣告自己是DR的路由器),如果优先级都相同,则根据路由器标识判断。

3.如果一个或者多个路由器宣告自己是DR,那么就从这些路由器中选择优先级高的作为DR,如果优先级相同,选择路由器标识大的作为DR;如果没有路由器宣告自己是DR,那么将上一步中选举出的新的BDR当做DR。

4.如果路由器新晋成为DR或者BDR,或者路由器新的退出DR或者BDR,重复步骤2和3,然后结束选举,这样做是防止一台路由器同时宣告DR和BDR

5.在ospf中不存在抢占,即当ospf选举出新的DR和BDR之后,即使有 一个优先级更高的路由器,也不进行重新选举。

6.DR/BDR选举完成后,DRother只和DR/BDR形成邻接关系.所有的路由器将组播Hello包到AllSPFRouters地址 224.0.0.5以便它们能跟踪其他邻居的信息,即DR将泛洪update packet到224.0.0.5;DRother只组播update packet到AllDRouter地址224.0.0.6,只有DR|BDR能够监听这个地址