目录
一、概念
OSPF(Open Shortest Path First)是一种基于链路状态的内部网关协议(Interior Gateway Protocol,IGP),用于在单个自治系统(Autonomous System,AS)中分发IP路由信息。OSPF由IETF开发,基于网络层运作,采用 IP 协议号 89 ,归类于链路状态路由协议。主要目的是在大型网络中提供更高效的路由选择和更快的收敛速度
五种报文:Hello 报文(发现和维护邻居)、DD报文(数据库描述)、LSR报文(链路状态请求)、LSU报文(链路状态更新)、LSAck报文(链路状态确认)
七个状态:Down(初始状态)、Attempt(尝试状态,仅 NBMA 网络有)、Init(初始化状态)、2 - Way(双向通信状态)、ExStart(预启动状态)、Exchange(交换状态)、Loading(加载状态)、Full(完全邻接状态)
6种LSA类型:Router LSA(类型 1)、Network LSA(类型 2)、Network Summary LSA(类型 3)、ASBR Summary LSA(类型 4)、Autonomous System External LSA(类型 5)、NSSA External LSA(类型 7)
5种路由器类型:内部路由器(Internal Router)、区域边界路由器(Area Border Router,ABR)、骨干路由器(Backbone Router)、自治系统边界路由器(Autonomous System Boundary Router,ASBR)、指定路由器(Designated Router,DR)和备份指定路由器(Backup Designated Router,BDR)
二、特性
1.基于链路状态而非距离矢量:OSPF通过维护网络的链路状态数据库(LSDB),构建全网拓扑图,并使用Dijkstra算法计算最短路径且天然无环保证。
2.分层设计(区域划分):骨干区域(连接所有非骨干区域)、普通区域(必须连接到骨干区域)、特殊区域(减少路由表大小和LSA传播范围,适合资源受限的场景。)
3.支持多路径路由:OSPF可以在多个等价路径间进行负载均衡
4.认证机制:支持明文和MD5等方式进行路由认证,增强安全性。
5.支持多播地址:OSPF使用224.0.0.5和224.0.0.6多播地址进行通信。
6.支持多种网络类型:点对点(Point-to-Point)、广播网络(Broadcast)、非广播多访问网络(NBMA)
7.路由类型的多样性: 内部路由、区域间路由、外部路由
6.支持IPv4和IPv6:OSPFv2用于IPv4网络,OSPFv3用于IPv6网络,支持新一代协议的需求。
三、工作原理
1、邻居发现与建立

- 发送 Hello 报文:OSPF 路由器会在启用了 OSPF 协议的接口上定期发送 Hello 报文,发送周期通常为 10 秒。通过 Hello 报文,路由器可以发现直连链路上的其他 OSPF 路由器,并建立邻居关系。
- 建立过程中,状态机从down-->Init-->2-way
- 双向通信检查:路由器在收到邻居发送的 Hello 报文后,会检查报文中是否包含自己的标识符。如果发现自己的标识符在对方的 Hello 报文中,就表明这两个路由器之间建立了双向通信链路。
2、链路状态数据库同步

- 交换数据库描述报文(DD):邻居关系建立后,路由器会向邻居发送数据库描述报文,将自己链路状态数据库中的所有链路状态项目的摘要信息发送给邻居路由器。
- 状态机从Exstart-->Exchange-->Loading
- 请求链路状态更新:收到数据库描述报文后,若路由器发现自己缺少其中某些链路状态项目,则会发送链路状态请求报文。对方收到链路状态请求报文后,会将其所缺少的链路状态项目的详细信息封装在链路状态更新报文(LSU)中发送回去。
- 确认与更新:收到链路状态更新报文后,路由器将这些信息添加到自己的链路状态数据库中,随后发回链路状态确认报文。
- 状态机从Loading-->Full
3、路由计算
- 构建最短路径树:当所有路由器的链路状态数据库达到同步后,每台路由器都会以自己为根,使用 Dijkstra 算法构建一棵最短路径树。这棵树表示了从该路由器到网络中其他各个节点的最短路径。
- 生成路由表:根据最短路径树,路由器可以计算出到达各个目的网络的最优路由,并将这些路由信息添加到路由表中,用于指导数据包的转发。
网络拓扑变化处理
- 检测链路变化:路由器会持续监测其连接的链路状态,当链路状态发生变化时,如链路断开或恢复,路由器会更新自己的链路状态数据库,并向邻接路由器发送链路状态更新报文。
- 洪泛机制:链路状态更新报文会通过洪泛机制在整个 OSPF 区域内扩散,确保每台路由器都能及时了解到网络拓扑的最新状态。其他路由器收到更新报文后,会更新自己的链路状态数据库,并重新进行路由计算,以适应网络拓扑的变化。
四、报文解析
实验拓扑如下

1、Hello 报文(发现和维护邻居)
建立邻居前AR1会基于接口每10秒周期发送OSPF Hello数据包,Hello报文解析如下:
Open Shortest Path First --> 开放最短路径优先
OSPF Header --> OSPF报头
Version: 2 --> 版本:2
Message Type: Hello Packet (1) --> 消息类型:Hello Packet(1)
Packet Length: 44 --> 数据包长度:44
Source OSPF Router: 192.168.1.1 --> 源OSPF路由器:192.168.1.1
Area ID: 0.0.0.0 (Backbone) --> 区域ID:0.0.0.0(主干)
Checksum: 0x794b [correct] --> 校验和:0x794b[正确]
Auth Type: Null (0) --> 身份验证类型:空(0)
Auth Data (none): 0000000000000000 --> 认证数据(无):0000000000000000
OSPF Hello Pac

最低0.47元/天 解锁文章
1006

被折叠的 条评论
为什么被折叠?



