「OSPF」- DR and BDR

  CREATED BY JENKINSBOT

问题描述

在 Multi-Access(MA、NBMA)中,如果多个 Router 间需要建立邻接关系:
1)这便会导致网络存在过多的 OSPF 邻接关系,增加设备负担,也增加 OSPF 报文数量;
2)当拓扑发生变化时,网络的 LSA 泛洪会造成带宽的浪费和资源的损耗;
3)n*(n−1)/2 个邻接关系,管理复杂。
4)重复的 LSA 泛洪,造成资源浪费。

解决方案

注意:在解释 DR 和 BDR 之前,需要先了解 OSPF 的网路类型。

提出 DR(Designated Router)、BDR (Backup Designated Router)、DR Other 概念:

1)在 MA 中,DR 负责建立和维护邻接关系并负责 LSA 的同步;
2)DR/BDR 与 DR Other 建立邻接关系,并交换链路状态信息;DR Other 间不直接交换链路状态信息;
3)当选举 DR 与 BDR 后,多个 DR Othter 间只需要保持邻居关系(停滞在 two-way 状态);
4)BDR 会监控 DR 状态,以在 DR 发生故障时接替其角色;
5)DR Other 的路由信息会通过组播地址(224.0.0.6)发送给 DR 和 BDR 路由器,然后 DR 通过(224.0.0.5)向下发送路由信息。

注意,每个 MA 网络,都会选举 DR/BDR;如下拓扑将选举 4 个 DR / BDR:

RTA <==> RTB <==> RTC <==> RTD <==> RTE

选举过程

选举(Election)依旧是其本质:
1)DR 基于端口的 Router Priority 进行选举(高胜出),然后在根据 Router ID 选举(高胜出);
2)非抢占式:当原始 DR 恢复后,不会抢占 DR 角色 ⇒ 不可抢占,即高优先级接入,并不会发生拓扑变化;
3)在 Tow-Way State 中,选举 DR/BDR 需要 40s 时间;

路由器交互 Hello 报文,来选举 DR 与 BDR 角色。

在 MA 或 NBMA 上,DR 和 BDR 的选举过程如下:
1)接口 UP 后,发送 Hello 报文,同时进入到 Waiting 状态。在该状态下会有个 WaitingTimer,该计时器的长度与 DeadTimer 是一样的。默认值为40s,用户不可自行调整。
2)在 WaitingTimer 触发前,发送的 Hello 报文是没有 DR 和 BDR 字段的。在 Waiting 阶段,如果收到 Hello 报文中有 DR 和 BDR,那么直接承认网络中的 DR 和 BDR,而不会触发选举。直接离开 Waiting 状态,开始邻居同步;
3)假设网络中已经存在一个DR和一个BDR,这时新加入网络中的路由器,不论它的 Router ID 或 DR 优先级有多大,都会承认现网中已有的 DR 和 BDR;
4)当 DR 因为故障 Down 掉之后,BDR 会继承 DR 的位置,剩下的优先级大于 0 的路由器会竞争成为新的BDR;
5)只有当不同Router ID,或者配置不同DR优先级的路由器同时起来,在同一时刻进行DR选举,才会应用 DR 选举规则产生 DR;

如果 Router Priority 全部设置为 0,则 OSPF 将无法正常工作。

网络类型 与 选举操作

在 P2P 中,Router 间也需要建立邻接关系,但为点到点链路,所以无需选举 DR 与 BDR 关系;

按需调整 OSPF 网络类型

问题描述

针对网络设备,其 OSPF 的网络类型是根据接口的数据链路层封装自动设置的。

图中的路由器采用以太网接口互联,因此这些接口的网络类型缺省均为 Broadcast 类型:

但是,每段链路本质上都是点对点链路,所以在链路上选举 DR 与 BDR 是没有必要的。

解决方案

然而,这实际上是没有必要而且浪费时间的(DR及BDR的选举过程涉及一个等待计时器,这增加了直连路由器形成邻接关系的时间),因为这些链路其实从逻辑的角度看都是点对点的连接,选举DR或BDR实在是画蛇添足。所以为了提高OSPF的工作效率,加快邻接关系的建立过程,可以把这些互联接口的网络类型都修改为P2P。

[Huawei-GigabitEthernet1/0/0] ospf network { p2p | p2mp | broadcast | nbma }

参考文献

Designated & Backup Designated Router