外观
全球企业网的统治级协议:OSPF 如何绘制全网链路地图?
如果说静态路由是“手工绘制的单车便道”,那么 开放式最短路径优先(OSPF)(Open Shortest Path First,开放式最短路径优先) 就是拥有实时卫星遥感与动态交通调度的“全景高速公路网导航系统”。
作为当今全球企业内网、数据中心底层最核心的内部网关协议(IGP),OSPF 直接封装在网络层 IP 协议之上(IP 协议号为 89)。它依靠著名的计算机科学家 Dijkstra 提出的最短路径优先(SPF)算法,在彻底消除了环路可能性的同时,实现了极其迅猛的网络收敛。
在华为 ICT 大赛数通赛道中,OSPF 相关的概念题、报文分析题与拓扑故障排错题占到了路由知识库的半壁江山。本课我们将深入 OSPF 的骨髓,彻底攻克其三大核心支柱:状态机交互、DR/BDR 选举 与 四类高频 LSA。
学完本课后,你将能够:
- 写出 Router-ID 的三级仲裁选举规则,并掌握 OSPF 五种报文与七大邻居状态迁移时序。
- 深刻理解 广播网络中为什么必须选举 指定路由器与备份(DR/BDR),并牢记其“非抢占”与 DRother 之间仅保持 2-Way 状态的核心特性。
- 熟练辨识 1 类(Router)、2 类(Network)、3 类(Summary)与 5 类(External)LSA 的生成者与泛洪范围。
- 掌握 OSPF 骨干区域 Area 0 与非骨干区域的标准星型分层结构。
1. 身份证与五大报文:OSPF 如何交朋友?
1. 路由器身份证:Router-ID
在同一个 OSPF 网络中,每台路由器必须拥有一个全网唯一的 32 位点分十进制标识符,称为 路由器标识符(Router-ID)(形如 1.1.1.1)。
华为 VRP 系统中 Router-ID 的法定选举顺序:
- 手工指定(最高优先级):管理员在命令行通过
ospf 1 router-id 1.1.1.1手动配置(工程实践强烈推荐!); - Loopback 接口最大 IP:若未手工指定,优先从已经配置并处于活跃状态的 Loopback 逻辑接口中挑选数值最大的 IP;
- 物理接口最大 IP:若无 Loopback,则从所有处于 UP 状态的物理接口中挑选数值最大的 IP。
2. 五大协议报文(全部基于 IP 协议号 89)
OSPF 绝不依赖 TCP 或 UDP,而是自己设计了高度精简可靠的 5 种报文:
| 报文名称 | 核心作用与使命 |
|---|---|
| Hello 报文 | 发现、建立并周期性维护邻居关系(默认每 10 秒向组播地址发送一次心跳)。 |
| DD 报文(Database Description) | 数据库描述报文。向邻居通告本地 LSDB 链路状态数据库中所有 LSA 的摘要目录(目录索引)。 |
| LSR 报文(Link State Request) | 链路状态请求报文。向对端索取本地缺少的具体某条完整 LSA 实例。 |
| LSU 报文(Link State Update) | 链路状态更新报文。真正携带完整 LSA 数据的货运卡车! |
| LSAck 报文(Link State Ack) | 链路状态确认报文。对收到的 LSU 报文进行显式单播/组播确认,确保传输可靠。 |
2. OSPF 七大邻居状态机演进全过程
两台相连的路由器从素未谋面到彻底同步数据库,必须经历严格的七级跳:
text
Down --> Init --> 2-Way --> ExStart --> Exchange --> Loading --> Full
(关) (见Hello) (邻居成立) (商定主从) (传DD目录) (请求LSU) (完全同步)- Down:初始关闭状态,未收到任何 Hello。
- Init:收到了邻居发来的 Hello 报文,但在报文的“已知邻居列表”里还没有看到自己的 Router-ID。
- ★ 2-Way(双向邻居状态,极重要!):
- 收到邻居的 Hello 报文,且在里面的邻居列表中看到了自己的 Router-ID!
- 分水岭:双方确认双向通信正常。广播网段的 DR/BDR 选举就在此时尘埃落定!
- ExStart(预启动):协商主从(Master/Slave)关系并确定初始序列号(由 Router-ID 大者成为 Master 控制报文发送步调)。
- Exchange(交换):互发 DD 报文,对比双方的 LSA 摘要目录。
- Loading(加载):发现本地缺少某些 LSA,向对方发 LSR 索要,对方用 LSU 回传,本地回送 LSAck 确认。
- ★ Full(完全邻接状态):双方的链路状态数据库(LSDB)达到 100% 完全镜像一致,邻接关系彻底建立完毕!
3. 广播网段的减负神器:DR 与 BDR 机制
在以太网交换机连接的广播多路访问(BMA)网络中,如果有
如果有 50 台路由器,将产生 1225 个关系!每台路由器发一条状态变化,全网将爆发铺天盖地的 LSA 重复泛洪风暴!
为了化解网状灾难,OSPF 在广播网段中选举出一名“班长”——指定路由器(DR),以及一名“副班长”——备份指定路由器(BDR):
1. 核心选举规则与两组特殊组播
- 比较标准:
- 首先比较接口优先级(
ospf dr-priority,取值 0 ~ 255,缺省 1,数值越大越优! 若优先级为 0 则代表主动弃权,绝不参选 DR/BDR); - 若优先级打平,比较 Router-ID(数值越大越优!)。
- 首先比较接口优先级(
- 两组核心组播地址:
224.0.0.5:指向“全网所有 OSPF 路由器”;224.0.0.6:专门指向“网段内的 DR 和 BDR”!普通路由器有风吹草动只往224.0.0.6汇报,由 DR 再统一打包广播给224.0.0.5。
华为 ICT 大赛真题高频陷阱:DR 选举的“非抢占性”
DR 的选举具有不可逆的非抢占特征(Non-preemptive)! 一旦网段内已经选出了 DR,即便后来加入了一台优先级为 255、Router-ID 极大(如 9.9.9.9)的超级顶级路由器,它也绝对不能抢占成为新 DR!它只能屈居普通 DRother,直到现任 DR 彻底断电宕机,才会触发重选。这保证了网络拓扑极度稳定。
状态机神级细节:DRother 相互之间是什么状态?
普通路由器(DRother)只与 DR、BDR 建立 Full 状态;DRother 之间永远停留在 2-Way 状态,绝不建立 Full 邻接关系!
4. 华为 ICT 大赛四类高频 LSA 深度解密
OSPF 的本质是靠 LSA(链路状态通告) 拼装地图。大赛必考以下 4 类核心 LSA:
| LSA 类型 | 正式名称 | 产生者(Who) | 泛洪传播范围(Where) | 携带内容(What) |
|---|---|---|---|---|
| 1 类 | Router LSA | 每一台 OSPF 路由器 | 仅在产生它的本区域内部 | 描述本路由器直连接口的状态、IP 地址与开销 Cost。 |
| 2 类 | Network LSA | 广播网段的 DR 路由器 | 仅在产生它的本区域内部 | 描述该广播网段的网络掩码以及所有挂接在该网段上的路由器列表。 |
| 3 类 | Network Summary LSA | 区域边界路由器 ABR | 在相关区域之间流转 | 将一个非骨干区域的路由前缀汇总通告给骨干区域或其他区域。 |
| 5 类 | AS-External LSA | 自治系统边界路由器 ASBR | 在整个 OSPF 域全网泛洪 | 宣告从外部协议(如静态路由、BGP、直连重分布)引入的外部路由。 |
5. 多区域架构与 Area 0 黄金准则
为了防止单区域内 LSDB 过于庞大拖垮路由器 CPU,大型网络必须进行分层区域划分:
- 骨干区域(Backbone Area):必须且唯一定义为
Area 0(或0.0.0.0)。 - 非骨干区域(Non-backbone Area):如 Area 1、Area 2。
- 星型防环拓扑铁律:所有非骨干区域必须在物理逻辑上直接挂接在骨干区域 Area 0 周围! 非骨干区域之间的跨区域路由必须先流入 Area 0,再由 Area 0 分发给其他区域,杜绝了区域层面的环路。
华为 VRP 设备配置示例:
text
[Huawei] router id 1.1.1.1
[Huawei] ospf 1
[Huawei-ospf-1] area 0 # 进入骨干区域 Area 0
[Huawei-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255 # 宣告直连网段(注意使用反掩码!)
[Huawei-ospf-1-area-0.0.0.0] area 1 # 进入普通区域 Area 1
[Huawei-ospf-1-area-0.0.0.1] network 10.1.1.0 0.0.0.2556. 课后核心测验
7. 下一步学习
OSPF 在企业内网所向披靡。
但如果你去到大型电信运营商、互联网跨国骨干网或者金融跨域网络,你会发现电信工程师们往往更加偏爱另一个与 OSPF 并驾齐驱的链路状态巨擘——IS-IS 协议!
IS-IS 是如何直接绕过 IP 跑在数据链路层之上的?它的 DIS 选举为什么偏偏支持抢占?
下一课,让我们探访运营商的秘密武器:第 35 课 · IS-IS 协议:运营商骨干路由与 DIS 机制!