第四章:OSPF 协议
一、OSPF 基础
技术背景(RIP 的问题)
早期 RIP 因设计局限不适合大规模网络,主要问题:- 最大跳数 15,限制网络规模;
- 30 秒周期性全量更新,浪费带宽;
- 收敛慢,易产生路由环路;
- 仅以跳数为度量,选路不精准。
OSPF 协议特点
OSPF 是链路状态型 IGP,优势显著:- 无跳数限制,支持大规模网络;
- 组播更新(Hello 用 224.0.0.5,DR/BDR 接收 LSU 用 224.0.0.6),节约带宽;
- 触发更新 + SPF 算法,收敛快且无环路;
- 以 Cost(与带宽成反比)为度量,选路更科学;
- 30 分钟周期性刷新 LSA,维持数据库时效性;
- 核心:传递链路状态信息(而非路由表),各路由器基于 LSDB 独立计算路由。
OSPF 三张核心表
- 邻居表:记录通过 Hello 报文发现的邻居(含 Router ID、状态等),是建立邻接的基础;
- 拓扑表(LSDB):存储区域内所有 LSA,描述完整拓扑,区域内路由器 LSDB 需完全同步;
- 路由表:由 SPF 算法基于 LSDB 计算生成,记录到达目标网络的最佳路径。
OSPF 数据包类型与封装
封装在 IP 报文中(协议号 89),含 5 种类型:- Hello:发现 / 维护邻居(需匹配 Hello/Dead 时间、掩码等);
- DD:交换 LSDB 摘要(协商同步,含 MTU 信息);
- LSR:请求缺失的 LSA;
- LSU:携带完整 LSA(响应 LSR 或泛洪更新);
- LSAck:确认 LSU,保证可靠传输。
OSPF 工作过程
- 阶段 1:建立邻居关系:通过 Hello 报文发现邻居,选举 DR/BDR(广播 / NBMA 网络);
- 阶段 2:同步 LSDB:交换 DD 报文确认差异,用 LSR 请求、LSU 响应、LSAck 确认完成同步;
- 阶段 3:计算路由:LSDB 同步后进入 Full 状态,运行 SPF 算法生成路由表。
OSPF 状态机
从邻居发现到完全邻接的状态流转:
Down→Init→2-Way(邻居关系建立)→ExStart(协商 DD 主从)→Exchange(交换 LSDB 摘要)→Loading(请求 / 接收 LSA)→Full(完全邻接,LSDB 同步)。Cost 计算
- 公式:Cost = 参考带宽(默认 100Mbps)/ 链路带宽(Mbps);带宽≥参考带宽时 Cost=1;
- 建议将参考带宽设为网络最大带宽(如 10000Mbps),避免高带宽链路 Cost 相同。
二、OSPF 区域划分
划分背景
单区域网络规模扩大时,LSDB 庞大、SPF 计算复杂、LSA 泛洪耗带宽,故引入区域划分。分区好处
- 限制 LSA 泛洪范围,降低开销;
- 提高网络可扩展性,便于管理。
区域类型
- 骨干区域(Area 0):核心,所有非骨干区域需直接 / 通过虚连接与之相连;
- 非骨干区域(Area 1,2...):普通接入区域;
- 特殊区域:Stub、Totally Stub、NSSA、Totally NSSA(优化 LSDB 和路由表)。
路由器类型
- 区域内路由器(IR):所有接口属同一区域;
- 骨干路由器(BR):至少 1 个接口连骨干区域;
- ABR:连接骨干与非骨干区域,传递区域间路由;
- ASBR:连接 OSPF 与其他 AS,引入外部路由。
三、LSA(链路状态通告)
LSA 是 OSPF 核心,描述拓扑 / 路由信息,共 6 种主要类型:
类型 | 生成者 | 描述内容 | 泛洪范围 |
---|---|---|---|
Type-1 | 区域内路由器 | 自身链路状态(直连网段、邻居) | 本区域 |
Type-2 | DR(广播 / NBMA) | 网段信息及连接的路由器 | 本区域 |
Type-3 | ABR | 区域间路由(网段形式) | 跨区域(经 ABR 更新) |
Type-4 | ABR | 到达 ASBR 的路径 | 跨区域 |
Type-5 | ASBR | 外部路由 | 整个 OSPF 域(除特殊区域) |
Type-7 | NSSA 内 ASBR | NSSA 区域引入的外部路由 | 仅 NSSA 区域(ABR 转 Type-5) |
四、OSPF 网络类型
基于二层链路类型定义,影响邻居发现和 DR 选举:
网络类型 | 应用场景 | 报文发送方式 | DR/BDR 选举 | Hello/Dead 时间 |
---|---|---|---|---|
广播 | 以太网 | 组播 | 需要 | 10s/40s |
P2P | PPP/HDLC | 组播 | 不需要 | 10s/40s |
NBMA | 帧中继 / ATM | 单播(手动指定邻居) | 需要 | 30s/120s |
P2MP | 手动修改类型 | 单播(模拟组播) | 不需要 | 30s/120s |
五、OSPF 高级特性
特殊区域
- Stub:不接收 Type-4/5 LSA,ABR 下发 Type-3 默认路由;
- Totally Stub:不接收 Type-3/4/5 LSA,仅 ABR 下发 Type-3 默认路由;
- NSSA:不接收 Type-4/5 LSA,允许本区域引入外部路由(Type-7),ABR 转 Type-5;
- Totally NSSA:不接收 Type-3/4/5 LSA,仅 ABR 下发 Type-3 默认路由。
路由聚合
- ABR 聚合:将区域内多条 Type-3 LSA 聚合成一条,减少跨区域 LSA;
- ASBR 聚合:将引入的多条外部路由(Type-5/7)聚合,减少外部 LSA;
- 自动生成 Null0 黑洞路由防环。
安全与控制
- 认证:支持接口 / 区域 / 虚链路认证(明文 / MD5);
- 静默接口:不发送 Hello 报文,避免与终端建立邻居;
- 路由控制:通过修改优先级、Cost 调整选路,通过过滤控制 LSA。
防环与选路
- 防环:区域内依赖 SPF 算法,区域间依赖 “非骨干区域必连骨干” 原则;
- 选路优先级:区域内路由 > 区域间路由 > 外部路由(Type-1 > Type-2)。