当前位置: 首页 > 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配置与实战指南

相关文章:

  • 如何使用 BPF 分析 Linux 内存泄漏,Linux 性能调优之 BPF 分析内核态、用户态内存泄漏
  • 深度探索:如何用DeepSeek重构你的工作流
  • 验证负载均衡与弹性伸缩
  • java31
  • 什么是内网映射?如何将内网ip映射到外网访问?
  • 服务器部署--Flask项目
  • webpack继续学习
  • ROS1和ROS2的区别autoware.ai和autoware.universe的区别
  • 怎么通过 jvmti 去 hook java 层函数
  • ubuntu自定义服务自动启动
  • 详解Jenkins Pipeline 中git 命令的使用方法
  • 【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
  • C++String的学习
  • VS Code 打开ipynb(还不会)运行python
  • 【SpringCloud】Nacos配置中心
  • C++内存列传之RAII宇宙:智能指针
  • 【和春笋一起学C++】(十七)C++函数新特性——内联函数和引用变量
  • 在java 项目 springboot3.3 中 调用第三方接口(乙方),如何做到幂等操作(调用方为甲方,被调用方为乙方)? 以及啥是幂等操作?
  • 本地日记本,用于记录日常。
  • ④Pybullet之Informed RRT*算法介绍及示例
  • 建立一个购物网站/seo网站推广收费
  • 徐州好点的做网站的公司有哪些/一键seo提交收录
  • 做销售的如何在网站/上海单个关键词优化
  • 初创公司网站设计苏州/成免费crm特色
  • 丰都网站建设价格/广州疫情最新情况
  • 网站顺序/网络推广的优势有哪些