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)
- 数据包头部:含版本(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 种)
四、OSPF 网络类型
五、区域划分与路由器类型
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。