OSPF笔记

一、基础内容

1.基本概念

(1)协议类型

链路状态型协议(Link-State Protocol),是目前业内使用最广泛的IGP(内部网关协议)。由IETF组织提出的公有协议。

使用SPF(最短路径优先)算法。

版本:

OSPFv2(用于IPv4)

OSPFv3(用于IPv6)

(2)封装与更新机制

封装方式:跨层封装协议,没有传输层封装(不使用TCP/UDP),直接封装在网络层。

可靠性:协议自身携带确认重传机制,具备可靠性。

更新机制:

触发更新:网络发生变化时立即发送更新(无周期更新)。

周期链路刷新机制:每30分钟进行一次链路状态数据库的刷新,以确保数据库的一致性和时效性。

(3)OSPFv2与RIPv2对比
维度 相同点 不同点
类别 均为无类别路由协议 适用范围:RIPv2适用于小型网络;OSPF适用于中大型网络
发送方式 均采用组播形式发送报文 RIPv2: 224.0.0.9 OSPFv2: 224.0.0.5/224.0.0.6 算法:RIP基于距离矢量(Bellman-Ford);OSPF基于链路状态(SPF)
负载均衡 均支持等开销负载均衡(等价路由) 更新机制:RIP有周期更新(30s);OSPF仅有触发更新+30分钟链路刷新

2.结构化部署----区域划分

目的:减少拓扑信息的传递,减少设备资源消耗。区域内部传递拓扑信息,而区域之间传递路由信息。

区域ID---Area ID;区域标识符,32bit,使用IP地址格式表示。Area 0,被称为骨干区域。

区域划分规则:

  1. OSPF要求域中所有的非骨干区域,都必须与骨干区域直接相连。

  2. 骨干区域不能被分割。---区域0有且只有一个。

ABR(区域边界路由器):

职责:连接多个区域,负责将一个区域的路由信息传递给另一个区域。

判定条件:

必须连接至少2个区域。

连接的区域中,至少有一个是骨干区域(Area 0)。

在骨干区域内,必须存在一个活跃的OSPF邻居。

结论:非骨干区域之间,不能直接传递路由信息。

规则二的引申限定:OSPF规定,从非骨干区域收到的路由信息,ABR设备可以接收,但不会使用这条路由信息,也就不会传递该路由信息。----OSPF的区域水平分割规则。引申:即从一个区域学习到的路由信息,不能传递回该区域。

ASBR(自治系统边界路由器)

职责:将域外的路由信息引入到域内。

区别:ABR自动执行路由的传递行为,而ASBR则需要管理员手工执行路由的引入操作。

3.OSPF数据包和报文格式

OSPF报文头部(公共部分,24字节)

影响邻居建立的关键参数:区域ID、验证类型、认证数据、网络掩码、Hello时间、Dead时间、可选项字段。

安全机制:OSPF发送的每一个报文都需要进行认证。

hello报文

作用:发现、建立、周期性保活OSPF邻居关系。

发送方式:组播224.0.0.5发送报文。

关键参数:

Router-ID:全网唯一标识符,IP地址格式。配置优先级:手工配置 > 最大环回IP > 最大物理接口IP。

hello-time(保活):默认10秒。

dead-time:默认40秒(hello-time的4倍)。

DD报文---数据库描述报文

内容:携带LSDB中LSA的头部摘要信息(拓扑目录)。

目的:不发送完整拓扑,仅发送目录供邻居比对,减少更新量。

在华为AR系列路由器中,DD报文MTU字段默认为0,且默认不开启MTU检查。若开启MTU检测机制且两端MTU值不一致,会导致邻接状态卡在exstart。开启命令:ospf mtu-enable。

DD序列号:由主设备控制,每发送一次DD报文序列号加1,用于保障传输的有序性和可靠性。

隐式确认机制:从设备发送DD报文时,必须使用其最新接收到的主设备DD报文的序列号作为回应。

DD报文标志位

I位(Init):置1表示主从关系选举的初始报文(空DD)。

M位(More):置1表示后续还有更多DD报文待发送。

MS位(Master):置1表示该设备认为自己为主设备。
DD报文类型

  1. 空DD报文:用于主从关系选举(I=1, M=1, MS=1)。

  2. 摘要DD报文:携带LSA头部摘要信息,用于数据库同步。

  3. 空DD报文:用于隐式确认(仅含序列号,无摘要数据)。

LSR报文---链路状态请求报文

触发条件:根据DD报文中缺失或更新的摘要信息,向邻居请求完整的LSA数据。

链路状态类型、链路状态ID、通告路由器; --- 被称为LSA三元组信息,三个参数可以唯一的标识一条LSA。

LSU报文---链路状态更新报文

内容:携带完整的LSA(链路状态通告),包含具体的路由或拓扑信息。

LSU包

包含两个参数

  1. LSA的个数
  2. LSA(长度可变)
LSAck报文---链路状态确认报文

作用:对收到的LSU报文进行确认,保障数据传输的可靠性。

4.OSPF状态机

down---关闭状态

一旦启动了OSPF协议,则进入下一个状态,且本地发送hello报文。

init---初始化

本地一旦接收到hello报文,且该报文中存在自己的Router-ID,则进入下一个状态。

2-way---双向通讯

邻居关系建立的标志,是一个稳定态。

判别过程---条件匹配:匹配成功则进入下一个状态;匹配失败则停留在邻居关系,仅使用hello报文保活。

exstart---预启动

邻居双方使用未携带数据的DD报文(空报文)进行主从关系选举。

选举规则:选择Router-ID大的设备为主设备。

主从目的:决定后续交互DD报文时,使用哪一端的DD序列号。

exchange---准交换

邻居双方使用携带数据的DD报文,传递本地的LSA摘要信息。

loading---加载

使用LSR/LSU/LSAck报文,向邻居请求并获取未知的完整LSA信息。

获取到的LSA会被存入链路状态数据库(LSDB)。

full---转发

当LSA全部同步完成后进入full状态,标志着邻接关系的建立,是一个稳定态。

执行SPF算法计算,生成无环路径树,计算到达各节点的路由。

将优选出的OSPF路由加入OSPF路由表,若优于现有路由则加入全局路由表。

attempt---尝试(特殊状态)

位于down和init之间,代表OSPF已启动但hello报文未发送。

仅在NBMA网络中存在,需等待管理员手动指定邻居IP地址。

5.条件匹配

目的:在一个广播域中选举负责人(DR/BDR),以减少邻接关系数量,消除重复的LSA更新。

接口角色:

DR---指定路由器

BDR---备份指定路由器

DRother---其他路由器

选举范围:同一个广播域(MA网络)。DR必须存在,BDR可以不存在。

选举规则:

  1. 比较接口优先级:默认为1,数值越大越优;优先级为0代表放弃选举。

  2. 比较Router-ID:优先级一致时,RID越大越优。

关系判定:

两台设备间,若接口角色均为DRother,则建立邻居关系(2-way);若任意一方为DR/BDR,则建立邻接关系(Full)。

引申:P2P网络不需要条件匹配;MA网络必须进行条件匹配。

选举细节:

通过hello报文进行选举,先选DR,再选BDR。

选举最大时长40秒。

DR角色具有非抢占性,除非重启进程或设备故障。

基础配置

推荐使用精准宣告。

r1ospf 1 router-id 1.1.1.1 --- 创建进程1,RID手工指定为1.1.1.1(进程号仅本地有效)。

r1-ospf-1area 0 --- 进入骨干区域0。

r1-ospf-1-area-0.0.0.0network 10.1.1.1 0.0.0.0 --- 精准宣告。

说明:network后跟IP地址+反掩码。此处宣告10.1.1.1/32,即激活IP范围为10.1.1.1的接口。

宣告作用:1.激活接口使其收发OSPF报文;2.将该接口所在网段路由发布出去。

r1-ospf-1-area-0.0.0.0network 12.0.0.0 0.0.0.255 --- 范围宣告(12.0.0.0/24网段)。

常用查看命令

display ospf peer brief --- 查看邻居关系简表。

display ospf peer --- 查看详细邻居表。

display ospf lsdb --- 查看链路状态数据库(LSDB)。

display ospf routing --- 查看OSPF路由表。

路由特性

OSPF域内路由优先级为10。

路径开销(Cost) = 路由传递所经入接口Cost之和。

接口Cost = 参考带宽(默认100M) / 接口实际带宽。

二、接口网络类型

OSPF网络类型 ≠ 数据链路层网络类型

OSPF接口网络类型:指OSPF接口在特定链路层环境下的工作方式(如是否选举DR、Hello间隔等)。

强制规则:建立邻接关系的两端接口,OSPF网络类型必须一致。

在华为中, OSPF学习到的环回接口路由信息,掩码全部都为32,即仅学习为主机路由。

r2-LoopBack0ospf network-type 接口类型 ------ 修改网络类型

底层链路类型 OSPF接口网络类型 关键特性
BMA​ (以太网) Broadcast​ 1. 支持多邻居 2. 必须选举DR/BDR 3. Hello 10s, Dead 40s
P2P​ (PPP/HDLC) P2P​ 1. 仅建1个邻居 2. 不选举DR/BDR 3. Hello 10s, Dead 40s
Loopback​ (虚拟) P2P (华为) 1. 华为默认为P2P类型 2. 自动产生32位主机路由​
NBMA​ (帧中继) NBMA​ 1. 支持多邻居 2. 必须选举DR/BDR 3. Hello 30s, Dead 120s 4. 无法自动发现邻居(需手动指定peer)
无网络类型 P2MP​ 1. 支持多邻居 2. 不选举DR/BDR 3. Hello 30s, Dead 120s 4. 自动学习邻居主机路由​
逻辑隧道 Virtual Link​ 1. 使用单播发送报文 2. Hello 10s, Dead 40s 3. 不选举DR/BDR

State 字段中,标识的是接口角色,但是某些情况下,可以看到为Waiting信息;该参数是一个计时器,当该计时器超时,则认为没有人跟本地进行DR竞选。

Poll --- 轮询时间, 是NBMA网络中, 当邻居失效后, 路由器按照该时间周期性向邻居发送hello报文Retransmit --- 重传LSA的时间

Transmit Delay --- 传输延迟时间, 针对LSA的延迟

目的: 为了保证每条LSA的老化时间在全网一致。
OSPF在BMA网络上,通常以组播 发送hello报文、 LSU报文和LSAck报文;以单播发送DD和LSR以及部分LSU报文
OSPF在P2P网络上,所有报文都是以组播方式发送。
P2MP环境是一个手工修改的环境,建立OSPF邻居后,会学习邻居接口的主机路由信息。hello报文是组播,而其他报文是单播发送
MGRE环境(Hub and Spoke架构)中,如果要运行OSPF协议,则需要调整内容如下:

  1. hub节点开启伪广播功能;未开启导致hub不会发送报文

  2. MGRE环境本质上是P2P类型,所以需要修改OSPF接口网络类型, 但是所有节点都要修改一致。

  3. 如果网络类型需要选举DR/BDR,则hub节点必须是DR,需要手工干涉
    OSPF在NBMA网络中,所有报文都是以单播在发送。

在OSPF进程中,必须使用 peer X.X.X.X 命令,手工指定邻居关系,否则本地无法发送出OSPF报文,导致邻居关系无法建立。

三、不规则区域划分

不规则区域指违反OSPF区域划分核心规则的场景,主要分为两类:

  1. 远离骨干的非骨干区域:非骨干区域未与Area 0直接相连。

  2. 不连续的骨干区域:Area 0被物理链路分割成多个部分。

OSPF区域划分规则:

  1. 所有非骨干区域必须与骨干区域(Area 0)直接相连。

  2. 骨干区域(Area 0)在整个OSPF域内必须有且只能有一个,不能被分割。

OSPF防环规则:

  1. 非骨干区域之间不允许直接传递路由信息,所有跨区域通信必须经过骨干区域(Area 0)中转。

  2. 区域水平分割规则:从一个区域学习到的路由信息,ABR不会将其传递回该区域,从根本上杜绝区域间路由环路。

1.使用tunnel隧道方式(仅作为了解)

R1与R3建立一个VPN隧道,或者R2和R3建立一个VPN隧道;只需要将这个VPN隧道宣告到Area 0就可以

原理:通过逻辑通道将远离骨干的区域"挂靠"到Area 0,Vlink被视为Area 0的延伸。

配置位置:在穿越区域的ABR上配置,使用Router-ID标识对端,而非IP地址。

命令示例:

r2-ospf-1-area-0.0.0.1vlink-peer 3.3.3.3

r3-ospf-1-area-0.0.0.1vlink-peer 2.2.2.2

关键特性:

Vlink逻辑上永远属于Area 0。

只能穿越一个非骨干区域。

所有Vlink报文均以单播形式发送。

路由限制:配置了Vlink的非骨干区域,ABR不能向该区域传递聚合路由(ABR在该区域禁用路由汇总)。

适用场景:

  1. 临时修复骨干区域不连续或不健壮的问题。

  2. 临时解决缺乏骨干区域的组网场景。

3.使用多进程双向重发布(最广泛的)

重发布 --- 把一种路由信息, 以另外一种路由协议的方式发布出去。

重发布必须配置在ASBR设备上。

ASBR真正的定义,是执行了重发布操作的设备;但是在理解时,同时运行多种路由协议的设备。

四、OSPF的LSA

OSPF协议类型与LSA机制

协议类型对比

类型 交互内容 更新方式 工作机制
距离矢量型 (RIP) 路由信息 周期性洪泛路由表 基于传闻更新,易产生环路
链路状态型 (OSPF) 链路状态信息 (LSA) 触发更新 + 30分钟周期刷新 同步LSDB,独立运行SPF算法计算路径

OSPF工作流程

  1. 收集信息:路由器洪泛LSA,全网设备收集并存入LSDB。

  2. 同步认知:全网设备对LSDB的认知保持一致。

  3. 计算路由:每台路由器独立运行SPF算法,以自身为根计算无环的最短路径树,并将结果加载到路由表。

LSA基础

定义:描述设备直连接口状态的信息,OSPF定义了6种常见LSA。

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

头部结构:LSA头部固定为20字节。

LSA关键字段解析

老化时间 (Age)

作用:记录LSA存在的时间(秒)。

周期刷新:每1800秒(30分钟)由始发路由器重新生成,重置Age。

最大老化:当Age达到3600秒(Max Age),LSA会被从LSDB中删除。

权限:只有始发路由器能主动将LSA老化(清除)。

链路状态序列号 (LS Seq)

作用:标识LSA新旧,数值越大越新。

格式:32位二进制,8位十六进制表示。

范围:从0x80000001起始,递增至0x7FFFFFFF。

刷新机制:当序列号达到最大值时,始发路由器将Age设为3600秒触发全网删除,随即发送序列号为0x80000001的新LSA。禁止序列号循环回绕。

LSA新旧判断规则

比较顺序 判断条件 判定结果
第一优先级 比较序列号 序列号越大越优
第二优先级 序列号相同,比较校验和 校验和越大越优
第三优先级 校验和相同,比较老化时间 1. 若Age=3600s,无条件接收(删除指令) 2. 若Age差值>15分钟,Age越小越优 3. 若Age差值<15分钟,认为LSA相同

7种LSA类型

Type-1 LSA

对于Type-1 LSA,名称为Router, 网络中所有的设备都可以发送,并且每个设备仅会发送一条一类LSA信息。 --- 即同一个区域的接口共同使用一个1类LSA信息。

设备标识位 (Option 字段)

标识位 含义 补充说明
V​ 代表该设备是 Vlink 的端点​ 表示该路由器参与了虚链路的建立。
E​ 代表该设备是 ASBR​ 表示该路由器引入了外部路由。引申:在 Stub 区域中,该 Bit 位恒定为 0。
B​ 代表该设备是连接多个区域的边界路由器 表示该设备是 ABR。注:不仅仅包含 ABR 设备(可能指代广义的边界功能)。

链路数量

链路数量指的是该 LSA 中包含的 Link 信息的数量。每条 Link 包含了链路类型、链路 ID、链路数据以及度量值这些关键参数。路由器可能使用一个 link 或者多个 link 来描述某个接口信息。

链路类型对照表

Type Link ID (链路标识) Data (链路数据)
Point-to-point(点到点) 邻居的 Router ID 该网段上本地接口的 IP 地址
TransNet(传输网络/MA网络) DR 的接口 IP 地址 该网段上本地接口的 IP 地址
StubNet(末梢网络) 该 Stub 网段的 IP 网络地址 该 Stub 网段的网络掩码
Virtual(虚连接) 虚连接邻居的 Router ID 去往该虚连接邻居的本地接口的 IP 地址

Type-2 LSA

名称是Network; DR在本区域内洪泛该LSA,来列举接入该MA网络中所有路由器的Router-ID,以及这个MA网络的掩码信息。 该类LSA仅存在于拥有MA网络的区域中,由DR产生,每个DR产生一条。

在二类LSA中,链路状态ID,是DR的接口IP地址

Type-3 LSA

每一条路由信息对应一条独立的三类LSA。

链路状态ID:代表该路由信息的目标网络号。

通告机制:ABR在哪个区域产生三类LSA,就代表将该区域的路由传递给其他区域;同一路由信息可通过多条三类LSA传递到不同区域。

三类LSA中的Cost数值,指的是**通告路由器(ABR)**到达最终目的网段的开销值,而非接收者到达目的网段的开销。

递归查找逻辑

设备收到三类LSA后,必须先验证自身是否能到达该LSA的通告路由器。

验证依据:借助本区域的1类或2类LSA进行递归查找。

判定结果:若能到达通告者,该LSA有效;否则无效,不予计算。
跨区域传递特性:

三类LSA在穿越不同区域时,会由新的ABR重新生成

现象:LSA的链路状态ID(网络号)不变,但通告路由器字段会发生改变(变为新的ABR的Router-ID)。

Type-4 LSA

产生原因:五类LSA在全OSPF域泛洪,但其合法性依赖对通告者(ASBR)的可达性验证。

同区域验证:与ASBR同区域的设备,可直接通过本区域的1/2类LSA递归查找到ASBR,无需辅助。

跨区域验证:其他区域的设备无法通过1/2类LSA直接找到ASBR,因此需要四类LSA提供到达ASBR的路径信息。

报文格式与内容

格式:与三类LSA基本一致。

关键区别:四类LSA不包含网络掩码(掩码字段为0)。

链路状态ID:ASBR的Router-ID。

Cost值 = 发布该四类LSA的ABR到达ASBR的开销。

传递特性

辅助作用:四类LSA只为五类LSA服务,告知其他区域设备如何到达ASBR。

通告者变更:与三类LSA类似,四类LSA在跨区域传递时,通告路由器会被新的ABR重新生成(替换为新的ABR的Router-ID)。

Type-5 LSA

五类LSA的主要任务就是传递域外的路由信息;会在整个OSPF网络中传播。

种子度量值

五类LSA中的度量值代表外部路由的开销,称为种子度量值。

默认值恒定为1,在OSPF域内传递时不累加。

r4-ospf-1import-route rip 1 cost 10 (将RIP路由引入OSPF,种子度量值设为10)。

E位与度量值类型

E位决定外部路由的度量值计算方式,默认使用Type-2 (E=1)。

类型 E位 开销计算公式 特点
Type-1 0 总Cost = 本地到ASBR的Cost + 种子度量值 考虑内部路径优劣,更精确
Type-2 1 总Cost = 种子度量值 忽略内部路径,只看外部开销

路由优选:当收到两条相同目标的外部路由时,先比较总Cost,小者优选。

r4-ospf-1import-route rip 1 type 1 cost 5

(引入RIP路由,类型设为Type-1,种子度量值设为5)。

转发地址 (Forwarding Address, FA)

默认状态:FA字段通常为0.0.0.0,流量会被发送给通告该LSA的ASBR。

非默认状态:若FA不为0.0.0.0,流量将直接转发至FA地址指向的设备,用于优化次优路径。

FA非零生效条件(需同时满足):

  1. 该接口为BMA或NBMA类型。

  2. 该接口被宣告进OSPF。

  3. ASBR在连接外部网络的接口上激活了OSPF。

外部路由标记 (Tag)

仅存在于五类LSA中,常用于路由策略部署,默认数值为1。

修改命令:r4-ospf-1import-route rip 1 tag 10 (引入RIP路由并设置Tag为10)。

Type-7 LSA

应用场景:仅存在于 NSSA (Not-So-Stubby Area)​ 或 Totally NSSA​ 区域中。

核心作用:用于替代原本的 5 类 LSA 来传递外部路由信息,防止外部路由泛洪污染整个 OSPF 域。

格式:报文格式与 5 类 LSA 完全相同。

关键字段解析 (基于 display ospf lsdb nssa输出)

Type: NSSA,标识该 LSA 类型。

Ls id: 外部路由的目标网络号。

Adv rtr: 产生该 7 类 LSA 的设备 Router ID(通常是 ASBR)。

Net mask: 外部路由的子网掩码。

TOS 0 Metric: 种子度量值(默认为 1)。

E type: 外部路由类型(Type-1 或 Type-2),默认为 2。

Forwarding Address: 转发地址 (FA),决定数据包下一步发往何处。

Tag: 路由标记,用于路由策略匹配。

Priority: 优先级(Low/High)。

Option 字段含义

在 NSSA 区域的 LSA 中,Option 字段的标记位含义如下:

  • E 位 (External): 代表允许泛洪 5 类 LSA。(通常不在 7 类中出现)

  • N 位 (NSSA): 代表允许处理 7 类 LSA。(标志位为 N 表示该区域是 NSSA)

  • P 位 (Propagate): 代表允许进行 7 转 5 操作。

    • 注:只有当 P 位被置位时,ABR 才会将收到的 7 类 LSA 转换为 5 类 LSA 泛洪到其他区域。
  1. 转发地址 (FA) 的特殊规则
  • 默认值:7 类 LSA 中的 FA 一般 不为 0.0.0.0(这与 5 类 LSA 不同)。

  • 取值优先级:

    1. 优先使用通告者(ASBR)设备 环回接口 (Loopback)​ 的 IP 地址作为 FA。

    2. 如果存在多个环回接口,则使用 最先宣告​ 进 OSPF 的那个环回地址。

    3. 如果没有环回接口,则使用 最先宣告​ 的物理接口 IP 地址。

  • 作用:当 FA ≠ 0.0.0.0 时,其他设备收到该 LSA 后,会将数据包直接发往 FA 地址,而不是发往 ASBR。这有助于避免经过 ASBR 本身,实现路径优化。

OSPF路由撤销机制

OSPF在撤销路由时,并不是直接删除LSA,而是通过特定的老化机制来宣告路由失效。根据LSA类型的不同,撤销方式主要分为以下三类:

  1. 1类LSA (Router LSA) 撤销

    • 机制:通过生成一条全新的LSA来覆盖旧LSA进行撤销。

    • 参数变化:序列号 (seq) +1,校验和不变,老化时间 (Age) = 0。

  2. 2类LSA (Network LSA) 撤销

    • 该类型LSA的撤销存在两种可能的情况(通常与DR/BDR的选举状态或拓扑变化有关):

      1. 方式一:序列号 (seq) +1,校验和不变,老化时间 (Age) = 0。

      2. 方式二:序列号 (seq) 不变,校验和不变,老化时间 (Age) = 3600S(即最大老化时间,直接宣告死亡)。

  3. 3/5/7类LSA 撤销

    • 机制:这类LSA(Summary LSA / External LSA)在撤销时,通常不增加序列号。

    • 参数变化:序列号 (seq) 不变,校验和不变,老化时间 (Age) = 3600S。

五、OSPF优化

OSPF优化旨在减少LSA更新量和路由表规模,主要手段为路由汇总和特殊区域。

路由汇总

汇总操作通过在LSA生成阶段合并路由,减少泛洪的LSA数量。

1.域间路由汇总

操作位置:ABR设备上。

原理:ABR将基于本区域1/2类LSA计算出的路由,在转换为3类LSA之前进行汇总。

配置命令:r1-ospf-1-area-0.0.0.2abr-summary 192.168.0.0 255.255.252.0

说明:该命令需在1/2类LSA所在的源区域(如上例Area 2)内配置。

注意:汇总不影响本地路由表,仅影响发出去的3类LSA。只能汇总通过1/2类LSA学到的区域内路由。

2.域外路由汇总

操作位置:ASBR设备上。

原理:ASBR在将外部路由引入OSPF生成5类(或7类)LSA时进行汇总。

配置命令:r4-ospf-1asbr-summary 172.16.0.0 255.255.252.0

汇总后种子度量值计算规则:

外部路由类型 汇总后种子度量值计算方式
Type-2 (默认) 所有被汇总明细路由中,最大的度量值 + 1
Type-1 所有被汇总明细路由中,最大的度量值

特殊区域

通过限制特定类型的LSA进入区域,减少区域内LSDB规模和路由表条目。

末梢区域 (Stub Area)

成为条件:1. 不能是骨干区域;2. 不能存在虚链路;3. 不能存在ASBR。

区域类型 配置命令 (区域内所有设备) 过滤的LSA 下放的缺省路由 备注
Stub (末梢) rX-ospf-1-area-0.0.0.Xstub 4类、5类 3类 缺省LSA 拒绝外部路由,通过ABR下放3类缺省访问外部。
Totally Stub (完全末梢) ABR: rX-ospf-1-area-0.0.0.Xstub no-summary 其他设备: stub 3类(除缺省)、4类、5类 3类 缺省LSA 在Stub基础上进一步拒绝3类明细路由,仅保留3类缺省。仅在ABR上配置no-summary。

非完全末梢区域 (NSSA)

成为条件:1. 不能是骨干区域;2. 不能存在虚链路;3. 必须存在ASBR。

区域类型 配置命令 过滤的LSA 下放的缺省路由 备注
NSSA rX-ospf-1-area-0.0.0.Xnssa 4类、5类 7类 缺省LSA 允许本区域引入外部路由,以7类LSA形式存在。ABR执行7转5操作向其他区域发布。
Totally NSSA ABR: rX-ospf-1-area-0.0.0.Xnssa no-summary 其他设备: nssa 3类(除缺省)、4类、5类 3类 + 7类 缺省LSA 在NSSA基础上拒绝3类明细。华为设备会同时保留ABR下发的3类和7类缺省,优选3类。

NSSA补充

7转5规则:只有P-bit置位且FA字段不为0的7类LSA,才会被ABR转换为5类LSA。

缺省路由下发:NSSA区域的缺省路由由ASBR或ABR下发7类LSA。华为为防环,ABR下发的7类缺省路由优先级高于其他设备,且ABR不相信其他设备下发的7类缺省。

路由标识:通过7类LSA学习到的路由,在路由表中标记为O_NSSA。

防环设计:在NSSA区域中,若存在多个ABR,设备间不计算对方发布的缺省路由。

NSSA负载分担与次优路径

次优路径成因:与7转5操作强相关。默认仅Router-ID最大的ABR执行7转5。

FA字段的作用:若7类LSA的FA字段不为0,则外部流量直接转发至FA地址,而非ASBR,可解决因7转5导致的次优路径和环路问题。

优选规则:两条相同目标的5类LSA,FA字段不为0的LSA优先级更高。

六、ospf的扩展内容

OSPF扩展配置

OSPF认证

邻居间交互的所有报文携带口令,口令一致则身份合法。

  1. 接口认证

    配置位置:在与邻居通信的接口上配置。

    配置命令:r2-Serial1/0/0ospf authentication-mode md5 1 cipher 123456

    注意点:1. 同一广播域内所有互联接口均需配置;2. Key ID(如上例中的1)必须相同。

  2. 区域认证

    本质:批量接口认证,将属于某区域的所有接口开启认证。

    配置命令:r2-ospf-1-area-0.0.0.0authentication-mode md5 1 cipher 123456

    注意点:1. 区域内所有设备均需配置;2. Key ID必须相同。

  3. 虚链路认证

    配置位置:仅针对虚链路配置。

    配置命令:r1-ospf-1-area-0.0.0.2vlink-peer 5.5.5.5 md5 1 cipher 123456

加快收敛(修改计时器)

修改命令:r1-GigabitEthernet0/0/0ospf timer ?

hello --- 修改hello时间(单位秒)

dead --- 修改死亡时间(单位秒)

poll --- 修改轮询时间(NBMA网络专用)

retransmit --- 修改LSA重传时间(单位秒)

trans-delay --- 修改LSA传输延迟时间(单位秒,范围1-500)

注意点:

  1. 修改hello时间,dead时间会自动变为hello的4倍;修改dead时间,hello时间不变。

  2. Waiting time(DR选举等待计时器)跟随dead时间变化。

  3. 链路两端设备的时间参数建议保持一致,否则可能导致邻居关系震荡。

静默接口 (Silent Interface)

作用:禁止接口收发OSPF报文。

配置命令:r1-ospf-1silent-interface GigabitEthernet 0/0/0

应用场景:

  1. 接口连接终端主机,无需建立OSPF邻居。

  2. 两台运行OSPF的设备接口互连,但希望拒绝建立邻居关系。

    注意:OSPF的静默接口与RIP不同,既不发也不收任何OSPF报文。

缺省路由下发

类型 产生方式 路由标记 优先级 配置命令
3类LSA 特殊区域(Stub/Totally Stub)由ABR自动下发 OSPF 10 配置对应特殊区域即可
5类LSA 手工配置(ASBR) O_ASE 150 r1-ospf-1default-route-advertise (非强制,本地需有缺省路由) r1-ospf-1default-route-advertise always (强制下发)
7类LSA 1. NSSA区域自动下发;2. 手工配置 O_NSSA 150 r1-ospf-1-area-0.0.0.2nssa default-route-advertise

路由过滤

作用:从源头阻止ABR/ASBR发布特定的3/5/7类LSA,全网均无法学习该路由。

配置方式(借助路由汇总):

  1. 过滤3类LSA:r1-ospf-1-area-0.0.0.2abr-summary 15.0.0.0 255.255.255.0 not-advertise

    说明:禁止将Area 2中15.0.0.0/24的路由通过3类LSA发布出去。

  2. 过滤5/7类LSA:r4-ospf-1asbr-summary 172.16.0.0 255.255.255.0 not-advertise

    说明:禁止将域外172.16.0.0/24的路由通过5类或7类LSA发布出去。

路由控制(干涉选路)

  1. 修改优先级

    作用:仅影响本地路由表的优先级,不影响LSDB。

    配置命令:

    r2-ospf-1preference 50 --- 修改1/2/3类LSA路由的优先级(默认10)

    r2-ospf-1preference ase 100 --- 修改5/7类LSA路由的优先级(默认150)

  2. 修改开销值 (Cost)

    路由Cost = 数据包到达目标网段所经过路径上所有入接口Cost之和。

    接口Cost = 参考带宽 / 接口实际带宽。

    修改方法:

    方法一:修改参考带宽(所有设备需一致)

    r1-ospf-1bandwidth-reference 10000 (单位Mbit/s,默认100)

    方法二:修改接口实际带宽(需关闭自协商并重启接口)

    r1-GigabitEthernet0/0/0undo negotiation auto

    r1-GigabitEthernet0/0/0speed 100 (单位Mbit/s)

    方法三:直接修改接口Cost(推荐,最直接)

    r1-GigabitEthernet0/0/0ospf cost 500

    注意:修改Cost时需保证数据往返路径一致,避免不对称路由。

OSPF附录E (Appendix E)

问题背景:当两条外部路由的LS ID(目标网络号)发生冲突时(如10.1.1.0/24和10.1.1.0/25),仅靠三元组无法唯一标识LSA。

解决方案:

  1. 若先发布长掩码路由(10.1.1.0/25),后发布短掩码路由(10.1.1.0/24):

    • 先发布一条正常描述短掩码路由的LSA(序列号N)。

    • 立即发布一条序列号为N+1、描述长掩码路由的LSA,其LS ID使用直接广播地址(10.1.1.127)。

  2. 若先发布短掩码路由,后发布长掩码路由:

    • 先将描述短掩码路由的LSA老化(Age=3600s,序列号不变)。

    • 再发布序列号+1的描述短掩码路由的LSA。

    • 最后发布描述长掩码路由的LSA,其LS ID使用直接广播地址。

OSPF选路原则

LSA分类与优先级:1/2类(域内)> 3类(域间)> 5/7类(域外)。

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

    • 比较到达目标网段的Cost,越小越优。

    • Cost相同则负载均衡。

  2. 域间路由(3类LSA)

    • 比较到达目标网段的Cost,越小越优。

    • Cost相同则负载均衡。

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

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

    • Type-1选路:总Cost = 本地到ASBR的Cost + LSA种子度量值。比较总Cost,小者优;相同则负载均衡。

    • Type-2选路

      1. 先比较种子度量值,小者优。

      2. 若种子度量值相同,比较本地到ASBR的Cost,小者优。

      3. 若仍相同,则负载均衡。

相关推荐
Zklys1 小时前
Cmake的学习笔记step1
c++·笔记·学习
飞翔中文网1 小时前
Java学习笔记之接口
java·笔记·学习
雪之下雪乃的代码日记1 小时前
认识Java中集合框架
java·开发语言·笔记
道亦无名1 小时前
windows下杀死僵尸进程命令
笔记
江屿风1 小时前
C++图的基本概念流食般投喂-竞赛编
开发语言·数据结构·c++·笔记·算法·图论
GLDbalala1 小时前
GPU PRO 5 - 2.4 Hi-Z Screen-Space Cone-Traced Reflections 笔记
笔记
不羁的木木2 小时前
Form Kit(卡片开发服务)学习笔记04-交互事件与跳转处理
笔记·学习·交互·harmonyos
sheeta199811 小时前
LeetCode 每日一题笔记 日期:2026.05.29 题目:3300. 最小元素
笔记·leetcode
中屹指纹浏览器11 小时前
2026指纹浏览器代理链路适配原理与多线路集群调度方案
经验分享·笔记