ospf笔记

一、OSPF 协议简介

OSPF(Open Shortest Path First,开放式最短路径优先)是目前互联网应用最广泛的公有链路状态型动态路由协议,由IETF组织定义,通用性极强。

核心基础特性

  • 协议类型:链路状态型公有协议

  • 核心算法:SPF(最短路径优先)算法

  • 协议版本:OSPFv2(IPv4)、OSPFv3(IPv6)

  • 封装特点:跨层封装,无传输层协议,IP协议号为89;自带可靠性机制

  • 更新机制:无周期路由更新,仅触发更新;存在30分钟周期链路刷新机制

二、OSPF 基础概念

1. 静态路由与动态路由对比

路由器依靠路由表转发数据,路由表来源分为手工配置(静态路由)和动态路由协议生成(动态路由)。

  • 静态路由:占用带宽、CPU资源少,适用于简单网络;拓扑变化、链路故障时无法自动更新,需手动维护,扩展性差。

  • 动态路由:可自动感知拓扑变化、自动收敛,扩展性强,适配中大型复杂网络。

OSPF凭借收敛速度快、扩展性强、无路由环路的优势,成为主流动态路由协议。

2. OSPFv2 与 RIPv2 对比

相同点

  • 均为无类别路由协议,支持CIDR

  • 均采用组播发送协议报文(OSPF:224.0.0.5/6;RIP:224.0.0.9)

  • 均支持等开销负载均衡(等价路由)

不同点

  • 适用场景:OSPF适配中大型网络;RIP仅适配小型网络

  • 开销机制:RIP以跳数为开销,最大有效跳数15,16跳判定为不可达;OSPF以链路带宽计算开销,无硬性限制

3. OSPF 结构化区域部署

(1)区域划分目的

分割大型网络,减少拓扑信息泛洪,降低设备CPU、内存资源消耗;区域内传递拓扑信息,区域间传递路由信息

(2)区域基础参数

  • 区域ID(Area ID):32位,支持IP格式表示,如0.0.0.0对应Area 0、0.0.1.0对应Area 256

  • 骨干区域:Area 0,是整个OSPF网络的核心

(3)区域划分核心规则

  1. 所有非骨干区域必须直连骨干区域Area 0

  2. 骨干区域唯一且不可分割,全网仅存在一个Area 0

  3. 非骨干区域之间禁止直接传递路由信息

(4)核心路由器角色

  • ABR 区域边界路由器 :同时连接骨干区域和非骨干区域、存在活跃邻居的设备;负责跨区域路由传递,自动执行路由转发;遵循区域水平分割规则:从非骨干区域学习的路由,只接收、不使用、不转发,防止域间环路。

  • ASBR 自治系统边界路由器:负责将OSPF域外路由引入域内;需手动配置路由重发布,不自动传递路由。

三、OSPF 五种协议报文

OSPF所有报文均为24字节统一头部,IP协议号89,包含5种报文类型,每种报文功能独立。邻居建立参数(区域ID、认证信息、Hello时间、死亡时间、掩码等)不匹配,无法建立邻居。

1. Hello报文(Type 1)

核心作用:发现、建立、周期性保活OSPF邻居关系,组播224.0.0.5发送。

  • 默认计时器:Hello间隔10s,死亡时间40s(死亡时间=4×Hello时间)

  • 核心参数:Router ID(全网唯一路由器标识)、接口掩码、邻居列表、可选项

  • 华为设备MA网络中,接口掩码不一致,无法建立邻居

2. DD报文(Type 2,数据库描述报文)

核心作用:传递LSDB链路状态摘要,减少重复信息更新,实现邻居数据库同步。

  • 华为AR设备默认不检测MTU,开启MTU检测后,两端MTU不一致会停滞在Exstart状态

  • 核心标识位:I位(主从选举)、M位(后续是否有报文)、MS位(主从身份)

  • 序列号:主设备控制递增,依靠序列号实现隐式确认,保证传输有序可靠

  • 报文分类:空报文(主从选举)、带LSA摘要报文(数据同步)、空确认报文(隐式确认)

3. LSR报文(Type 3,链路状态请求报文)

邻居收到DD摘要后,针对未知的LSA,通过LSR向邻居申请完整LSA信息。依靠LSA三元组(链路状态类型+链路状态ID+通告路由器)精准定位唯一LSA。

4. LSU报文(Type 4,链路状态更新报文)

核心作用:携带完整LSA信息,响应邻居的LSR请求,完成拓扑信息同步。包含LSA数量、可变长度LSA内容。

5. LSAck报文(Type 5,链路状态确认报文)

用于确认LSU报文,保证LSA传输可靠性,避免重复更新。

四、OSPF 状态机(全网9种状态)

OSPF邻居、邻接关系建立全程遵循状态机流转,其中Down、2-way、Full为稳定状态。

  1. Down:协议未启动/邻居失效,无报文交互;启动OSPF后自动进入下一状态。

  2. Attempt:仅NBMA网络特有,协议启动但未手动指定邻居,未发送Hello报文。

  3. Init(初始化):收到邻居Hello报文,但报文中无本地Router ID,仅感知邻居存在。

  4. 2-way(双向通信) :收到的Hello报文中包含本地RID,邻居关系正式建立(稳定态)。MA网络在此阶段进行DR/BDR条件匹配,匹配失败则永久停留在2-way。

  5. Exstart(预启动):通过空DD报文选举主从设备,RID大的设备为Master,掌控DD序列号。

  6. Exchange(准交换):主从设备交互带LSA摘要的DD报文,同步全网拓扑目录。

  7. Loading(加载):通过LSR/LSU/LSAck交互,获取完整未知LSA,存入本地LSDB。

  8. Full(完全邻接) :LSA同步完成,邻接关系正式建立(稳定态);设备运行SPF算法,生成无环路由树,计算路由并加载至路由表。

DR/BDR 选举机制(仅MA网络)

1. 选举目的

减少MA网络中邻接关系数量,避免大量LSA重复泛洪,节约设备资源。

2. 选举规则

  1. 优先比较接口优先级(默认1,越大越优,0代表放弃选举)

  2. 优先级一致,比较Router ID(越大越优)

3. 核心规则

  • 一个广播域必须有DR,BDR可选;选举耗时最大40s

  • DR/BDR非抢占式:选举完成后,新接入高优先级设备不会替换现有DR/BDR

  • 关系判定:两台DRother设备仅为邻居(2-way);任意一方为DR/BDR,建立邻接关系(Full)

  • P2P网络无需DR/BDR选举,直接建立Full邻接关系

五、OSPF 工作全过程

1. 邻居关系建立

设备启动OSPF后,周期性发送Hello报文,发现直连邻居;双方Hello参数匹配(掩码、计时器、认证、区域等)后,进入2-way状态,邻居关系建立。

2. 邻接关系建立(数据库同步)

  1. 两端进入Exstart状态,发送空DD报文,选举主从设备

  2. 主从身份确定后,交互带LSA摘要的DD报文,同步拓扑目录

  3. 设备对比本地LSDB,针对缺失LSA发送LSR请求

  4. 对端通过LSU推送完整LSA,本地接收后回复LSAck确认

  5. 所有LSA同步完成,进入Full状态,邻接关系建立

  6. 本地运行SPF算法,计算无环路由,生成OSPF路由表,优选后加入全局路由表

六、OSPF 接口网络类型

OSPF网络类型是接口的协议工作模式 ,与数据链路层类型无关;邻居双方网络类型必须一致,否则无法正常建立邻接关系。

各类网络类型核心参数对比

网络类型 邻居数量 DR/BDR选举 Hello/Dead时间 报文发送方式 特性说明
BMA(广播型) 多邻居 需要 10s/40s Hello组播,DD/LSR单播,LSU/LSAck组播 以太网默认类型
P2P(点到点) 单邻居 不需要 10s/40s 全部组播 串口、隧道默认类型,环回接口华为默认为P2P
P2MP(点到多点) 多邻居 不需要 30s/120s Hello组播,其余单播 自动学习邻居主机路由,手工部署
NBMA(非广播多路访问) 多邻居 需要 30s/120s 全部单播 需手动指定邻居peer,无法自动建邻
Vlink(虚链路) 单邻居 不需要 10s/40s 全部单播 逻辑链路,永久属于Area 0

特殊接口说明

  • 环回接口:华为默认P2P类型,Cost固定为0不可修改;OSPF默认学习32位主机路由,防止路由黑洞与环路。

  • MGRE场景:Hub-Spoke架构需开启Hub伪广播、全网统一修改OSPF网络类型、手工干涉DR选举(Hub为DR)。

常用配置命令

  • 查看OSPF接口状态:display ospf interface 接口名

  • 修改接口网络类型:ospf network-type 网络类型(接口视图)

七、OSPF 不规则区域与解决方案

1. 不规则区域类型

  • 远离骨干的非骨干区域:非骨干区域未直连Area 0

  • 不连续骨干区域:Area 0被分割,无法逻辑互通

2. 三种解决方案

(1)Tunnel隧道(仅了解)

在断层设备间建立VPN隧道,将隧道接口宣告进Area 0,实现区域连通,不推荐商用。

(2)Vlink虚链路(临时方案)

通过非骨干区域建立逻辑链路,延伸骨干区域,使骨干区域逻辑连续。

  • 配置规则:在穿越的非骨干区域配置,指定对端Router ID,而非IP地址

  • 限制:仅能穿越一个区域,报文均为单播发送,永久属于Area 0

  • 缺陷:打破OSPF区域防环规则,易产生路由环路,仅用于临时修复

  • 核心命令:vlink-peer 对端RID(区域视图)

(3)多进程双向重发布(商用主流)

在ASBR设备上,将两个OSPF进程的路由互相引入,实现全网路由互通,无环路风险。

  • 配置位置:仅ASBR设备

  • 核心命令:import-route ospf 进程号

  • 域外路由标识:O_ASE,优先级150(低于域内路由)

八、OSPF LSA 链路状态通告(核心)

OSPF为链路状态协议,不传递路由表,仅传递LSA链路状态信息 ;所有LSA存入LSDB(链路状态数据库),同一区域设备LSDB完全一致,设备独立运行SPF算法计算路由。

1. LSA 头部通用字段(20字节)

LSA三元组(唯一标识单条LSA):链路状态类型+链路状态ID+通告路由器

LSA新旧判断优先级:序列号 > 校验和 > 老化时间

  • LS Age(老化时间):0s(新生)~3600s(失效删除),30分钟周期刷新

  • LS Sequence(序列号):0x80000001起始,越大越新,溢出后重置再生

  • LS Checksum(校验和):校验数据完整性,数值越大越新

2. 六大核心LSA类型详解

LSA类型 LS ID 通告者 传播范围 核心作用
Type-1(Router) 本设备RID 所有OSPF路由器 本区域 描述设备直连拓扑、接口状态,域内路由计算核心
Type-2(Network) DR接口IP MA网络DR设备 本区域 补充MA网络网段掩码、邻接路由器信息
Type-3(Sum-Net) 目标网段IP ABR设备 相邻区域 传递域间路由,跨区域传递时ABR重新生成
Type-4(ASBR-Sum) ASBR的RID 与ASBR同区域的ABR 全网(除ASBR区域) 告知全网ASBR位置,辅助5类LSA路由递归计算
Type-5(ASE) 域外目标网段 ASBR设备 全网(除Stub/NSSA) 传递域外路由,含Type1/Type2两种开销类型
Type-7(NSSA) 域外目标网段 NSSA区域ASBR 仅NSSA区域 替代5类LSA传递域外路由,出区域后7转5

3. 域外路由开销类型

  • Type-1(E=0):总开销=本地到ASBR开销+种子度量值,路径更精准

  • Type-2(E=1,默认):总开销=仅种子度量值,忽略域内传输开销

  • 优先级:Type-1 永远优于 Type-2

4. LSA撤销机制

  • 1/2类LSA:序列号+1、老化时间置0,更新新LSA覆盖旧条目

  • 3/5/7类LSA:直接将老化时间置3600s,全网自动删除

九、OSPF 特殊区域(网络优化核心)

特殊区域核心作用:过滤多余LSA,精简LSDB和路由表,降低设备压力,适用于末梢、无需中转流量的非骨干区域。

1. Stub 末梢区域

准入条件

非骨干区域、无虚链路、无ASBR设备。

核心特性

  • 过滤4、5类域外LSA

  • ABR自动下放3类缺省路由,保障区域外网访问

  • 配置要求:区域内所有设备统一配置

2. Totally Stub 完全末梢区域

在Stub基础上优化,过滤3、4、5类LSA,仅保留3类缺省路由,最大程度精简路由表;仅需在ABR设备配置。

3. NSSA 非完全末梢区域

准入条件

非骨干区域、无虚链路、存在ASBR设备(可引入域外路由)。

核心特性

  • 过滤外部传入的4、5类LSA

  • 本地域外路由以7类LSA传递,出区域后由RID最大的ABR完成7转5

  • ABR下放7类缺省路由,保障外网访问

4. Totally NSSA 完全非完全末梢区域

在NSSA基础上,过滤3、4、5类LSA,仅保留缺省路由;华为设备会同时存在3类、7类缺省路由,优选3类,彻底杜绝环路。

十、OSPF 选路原则(优先级从高到低)

域内路由 > 域间路由 > 域外路由(1/2类LSA > 3类LSA > 5/7类LSA)

1. 域内路由(1/2类)

多条路由对比开销值,越小越优,开销一致则负载均衡。

2. 域间路由(3类)

多条路由对比总开销值,越小越优,开销一致则负载均衡。

3. 域外路由(5/7类)

  1. 优先匹配路由类型:Type-1 优于 Type-2

  2. 同Type-1:对比总开销(本地到ASBR+种子开销),越小越优

  3. 同Type-2:先对比种子开销,再对比本地到ASBR开销,越小越优

  4. 所有参数一致,执行负载均衡

十一、OSPF 防环机制

1. 域内防环

依靠SPF算法计算树形无环路径,从根源避免域内环路。

2. 域间防环

  • 非骨干区域禁止直接互传路由,所有流量必须经过骨干区域中转

  • ABR区域水平分割:非骨干学习的路由不转发、不回传

  • 虚链路区域禁止传递聚合路由

  • NSSA区域多ABR场景,设备不学习对端缺省路由

3. 域外防环

依靠5/7类LSA的FA转发地址,优化路径、规避环路与次优路径。

十二、OSPF 扩展配置

1. OSPF认证(保障邻居合法性)

  • 接口认证:接口视图配置,同广播域所有接口需一致(Key ID、密码)

  • 区域认证:区域视图配置,本质为批量接口认证,区域内所有设备需一致

  • 虚链路认证:仅针对Vlink链路单独配置

2. 收敛加速(修改计时器)

可修改Hello、死亡、重传、传输延迟计时器,链路两端参数必须一致,缩短故障感知时间。

3. 静默接口

命令:silent-interface 接口名;接口禁止收发OSPF报文,适用于连接终端、禁止建邻场景。

4. 缺省路由下发

  • 3类缺省:特殊区域ABR自动下发,优先级10

  • 5类缺省:default-route-advertise(按需)、default-route-advertise always(强制),优先级150

  • 7类缺省:NSSA区域专属配置,优先级150

5. 路由过滤与汇总

  • 区域间汇总:ABR设备配置,汇总1/2类LSA生成的域间路由

  • 域外汇总:ASBR设备配置,汇总引入的外部路由

  • 路由过滤:通过abr-summary/asbr-summary + not-advertise,源头过滤LSA,全网不可见

6. 选路干涉

  • 修改路由优先级:preference(域内/域间)、preference ase(域外)

  • 修改接口Cost:ospf cost 数值(最常用),两端同步修改避免往返路径不一致

  • 修改参考带宽:bandwidth-reference 数值

十三、OSPF 常见问题总结

  • 结构突变:网段增减触发LSU触发更新,邻居同步LSA,无需全局刷新

  • 邻居中断:40s未收到Hello报文,判定邻居失效,删除对应LSA与路由

  • MGRE建邻异常:核心原因是全网OSPF网络类型不一致、未开启伪广播、DR角色未固定

  • NSSA次优路径/环路:由7转5机制、FA地址为空、多ABR缺省路由冲突导致;华为通过优化7类缺省路由优先级规避环路

相关推荐
U盘失踪了1 小时前
claude code /skill-creator 创建skill
笔记
MAXrxc1 小时前
ospf笔记
网络·笔记
想不明白的过度思考者2 小时前
Unity学习笔记——虚拟摇杆实现笔记(事件触发器的使用、UGUI 坐标转换)
笔记·学习·unity
疯狂打码的少年3 小时前
流水线冒险(结构冒险/数据冒险/控制冒险)
笔记
问心无愧05133 小时前
ctf show web入门261
android·前端·笔记
智者知已应修善业3 小时前
【分立元件OCL电路】2024-5-17
驱动开发·经验分享·笔记·硬件架构·硬件工程
学计算机的计算基3 小时前
LeetCode刷题笔记:数组专题四连击(LC53/56/189/41)
笔记·leetcode·排序算法
Upsy-Daisy3 小时前
IOTA 学习笔记(一):IOTA 是什么?从区块链到 Tangle
笔记·学习·区块链
小碗羊肉4 小时前
【Agent笔记 | 第五篇】LangChain&LangGraph
笔记·langchain