华为eNSP模拟器综合实验之-OSPF动态路由协议 二

OSPF协议解析:三张表、五种报文与七种状态

一、OSPF链路状态协议

**OSPF(Open Shortest Path First)**是一种链路状态路由协议,其核心思想是"各自绘制地图,独立计算路由":

信息共享:每台路由器描述自己直连的网络和邻居

数据同步:将这些描述(LSA)泛洪给区域内所有路由器

地图构建:所有路由器构建完全相同的网络拓扑图(LSDB)

路径计算:每台路由器以自己为起点,运行SPF算法计算最佳路径

二、OSPF的三张核心表

OSPF路由器维护三张关键表,形成"发现邻居→同步信息→计算路由"的数据流:

  1. 邻居表(Neighbor Table)

本质:OSPF社交关系记录表

内容:

邻居Router ID

邻居接口地址

邻居当前状态(7种状态之一)

Dead计时器剩余时间

DR/BDR角色信息

所属区域ID

作用:跟踪哪些路由器已建立OSPF通信

查看命令:display ospf peer

通俗比喻:就像手机通讯录,记录了谁是你的联系人,以及你们的交情深浅

关键特性:

通过Hello报文建立和维护

广播网络中并非所有邻居都会成为"好友"(Full状态)

DROther路由器之间只停留在Two-way状态(普通联系人),只有与DR/BDR才会建立Full状态(密友关系)
2. 链路状态数据库(LSDB)

本质:网络拓扑地图库

内容:存储各类LSA(链路状态通告):

Type-1 Router LSA:路由器自身链路状态

Type-2 Network LSA:多路访问网络状态(由DR产生)

Type-3 Summary LSA:区域间路由汇总(由ABR产生)

Type-4 ASBR Summary LSA:到达ASBR的路由

Type-5 AS External LSA:OSPF自治系统外部路由

Type-7 NSSA External LSA:NSSA区域内的外部路由

作用:提供SPF算法的计算基础,确保无环路

查看命令:display ospf lsdb

通俗比喻:就像一个城市详尽的地图集,记录了所有道路、路口和地标

关键特性:

同一区域内的所有路由器LSDB必须完全一致

区域边界是LSDB的边界(不同区域LSDB不同)

通过DBD、LSR、LSU和LSAck报文同步

LSDB越大,内存和CPU消耗越高
3. 路由表(Routing Table)

本质:数据包转发决策表

内容:

目标网络地址/掩码

下一跳地址

出接口

路由开销(Cost)

路由类型(区域内O、区域间O IA、外部类型1 O E1、外部类型2 O E2)

生成过程:

以本路由器为根节点

应用Dijkstra SPF算法遍历LSDB

计算到达每个网络的最短路径

选择最佳路径安装到路由表

查看命令:display ip routing-table

通俗比喻:个人定制的导航路线,基于地图集(LSDB)计算出的从自己家到各目的地的最佳路线

关键特性:

每台路由器的路由表不同(从各自视角计算)

路由计算只在LSDB变化时触发(不是定期更新)

路由类型影响选路优先级:区域内 > 区域间 > 外部E1 > 外部E2

三、OSPF的5种报文类型

OSPF通过5种报文在IP层(协议号89)上传输,这5种报文是三张表的数据流动载体:

  1. Hello报文(Type 1):邻居发现与维护

核心功能:建立和维护邻居关系,选举DR/BDR

传输方式:组播224.0.0.5

对表的影响:填充和更新邻居表

关键字段:Router ID、Area ID、Hello/Dead定时器、路由器优先级、DR/BDR地址

状态触发:Down → Init → Two-Way

  1. DBD报文(Type 2):数据库摘要交换

核心功能:描述LSDB内容摘要,为详细同步做准备

传输方式:单播

对表的影响:确定LSDB差异

关键字段:LSA头部、I/M/MS位

状态触发:ExStart → Exchange

  1. LSR报文(Type 3):LSA请求

核心功能:请求需要的特定LSA详情

传输方式:单播

对表的影响:请求缺失的LSDB内容

关键字段:LSA类型、链路状态ID、通告路由器

状态触发:Exchange → Loading

  1. LSU报文(Type 4):LSA更新

核心功能:携带完整的LSA,响应请求或泛洪更新

传输方式:组播(泛洪)或单播(响应)

对表的影响:更新LSDB

关键字段:一个或多个完整的LSA

状态触发:Loading → Full

  1. LSAck报文(Type 5):LSA确认

核心功能:确认收到LSU,确保可靠传输

传输方式:组播或单播

对表的影响:确保LSDB同步可靠性

关键字段:确认的LSA头部

状态影响:维持Full状态

四、OSPF邻居关系的7种状态

OSPF邻居状态转换是建立邻接关系的必经过程,直接影响三张表的构建:

  1. Down

特征:初始状态,未收到来自邻居的任何Hello

表状态:邻居表中无此邻居条目

持续时间:直到收到第一个Hello

  1. Init

特征:收到邻居Hello,但邻居Hello中不包含自己的Router ID

表状态:邻居表创建条目,但标记为Init

关键事件:开始发送包含邻居Router ID的Hello

  1. Two-way

特征:双向通信建立,Hello中互相包含对方Router ID

表状态:邻居表状态更新为Two-way

关键事件:

广播网络中选举DR/BDR

DROther路由器之间关系止步于此

意义:邻居关系正式建立

  1. ExStart

特征:准备交换DBD,选举主从关系

表状态:邻居表状态更新,开始准备LSDB同步

关键事件:通过DBD中的MS位选举主路由器(Router ID大的为主)

意义:为主从有序交换做准备

  1. Exchange

特征:交换DBD报文,描述各自LSDB内容

表状态:LSDB开始比较差异

关键事件:确定哪些LSA需要请求

意义:了解对方有什么网络信息

  1. Loading

特征:请求并接收缺失的LSA

表状态:LSDB正在同步中

关键事件:发送LSR,接收LSU,确认LSAck

意义:填充自己的LSDB

  1. Full

特征:LSDB完全同步,邻接关系完全建立

表状态:LSDB与邻居完全一致,触发SPF计算

关键事件:路由表更新

意义:达到最高信任等级,完整共享路由信息

五、OSPF工作流程全景

发现邻居:

通过Hello报文发现邻居

填充邻居表,状态经历Down→Init→Two-way

广播网络选举DR/BDR

同步数据库:

通过ExStart状态选举DBD交换主从

通过Exchange状态交换DBD摘要

通过Loading状态请求并获取LSA

完成LSDB同步,状态达到Full

计算路由:

基于完整的LSDB,运行SPF算法

生成从自己到所有目的地的最短路径树

将最佳路径安装到路由表

维护网络:

定期Hello维持邻居关系

链路变化时触发LSA更新

泛洪更新确保LSDB一致性

重新运行SPF计算新的最佳路径

六、关键总结

三张表的关系:

邻居表是基础(认识谁)

LSDB是核心(知道什么)

路由表是结果(如何到达)

设计精髓:

"地图相同,路线不同":同一区域LSDB完全一致,但路由表各异

"变化驱动":只在拓扑变化时更新,而非定期更新

"可靠泛洪":通过确认机制确保LSA可靠传输

"分层设计":区域划分控制LSDB规模,提高扩展性

OSPF就像一个精密的社会网络:通过Hello建立社交关系(邻居表),通过信息共享构建共同认知(LSDB),最后各自规划个人出行路线(路由表)。五种报文是沟通工具,七种状态是关系发展阶段,三张表则是这个系统的骨架。这种设计使OSPF能高效适应网络变化,提供无环路、快速收敛的路由服务,成为企业网络中最可靠的IGP协议。

相关推荐
步步为营DotNet18 小时前
深度剖析.NET中IHostedService:后台服务管理的关键组件
服务器·网络·.net
Ares-Wang18 小时前
网络》》路由引入 、路由控制 》》路由策略 route-policy 、Filter-Policy(过滤策略)
网络·智能路由器
Jia ming19 小时前
虚拟地址与物理地址:64位VS48位
网络
的卢马飞快20 小时前
【C语言进阶】给数据一个“家”:从零开始掌握文件操作
c语言·网络·数据库
Yu_Lijing20 小时前
《图解HTTP》笔记与读后感(上)
网络·笔记·网络协议·http
czy878747521 小时前
connect() 的阻塞特性取决于它所关联的 socket 是否被设置为非阻塞模式,connect() 会等待 TCP 三次握手的超时时间
服务器·网络·tcp/ip
上海云盾-小余21 小时前
Edge SCDN是如何实现智能 WAF 防护的?
前端·网络·安全·edge
旖旎夜光1 天前
Linux(12)(上)
linux·网络
Gofarlic_oms11 天前
UG/NX浮动许可证池智能配置与负载均衡策略
大数据·运维·网络·人工智能·微服务·负载均衡
2501_948120151 天前
基于机器学习的网络异常检测与响应技术研究
网络·机器学习·php