一、OSPF简介
OSPF(Open Shortest Path First,开放最短路径优先)是 IETF(Internet Engineering Task Force,互联网工程任务组)组织开发的一个基于链路状态的内部网关协议。目前针对 IPv4 协议使用的是OSPF Version 2。
二、OSPF的特点
OSPF 具有如下特点:
- 适应范围广:支持各种规模的网络,最多可支持几百台路由器。
- 快速收敛:在网络的拓扑结构发生变化后立即发送更新报文,使这一变化在自治系统中同步。
- 无自环:由于 OSPF 根据收集到的链路状态用最短路径树算法计算路由,从算法本身保证了不会生成自环路由。
- 区域划分:允许自治系统的网络被划分成区域来管理。路由器链路状态数据库的减小降低了内存的消耗和 CPU 的负担;区域间传送路由信息的减少降低了网络带宽的占用。
- 等价路由:支持到同一目的地址的多条等价路由。
- 路由分级:使用 4 类不同的路由,按优先顺序来说分别是:区域内路由、区域间路由、第一类外部路由、第二类外部路由。
- 支持验证:支持基于区域和接口的报文验证,以保证报文交互和路由计算的安全性。
- 组播发送:在某些类型的链路上以组播地址发送协议报文,减少对其他设备的干扰。
三、OSPF报文类型
OSPF 协议报文直接封装为 IP 报文,协议号为 89。
OSPF 有五种类型的协议报文:
- Hello 报文:周期性发送,用来发现和维持 OSPF 邻居关系,以及进行 DR(DesignatedRouter,指定路由器)/BDR(Backup Designated Router,备份指定路由器)的选举。
- DD(Database Description,数据库描述)报文:描述了本地 LSDB(Link State DataBase,链路状态数据库)中每一条 LSA(Link State Advertisement,链路状态通告)的摘要信息,用于两台路由器进行数据库同步。
- LSR(Link State Request,链路状态请求)报文:向对方请求所需的 LSA。两台路由器互相交换 DD 报文之后,得知对端的路由器有哪些 LSA 是本地的 LSDB 所缺少的,这时需要发送LSR 报文向对方请求所需的 LSA。
- LSU(Link State Update,链路状态更新)报文:向对方发送其所需要的 LSA。
- LSAck(Link State Acknowledgment,链路状态确认)报文:用来对收到的 LSA 进行确认。
四、LSA类型
OSPF 中对链路状态信息的描述都是封装在 LSA 中发布出去,常用的 LSA 有以下几种类型:
- Router LSA(Type-1):由每个路由器产生,描述路由器的链路状态和开销,在其始发的区域内传播。
- Network LSA(Type-2):由 DR 产生,描述本网段所有路由器的链路状态,在其始发的区域内传播。
- Network Summary LSA(Type-3):由 ABR(Area Border Router,区域边界路由器)产生,描述区域内某个网段的路由,并通告给其他区域。
- ASBR Summary LSA(Type-4):由 ABR 产生,描述到 ASBR(Autonomous SystemBoundary Router,自治系统边界路由器)的路由,通告给相关区域。
- AS External LSA(Type-5):由 ASBR 产生,描述到 AS(Autonomous System,自治系统)外部的路由,通告到所有的区域(除了 Stub 区域和 NSSA 区域)。
- NSSA External LSA(Type-7):由 NSSA(Not-So-Stubby Area)区域内的 ASBR 产生,描述到 AS 外部的路由,仅在 NSSA 区域内传播。
- Opaque LSA:用于 OSPF 的扩展通用机制,目前有 Type-9、Type-10 和 Type-11 三种。其中,Type-9 LSA 仅在本地链路范围进行泛洪,用于支持 GR(Graceful Restart,平滑重启)的 Grace LSA 就是 Type-9 的一种类型;Type-10 LSA 仅在区域范围进行泛洪,用于支持MPLS TE 的 LSA 就是 Type-10 的一种类型;Type-11 LSA 可以在一个自治系统范围进行泛洪。