第四章:OSPF 协议

一、OSPF 基础

  1. 技术背景(RIP 的问题)

    早期 RIP 因设计局限不适合大规模网络,主要问题:

    • 最大跳数 15,限制网络规模;
    • 30 秒周期性全量更新,浪费带宽;
    • 收敛慢,易产生路由环路;
    • 仅以跳数为度量,选路不精准。
  2. OSPF 协议特点

    OSPF 是链路状态型 IGP,优势显著:

    • 无跳数限制,支持大规模网络;
    • 组播更新(Hello 用 224.0.0.5,DR/BDR 接收 LSU 用 224.0.0.6),节约带宽;
    • 触发更新 + SPF 算法,收敛快且无环路;
    • 以 Cost(与带宽成反比)为度量,选路更科学;
    • 30 分钟周期性刷新 LSA,维持数据库时效性;
    • 核心:传递链路状态信息(而非路由表),各路由器基于 LSDB 独立计算路由。
  3. OSPF 三张核心表

    • 邻居表:记录通过 Hello 报文发现的邻居(含 Router ID、状态等),是建立邻接的基础;
    • 拓扑表(LSDB):存储区域内所有 LSA,描述完整拓扑,区域内路由器 LSDB 需完全同步;
    • 路由表:由 SPF 算法基于 LSDB 计算生成,记录到达目标网络的最佳路径。
  4. OSPF 数据包类型与封装

    封装在 IP 报文中(协议号 89),含 5 种类型:

    • Hello:发现 / 维护邻居(需匹配 Hello/Dead 时间、掩码等);
    • DD:交换 LSDB 摘要(协商同步,含 MTU 信息);
    • LSR:请求缺失的 LSA;
    • LSU:携带完整 LSA(响应 LSR 或泛洪更新);
    • LSAck:确认 LSU,保证可靠传输。
  5. OSPF 工作过程

    • 阶段 1:建立邻居关系:通过 Hello 报文发现邻居,选举 DR/BDR(广播 / NBMA 网络);
    • 阶段 2:同步 LSDB:交换 DD 报文确认差异,用 LSR 请求、LSU 响应、LSAck 确认完成同步;
    • 阶段 3:计算路由:LSDB 同步后进入 Full 状态,运行 SPF 算法生成路由表。
  6. OSPF 状态机

    从邻居发现到完全邻接的状态流转:

    Down→Init→2-Way(邻居关系建立)→ExStart(协商 DD 主从)→Exchange(交换 LSDB 摘要)→Loading(请求 / 接收 LSA)→Full(完全邻接,LSDB 同步)。

  7. Cost 计算

    • 公式:Cost = 参考带宽(默认 100Mbps)/ 链路带宽(Mbps);带宽≥参考带宽时 Cost=1;
    • 建议将参考带宽设为网络最大带宽(如 10000Mbps),避免高带宽链路 Cost 相同。
二、OSPF 区域划分
  1. 划分背景

    单区域网络规模扩大时,LSDB 庞大、SPF 计算复杂、LSA 泛洪耗带宽,故引入区域划分。

  2. 分区好处

    • 限制 LSA 泛洪范围,降低开销;
    • 提高网络可扩展性,便于管理。
  3. 区域类型

    • 骨干区域(Area 0):核心,所有非骨干区域需直接 / 通过虚连接与之相连;
    • 非骨干区域(Area 1,2...):普通接入区域;
    • 特殊区域:Stub、Totally Stub、NSSA、Totally NSSA(优化 LSDB 和路由表)。
  4. 路由器类型

    • 区域内路由器(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 高级特性
  1. 特殊区域

    • 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 默认路由。
  2. 路由聚合

    • ABR 聚合:将区域内多条 Type-3 LSA 聚合成一条,减少跨区域 LSA;
    • ASBR 聚合:将引入的多条外部路由(Type-5/7)聚合,减少外部 LSA;
    • 自动生成 Null0 黑洞路由防环。
  3. 安全与控制

    • 认证:支持接口 / 区域 / 虚链路认证(明文 / MD5);
    • 静默接口:不发送 Hello 报文,避免与终端建立邻居;
    • 路由控制:通过修改优先级、Cost 调整选路,通过过滤控制 LSA。
  4. 防环与选路

    • 防环:区域内依赖 SPF 算法,区域间依赖 "非骨干区域必连骨干" 原则;
    • 选路优先级:区域内路由 > 区域间路由 > 外部路由(Type-1 > Type-2)。