一、OSPF 核心特性
OSPF 全称开放式最短路径优先,属于链路状态路由协议,和 RIP(距离矢量)有本质区别,核心优势如下:
- 无跳数限制:RIP 最大 15 跳,OSPF 无跳数约束,可支撑大型园区、城域网;
- 组播交互路由报文:使用 224.0.0.5、224.0.0.6 组播地址,相比 RIP v1 广播报文大幅节省带宽;
- 收敛速度快:链路变化仅泛洪对应 LSA,不用全网传递完整路由表;
- 度量值为 Cost(开销):开销越小路径越优,默认和接口带宽成反比;
- SPF 最短路径算法防环路:同一区域所有路由器同步相同链路状态数据库,独立计算路由,天然规避路由环路;
- 分层多区域设计:通过区域划分缩小 LSDB 规模,降低设备 CPU 计算压力;
- 业界通用标准:绝大多数企业、运营商内网首选 IGP 协议。
二、OSPF 三大核心表,对应协议三阶段
OSPF 完整工作流程分为邻居建立→数据库同步→路由计算,分别对应三张表:
1. 邻居表
记录直连 OSPF 邻居的 Router ID、接口 IP、邻居状态、优先级、DR/BDR 角色。 查询命令:display ospf peer 作用:仅维护直连邻居关系,判断是否能交换链路状态信息。
邻居表怎么来的
1.1. 触发条件
接口使能 OSPF、网段匹配 network 宣告后,接口周期性发送 Hello 报文。
1.2. 生成全过程
- 本接口向外发送 Hello,携带本机 Router ID、区域 ID、Hello 时间、本接口网段掩码、已发现邻居列表;
- 对端路由器收到 Hello 报文,先校验基础参数(区域、计时器、掩码、认证等),参数合法才会在本地新建一条邻居条目,存入邻居表;
- 状态为 Init:仅收到对方 Hello,但对方 Hello 里没有自己的 Router ID;
- 本地回复 Hello,把对方 Router ID 写入自己 Hello 的邻居列表;
- 对方收到带自身 ID 的 Hello,状态切换为 2-Way,邻居表条目完善:记录对端 Router ID、对端接口 IP、接口网络类型、DR 优先级、DR/BDR 角色、Hello/Dead 剩余时间;
- 后续 DD/LSR/LSU 报文交互,邻居状态继续更新(ExStart→Exchange→Loading→Full),邻居表实时刷新状态;
- 若 Dead 时间内收不到 Hello,直接删除邻居表对应条目。
邻居表数据来源
所有数据全部来自直连邻居交互的 Hello 报文,只记录直连 OSPF 邻居,跨跳设备不会出现在邻居表。
2. 拓扑表(LSDB 链路状态数据库)
存放本区域所有 LSA 链路状态通告,是全网链路的完整 "地图"。 同一区域内所有路由器的 LSDB 必须完全一致,这是 SPF 算法计算路由的基础。
LSDB 链路状态数据库怎么来的
LSDB 是整个 OSPF 区域的 "全网地图",所有 LSA 的集合。
2.1. 产生 LSA 的源头
- 本机直连网段:接口 UP、宣告进 OSPF 后,路由器自动生成 1 类 LSA(路由器 LSA),描述自身所有直连链路开销、链路类型;
- 广播 / NBMA 网络:DR 生成 2 类 LSA,描述广播网段内所有接入路由器;
- ABR 区域边界路由器:生成 3 类 LSA,把其他区域路由传递到本区域;
- ASBR 引入外部路由:生成 5 类 LSA,描述 OSPF 域外路由; 还有 4 类、7 类等特殊 LSA,统一存入 LSDB。
2.2. LSDB 同步生成完整拓扑表流程
- 邻居达到 2-Way 后,两端进入 ExStart,交换空 DD 报文协商主从;
- Exchange 阶段交互 DD 报文:DD 报文只携带每一条 LSA 的头部摘要(LSA ID、产生者 Router ID、序列号),不携带完整链路信息;
- 本地拿收到的 LSA 摘要,和自己本地 LSDB 对比:
- 本地没有这条 LSA → 发送 LSR 报文,向邻居索要完整 LSA;
- 本地已有且版本更新 → 无需请求;
- 邻居收到 LSR,回复 LSU 报文,携带完整 LSA 内容;
- 本机收到完整 LSU,存入本地 LSDB,回复 LSAck 确认;
- 所有缺失 LSA 全部接收完毕,邻居状态变为 Full,同一区域内所有路由器的 LSDB 完全相同;
- 链路故障、网段变更时,路由器重新生成新 LSA,泛洪至全网,所有设备同步更新 LSDB。
LSDB 核心特点
- 整张表存储区域内全部链路信息,不区分路由好坏,只记录客观拓扑;
- 同一区域 LSDB 必须一致,是 SPF 计算路由的基础;
- 数据来源:本机生成 LSA + 邻居泛洪同步的 LSA。
3. OSPF 路由表
路由器基于本地 LSDB 运行 SPF 算法,算出全网最优无环路由,存入路由表,路由标记为O(区域内)、O IA(区域间)、O E(外部路由)。
OSPF 路由表怎么来的
路由表不是直接交互得来,完全本地计算生成,不与邻居交换路由条目。
完整生成步骤
- 本地 LSDB 同步完成(邻居 Full、数据库完整无缺失);
- 路由器以自己的 Router ID 为根节点,运行 SPF(迪杰斯特拉)最短路径算法;
- 遍历 LSDB 里所有链路、网段、开销 Cost,计算到达每一个目标网段的总开销;
- 对同一个目标网段,保留总 Cost 最小的路径作为最优路由;
- 根据 LSA 类型给路由打上标记:
- 1/2 类 LSA 算出:区域内路由 O
- 3 类 LSA 算出:区域间路由 O IA
- 5 类 LSA 算出:外部路由 O E1 / O E2
- 将计算完成的最优路由存入OSPF 路由表,再注入全局 IP 路由表;
- 拓扑发生变化(链路断开、新增网段),LSDB 更新后,路由器自动重新运行 SPF,刷新 OSPF 路由表。
三、OSPF 多区域与四类路由器角色
单一大区域会导致 LSDB 过于庞大、设备计算压力激增,因此 OSPF 引入多区域分层架构,骨干区域 Area 0 为核心,所有非骨干区域必须直连 Area 0,衍生四类路由器:
- IR 区内路由器:所有接口都属于同一个普通区域,仅传递本区域 LSA;
- BR 骨干路由器:至少一个接口在 Area 0 骨干区域;
- ABR 区域边界路由器:同时连接骨干 Area 0 和非骨干区域,负责区域间路由汇总,隔离不同区域 LSA;
- ASBR 自治系统边界路由器:连接 OSPF 自治域与外部网络(静态、RIP、BGP 等),负责引入外部路由生成五类 LSA。
四、OSPF 四种网络类型深度详解
OSPF 会根据二层链路自动识别网络类型,直接决定:邻居发现方式、DR/BDR 是否选举、Hello/Dead 计时器、不同类型对接能否建邻居、能否学到路由。 先放总览对照表,再逐个拆解细节,最后重点讲跨类型对接兼容问题。
4.1 四种网络类型完整对比表
|---------------|-----------------------------|-----------------|--------------|-------------|------------------------|--------------------------|
| 网络类型 | 典型二层链路 | 是否选举 DR/BDR | Hello 时间 | Dead 时间 | 报文发送方式 | 邻居发现方式 |
| Broadcast(广播) | 以太网、交换机、千兆 / 百兆电口 | 是 | 10s | 40s | 组播 224.0.0.5/224.0.0.6 | 自动组播发现,无需手动指定邻居 |
| P2P(点到点) | PPP、HDLC 串行链路、专线直连 | 否 | 10s | 40s | 仅组播 224.0.0.5 | 自动组播发现 |
| NBMA(非广播多路访问) | 帧中继 FR、ATM | 是 | 30s | 120s | 单播报文 | 无法自动发现,必须手动 peer 指定邻居 IP |
| P2MP(点到多点) | 手动修改 FR/ATM 接口,Hub-Spoke 改造 | 否 | 30s | 120s | 组播 | 自动发现邻居,无需手动配置 peer |
4.3 重点:不同网络类型对接,能否建立邻居?能否学习路由?
核心判定规则:邻居建立的硬性条件是 Hello/Dead 时间一致;只要计时器不匹配,直接卡在 Init,无法形成 2-Way 邻居;计时器匹配前提下,网络类型不同能建立邻居,但可能卡在 2-Way,无法交换 LSA,没有路由。
跨类型对接核心结论
- 第一门槛:Hello/Dead 计时器必须相同 两端计时器不一样,直接卡在 Init,连基础邻居都无法形成;
- 第二门槛:DR/BDR 选举逻辑必须统一 计时器相同,但一端选 DR、一端不选 DR,只能到 2-Way,无法同步 LSA,没有路由;
- 解决方案 互联两端接口手动配置成完全相同的 OSPF 网络类型,保证计时器、DR 机制统一,才能正常传递路由。
五、OSPF 邻居 8 种完整状态迁移
两台路由器从开机到完全同步路由,会依次经历 8 种状态,也是排错核心依据:
- Down:接口未启用 OSPF、邻居未配置,无任何 Hello 交互;NBMA 手动配置邻居后未收到 Hello 也会显示 Down;
- Attempt:仅 NBMA 网络特有,已单播发送 Hello,但未收到对方回应;
- Init:收到对方 Hello,但对方 Hello 里的邻居列表没有本地 Router ID,单方可见;
- 2-Way:双方 Hello 互相包含对方 Router ID,邻居关系建立;广播 / NBMA 网络在此阶段选举 DR/BDR;P2P/P2MP 直接进入邻接;
- ExStart:协商 DD 报文主从关系,交换空 DD 报文;
- Exchange:交互携带 LSA 摘要的 DD 报文,同步全网链路目录;
- Loading:发送 LSR 请求缺失 LSA,接收 LSU 完整链路信息;
- Full:LSDB 完全同步,邻接关系建立,可正常计算路由。
邻居建立成功的硬性前提(任意不匹配直接卡在 Init/2-Way)
- 两端 Router ID 不冲突;
- MA 网络接口子网掩码一致;
- 接口 OSPF 区域 ID 完全相同;
- 认证配置(密码 / 模式)匹配;
- Hello、Dead 计时器参数一致;
- 特殊区域(Stub/NSSA)配置两端统一。
总结
OSPF 作为链路状态协议,核心逻辑可以概括为三步:Hello 建邻居→同步 LSDB 链路地图→SPF 算最优路由。 四种网络类型是 OSPF 重难点,核心记忆两点:
- Hello 10s 组(Broadcast、P2P);Hello 30s 组(NBMA、P2MP),不同组永远无法建立完整邻居;
- 选 DR 组(Broadcast、NBMA);不选 DR 组(P2P、P2MP),同计时器不同 DR 规则只能停在 2-Way,无路由。 多区域分层解决大型网络性能问题,DR/BDR 机制减少广播网络报文交互压力。日常运维中,掌握邻居状态迁移、Cost 计算、display ospf error 排错命令,就能解决 90% 以上 OSPF 故障。
如果想继续提升网工技能以及后续有打算考证书的小伙伴记得来尚文网络哦~~~~~~~
悄悄告诉你们如果来报名提一下说我是看csdn张老师报的名可以打折