
目录
[OSPF 协议基础介绍](#OSPF 协议基础介绍)
[链路状态 & 链路代价 Cost](#链路状态 & 链路代价 Cost)
[(2)链路代价 Cost](#(2)链路代价 Cost)
[OSPF 邻居建立:Hello 分组机制](#OSPF 邻居建立:Hello 分组机制)
[1. Hello 报文封装参数](#1. Hello 报文封装参数)
[2. 时间规则](#2. 时间规则)
[3. 邻居表存储内容](#3. 邻居表存储内容)
[OSPF 核心载体:LSA 链路状态通告 & LSDB 链路状态数据库](#OSPF 核心载体:LSA 链路状态通告 & LSDB 链路状态数据库)
[1. LSA 链路状态通告](#1. LSA 链路状态通告)
[2. LSDB 链路状态数据库](#2. LSDB 链路状态数据库)
[OSPF 路由计算:SPF 迪杰斯特拉算法](#OSPF 路由计算:SPF 迪杰斯特拉算法)
[OSPF 五种标准分组(报文类型)](#OSPF 五种标准分组(报文类型))
[OSPF 完整邻居与数据库同步流程](#OSPF 完整邻居与数据库同步流程)
[广播多路访问网络:DR/BDR 选举机制](#广播多路访问网络:DR/BDR 选举机制)
[1. 角色定义](#1. 角色定义)
[2. 邻居建立规则](#2. 邻居建立规则)
[3. 优化效果](#3. 优化效果)
[OSPF 区域 Area 划分(解决大型网络压力)](#OSPF 区域 Area 划分(解决大型网络压力))
[1. 划分区域的目的](#1. 划分区域的目的)
[2. 区域硬性规则](#2. 区域硬性规则)
[3. 四类 OSPF 路由器角色](#3. 四类 OSPF 路由器角色)
[OSPF 对比 RIP 核心优劣总结](#OSPF 对比 RIP 核心优劣总结)
[OSPF 优势](#OSPF 优势)
[OSPF 劣势](#OSPF 劣势)
开放最短路径优先OSPF的基本工作原理
OSPF 协议基础介绍
OSPF 全称Open Shortest Path First,开放最短路径优先,1989 年推出,设计初衷就是弥补 RIP 协议的短板:
- 开放:协议标准完全公开,无厂商私有绑定,所有厂商设备通用;
- 最短路径优先:采用 Dijkstra 迪杰斯特拉 SPF 最短路径算法计算路由;
- 协议类型:链路状态路由协议,和 RIP 距离向量协议本质区分;
- 核心优势:算法层面杜绝路由环路、无 15 跳规模限制、收敛速度快、支持大型自治系统 AS

链路状态 & 链路代价 Cost
(1)链路状态定义
每台路由器描述自身两张关键信息,合称为链路状态:
- 本机直连的所有邻居路由器;
- 本机与邻居之间链路的代价 Cost。
(2)链路代价 Cost
Cost 是 OSPF 选路唯一度量值,可综合衡量链路带宽、延迟、开销、距离,由网络管理员自定义。 思科设备默认计算公式 : Cost = 100Mbps / 链路实际带宽 规则补充:
- 计算结果小于 1,统一记为 1;
- 计算出现小数,直接舍去小数取整数; 示例:
- 100Mbps 链路:100/100=1,Cost=1;
- 1Gbps 链路:100/1000=0.1 → 取 Cost=1;
- 10Mbps 链路:100/10=10,Cost=10;
- 1.544M T1 专线:100/1.544≈64.77 → 舍去小数,Cost=64

OSPF 邻居建立:Hello 分组机制
OSPF 依靠Hello 分组发现、建立、维持邻居关系,只有邻居路由器之间才能交换链路状态信息。
1. Hello 报文封装参数
- 源 IP:路由器发送接口 IP 地址
- 目的组播 IP:
224.0.0.5(所有 OSPF 路由器监听该组播) - IP 头部协议号:89(区分 TCP/UDP,专属 OSPF 协议标识)
2. 时间规则
- Hello 发送周期:广播型以太网默认 10 秒发送一次 Hello;
- 死亡计时器 Dead Interval:40 秒(4 倍 Hello 周期);
- 判定邻居失效:连续 40 秒未收到邻居 Hello 报文,标记该邻居离线,触发路由重新计算
3. 邻居表存储内容
路由器本地维护邻居表,记录:邻居路由器 ID、本地对接接口、死亡倒计时数值

OSPF 核心载体:LSA 链路状态通告 & LSDB 链路状态数据库
1. LSA 链路状态通告
每一台 OSPF 路由器都会自主生成专属 LSA,记录两类信息:
- 自身直连网段的链路状态;
- 所有直连邻居路由器信息。
LSA 不会直接发送,而是封装在LSU 链路状态更新分组 中,使用洪泛法在全网传递
2. LSDB 链路状态数据库
全网所有路由器,都会收集全网全部设备生成的 LSA,统一存储在本地链路状态数据库 LSDB。
- 收敛标准:同一区域内所有路由器的 LSDB 内容完全一致;
- 区别 RIP:RIP 交换整张路由表,OSPF 仅交换链路状态拓扑信息,不交换最终路由;
- 路由生成逻辑:路由器本地基于统一 LSDB 拓扑图,独立运行 SPF 算法计算路由表


OSPF 路由计算:SPF 迪杰斯特拉算法
- 每台路由器以自身为根节点,基于本地完整 LSDB 生成带权拓扑图;
- 运行 Dijkstra SPF 最短路径算法,计算到达所有网段、所有路由器的最小 Cost 路径;
- 将计算出的最优路径写入本地路由表,实现全网互通;
- 算法天然保证无路由环路,从根本解决 RIP"坏消息传得慢、无穷计数" 缺陷
【总结】【数据结构】算法BFS、DFS、Dijkstral、Floyd、排序算法等-CSDN博客
OSPF 五种标准分组(报文类型)
OSPF 一共定义 5 类分组,各司其职完成邻居建立、数据库同步、可靠更新:
- Type 1 Hello 问候分组 功能:发现邻居、保活邻居关系,是 OSPF 邻居交互基础
- Type 2 DBD 数据库描述分组 功能:向邻居发送本地 LSDB 的 LSA 摘要列表,用于对比双方数据库差异
- Type 3 LSR 链路状态请求分组 功能:收到 DBD 后,针对本地缺失的 LSA,向邻居发起详细条目请求
- Type 4 LSU 链路状态更新分组 功能:携带完整 LSA 条目,通过洪泛法全网同步拓扑变更
- Type 5 LSAck 链路状态确认分组 功能:可靠传输保障,收到 LSU 后回复确认报文,防止 LSA 重复泛洪

OSPF 完整邻居与数据库同步流程
- 两台直连路由器互相发送 Hello 报文,参数匹配成功,建立邻居关系;
- 邻居交互 DBD 报文,对比各自 LSDB 摘要,找出对方拥有、本地缺失的 LSA;
- 本地发送 LSR 报文,请求缺失的完整 LSA 条目;
- 对方回复 LSU 报文,携带完整 LSA;
- 接收方回复 LSAck 确认报文,完成数据库同步;
- 链路稳定状态下,仅周期性发送 Hello 保活;链路故障 / 拓扑变更时,立即泛洪 LSU 更新全网 LSDB

广播多路访问网络:DR/BDR 选举机制
以太网、交换机等多点接入网络,如果所有路由器两两建立邻居,邻居关系数量会爆炸式增长,占用大量资源。OSPF 引入 DR/BDR 优化:
1. 角色定义
- DR 指定路由器:本网段所有路由信息的中转中心;
- BDR 备份指定路由器:DR 故障时自动升级为 DR;
- DRother 普通路由器:非 DR、非 BDR 设备
2. 邻居建立规则
- DRother 仅和 DR、BDR 建立完整邻居关系;
- DRother 之间不建立邻居,拓扑信息全部通过 DR 转发同步;
- DR 失效,BDR 立刻接管工作,无需重新选举
3. 优化效果
假设网段有 n 台路由器,无 DR 时邻居关系为n*(n-1)/2;启用 DR/BDR 后邻居数量简化为2(n-2)+1,大幅降低设备计算与报文开销

OSPF 区域 Area 划分(解决大型网络压力)
1. 划分区域的目的
若整个 AS 作为单一区域,全网任意一条链路变动,所有路由器都要泛洪 LSA、重新运行 SPF 算法,设备负载极高。 划分区域优势:
- LSA 洪泛范围限制在本区域,拓扑变更不会扩散整个 AS;
- 每个区域独立计算最短路径,减小 LSDB 数据库体积,降低路由器 CPU 计算压力;
- 支持路由汇总,减少跨区域路由条目数量
2. 区域硬性规则
- 主干区域 Area 0(0.0.0.0):所有非主干区域必须直接连接主干区域,不允许跨区域直连;
- 区域使用 32 位 ID 标识,可写十进制或点分十进制(0 / 0.0.0.0 等价)
3. 四类 OSPF 路由器角色
- IR 区域内路由器:所有接口都属于同一个普通区域;
- ABR 区域边界路由器:同时连接主干区域 + 普通区域,负责区域间路由汇总与转发;
- BR 主干路由器:接口全部位于 Area 0 主干区域;
- ASBR 自治系统边界路由器:同时运行 OSPF 与其他外部路由协议(RIP、静态、BGP 等),负责引入外部路由进入 OSPF 域

OSPF 对比 RIP 核心优劣总结
OSPF 优势
- 链路状态算法,SPF 计算无路由环路;
- 以链路带宽 Cost 为度量,优先高速链路,选路更合理;
- 无 15 跳上限,支持大型园区、运营商骨干网络;
- 拓扑变化时仅增量更新 LSA,而非周期性发送整张路由表,带宽占用更低;
- 支持区域划分、路由汇总,可大规模部署;
- 收敛速度远快于 RIP,故障切换效率高;
- 支持 VLSM、CIDR 无类路由,适配现代子网规划
OSPF 劣势
- 算法复杂,路由器 CPU、内存开销高于 RIP;
- 配置逻辑多,学习与部署门槛比 RIP 高;
- 小型网络中,OSPF 的复杂机制反而造成资源浪费
- OSPF 组播地址区分
- 224.0.0.5:所有 OSPF 路由器接收 Hello、泛洪 LSU;
- 224.0.0.6:仅 DR/BDR 接收 DRother 发送的更新报文
- LSA 泛洪生命周期 LSA 默认 30 分钟刷新一次,老化时间 60 分钟,到期未刷新则从 LSDB 删除
- 适用场景区分
- RIP:小型企业、实验室、节点少于 15 台的简易网络;
- OSPF:中大型企业内网、城域网、运营商骨干网