OSPF笔记整理

一、OSPF 基础特性

1. 技术背景(对比 RIP)

  • RIP 的缺陷:最大跳数 15 限制、周期性发送全路由表(占用带宽)、收敛慢、以跳数为度量值、易产生环路、30 秒更新间隔。
  • OSPF 的改进:无跳数限制(支持大规模组网)、组播更新变化的路由信息、收敛快(触发更新)、以 Cost 为度量值、用 SPF 算法防环、30 分钟周期性更新 LSA(链路状态通告)。

2. 核心特点

  • 传递拓扑信息和路由信息(RIP 仅传递路由表)。
  • 协议号为 89,报文直接封装在 IP 报文中。
  • 广泛应用于互联网,是主流路由协议。

二、OSPF 核心组件

1. 三张关键表

  • 邻居表:记录邻居路由器的状态和关系(如邻居 ID、地址、状态)。
  • 拓扑表(LSDB,链路状态数据库):存储全网链路状态信息(LSA),是 SPF 算法计算路由的基础。
  • 路由表 :由 SPF 算法计算生成,记录最优路由(通过dis ip routing-table pro ospf查看)。

2. 五种报文类型

报文类型 类型值 作用 关键字段 / 特性
Hello 报文 1 发现 / 建立 / 保活邻居关系 包含网络掩码、Hello 间隔(默认 10s)、Dead 间隔(默认 40s)、DR/BDR 信息、邻居 Router-ID 等;组播地址 224.0.0.5。
DBD(数据库描述报文) 2 交换 LSDB 中 LSA 的摘要信息 含 LSA 头部(摘要)、DD 序列号(确保传输有序)、主从标识(Master 由 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 头部(20 字节 / 个)。

3. LSA(链路状态通告)

(1)LSA 头部(20 字节)

  • 包含:链路状态类型、老化时间(最大 3600s,1800s 周期归零)、链路状态 ID、通告路由器(Router-ID)、序列号(判断新旧)、校验和等。

(2)6 种核心 LSA 类型

类型 名称 通告者 传输范围 描述内容
Type 1 路由器 LSA 所有路由器 本区域内 描述路由器直连链路(类型、Cost 等),含链路 ID、链路数据、链路类型(如 P2P、广播网、末梢网)。
Type 2 网络 LSA DR(指定路由器) 本区域内 描述广播 / NBMA 网络中所有路由器的链路及掩码,LS ID 为 DR 的 IP 地址。
Type 3 网络汇总 LSA ABR(区域边界路由器) 跨区域(仅相邻区域) 描述其他区域的网段路由,以子网形式传播。
Type 4 ASBR 汇总 LSA ABR 全 OSPF 域 描述 ASBR(自治系统边界路由器)的位置,LS ID 为 ASBR 的 Router-ID。
Type 5 AS 外部 LSA ASBR 全 OSPF 域(特殊区域除外) 描述引入的外部路由(如其他 AS 的路由)。
Type 7 NSSA 外部 LSA NSSA 区域的 ASBR 仅 NSSA/Totally NSSA 区域 描述 NSSA 区域引入的外部路由,ABR 会将其转换为 Type 5 LSA 通告到其他区域。

三、OSPF 工作机制

1. 邻居与邻接关系建立

  • 邻居关系:通过 Hello 报文交互,双方互相发现(状态为 2-way)。
  • 邻接关系:邻居间同步 LSDB 后形成(状态为 Full),仅在需要交换 LSA 的路由器间建立(如 DR 与所有路由器、BDR 与所有路由器)。

2. DR/BDR 选举(广播 / NBMA 网络)

  • 目的:减少邻接关系数量(避免 n (n-1)/2 的复杂度),优化路由信息交换。
  • 规则:优先级(0-255,默认 1)高者优先;优先级相同则 Router-ID 大的优先。
  • 特性:无抢占性,需原 DR/BDR 失效或重置 OSPF 进程才会重新选举。
  • 关系:DR 与 BDR、DR 与 DROTHER(非 DR/BDR)、BDR 与 DROTHER 为邻接关系;DROTHER 之间仅为邻居关系(2-way)。

3. 工作流程

  1. 建立邻居:通过 Hello 报文确认可达性,选举 DR/BDR。
  2. 同步 LSDB:邻接路由器交换 DBD(LSA 摘要)→ 发送 LSR 请求缺失 LSA → 用 LSU 发送完整 LSA → 用 LSAck 确认。
  3. 计算路由:基于 LSDB,通过 SPF 算法计算最短路径,生成路由表。

4. 状态机(邻居 / 邻接关系转换)

  • 邻居状态:Down(初始)→ Init(收到 Hello 但未确认)→ 2-way(双方确认,稳定状态)。
  • 邻接状态:Exstart(协商主从)→ Exchange(交换 LSA 摘要)→ Loading(请求 / 接收 LSA)→ Full(LSDB 同步,稳定状态)。
  • 关键条件:2-way 需 Router-ID 无冲突、掩码 / 区域 ID/Hello 间隔 / Dead 间隔一致;Full 需 MTU 一致、网络类型一致。

四、区域划分与特殊区域

1. 基本区域规则

  • 骨干区域(Area 0):所有非骨干区域必须与之直接相连,避免区域间环路。
  • 非骨干区域:不能直接相连,需通过骨干区域通信。
  • 路由器类型:IR(区域内)、BR(骨干)、ABR(连接骨干与非骨干)、ASBR(连接外部 AS)。

2. 特殊区域(减少 LSA 泛洪,优化路由表)

区域类型 特征 禁止的 LSA 缺省路由 配置命令
Stub(末梢区域) 无 ASBR,不接收外部路由 Type 4/5 ABR 自动下发 Type 3 缺省(优先级 10) area X stub
Totally Stub(完全末梢) 不接收外部及其他区域路由 Type 3/4/5 ABR 自动下发 Type 3 缺省 area X stub no-summary
NSSA(非纯末梢) 有 ASBR,可引入外部路由(Type 7) Type 4/5 华为自动下发 Type 7 缺省(优先级 150) area X nssa
Totally NSSA(完全非纯末梢) 不接收其他区域及外部路由(除本区域引入) Type 3/4/5 ABR 下发 Type 3 缺省 area X nssa no-summary

五、路由聚合与防环

1. 路由聚合(手动聚合 LSA,减少路由条目)

  • ABR 聚合(Type 3 LSA) :在 ABR 上对区域内路由聚合后发布到其他区域,命令:area X abr-summary 网络地址 掩码
  • ASBR 聚合(Type 5/7 LSA) :在 ASBR 上对引入的外部路由聚合,命令:asbr-summary 网络地址 掩码
  • 聚合后会生成黑洞路由,防止环路。

2. 防环机制

  • 区域内:通过 SPF 算法(最短路径优先)计算无环路由。
  • 区域间:严格遵循 "非骨干区域必须连接骨干区域" 的划分原则,避免环路。

六、高级配置与优化

1. 网络类型(影响 DR 选举、报文发送方式)

网络类型 适用场景 DR/BDR 选举 Hello 间隔 Dead 间隔 报文发送方式
Broadcast(广播) 以太网 10s 40s 组播(224.0.0.5)
P2P(点到点) PPP 链路 10s 40s 组播
NBMA(非广播多点可达) 帧中继 30s 120s 单播(需手动指定邻居)
P2MP(点到多点) 手动配置(如从 NBMA 转换) 30s 120s 模拟组播(需手动指定邻居)

2. 安全与过滤

  • 认证 :区域认证(area X authentication-mode md5 密钥)、接口认证(interface X ospf authentication-mode md5 密钥),接口认证优先级更高。
  • 静默接口 :禁止接口发送 OSPF 报文(silent-interface 接口),避免路由信息泄露。
  • 路由过滤 :通过 ACL 在进口(filter-policy ACL import)或出口(area X filter ACL export)过滤 LSA,影响下游路由。

3. 收敛优化

  • 调整 Hello 间隔(ospf timer hello X)和 Dead 间隔(ospf timer dead X)。
  • 修改重传时间(默认 5s,ospf timer retransmit X)。
  • 统一参考带宽(bandwidth-reference X),确保 Cost 计算准确(Cost = 参考带宽 / 链路带宽,默认参考带宽 100M)。

4. 缺省路由

  • Type 3 缺省:特殊区域(Stub/Totally Stub)由 ABR 自动下发。
  • Type 5 缺省 :ASBR 手动配置(default-route-advertise),优先级 150。
  • Type 7 缺省:NSSA 区域由 ABR 下发(华为自动,华三需手动)。

七、常见问题与故障

  • 邻居关系建立失败:Router-ID 冲突、区域 ID 不一致、认证密码不匹配、掩码 / Hello 间隔 / Dead 间隔不一致、特殊区域标记不一致、无 DR(所有路由器优先级为 0)。
  • 邻接状态卡壳:MTU 不一致(卡在 Exstart/Exchange)、网络类型不一致(状态 Full 但无法学习路由)。
  • LSA 更新异常:序列号或校验和错误、老化时间超时(3600s)。
相关推荐
Web极客码24 分钟前
如何为你的WordPress网站选择合适的安全插件
网络·安全
Yueeyuee_40 分钟前
【C#学习Day15笔记】拆箱装箱、 Equals与== 、文件读取IO
笔记·学习·c#
এ旧栎1 小时前
Gitee
笔记·gitee·学习方法
kfepiza1 小时前
vim的`:q!` 与 `ZQ` 笔记250729
linux·笔记·编辑器·vim
渡我白衣1 小时前
Linux网络编程:UDP 的DictServer
linux·网络·网络协议·udp
梅羽落1 小时前
PTE之路--01
运维·网络
吃不得辣条2 小时前
网络安全之防火墙
网络·web安全·apache
Emotion亦楠2 小时前
Java 学习笔记:常用类、String 与日期时间处理
java·笔记·学习
AORO20254 小时前
什么是三防平板电脑?三防平板有什么作用?
网络·5g·电脑·制造·信息与通信