OSPF协议原理讲解和实际配置(华为/思科)

OSPF(open shorest path first,开放最短路径优先)是一种动态的,基于链路状态的动态路由协议,广泛的应用在企业网络中,通过维护网络拓扑信息,利用 Dijkstra 算法实现最短路径,实现高效的路由选择。

目录

一、OSPF特点

二、OSPF协议的工作原理

(一)建立邻居关系(通过hello协议)

(二)信息同步(LSA交换)

(三)计算最短路径(SPF:Dijkstra算法)

(四)维护和更新机制

三、OSPF的层次化是如何实现的

分区域

(一)、OSPF网络层次化的核心是区域(area)划分

(二)区域的构建是有规则的

分角色

路由汇总

定义不同类型的链路状态通告

三、单区域的ospf协议的配置

思科设备

基础环境配置

思科设备ospf详细配置

华为设备

前期配置

ospf配置

四、多区域的OSPF配置

思科设备

华为设备

五、ACL 的作用

六、重分发(Redistribute)配置

核心作用:将一种路由协议的路由,发布到另一种路由协议中(需指定 “种子 metric”)

场景 1:其他协议(如 OSPF)→ RIP

场景 2:RIP → OSPF

场景 3:静态路由 → OSPF

场景 4:直连路由 → OSPF

七、常用 OSPF 补充查看命令

思科设备

华为设备


一、OSPF特点

1、ospf协议是全世界最实用的路由协议,没有之一

2、使用spf算法来计算最优路径,具体实现的是Dijkstra(迪杰斯特拉算法)

3、ospf协议属于典型的链路状态型路由协议(每个路由器都维护一份完整的网路拓扑这个拓扑是用链路状态数据库来维护的)

4、ospf选择最优路径依靠的参数为开销cost

5、ospf协议使用应用层次化的网络结构来选择最优路径

6、ospf协议有三张表,邻居表,链路状态数据库表,路由表

二、OSPF协议的工作原理

(一)建立邻居关系(通过hello协议)

1、当路由器启动ospf后,路由器通过接口周期性的发送hello报文(默认十秒一次,广播)

2、报文中包含RouterID、Hello间隔、Dead时间(默认是4倍Hello间隔)、区域id等信息

3、如果想要接受方和发送方的区域id,认证信息相互匹配的话,就会形成邻居信息,记录在路由器的邻居表中

(二)信息同步(LSA交换)

邻居关系建立之后,路由器通过多种报文交换LSA,同步LSDB

  • DD报文(数据库报文): 双方交换LSDB的摘要信息,用来发现彼此的LSDB的差异
  • LSR报文(链路状态请求报文): 相对方请求自身缺少的LSA详细信息
  • LSU报文(链路状态更新报文): 携带完整的LSA内容,相应LSR请求
  • LSAck报文(链路状态确认报文):确认收到LSU,保证链接的可靠性

同步完成之后,同一个区域内的LSDB完全一致

(三)计算最短路径(SPF:Dijkstra算法)

基于LSDB,每个路由器以自身为根(就是以此路由器为触发点),运行Dijkstra算法生成最短路径树(SPT)

路径度量值为Cost(开销)默认计算公式:Cost = 100Mbit/s ÷ 接口带宽(这个流量的值可以自己定义)

从最短路径树种提取路由条目,假如OSPF协议的路由表(优先级华为设备默认是10)

(四)维护和更新机制

  • 周期性Hello报文:维持邻居关系,如果Dead时间内没有收到Hello,则判定邻居失效
  • 触发更新:当网络结构发生变化的时候,路由器立刻发送新的LSA,仅扩散变化的部分,减少带宽的消耗
  • LSA老化机制: 每一个LSA都要老化的时间(默认 3600 秒),定期刷新(1800 秒),超时未刷新则从 LSDB 中删除。

三、OSPF的层次化是如何实现的

  • 分区域

(一)、OSPF网络层次化的核心是区域(area)划分

将整个自治系统划分为多个非重叠的区域,每个区域内的路由器只维护当前区域的详细信息,对其他的区域仅仅了解汇总后的摘要

(二)区域的构建是有规则的

每个区域有唯一标识

必须存在 “骨干区域(Area 0)

区域内路由 “详细化”,区域间路由 “汇总化”

  • 分角色

(一)OSPF将路由器划分成了四种不同的角色,每个角色职责明确,分工协作

内部路由器:仅仅属于一个区域,只维护本区域的路由信息,不参与区域之间的交互


区域边界路由器:同时属于骨干区域和一个或者多个常规区域,收集常规区域的明细路由,生成“区域汇总路由”并且发布到骨干区域,从骨干区域接受其他区域的汇总路由发布到所属的常规区域


骨干路由器:一定属于骨干区域,同时可能属于其他区域,负责骨干区域内的路由计算和区域间的路由传递


自治系统边界路由器:链接ospf自治系统和其他协议的网络,将其他协议的路由引入到OSPF网络中,生成外部的LSA,可以部署在任何区域

  • 路由汇总

通过路由汇总,减少跨区域的信息交互

  • 定义不同类型的链路状态通告

Type-3 LSA(区域间汇总 LSA)

Type-4 LSA(ASBR 位置通告 LSA)

Type-5 LSA(外部路由 LSA)

Type-7 LSA(NSSA 外部路由 LSA)

三、单区域的ospf协议的配置

当ospf没有划分区域的时候,所有的区域都默认为骨干区域

  • 思科设备

基础环境配置

#全局基础设置# 1. 关闭域名解析(避免输入错误命令时卡顿)
Router(config)# no ip domain-lookup
# 2. 配置Console口(防打断、永不超时)
Router(config)# line console 0
Router(config-line)# logging synchronous  # 防命令被日志打断
Router(config-line)# exec-timeout 0 0    # 会话永不超时(0分0秒)
Router(config-line)# exit#如果有三层交换机的话要开启三层交换机的路由功能,并且将接口转化为三层接口# 1. 开启三层交换机路由功能(默认关闭)
Switch(config)# ip routing
# 2. 将二层接口转化为三层接口(可配置IP)
Switch(config)# interface 接口类型/编号  # 如GigabitEthernet0/0
Switch(config-if)# no switchport         # 二层→三层
Switch(config-if)# ip address IP地址 子网掩码  # 如ip address 192.168.1.1 255.255.255.0
  • 思科设备ospf详细配置

配置过程:进入ospf进程→配置router-id→宣告网络直连到area0

#接下来是ospf的详细配置 # 1. 进入OSPF进程(进程号1-65535,本地有效)
Router(config)# router ospf 进程号  # 如router ospf 1
# 2. 配置Router-ID(必配,优先用环回口最大IP;无环回则用物理接口最大IP)
# 方式1:手动指定(推荐)
Router(config-router)# router-id 0.0.0.1  # 示例:环回口192.168.0.1则用此ID
# 方式2:自动获取(需提前配置环回口,如interface Loopback0,ip address 192.168.0.1 255.255.255.255)
# 3. 宣告直连网络到Area 0(格式:network 网络号 反掩码 area 0)
# 示例:宣告192.168.1.0/24和10.0.0.0/8网段
Router(config-router)# network 192.168.1.0 0.0.0.255 area 0
Router(config-router)# network 10.0.0.0 0.255.255.255 area 0

注意:router-id 192.168.1.1 是配置该命令的路由器自身在 OSPF 协议中的唯一标识。

例如,当路由器 A 配置了 router-id 192.168.1.1,那么在整个 OSPF 网络中,“192.168.1.1” 就唯一代表路由器 A,其他路由器会通过这个 ID 来区分它与其他设备。



  • 华为设备

华为设备的单区域网络配置流程和思科大同小异

前期配置

<Huawei> system-view  #进入系统视图
[Huawei] sysname AR1  #重命名设备
[Huawei] undo ter m  #防止设备一直输出文本

ospf配置

#配置路由,也是要制定一个
[AR1] ospf 1   # 启动OSPF进程1(进程号1-65535,本地有效)
[AR1] router-id 10.0.1.1  #指定Router ID为环回IP(具有稳定性)
[AR1-ospf-1] area 0  # 进入区域0(单区域通常用区域0,骨干区域;也可使用其他区域ID,如1,但建议统一)
[AR1-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255  # 宣告直连网段(网段+反掩码)
[AR1-ospf-1-area-0.0.0.0] network 10.0.1.1 0.0.0.0  # 宣告环回网段(32位掩码的反掩码是0.0.0.0)
#使用反码来匹配网段,使用环回口来代替一个其他网络
[AR1-ospf-1-area-0.0.0.0] quit
[AR1-ospf-1] quit

四、多区域的OSPF配置

  1. 区域内拓扑变化(如路由器故障)仅在本区域内传递,不影响其他区域;
  2. 即使变化需传递到骨干区域,ABR 会先对路由汇总(减少路由条目)再转发到 Area 0 
  • 思科设备

# ABR路由器配置(同时属于Area 0和Area 1)
#ABR区域边界路由器
Router(config)# router ospf 1
Router(config-router)# router-id 0.0.0.2  # ABR的Router-ID
# 宣告连接Area 0的直连网络
Router(config-router)# network 192.168.0.0 0.0.0.255 area 0
# 宣告连接Area 1的直连网络
Router(config-router)# network 192.168.2.0 0.0.0.255 area 1# 非ABR(仅属于Area 1)配置
Router(config)# router ospf 1
Router(config-router)# router-id 0.0.0.3
Router(config-router)# network 192.168.2.0 0.0.0.255 area 1  # 仅宣告到Area 1
  • 华为设备

#区域内路由器
[AR1] ospf 1 router-id 10.0.1.1  #创建OSPF进程1,手动指定路由器ID(环回0的IP)
[AR1-ospf-1] area 1  #进入Area 1视图
[AR1-ospf-1-area-0.0.0.1] network 192.168.1.0 0.0.0.255  #宣告接口网段(反掩码)
[AR1-ospf-1-area-0.0.0.1] network 10.0.1.1 0.0.0.0  ## 宣告环回接口网段
[AR1-ospf-1-area-0.0.0.1] quit
[AR1-ospf-1] quit
#边界网关路由器
[AR2] ospf 1 router-id 10.0.2.2  #路由器ID为环回0的IP
[AR2-ospf-1] area 0  # 进入骨干区域Area 0
[AR2-ospf-1-area-0.0.0.0] network 192.168.0.0 0.0.0.255  #宣告Area 0的接口网段
[AR2-ospf-1-area-0.0.0.0] network 10.0.2.2 0.0.0.0  #宣告环回接口(属于Area 0)
[AR2-ospf-1-area-0.0.0.0] quit
[AR2-ospf-1] area 1  #进入Area 1
[AR2-ospf-1-area-0.0.0.1] network 192.168.1.0 0.0.0.255  #宣告Area 1的接口网段
[AR2-ospf-1-area-0.0.0.1] quit
[AR2-ospf-1] quit

五、ACL 的作用

  1. 过滤通过路由器的数据包(如拒绝特定 IP 的流量);
  2. 过滤路由表中的路由条目(如阻止特定路由被学习)。

六、重分发(Redistribute)配置

这里只是思科的重新分发样例

核心作用:将一种路由协议的路由,发布到另一种路由协议中(需指定 “种子 metric”)

场景 1:其他协议(如 OSPF)→ RIP

# 进入RIP进程
Router(config)# router rip
Router(config-router)# version 2  # 启用RIP v2(支持子网)
# 重分发OSPF路由,指定metric(必须<15,RIP最大跳数15)
Router(config-router)# redistribute ospf 1 metric 3  # 示例:metric=3

场景 2:RIP → OSPF

# 进入OSPF进程
Router(config)# router ospf 1
# 重分发RIP路由,必须加subnets(否则不发布子网路由)
Router(config-router)# redistribute rip subnets

场景 3:静态路由 → OSPF

Router(config)# router ospf 1
Router(config-router)# redistribute static subnets  # 加subnets支持子网

场景 4:直连路由 → OSPF

Router(config)# router ospf 1
Router(config-router)# redistribute connected subnets  # 加subnets支持子网

七、常用 OSPF 补充查看命令

  • 思科设备

# 1. 查看OSPF邻居详情(含邻居状态、Router-ID)
Router# show ip ospf neighbor detail# 2. 查看OSPF进程信息(含SPF算法执行次数、Router-ID)
Router# show ip ospf# 3. 查看指定接口的OSPF信息(含所属区域、Router-ID)
Router# show ip ospf interface 接口类型/编号  # 如show ip ospf interface GigabitEthernet0/0# 4. 查看完整路由表(筛选OSPF路由可加“ospf”参数)
Router# show ip route
  • 华为设备

display ospf peer
display ospf peer brief
display ospf peer [router-id] verbose

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/98936.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/98936.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【开题答辩全过程】以 《黄帝内经》问答系统为例,包含答辩的问题和答案

个人简介一名14年经验的资深毕设内行人&#xff0c;语言擅长Java、php、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。感谢大家的…

npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚

这个错误是由于 PowerShell 的执行策略限制&#xff0c;导致无法运行脚本。你可以通过以下步骤解决这个问题&#xff1a; 1. 查看当前的执行策略 打开 PowerShell&#xff0c;以管理员身份运行&#xff0c;输入以下命令查看当前的执行策略&#xff1a; Get-ExecutionPolicy如果…

macOS苹果电脑运行向日葵远程控制软件闪退

文章目录问题原因分析修复附录向日葵字太小按Ctrl键会弹出开始菜单的问题问题 向日葵是一款远程控制的应用&#xff0c;在macOS下也能运行&#xff0c; 本来用的好好的&#xff0c;有一天升级后突然就运行不起来了&#xff0c;一点开能显示几秒首界面&#xff0c;立马就自动退…

Linux dma-buf 框架原理、实现与应用详解

1. 背景与意义 1.1 异构系统与缓冲区共享的挑战 在现代 SoC、嵌入式、图形和多媒体系统中&#xff0c;CPU、GPU、VPU、ISP、DMA 控制器等多个硬件单元需要高效地共享和传递大块数据&#xff08;如图像帧、视频流、AI 张量等&#xff09;。如果每个设备都维护独立的缓冲区&…

Scikit-learn Python机器学习 - 分类算法 - 朴素贝叶斯

锋哥原创的Scikit-learn Python机器学习视频教程&#xff1a; https://www.bilibili.com/video/BV11reUzEEPH 课程介绍 ​ 本课程主要讲解基于Scikit-learn的Python机器学习知识&#xff0c;包括机器学习概述&#xff0c;特征工程(数据集&#xff0c;特征抽取&#xff0c;特…

如何免费股票数据API(第13期):沪深A股《最新分时交易》数据获取大全:附Python、Java等多语言实战教程与接口文档说明

在金融科技迅猛发展的今天&#xff0c;股票量化分析以其严谨的科学性和强大的系统性&#xff0c;正日益成为投资领域的主流方法论。任何卓越的量化模型的诞生&#xff0c;都离不开全面、精准、及时的数据支撑。无论是跃动着的实时交易数据、沉淀了历史规律的K线走势&#xff0c…

国标GB28181视频EasyGBS视频监控平台:一网联全城,交通道路可视化、视频巡检、应急指挥“三合一”。

一、方案背景​人车暴涨&#xff0c;路口告急&#xff1a;高峰堵、事故慢、取证难&#xff0c;老办法已拖不动城市交通。破局之道&#xff0c;先看摄像头——EasyGBS 严格遵循 GB28181 国标&#xff0c;一站式完成直播、存储、检索、转码&#xff0c;把万千路口秒级搬上云端&am…

单元测试(白盒测试方法)

一、单元测试1.单元测试是对软件的基本组成单元进行的测试&#xff0c;如函数、类或类的方法。单元测试是对软件的最小可测试单元&#xff08;即可独立编译或汇编的程序模块&#xff09;进行的测试活动&#xff0c;也称为模块测试二、白盒测试方法实例代码public static int te…

2010-2022 同等学力申硕国考:软件工程简答题真题汇总

2010年简答题 给出数据流图的定义&#xff0c;并举例说明数据流图的四个基本构成成份。 数据流图&#xff08;Data Flow Diagram, DFD&#xff09;是一种用于描述系统中数据流动和处理过程的图形工具。它通过直观的方式展示了系统的输入数据如何经过一系列处理变换为输出数据&a…

海外盲盒APP开发:如何用技术重构“惊喜经济”

当盲盒的神秘感遇上技术的确定性&#xff0c;一场关于消费体验的革命正在海外市场悄然发生。从概率算法的公平性到AR虚拟开箱的沉浸感&#xff0c;从跨境物流的实时追踪到多语言支持的无缝切换&#xff0c;海外盲盒APP的开发是一场技术、设计与商业逻辑的深度融合。概率算法&am…

Aosp13 手机sim卡信号格显示修改

工作中&#xff0c;客户要求对信号格显示偏弱不够友好为由&#xff0c;提出修改&#xff0c;要求使其显示信号强一些。在此记录 一问题&#xff1a;修改系统sim卡显示的信号格&#xff0c;在设备其他配置不变的情况下&#xff0c;使其信号格显示比原有的要优秀二 …

硬件开发2-汇编2(ARMv7-A)- 裸机开发

一、指令1、b&#xff08;Branch&#xff09;原型&#xff1a;B<c> <label>作用&#xff1a;实现无条件跳转&#xff0c;常用于不返回的跳转场景特点&#xff1a;仅跳转到目标地址&#xff0c;不保存返回地址示例&#xff1a;b reset ;跳转到reset标号处执…

清源 SCA 社区版更新(V4.2.0)|漏洞前置感知、精准修复、合规清晰,筑牢软件供应链安全防线!

随着数字化进程加速&#xff0c;软件供应链安全威胁日益复杂&#xff0c;公开漏洞响应滞后、0day 攻击防不胜防、组件升级编译失败、安全与合规风险混杂......这些痛点让企业安全团队、运维人员及研发团队疲于应对。自 2025 年 7 月 1 日安势清源 SCA 社区版首次正式发布以及在…

氚燃料增殖里程碑:MIT新型BABY包层技术实验验证

● 导语 5月20日&#xff0c;麻省理工学院&#xff08;MIT&#xff09;发文称&#xff0c;BABY实验首次获取了氚在装置内增殖的实测数据&#xff0c;验证了核心模型&#xff0c;并为未来核聚变电厂的燃料自循环奠定了重要基础。 原文&#x1f447;&#x1f3fb; https://m…

python+springboot+uniapp微信小程序题库系统 在线答题 题目分类 错题本管理 学习记录查询系统

目录技术栈介绍具体实现截图系统设计研究方法&#xff1a;设计步骤设计流程核心代码部分展示研究方法详细视频演示试验方案论文大纲源码获取/详细视频演示技术栈介绍 Django-SpringBoot-php-Node.js-flask 本课题的研究方法和研究步骤基本合理&#xff0c;难度适中&#xff0…

Office转PDF转换器v1.0.py

软件介绍 这是批量将word、Excel、PPT转换为PDF格式的软件&#xff0c;不过PPT转换为PDF需要电脑安装了office&#xff0c;目前这个我还没有解决没有office也可以安装的方法。 软件使用 软件使用是比较简单的&#xff0c;导入文件/文件夹&#xff0c;在自定义输出路径 点击这…

62_基于深度学习的海洋垃圾检测识别系统(yolo11、yolov8、yolov5+UI界面+Python项目源码+模型+标注好的数据集)

目录 项目介绍&#x1f3af; 功能展示&#x1f31f; 一、环境安装&#x1f386; 环境配置说明&#x1f4d8; 安装指南说明&#x1f3a5; 环境安装教学视频 &#x1f31f; 二、数据集介绍&#x1f31f; 三、系统环境&#xff08;框架/依赖库&#xff09;说明&#x1f9f1; 系统环…

深入浅出 全面剖析消息队列(Kafka,RabbitMQ,RocketMQ 等)

消息队列 一、概念 消息队列&#xff08;MQ&#xff09;&#xff1a;一种异步通信机制&#xff0c;通过“消息”的形式让不同系统或模块解耦核心思想&#xff1a;发送方&#xff08;生产者Producer&#xff09;只负责发送消息&#xff0c;接收方&#xff08;消费者Consumer&…

Flux Images Generation API 对接说明

本文将介绍一种 Flux Images Generation API 对接说明&#xff0c;它是可以通过输入自定义参数来生成Flux官方的图片。 接下来介绍下 Flux Images Generation API 的对接说明。 申请流程 要使用 API&#xff0c;需要先到 Flux Images Generation API 对应页面申请对应的服务…

CSS布局 - 网格布局 -- 笔记3

目录网格布局基础网格网格剖析CSS 提供了一些控制网页布局的几个重要工具&#xff0c;这里介绍网格布局。 网格布局 CSS 网格可以定义由行和列组成的二维布局&#xff0c;然后将元素放置到网格中。有些元素可能只占据网格的一个单元&#xff0c;另一些元素则可能占据多行或多…