开放最短路径优先 (OSPF) 是一种链路状态路由协议,用于使用自己的最短路径优先 (SPF) 算法找到源路由器和目标路由器之间的最佳路径。链路状态路由协议是一种使用触发更新概念的协议,即,如果在学习到的路由表中观察到变化,则仅触发更新,而不像距离矢量路由协议那样路由表是在一段时间内交换。
开放最短路径优先 (OSPF) 由互联网工程任务组 (IETF) 开发,作为内部网关协议 (IGP) 之一,即旨在在大型自治系统或路由域内移动数据包的协议。它是一种网络层协议,工作在协议号 89 上,使用 AD 值 110。OSPF 使用多播地址 224.0.0.5 进行正常通信,使用 224.0.0.6 更新到指定路由器 (DR)/备份指定路由器 (BDR)。
标准 –
要在 OSPF 中形成邻居关系,两个路由器都有一个标准:
- 它应该存在于同一区域
- 路由器我必须是独一无二的
- 子网掩码应该相同
- 你好和死定时器应该是一样的
- 存根标志必须匹配
- 身份验证必须匹配
OSPF 支持NULL、纯文本、MD5 认证。
注 –两个路由器(邻居)都应启用相同类型的身份验证。例如,如果一个邻居启用了 MD5 身份验证,那么其他邻居也应该启用 MD5 身份验证。
OSPF 消息 –
OSPF 使用某些消息在运行 OSPF 的路由器之间进行通信。
- Hello 消息 –这些是用于邻居发现/恢复的保持活动消息。它们每 10 秒交换一次。这包括以下信息:路由器 Id、Hello/dead 间隔、区域 Id、路由器优先级、DR 和 BDR IP 地址、身份验证数据。
- 数据库描述 (DBD) –它是路由器的 OSPF 路由。这包含 AS 或区域(路由域)的拓扑。
- 链路状态请求 (LSR) –当路由器收到 DBD 时,它会将其与自己的 DBD 进行比较。如果收到的 DBD 比它自己的 DBD 有更多的更新,那么 LSR 将被发送到它的邻居。
- 链路状态更新 (LSU) –当路由器收到 LSR 时,它会使用包含请求的详细信息的 LSU 消息进行响应。
- 链路状态确认——这为链路状态交换过程提供了可靠性。它作为 LSU 的确认发送。
- 链路状态通告 (LSA) –它是一个 OSPF 数据包,包含链路状态路由信息,仅与已形成邻接关系的路由器共享。
注 –链路状态通告和链路状态确认都是不同的消息。
计时器 –
- Hello 计时器 – OSPF 路由器在接口上发送 hello 消息的时间间隔。默认为 10 秒。
- Dead timer –如果邻居无法发送 hello 数据包,则该时间间隔将被宣布为死亡。默认为 40 秒。通常是 hello 间隔的 4 倍,但可以根据需要手动配置。
OSPF 支持/提供/优势 –
- IPv4 和 IPv6 路由协议
- 相同目的地的等价路由负载均衡
- VLSM 和路由汇总
- 无限跳数
- 触发更新以实现快速收敛
- 使用 SPF 算法的无环拓扑
- 在大多数路由器上运行
- 无类协议
OSPF 有一些缺点,例如,它需要额外的 CPU 进程来运行 SPF 算法,需要更多的 RAM 来存储邻接拓扑,并且设置更复杂且难以排除故障。