当前位置: 首页 > news >正文

链路状态路由协议-OSPF

开放式最短路径优先OSPF(Open Shortest Path First)协议是IETF定义的一种基于链路状态的内部网关路由协议。

一 OSPF介绍

OSPF是一种先进的链路状态路由协议,其设计机制从根本上杜绝了路由环路的发生。该协议通过以下方式确保网络稳定性:

1. 区域化架构设计:
采用层次化区域划分结构
区域内使用SPF最短路径算法确保无环路
严格的区域间连接规则防止跨区域环路

2. 高效的拓扑更新机制:
支持触发式更新
快速检测并传播网络拓扑变化
确保路由信息及时同步

3. 优秀的扩展能力:
区域划分有效控制路由信息流量
支持大规模网络部署
可与MPLS等协议协同工作,扩展广域覆盖

4. 完善的安全特性:
提供路由器间报文认证机制
确保路由信息交换的安全性

二 工作原理

OSPF协议要求网络中所有运行该协议的路由器掌握完整的链路状态信息,以便计算最优路径。其收敛流程如下:

  1. 首先通过LSA(链路状态通告)泛洪机制,路由器会广播包含其接口IP、掩码、开销和网络类型等关键信息的LSA报文

  2. 各路由器接收到LSA后,会据此构建自己的LSDB(链路状态数据库)

  3. 基于完整的LSDB,路由器使用SPF算法进行计算,生成以自身为根的最短路径树

  4. 最终,根据最短路径树计算出最优路由,并将这些路由条目更新到IP路由表中 

三 OSPF五种报文类型 

OSPF直接运行在IP协议之上,使用IP协议号89。 OSPF有五种报文类型,每种报文都使用相同的OSPF报文头。

1. Hello报文:最常用的一种报文,用于发现、维护邻居关系。并在广播和NBMA(None-Broadcast Multi-Access)类型的网络中选举指定路由器DR(Designated Router)和备份指定路由器BDR(Backup Designated Router)。

2. DD报文:两台路由器进行LSDB数据库同步时,用DD报文来描述自己的LSDB。DD报文的内容包括LSDB中每一条LSA的头部(LSA的头部可以唯一标识一条LSA)。LSA头部只占一条LSA的整个数据量的一小部分,所以,这样就可以减少路由器之间的协议报文流量。 

3. LSR报文:两台路由器互相交换过DD报文之后,知道对端的路由器有哪些LSA是本地LSDB所缺少的,这时需要发送LSR报文向对方请求缺少的LSA,LSR只包含了所需要的LSA的摘要信息。

4. LSU报文:用来向对端路由器发送所需要的LSA。

5. LSACK报文:用来对接收到的LSU报文进行确认。 

四 邻居和邻接关系建立的过程

1. Down:这是邻居的初始状态,表示没有从邻居收到任何信息。

2. Attempt:此状态只在NBMA网络上存在,表示没有收到邻居的任何信息,但是已经周期性的向邻居发送报文,发送间隔为HelloInterval。如果RouterDeadInterval间隔内未收到邻居的Hello报文,则转为Down状态。

3. Init:在此状态下,路由器已经从邻居收到了Hello报文,但是自己不在所收到的Hello报文的邻居列表中,尚未与邻居建立双向通信关系。

4. 2-Way:在此状态下,双向通信已经建立,但是没有与邻居建立邻接关系。这是建立邻接关系以前的最高级状态。

5. ExStart:这是形成邻接关系的第一个步骤,邻居状态变成此状态以后,路由器开始向邻居发送DD报文。主从关系是在此状态下形成的,初始DD序列号也是在此状态下决定的。在此状态下发送的DD报文不包含链路状态描述。

6. Exchange:此状态下路由器相互发送包含链路状态信息摘要的DD报文,描述本地LSDB的内容。

7. Loading:相互发送LSR报文请求LSA,发送LSU报文通告LSA。

8. Full:路由器的LSDB已经同步。

五 Hello报文 

OSPF的邻居发现过程是基于Hello报文来实现的,Hello报文中的重要字段解释如下:

1. Network Mask:发送Hello报文的接口的网络掩码。

2. HelloInterval:发送Hello报文的时间间隔,单位为秒。

3. Options:标识发送此报文的OSPF路由器所支持的可选功能。具体的可选功能已超出这里的讨论范围。

4. Router Priority:发送Hello报文的接口的Router Priority,用于选举DR和BDR。 5. RouterDeadInterval:失效时间。如果在此时间内未收到邻居发来的Hello报文,则认为邻居失效;单位为秒,通常为四倍HelloInterval。

6. Designated Router:发送Hello报文的路由器所选举出的DR的IP地址。如果设置为0.0.0.0,表示未选举DR路由器。

7. Backup Designated Router:发送Hello报文的路由器所选举出的BDR的IP地址。如果设置为0.0.0.0,表示未选举BDR。

8. Neighbor:邻居的Router ID列表,表示本路由器已经从这些邻居收到了合法的Hello报文。 

六 配置命令

 华为设备OSPF配置与实战指南

http://www.lqws.cn/news/117145.html

相关文章:

  • SpringAI集成DeepSeek实战
  • 近几年字节飞书测开部分面试题整理
  • 二极管MOS管选型
  • 【AI学习笔记】Coze工作流写入飞书多维表格(即:多维表格飞书官方插件使用教程)
  • Spring AI Tool Calling
  • Spring 中注入 Bean 有几种方式?
  • 通用寄存器的 “不通用“ 陷阱:AX/CX/DX 的寻址禁区与突围之道
  • 质检 LIMS 系统数据防护指南 三级等保认证与金融级加密方案设计
  • 设计模式-迪米特法则
  • 【Linux】自动化构建-Make/Makefile
  • DeepSeek 赋能金融衍生品:定价与风险管理的智能革命
  • 知识拓展卡————————关于Access、Trunk、Hybrid端口
  • 【C++】string类的模拟实现(详解)
  • Redis 集群批量删除key报错 CROSSSLOT Keys in request don‘t hash to the same slot
  • Vim查看文件十六进制方法
  • 玄机-第六章 流量特征分析-蚂蚁爱上树
  • 在WPS中如何启用宏VBA wps.vba.exe下载和安装
  • MySQL 索引底层原理剖析:B+ 树结构、索引创建维护与性能优化策略全解读
  • 【OSG学习笔记】Day 15: 路径动画与相机漫游
  • 东西方艺术的对话:彰显中国传统艺术之美与价值
  • Java对象创建过程
  • 电脑频繁黑屏怎么办
  • Linux 进程调度与管理:从内核管理到调度机制的深度解析
  • Java转Go日记(五十七):gin 中间件
  • 一台电脑联网如何共享另一台电脑?网线方式
  • OpenCV CUDA模块图像处理------创建CUDA加速的Canny边缘检测器对象createCannyEdgeDetector()
  • [蓝桥杯]三元组中心问题
  • 将音频数据累积到缓冲区,达到阈值时触发处理
  • Python爬虫(48)基于Scrapy-Redis与深度强化学习的智能分布式爬虫架构设计与实践
  • 四、Sqoop 导入表数据子集