> 技术文档 > ospf笔记_ospf链路状态数据库中保存一个完整的路由表

ospf笔记_ospf链路状态数据库中保存一个完整的路由表


一、OSPF 基础概述

1. 技术背景(与 RIP 对比)

  • RIP 存在的问题:最大跳数 15 限制、周期性发送全部路由(占带宽)、收敛慢、以跳数为度量、可能有环路、30 秒更新。
  • OSPF 优势:无跳数限制(适合大规模组网)、组播更新变化路由、收敛快(触发更新)、以 COST 为度量、SPF 算法防环、30 分钟周期性更新(LSA)、应用广泛。
  • 核心差异:OSPF 传递拓扑 + 路由信息,RIP 仅传递路由表。

2. OSPF 核心组件

(1)三张表
  • 邻居表:记录邻居状态和关系。
  • 拓扑表:即链路状态数据库(LSDB),存储全网拓扑信息。
  • 路由表:由 SPF 算法计算生成的最优路由,可通过dis ip routing-table pro ospf查看。
(2)数据包(封装在 IP 中,协议号 89)
类型 作用 关键信息 Hello(类型 1) 发现 / 建立 / 保活邻居 包含网络掩码、Hello 间隔(默认 10s)、Dead 间隔(默认 40s,为 Hello 的 4 倍)、路由器优先级(DR/BDR 选举)、DR/BDR 地址、邻居 Router ID 等;目标组播地址 224.0.0.5 DBD(类型 2) 交换 LSDB 摘要 含 LSA 头部、DD 序列号(Master 控制)、I(初始化位)、M(更多报文位)、MS(主从位,Router ID 大的为主) LSR(类型 3) 请求缺失 / 更新的 LSA 通过 “LSA 三元组”(链路状态类型、ID、通告路由器)唯一标识请求的 LSA LSU(类型 4) 发送完整 LSA 信息 可包含多个 LSA;MA 网络中,DROTHER 向 224.0.0.6(DR/BDR 监听)发送,DR 转发至 224.0.0.5(所有 OSPF 路由器监听) LSAck(类型 5) 确认 LSU 接收 包含需确认的 LSA 头部
  • 数据包头部:含版本(v2 为 2)、类型、报文长度、Router ID、区域 ID、校验和、认证信息等。

二、OSPF 工作机制

1. 邻居与邻接关系建立

  • 邻居关系:通过 Hello 报文互认,达到 2-way 状态(稳定状态)。
  • 邻接关系:邻居间 LSDB 同步后建立,需经历 Exstart(主从协商)、Exchange(LSDB 摘要交换)、Loading(LSA 请求与更新)、Full(同步完成,稳定状态)。

2. DR/BDR 选举

  • 目的:在广播网络中减少邻接关系数量(避免n(n-1)/2的冗余关系)。
  • 范围:每个网段独立选举。
  • 规则:优先级(0-255,默认 1)高者优先;优先级相同则 Router ID 大的优先。
  • 特性:无抢占性,需原 DR/BDR 失效或重置 OSPF 进程才会重新选举。
  • 关系:DR 与 BDR、DR 与 DROTHER、BDR 与 DROTHER 为邻接(Full 状态);DROTHER 之间为邻居(2-way 状态)。

3. 状态机

  • 邻居状态:Down(初始)→ Init(收到 Hello 但未互认)→ 2-way(互认,确认 DR/BDR)。
  • 邻接状态:Exstart(主从协商)→ Exchange(LSDB 摘要交换)→ Loading(LSA 请求 / 更新)→ Full(LSDB 同步完成)。
  • 关键条件:2-way 需掩码、区域 ID、Hello/Dead 时间等一致;Full 需 MTU 一致。

4. LSDB 更新机制

  • 触发更新:网络拓扑变化时,通过 LSU 泛洪更新。
  • 老化机制:LSA 老化时间最大 3600s(失效),1800s 周期重置;通过序列号(越大越新)和校验和(序列号相同时,和大的更新)判断 LSA 新旧。

三、LSA(链路状态通告)

1. LSA 头部(20 字节)

含链路状态类型、老化时间、可选项、链路状态 ID、通告路由器(Adv Router)、序列号、校验和、长度。

2. 主要 LSA 类型(6 种)

类型 名称 通告者 作用 传输范围 关键字段 1 Router LSA 所有路由器 描述区域内直连链路(类型、开销等) 本区域 LS ID:通告路由器的 Router ID;含链路类型(transnet/ P2P/stubnet/ Virtual) 2 Network LSA DR 描述 MA 网络的路由器及掩码 本区域 LS ID:DR 的 IP 地址;含网段掩码 3 Network Summary LSA ABR 描述其他区域的网段路由 跨区域(需 ABR 转发) LS ID:其他区域的网段地址 4 ASBR Summary LSA ABR 描述 ASBR 的位置 跨区域 LS ID:ASBR 的 Router ID 5 AS External LSA ASBR 描述引入的外部路由 所有区域(特殊区域除外) LS ID:外部路由的目的网络 7 NSSA External LSA NSSA 区域的 ASBR 描述 NSSA 区域引入的外部路由 仅 NSSA 区域(经 ABR 转换为 5 类) LS ID:外部网段地址

四、OSPF 网络类型

类型 默认链路 报文发送方式 DR/BDR 选举 Hello 间隔 Dead 间隔 Broadcast 以太网 组播 需要 10s 40s P2P PPP 组播 不需要 10s 40s NBMA 帧中继 单播(需手动指定邻居) 需要 30s 120s P2MP 手动配置 模拟组播(需手动指定邻居) 不需要 30s 120s

五、区域划分与路由器类型

1. 区域划分

  • 骨干区域(Area 0):所有非骨干区域必须与之直接连接,防止环路。
  • 非骨干区域:需通过 ABR 连接骨干区域。
  • 特殊区域:优化路由表和 LSDB(如 Stub、NSSA 等)。

2. 路由器类型

  • 区域内路由器(IR):所有接口在同一区域。
  • 骨干路由器(BR):至少一个接口在骨干区域。
  • 区域边界路由器(ABR):连接骨干与非骨干区域,生成 3/4 类 LSA。
  • 自治系统边界路由器(ASBR):连接外部 AS,引入外部路由,生成 5/7 类 LSA。

六、开销(COST)计算

  • 参考带宽:默认 100M,建议设为网络中最高链路带宽。
  • 计算方式:链路带宽≥参考带宽时,COST=1;否则,COST = 参考带宽 / 链路带宽(Mb)。
  • 示例:千兆以太网(1000M)、百兆以太网(100M)默认 COST 均为 1,十兆以太网为 10。

七、实验问题(MGRE 场景)

  • 问题 1:Tunnel 接口为 P2P 类型时,无法建立邻接关系。
    解决:改为 broadcast 或 P2MP 类型(ospf network-type broadcast)。
  • 问题 2:DR/BDR 选举混乱。
    解决:将分支站点 DR 优先级设为 0,确保中心站点为唯一 DR。