跳至内容

OSPF 详解

这篇深入 OSPF:划分区域的意义、网络类型与 DR/BDR、五种报文与七种状态、LSA 的类型、特殊区域(Stub/NSSA)、虚链路、认证与路由过滤。OSPF 的工作原理(建邻居、生拓扑、算路由)与基础配置见路由技术

划分区域的意义

OSPF 把自治系统划分为多个区域,好处:

  • 减小路由表规模(区域间可做汇总)。
  • 加快收敛速度
  • 减少网络震动的影响范围

路由器角色:

角色缩写说明
内部路由器IR所有接口都在同一区域
区域边界路由器ABR连接骨干区域和非骨干区域,必须连到骨干区域
自治系统边界路由器ASBR运行非 OSPF 协议,把外部路由引入 OSPF
为避免区域间环路,OSPF 规定不允许直接在两个非骨干区域之间发布路由,只允许在区域内部或骨干区域与非骨干区域之间发布。因此每个 ABR 都必须连接到骨干区域(Area 0)。

网络类型与 DR/BDR

OSPF 为什么要有网络类型? 为了解决以太网中 LSA 频繁泛洪的问题。在广播网络中选举 DR/BDR,让其他路由器只与 DR/BDR 交互,从而减少冗余 LSA。

  • 广播类型(如以太网):选举 DR 和 BDR。
  • 点到点类型(如 PPP、HDLC):不选举 DR/BDR——点到点是一对一网络,邻居永远只有一个,不会收到重复 LSA。
  • 回环口默认使用点到点网络类型。

DR/BDR 选举依据:

  1. 优先级:默认 1,范围 0~255,越大越优先(0 不参与选举)。
  2. Router ID:优先级相同时,Router ID 越大越优先

补充:只有以太网接口才有 MAC 地址,其他接口都没有。

五种报文

报文作用
Hello建立和维持邻居关系
DD(Database Description)描述本地 LSDB 的摘要信息,用于两台路由器同步数据库
LSR(Link State Request)向对方请求所需的 LSA;只有成功交换 DD 后才会发出
LSU(Link State Update)向对方发送其所需的 LSA(LSA 通过 LSU 承载传递)
LSAck对收到的 LSA 进行确认

组播地址:224.0.0.5(所有 OSPF 路由器)、224.0.0.6(仅 DR/BDR 处理)。

七种状态

邻居到邻接的状态变化:

Down → Init → 2-Way → Exstart → Exchange → Loading → Full
  • 邻居:相互发送过 Hello。
  • 邻接:可以发送 DD、LSA 信息(真正交换路由)。

LSA 类型

LSA(链路状态通告)本质是描述链路/路由的信息,是 LSDB 的组成单元。常见类型:

类型名称产生者描述内容传播范围
Type 1Router-LSA任意路由器路由器的直连链路状态和开销本区域内
Type 2Network-LSADR本网段的链路状态、掩码及网段内路由器本区域内
Type 3Network-summary-LSAABR区域内某网段的路由(区域间路由)区域间(除特殊区域)
Type 4ASBR-summary-LSAABR到 ASBR 的路由(标识 ASBR)非 ASBR 所在区域(除特殊区域)
Type 5AS-external-LSAASBR到 AS 外部的路由OSPF 域内(除特殊区域)
Type 6用于 OSPF 组播
Type 7NSSA-LSANSSA 区域的 ASBR到 AS 外部的路由仅 NSSA 区域内

外部引入的路由信息都会被标记为第五类 LSA。

一条路由通告时包含的重要信息:前缀(Prefix)、掩码(Netmask)、网络类型(network-type)、区域(Area)、开销(cost)。

同一路由器上的不同 OSPF 进程之间不能自动学习路由,需要通过路由引入互通。

特殊区域

为进一步减小路由表,OSPF 定义了特殊区域。特点:减小路由规模;骨干区域不能作为特殊区域;至少要有一个 ABR;不允许 ASBR 存在。

区域类型不接收/不泛洪是否生成缺省路由备注
Stub(末节)不接收第五类 LSA是(ABR 生成默认路由)
Totally Stub(完全末节)不泛洪三、四、五类
NSSA(次末节)不泛洪第五类,泛洪第七类第七类由 ABR 转为第五类泛洪给其他区域
Totally NSSA(完全次末节)只泛洪第七类

引入缺省路由命令:default-route-advertise。查看错误信息:display ospf error

虚链路

由于拓扑复杂,有时无法满足"每个非骨干区域必须与骨干区域直连"的要求。OSPF 用**虚链路(Virtual-link)**解决此问题。

虚链路设置在两台 ABR 之间,穿过一个非骨干区域(转换区域 Transit Area),建立一条逻辑上的点对点连接,被认为属于骨干区域。中间路由器只起转发报文的作用,两台 ABR 之间直接传递 Type 3 LSA。通过虚链路的路由信息作为域内路由看待。

认证与路由过滤

认证方式:nullsimple(明文)、md5hmac-md5。当接口认证和区域认证同时存在时,优先使用接口认证

路由过滤两种粒度:

  • LSA 过滤:直接过滤链路状态数据库(LSDB)。
  • 路由过滤:只过滤路由表,不影响 LSDB。

定时器

  • Hello 间隔 10s,死亡时间 40s(广播/点到点网络)。
  • 非广播网络(如帧中继):Hello 间隔 30s,保持时间 120s。
  • 路由相关:更新 30s、老化 180s、死亡 240s、清除路由条目 300s。
最后更新于