OSPF笔记整理

一、OSPF 基础特性

1. 技术背景(对比 RIP)

  • RIP 的缺陷:最大跳数 15 限制、周期性发送全路由表(占用带宽)、收敛慢、以跳数为度量值、易产生环路、30 秒更新间隔。
  • OSPF 的改进:无跳数限制(支持大规模组网)、组播更新变化的路由信息、收敛快(触发更新)、以 Cost 为度量值、用 SPF 算法防环、30 分钟周期性更新 LSA(链路状态通告)。

2. 核心特点

  • 传递拓扑信息和路由信息(RIP 仅传递路由表)。
  • 协议号为 89,报文直接封装在 IP 报文中。
  • 广泛应用于互联网,是主流路由协议。

二、OSPF 核心组件 

1. 三张关键表

  • 邻居表:记录邻居路由器的状态和关系(如邻居 ID、地址、状态)。
  • 拓扑表(LSDB,链路状态数据库):存储全网链路状态信息(LSA),是 SPF 算法计算路由的基础。
  • 路由表:由 SPF 算法计算生成,记录最优路由(通过dis ip routing-table pro ospf查看)。

2. 五种报文类型

报文类型类型值作用关键字段 / 特性
Hello 报文1发现 / 建立 / 保活邻居关系包含网络掩码、Hello 间隔(默认 10s)、Dead 间隔(默认 40s)、DR/BDR 信息、邻居 Router-ID 等;组播地址 224.0.0.5。
DBD(数据库描述报文)2交换 LSDB 中 LSA 的摘要信息含 LSA 头部(摘要)、DD 序列号(确保传输有序)、主从标识(Master 由 Router-ID 大的路由器担任)。
LSR(链路状态请求报文)3请求本地缺少或更新的 LSA携带 “LSA 三元组”(链路状态类型、链路状态 ID、通告路由器),唯一标识需请求的 LSA。
LSU(链路状态更新报文)4发送请求的完整 LSA可包含多个 LSA;MA 网络中,DROTHER 向 224.0.0.6(DR/BDR 监听)发送,DR 再向 224.0.0.5(所有 OSPF 路由器监听)泛洪。
LSAck(链路状态确认报文)5确认收到 LSU包含需确认的 LSA 头部(20 字节 / 个)。

3. LSA(链路状态通告)

(1)LSA 头部(20 字节)

  • 包含:链路状态类型、老化时间(最大 3600s,1800s 周期归零)、链路状态 ID、通告路由器(Router-ID)、序列号(判断新旧)、校验和等。

(2)6 种核心 LSA 类型

类型名称通告者传输范围描述内容
Type 1路由器 LSA所有路由器本区域内描述路由器直连链路(类型、Cost 等),含链路 ID、链路数据、链路类型(如 P2P、广播网、末梢网)。
Type 2网络 LSADR(指定路由器)本区域内描述广播 / NBMA 网络中所有路由器的链路及掩码,LS ID 为 DR 的 IP 地址。
Type 3网络汇总 LSAABR(区域边界路由器)跨区域(仅相邻区域)描述其他区域的网段路由,以子网形式传播。
Type 4ASBR 汇总 LSAABR全 OSPF 域描述 ASBR(自治系统边界路由器)的位置,LS ID 为 ASBR 的 Router-ID。
Type 5AS 外部 LSAASBR全 OSPF 域(特殊区域除外)描述引入的外部路由(如其他 AS 的路由)。
Type 7NSSA 外部 LSANSSA 区域的 ASBR仅 NSSA/Totally NSSA 区域描述 NSSA 区域引入的外部路由,ABR 会将其转换为 Type 5 LSA 通告到其他区域。

三、OSPF 工作机制 

1. 邻居与邻接关系建立

  • 邻居关系:通过 Hello 报文交互,双方互相发现(状态为 2-way)。
  • 邻接关系:邻居间同步 LSDB 后形成(状态为 Full),仅在需要交换 LSA 的路由器间建立(如 DR 与所有路由器、BDR 与所有路由器)。

2. DR/BDR 选举(广播 / NBMA 网络)

  • 目的:减少邻接关系数量(避免 n (n-1)/2 的复杂度),优化路由信息交换。
  • 规则:优先级(0-255,默认 1)高者优先;优先级相同则 Router-ID 大的优先。
  • 特性:无抢占性,需原 DR/BDR 失效或重置 OSPF 进程才会重新选举。
  • 关系:DR 与 BDR、DR 与 DROTHER(非 DR/BDR)、BDR 与 DROTHER 为邻接关系;DROTHER 之间仅为邻居关系(2-way)。

3. 工作流程

  1. 建立邻居:通过 Hello 报文确认可达性,选举 DR/BDR。
  2. 同步 LSDB:邻接路由器交换 DBD(LSA 摘要)→ 发送 LSR 请求缺失 LSA → 用 LSU 发送完整 LSA → 用 LSAck 确认。
  3. 计算路由:基于 LSDB,通过 SPF 算法计算最短路径,生成路由表。

4. 状态机(邻居 / 邻接关系转换)

  • 邻居状态:Down(初始)→ Init(收到 Hello 但未确认)→ 2-way(双方确认,稳定状态)。
  • 邻接状态:Exstart(协商主从)→ Exchange(交换 LSA 摘要)→ Loading(请求 / 接收 LSA)→ Full(LSDB 同步,稳定状态)。
  • 关键条件:2-way 需 Router-ID 无冲突、掩码 / 区域 ID/Hello 间隔 / Dead 间隔一致;Full 需 MTU 一致、网络类型一致。

 四、区域划分与特殊区域

1. 基本区域规则

  • 骨干区域(Area 0):所有非骨干区域必须与之直接相连,避免区域间环路。
  • 非骨干区域:不能直接相连,需通过骨干区域通信。
  • 路由器类型:IR(区域内)、BR(骨干)、ABR(连接骨干与非骨干)、ASBR(连接外部 AS)。

2. 特殊区域(减少 LSA 泛洪,优化路由表)

区域类型特征禁止的 LSA缺省路由配置命令
Stub(末梢区域)无 ASBR,不接收外部路由Type 4/5ABR 自动下发 Type 3 缺省(优先级 10)area X stub
Totally Stub(完全末梢)不接收外部及其他区域路由Type 3/4/5ABR 自动下发 Type 3 缺省area X stub no-summary
NSSA(非纯末梢)有 ASBR,可引入外部路由(Type 7)Type 4/5华为自动下发 Type 7 缺省(优先级 150)area X nssa
Totally NSSA(完全非纯末梢)不接收其他区域及外部路由(除本区域引入)Type 3/4/5ABR 下发 Type 3 缺省area X nssa no-summary

五、路由聚合与防环

1. 路由聚合(手动聚合 LSA,减少路由条目)

  • ABR 聚合(Type 3 LSA):在 ABR 上对区域内路由聚合后发布到其他区域,命令:area X abr-summary 网络地址 掩码
  • ASBR 聚合(Type 5/7 LSA):在 ASBR 上对引入的外部路由聚合,命令:asbr-summary 网络地址 掩码
  • 聚合后会生成黑洞路由,防止环路。

2. 防环机制

  • 区域内:通过 SPF 算法(最短路径优先)计算无环路由。
  • 区域间:严格遵循 “非骨干区域必须连接骨干区域” 的划分原则,避免环路。

六、高级配置与优化

1. 网络类型(影响 DR 选举、报文发送方式)

网络类型适用场景DR/BDR 选举Hello 间隔Dead 间隔报文发送方式
Broadcast(广播)以太网10s40s组播(224.0.0.5)
P2P(点到点)PPP 链路10s40s组播
NBMA(非广播多点可达)帧中继30s120s单播(需手动指定邻居)
P2MP(点到多点)手动配置(如从 NBMA 转换)30s120s模拟组播(需手动指定邻居)

2. 安全与过滤

  • 认证:区域认证(area X authentication-mode md5 密钥)、接口认证(interface X ospf authentication-mode md5 密钥),接口认证优先级更高。
  • 静默接口:禁止接口发送 OSPF 报文(silent-interface 接口),避免路由信息泄露。
  • 路由过滤:通过 ACL 在进口(filter-policy ACL import)或出口(area X filter ACL export)过滤 LSA,影响下游路由。

3. 收敛优化

  • 调整 Hello 间隔(ospf timer hello X)和 Dead 间隔(ospf timer dead X)。
  • 修改重传时间(默认 5s,ospf timer retransmit X)。
  • 统一参考带宽(bandwidth-reference X),确保 Cost 计算准确(Cost = 参考带宽 / 链路带宽,默认参考带宽 100M)。

4. 缺省路由

  • Type 3 缺省:特殊区域(Stub/Totally Stub)由 ABR 自动下发。
  • Type 5 缺省:ASBR 手动配置(default-route-advertise),优先级 150。
  • Type 7 缺省:NSSA 区域由 ABR 下发(华为自动,华三需手动)。

七、常见问题与故障

  • 邻居关系建立失败:Router-ID 冲突、区域 ID 不一致、认证密码不匹配、掩码 / Hello 间隔 / Dead 间隔不一致、特殊区域标记不一致、无 DR(所有路由器优先级为 0)。
  • 邻接状态卡壳:MTU 不一致(卡在 Exstart/Exchange)、网络类型不一致(状态 Full 但无法学习路由)。
  • LSA 更新异常:序列号或校验和错误、老化时间超时(3600s)。

 

 

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

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

相关文章

sqLite 数据库 (3):以编程方式使用 sqLite,4 个函数,以及 sqLite 移植,合并编译

(22) 只有四个函数 :以及 :(23)以及 :(24)(25) sqLite 的源代码很少 :(26)(27)&#x…

Nginx跨域问题与 MIME 类型错误深度排错指南:解决 MIME type of “application/octet-stream“ 报错

前言:在 Web 开发中,跨域请求和资源加载错误是前端工程师和运维人员经常遇到的棘手问题。本文将详细解析 Nginx 环境下跨域配置的多种方案、gzip 类型参数的优化要点,以及.mjs 文件 MIME 类型错误的解决方法,并结合排错思路和原理…

什么是大端?什么是小端?如何验证?

什么是大端?什么是小端?如何验证? 在计算机系统中,大端(Big-Endian) 和小端(Little-Endian) 是两种不同的字节序(Byte Order),用于描述多字节数据…

JavaScript 语句和函数

1. JavaScript 语句 1)if语句 if (condition) statement1 else statement2这里的条件(condition)可以是任何表达式,并且求值结果不一定是布尔值。 ECMAScript会自动调用Boolean()函数将这个表达式的值转换为布尔值。 如果条件…

代码随想录刷题Day22

替换数字 这道题比较简单&#xff0c;遇到字母就copy到新的字符数组&#xff0c;如果是遇到数字&#xff0c;就在新字符数组中加入number的字符串。代码如下&#xff1a; #include<stdio.h> #include<ctype.h> #include<string.h> #define Max 1000000 int…

逻辑回归参数调优实战指南

逻辑回归的参数调节参数展示 LogisticRegression(penaltyl2,dualFalse,tol1e4,C1.0,fit_interceptTrue,intercept_scaling1,class_weightNone,random_stateNone,solverliblinear,max_iter100,multi_classovr,verbose0,warm_startFalse, n_jobs1)在前面的学习中&#xff0c;我们…

cocosCreator2.4 googlePlay登录升级、API 35、16KB内存页面的支持

环境&#xff1a;我这里是cocosCreator 2.4.12 导出的android 工程 登录升级 后台收到的google 的提醒&#xff1a; 之前是通过implementation com.google.android.gms:play-services-auth:20.0.0 来获取玩家 uid 和 邮箱&#xff0c;然后发送到我们的服务器获取账号。 升级…

unity avpro实现互动影游关键问题

创建视频播放器​在Hierarchy面板中右键创建&#xff1a;Video > AVPro Video - MediaPlayer创建后会生成一个MediaPlayer对象&#xff0c;用于控制视频播放添加视频资源将视频文件放入项目的StreamingAssets文件夹下在MediaPlayer组件的设置中选择要播放的视频文件在UI上显…

【C找第一个只出现一次的字符】2022-8-18

缘由样例通过&#xff0c;请问为什么错了呢&#xff1f;(语言-c语言)-编程语言-CSDN问答 char str[100000];fgets(str, 100000, stdin);int a[26]{}, i, count 0;int len strlen(str);for (i 0; i<len; i) a[str[i] - a];for (i 0; i<len; i){if (a[str[i] - a] 1){…

MCP AI应用通信的底层机制

技术小馆专注AI与Java领域的前沿技术知识库 技术小馆官网 在AI应用快速发展的今天&#xff0c;不同AI系统之间的高效通信成为技术架构的关键挑战。MCP&#xff08;Model Context Protocol&#xff09;作为新一代AI应用通信协议&#xff0c;正在重新定义AI工具生态的构建方式。…

UI测试平台TestComplete如何实现从Git到Jenkins的持续测试

还在为手动做UI测试又慢又累发愁&#xff1f;更头痛的是&#xff0c;代码改完还得等半天才能测&#xff0c;测完了结果又散得到处都是&#xff0c;根本看不清质量全貌?TestComplete帮你搞定&#xff1a;直接连上你的Git仓库&#xff0c;代码一有动静就能感知。接着&#xff0c…

【Debian】4-‌2 Gitea搭建

【Debian】4-‌2 Gitea搭建一、准备工作二、创建 Gitea 用户&#xff08;推荐&#xff09;三、下载并安装 Gitea四、配置Gitea4-1 创建目录结构4-2 创建配置目录五、配置 Systemd 服务六、访问 Gitea Web 界面七、小插曲一、准备工作 更新系统软件为最新 sudo apt update &am…

【CDH × Docker】一次测试部署,N 次复用的环境镜像方案

&#x1f680; 一次测试环境的探索&#xff1a;我如何将 CDH 集群打包成 Docker 镜像&#xff0c;留给未来的自己 &#x1f9e9; 背景故事 最近在项目中&#xff0c;我们计划上线一个基于 CDH&#xff08;Cloudera Distribution Hadoop&#xff09; 的大数据平台。正式上生产环…

Java 日期时间格式化模式说明

Java 中日期时间格式化使用特定的模式字符串来定义输出格式。以下是常见的格式化符号及其含义&#xff0c;适用于 SimpleDateFormat 和 DateTimeFormatter一、日期部分格式化符号符号含义示例y年 (Year)yyyy → 2023M月 (Month)MM → 09, MMM → Sep, MMMM → Septemberd月中的…

代码随想录算法训练营三十三天|动态规划part06

LeetCode 322 零钱兑换 题目链接&#xff1a;322. 零钱兑换 - 力扣&#xff08;LeetCode&#xff09; 给你一个整数数组 coins &#xff0c;表示不同面额的硬币&#xff1b;以及一个整数 amount &#xff0c;表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。…

【大模型LLM】大模型训练加速 - 梯度累积(Gradient Accumulation)原理详解

梯度累积&#xff08;Gradient Accumulation&#xff09;原理详解 梯度累积是一种在深度学习训练中常用的技术&#xff0c;特别适用于显存有限但希望使用较大批量大小&#xff08;batch size&#xff09;的情况。通过梯度累积&#xff0c;可以在不增加单个批次大小的情况下模拟…

【数据分享】各省文旅融合耦合协调度及原始数据(2012-2022)

数据介绍引言 文旅融合是推动区域经济高质量发展、促进共同富裕的重要路径。党的二十大报告明确提出“推进文化和旅游深度融合发展”的战略目标&#xff0c;文旅产业通过资源整合与业态创新&#xff0c;可显著缩小城乡、区域差距&#xff0c;提升物质与精神双重福祉&#xff08…

Linux编程: 10、线程池与初识网络编程

今天我计划通过一个小型项目&#xff0c;系统讲解线程池与网络编程的核心原理及实践。项目将围绕 “利用线程池实现高并发网络通信” 这一核心需求展开&#xff0c;具体设计如下&#xff1a; 为保证线程安全&#xff0c;线程池采用单例模式设计&#xff0c;确保全局唯一实例避…

藏云阁 Logo 库(开源项目SVG/PNG高清Logo)

在日常技术方案设计、架构图绘制或PPT制作中&#xff0c;常常会遇到一些问题&#xff0c;比如&#xff1a; 找不到统一风格的开源项目组件图标&#xff0c;PPT中的logo五花八门下载的图标分辨率不足&#xff0c;放大后模糊失真不同来源的图标颜色风格冲突&#xff0c;破坏整体…

从0开始学习R语言--Day64--决策树回归

对于没有特征或者说需要寻找另类关系的数据集&#xff0c;我们通常会用聚合或KNN近邻的方法来分类&#xff0c;但这样的分类或许在结果上是好的&#xff0c;但是解释性并不好&#xff0c;有时候我们甚至能看到好的结果反直觉&#xff1b;而决策树回归做出的结果&#xff0c;由于…