一、OSPF介绍
OSPF(Open Shortest Path First,开放最短路径优先)协议作为一种基于链路状态的路由协议,它为网络中的路由器提供了一种高效、可靠的方式来共享路由信息,并计算出最短路径。
特点:
- 收敛速度快,能快速适应网络变化。
- 支持区域划分,适合大规模网络。
- 提供更准确和详细的路由信息。
- 对网络拓扑变化的适应性强。
二、OSPF概念
1.Router ID
Router ID(路由器标识符)是一个 32 位的标识符,用于唯一标识一台 OSPF 路由器。
-
唯一性:在一个 OSPF 域内必须是唯一的,不能与其他路由器的 Router ID 重复。
-
选举规则:通常,管理员可以手动配置 Router ID。如果没有手动配置,OSPF 会自动选取路由器上活动的最大 IP 地址作为 Router ID。
-
稳定性要求:一旦确定,应尽量保持不变,因为 Router ID 的改变可能会导致一些路由信息的重新计算和传播,对网络稳定性有一定影响。
-
路由计算:在进行路由计算和构建拓扑结构时,Router ID 是关键的标识。
-
邻居建立:在 OSPF 邻居建立过程中,Router ID 用于识别不同的路由器。
2.链路状态
链路状态指的是路由器接口的状态信息,包括接口的 IP 地址、子网掩码、网络类型、Cost(成本)值等。
链路状态信息通过 LSA(Link State Advertisement,链路状态通告)报文在路由器之间进行交换。
主要作用包括:
- 构建拓扑图:通过收集各个路由器的链路状态信息,OSPF 可以构建出整个网络的拓扑结构,包括路由器的连接关系、链路的带宽等信息。
- 计算最优路径:基于链路状态信息和最短路径算法,OSPF 可以计算出到达每个目的地的最优路径,并将其存储在路由表中。
- 快速收敛:当网络拓扑发生变化时,路由器可以迅速感知并更新链路状态信息,从而快速计算出新的最优路径,实现快速收敛。
- 避免路由环路:OSPF 通过使用链路状态信息和最短路径算法,可以避免出现路由环路,保证网络的稳定性和可靠性。
3.Cost
Cost(花销)用于表示到达目的地的路径代价。
Cost 值通常由以下因素决定:
- 链路带宽:链路的带宽会影响 Cost 的值。一般来说,带宽越高,Cost 值越小,表示通过该链路到达目的地的代价越低。
- 接口类型:不同类型的接口可能具有不同的默认 Cost 值。例如,以太网接口的默认 Cost 值通常为 1,而广域网接口的默认 Cost 值可能较高。
- 手动配置:管理员可以手动配置接口的 Cost 值,以影响 OSPF 路由的选择。
Cost 的计算公式
- 通常是参考带宽除以接口带宽。例如,如果参考带宽为 100Mbps,而接口带宽为 10Mbps,则 Cost 值为 10。
Cost 值的作用
- 帮助 OSPF 协议选择最优路径,OSPF 路由器会根据链路状态信息和 Cost 值计算到达每个目的地的最短路径,并将其存储在路由表中。当需要转发数据包时,路由器会根据路由表选择成本最低的路径。
4.报文类型
- Hello 报文 :用于发现、建立和维护邻居关系。
- Hello 报文会被周期性地发送到邻居路由器,以确保链路的可用性和邻居的存在。Hello 报文还用于选举 DR和 BDR。
- (Designated Router,指定路由器)
- (Backup Designated Router,备份指定路由器)
- Hello 报文会被周期性地发送到邻居路由器,以确保链路的可用性和邻居的存在。Hello 报文还用于选举 DR和 BDR。
- DD报文 :数据库描述报文,用于描述本地链路状态数据库(LSDB)的情况。
- DD 报文包含了 LSA的头部信息,用于与邻居路由器进行数据库同步。
- (Database Description)
- (Link State Advertisement,链路状态通告)
- DD 报文包含了 LSA的头部信息,用于与邻居路由器进行数据库同步。
- LSR报文 :链路状态请求报文,用于向邻居路由器请求自身缺少的链路状态信息。
- 当路由器发现自己的链路状态数据库中缺少某些 LSA 时,会发送 LSR 报文请求邻居路由器发送相应的 LSA。
- (Link State Request)
- 当路由器发现自己的链路状态数据库中缺少某些 LSA 时,会发送 LSR 报文请求邻居路由器发送相应的 LSA。
- LSU报文 :链路状态更新报文,用于向邻居路由器发送详细的链路状态信息。
- 当路由器接收到 LSR 报文后,会使用 LSU 报文回复请求的 LSA。LSU 报文包含了真正的 LSA 内容,用于更新邻居路由器的链路状态数据库。
- (Link State Update)
- 当路由器接收到 LSR 报文后,会使用 LSU 报文回复请求的 LSA。LSU 报文包含了真正的 LSA 内容,用于更新邻居路由器的链路状态数据库。
- LSAck报文 :链路状态确认报文,用于确认收到的 LSU 报文。
- 当邻居路由器收到 LSU 报文后,会发送 LSAck 报文进行确认。LSAck 报文可以确保链路状态信息的传输可靠性。
- (Link State Acknowledgment)
- 当邻居路由器收到 LSU 报文后,会发送 LSAck 报文进行确认。LSAck 报文可以确保链路状态信息的传输可靠性。
5.LSA类型
-
路由器 LSA :每台运行 OSPF 的路由器都会产生这种类型的 LSA。
- 它描述了路由器的接口和接口的Cost值以及描述路由器的特殊角色,如虚拟链路、ABR和 ASBR等。
- (Router LSA,Type 1)
- (Area Border Router,区域边界路由器)
- ( Autonomous System Border Router,自治系统边界路由器)
- 它描述了路由器的接口和接口的Cost值以及描述路由器的特殊角色,如虚拟链路、ABR和 ASBR等。
-
网络 LSA :在多路访问型网络(如以太网或帧中继网络)中,会选举出 DR(和 BDR。DR 会发送这种类型的 LSA,用来描述网络中的所有路由器。
- (Network LSA,Type 2)
-
网络汇总 LSA :由 ABR产生,用于通告其他区域的网络信息。
- 汇总了与 ABR 相连的其他区域的网络信息,并将其发送到其他区域。
- (Network Summary LSA,Type 3)
- (Area Border Router,区域边界路由器)
- 汇总了与 ABR 相连的其他区域的网络信息,并将其发送到其他区域。
-
ASBR 汇总 LSA :由 ABR 产生,用于通告 ASBR的位置。
- 告诉其他区域 ASBR 的位置,以便其他区域的路由器能够通过 ABR 到达 ASBR。
- (ASBR Summary LSA,Type 4)
- ( Autonomous System Border Router,自治系统边界路由器)
- 告诉其他区域 ASBR 的位置,以便其他区域的路由器能够通过 ABR 到达 ASBR。
-
外部 LSA :由 ASBR 产生,用于通告外部路由信息。
- 描述了 ASBR 从其他路由协议(如 BGP)学习到的路由信息,并将其通告给 OSPF 网络。
- (External LSA,Type 5)
- 描述了 ASBR 从其他路由协议(如 BGP)学习到的路由信息,并将其通告给 OSPF 网络。
-
组播 LSA :用于支持组播路由。
- (Multicast LSA,Type 6)
-
NSSA 外部 LSA :在 NSSA使用,类似于 Type 5 LSA,但它的通告范围仅限于 NSSA 区域。
- (NSSA External LSA,Type 7)
- (Not-So-Stubby Area,非完全末梢区域)