开放最短路径优先OSPF----基于链路状态

目录

开放最短路径优先OSPF的基本工作原理

[OSPF 协议基础介绍](#OSPF 协议基础介绍)

[链路状态 & 链路代价 Cost](#链路状态 & 链路代价 Cost)

(1)链路状态定义

[(2)链路代价 Cost](#(2)链路代价 Cost)

[OSPF 邻居建立:Hello 分组机制](#OSPF 邻居建立:Hello 分组机制)

[1. Hello 报文封装参数](#1. Hello 报文封装参数)

[2. 时间规则](#2. 时间规则)

[3. 邻居表存储内容](#3. 邻居表存储内容)

[OSPF 核心载体:LSA 链路状态通告 & LSDB 链路状态数据库](#OSPF 核心载体:LSA 链路状态通告 & LSDB 链路状态数据库)

[1. LSA 链路状态通告](#1. LSA 链路状态通告)

[2. LSDB 链路状态数据库](#2. LSDB 链路状态数据库)

[OSPF 路由计算:SPF 迪杰斯特拉算法](#OSPF 路由计算:SPF 迪杰斯特拉算法)

[OSPF 五种标准分组(报文类型)](#OSPF 五种标准分组(报文类型))

[OSPF 完整邻居与数据库同步流程](#OSPF 完整邻居与数据库同步流程)

[广播多路访问网络:DR/BDR 选举机制](#广播多路访问网络:DR/BDR 选举机制)

[1. 角色定义](#1. 角色定义)

[2. 邻居建立规则](#2. 邻居建立规则)

[3. 优化效果](#3. 优化效果)

[OSPF 区域 Area 划分(解决大型网络压力)](#OSPF 区域 Area 划分(解决大型网络压力))

[1. 划分区域的目的](#1. 划分区域的目的)

[2. 区域硬性规则](#2. 区域硬性规则)

[3. 四类 OSPF 路由器角色](#3. 四类 OSPF 路由器角色)

[OSPF 对比 RIP 核心优劣总结](#OSPF 对比 RIP 核心优劣总结)

[OSPF 优势](#OSPF 优势)

[OSPF 劣势](#OSPF 劣势)


开放最短路径优先OSPF的基本工作原理

OSPF 协议基础介绍

OSPF 全称Open Shortest Path First,开放最短路径优先,1989 年推出,设计初衷就是弥补 RIP 协议的短板:

  1. 开放:协议标准完全公开,无厂商私有绑定,所有厂商设备通用;
  2. 最短路径优先:采用 Dijkstra 迪杰斯特拉 SPF 最短路径算法计算路由;
  3. 协议类型:链路状态路由协议,和 RIP 距离向量协议本质区分;
  4. 核心优势:算法层面杜绝路由环路、无 15 跳规模限制、收敛速度快、支持大型自治系统 AS

链路状态 & 链路代价 Cost

(1)链路状态定义

每台路由器描述自身两张关键信息,合称为链路状态:

  1. 本机直连的所有邻居路由器;
  2. 本机与邻居之间链路的代价 Cost

(2)链路代价 Cost

Cost 是 OSPF 选路唯一度量值,可综合衡量链路带宽、延迟、开销、距离,由网络管理员自定义。 思科设备默认计算公式Cost = 100Mbps / 链路实际带宽 规则补充:

  • 计算结果小于 1,统一记为 1;
  • 计算出现小数,直接舍去小数取整数; 示例:
  • 100Mbps 链路:100/100=1,Cost=1;
  • 1Gbps 链路:100/1000=0.1 → 取 Cost=1;
  • 10Mbps 链路:100/10=10,Cost=10;
  • 1.544M T1 专线:100/1.544≈64.77 → 舍去小数,Cost=64

OSPF 邻居建立:Hello 分组机制

OSPF 依靠Hello 分组发现、建立、维持邻居关系,只有邻居路由器之间才能交换链路状态信息。

1. Hello 报文封装参数

  • 源 IP:路由器发送接口 IP 地址
  • 目的组播 IP:224.0.0.5(所有 OSPF 路由器监听该组播)
  • IP 头部协议号:89(区分 TCP/UDP,专属 OSPF 协议标识)

2. 时间规则

  1. Hello 发送周期:广播型以太网默认 10 秒发送一次 Hello;
  2. 死亡计时器 Dead Interval:40 秒(4 倍 Hello 周期);
  3. 判定邻居失效:连续 40 秒未收到邻居 Hello 报文,标记该邻居离线,触发路由重新计算

3. 邻居表存储内容

路由器本地维护邻居表,记录:邻居路由器 ID、本地对接接口、死亡倒计时数值

OSPF 核心载体:LSA 链路状态通告 & LSDB 链路状态数据库

1. LSA 链路状态通告

每一台 OSPF 路由器都会自主生成专属 LSA,记录两类信息:

  1. 自身直连网段的链路状态;
  2. 所有直连邻居路由器信息。

LSA 不会直接发送,而是封装在LSU 链路状态更新分组 中,使用洪泛法在全网传递

2. LSDB 链路状态数据库

全网所有路由器,都会收集全网全部设备生成的 LSA,统一存储在本地链路状态数据库 LSDB。

  • 收敛标准:同一区域内所有路由器的 LSDB 内容完全一致;
  • 区别 RIP:RIP 交换整张路由表,OSPF 仅交换链路状态拓扑信息,不交换最终路由;
  • 路由生成逻辑:路由器本地基于统一 LSDB 拓扑图,独立运行 SPF 算法计算路由表

OSPF 路由计算:SPF 迪杰斯特拉算法

  • 每台路由器以自身为根节点,基于本地完整 LSDB 生成带权拓扑图;
  • 运行 Dijkstra SPF 最短路径算法,计算到达所有网段、所有路由器的最小 Cost 路径;
  • 将计算出的最优路径写入本地路由表,实现全网互通;
  • 算法天然保证无路由环路,从根本解决 RIP"坏消息传得慢、无穷计数" 缺陷

【总结】【数据结构】算法BFS、DFS、Dijkstral、Floyd、排序算法等-CSDN博客

OSPF 五种标准分组(报文类型)

OSPF 一共定义 5 类分组,各司其职完成邻居建立、数据库同步、可靠更新:

  1. Type 1 Hello 问候分组 功能:发现邻居、保活邻居关系,是 OSPF 邻居交互基础
  2. Type 2 DBD 数据库描述分组 功能:向邻居发送本地 LSDB 的 LSA 摘要列表,用于对比双方数据库差异
  3. Type 3 LSR 链路状态请求分组 功能:收到 DBD 后,针对本地缺失的 LSA,向邻居发起详细条目请求
  4. Type 4 LSU 链路状态更新分组 功能:携带完整 LSA 条目,通过洪泛法全网同步拓扑变更
  5. Type 5 LSAck 链路状态确认分组 功能:可靠传输保障,收到 LSU 后回复确认报文,防止 LSA 重复泛洪

OSPF 完整邻居与数据库同步流程

  • 两台直连路由器互相发送 Hello 报文,参数匹配成功,建立邻居关系;
  • 邻居交互 DBD 报文,对比各自 LSDB 摘要,找出对方拥有、本地缺失的 LSA;
  • 本地发送 LSR 报文,请求缺失的完整 LSA 条目;
  • 对方回复 LSU 报文,携带完整 LSA;
  • 接收方回复 LSAck 确认报文,完成数据库同步;
  • 链路稳定状态下,仅周期性发送 Hello 保活;链路故障 / 拓扑变更时,立即泛洪 LSU 更新全网 LSDB

广播多路访问网络:DR/BDR 选举机制

以太网、交换机等多点接入网络,如果所有路由器两两建立邻居,邻居关系数量会爆炸式增长,占用大量资源。OSPF 引入 DR/BDR 优化:

1. 角色定义

  • DR 指定路由器:本网段所有路由信息的中转中心;
  • BDR 备份指定路由器:DR 故障时自动升级为 DR;
  • DRother 普通路由器:非 DR、非 BDR 设备

2. 邻居建立规则

  1. DRother 仅和 DR、BDR 建立完整邻居关系;
  2. DRother 之间不建立邻居,拓扑信息全部通过 DR 转发同步;
  3. DR 失效,BDR 立刻接管工作,无需重新选举

3. 优化效果

假设网段有 n 台路由器,无 DR 时邻居关系为n*(n-1)/2;启用 DR/BDR 后邻居数量简化为2(n-2)+1,大幅降低设备计算与报文开销

OSPF 区域 Area 划分(解决大型网络压力)

1. 划分区域的目的

若整个 AS 作为单一区域,全网任意一条链路变动,所有路由器都要泛洪 LSA、重新运行 SPF 算法,设备负载极高。 划分区域优势:

  1. LSA 洪泛范围限制在本区域,拓扑变更不会扩散整个 AS;
  2. 每个区域独立计算最短路径,减小 LSDB 数据库体积,降低路由器 CPU 计算压力;
  3. 支持路由汇总,减少跨区域路由条目数量

2. 区域硬性规则

  1. 主干区域 Area 0(0.0.0.0):所有非主干区域必须直接连接主干区域,不允许跨区域直连;
  2. 区域使用 32 位 ID 标识,可写十进制或点分十进制(0 / 0.0.0.0 等价)

3. 四类 OSPF 路由器角色

  1. IR 区域内路由器:所有接口都属于同一个普通区域;
  2. ABR 区域边界路由器:同时连接主干区域 + 普通区域,负责区域间路由汇总与转发;
  3. BR 主干路由器:接口全部位于 Area 0 主干区域;
  4. ASBR 自治系统边界路由器:同时运行 OSPF 与其他外部路由协议(RIP、静态、BGP 等),负责引入外部路由进入 OSPF 域

OSPF 对比 RIP 核心优劣总结

OSPF 优势

  1. 链路状态算法,SPF 计算无路由环路;
  2. 以链路带宽 Cost 为度量,优先高速链路,选路更合理;
  3. 无 15 跳上限,支持大型园区、运营商骨干网络;
  4. 拓扑变化时仅增量更新 LSA,而非周期性发送整张路由表,带宽占用更低;
  5. 支持区域划分、路由汇总,可大规模部署;
  6. 收敛速度远快于 RIP,故障切换效率高;
  7. 支持 VLSM、CIDR 无类路由,适配现代子网规划

OSPF 劣势

  1. 算法复杂,路由器 CPU、内存开销高于 RIP;
  2. 配置逻辑多,学习与部署门槛比 RIP 高;
  3. 小型网络中,OSPF 的复杂机制反而造成资源浪费

  • OSPF 组播地址区分
    • 224.0.0.5:所有 OSPF 路由器接收 Hello、泛洪 LSU;
    • 224.0.0.6:仅 DR/BDR 接收 DRother 发送的更新报文
  • LSA 泛洪生命周期 LSA 默认 30 分钟刷新一次,老化时间 60 分钟,到期未刷新则从 LSDB 删除
  • 适用场景区分
    • RIP:小型企业、实验室、节点少于 15 台的简易网络;
    • OSPF:中大型企业内网、城域网、运营商骨干网
相关推荐
精明的身影1 小时前
网络计划WebApp求解:融合Python与AI决策的项目管理系统
网络·python·web app
Let's Chat Coding2 小时前
对称密钥认证:主机和设备共享同一把密钥
运维·服务器·网络
技术不好的崎鸣同学5 小时前
[极客大挑战 2019]EasySQL 思路及解法
网络·安全·web安全
Web极客码5 小时前
跨国网络抖动下的 AI 爬虫流调优:我如何用 Claude 打造“智能退避”资讯清洗管道
网络·人工智能·爬虫
念何架构之路5 小时前
moby-http-api-server
网络·网络协议·http
namexingyun6 小时前
Scaling Law bug实战启示:从“虚胖“到“精瘦“的算力效率革命
开发语言·网络·人工智能·bug·ai编程
阿拉斯攀登6 小时前
NAT 穿透详解:STUN / TURN / ICE
运维·服务器·网络·webrtc·nat
云栖梦泽在6 小时前
原生 IP、机房 IP、住宅 IP、广播 IP 有何不同?从网络身份到 ASN 识别的技术科普
网络·网络协议·tcp/ip·性能优化
AI创界者6 小时前
【实战演练】基于 Kali Linux 的自动化漏洞扫描与安全加固指南
网络·安全·web安全