一、基础内容
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,被称为骨干区域。
区域划分规则:
-
OSPF要求域中所有的非骨干区域,都必须与骨干区域直接相连。
-
骨干区域不能被分割。---区域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报文类型
空DD报文:用于主从关系选举(I=1, M=1, MS=1)。
摘要DD报文:携带LSA头部摘要信息,用于数据库同步。
空DD报文:用于隐式确认(仅含序列号,无摘要数据)。
LSR报文---链路状态请求报文
触发条件:根据DD报文中缺失或更新的摘要信息,向邻居请求完整的LSA数据。

链路状态类型、链路状态ID、通告路由器; --- 被称为LSA三元组信息,三个参数可以唯一的标识一条LSA。
LSU报文---链路状态更新报文
内容:携带完整的LSA(链路状态通告),包含具体的路由或拓扑信息。
LSU包
包含两个参数
- LSA的个数
- 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,数值越大越优;优先级为0代表放弃选举。
-
比较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协议,则需要调整内容如下:
hub节点开启伪广播功能;未开启导致hub不会发送报文
MGRE环境本质上是P2P类型,所以需要修改OSPF接口网络类型, 但是所有节点都要修改一致。
如果网络类型需要选举DR/BDR,则hub节点必须是DR,需要手工干涉
OSPF在NBMA网络中,所有报文都是以单播在发送。在OSPF进程中,必须使用 peer X.X.X.X 命令,手工指定邻居关系,否则本地无法发送出OSPF报文,导致邻居关系无法建立。
三、不规则区域划分
不规则区域指违反OSPF区域划分核心规则的场景,主要分为两类:
-
远离骨干的非骨干区域:非骨干区域未与Area 0直接相连。
-
不连续的骨干区域:Area 0被物理链路分割成多个部分。
OSPF区域划分规则:
所有非骨干区域必须与骨干区域(Area 0)直接相连。
骨干区域(Area 0)在整个OSPF域内必须有且只能有一个,不能被分割。
OSPF防环规则:
非骨干区域之间不允许直接传递路由信息,所有跨区域通信必须经过骨干区域(Area 0)中转。
区域水平分割规则:从一个区域学习到的路由信息,ABR不会将其传递回该区域,从根本上杜绝区域间路由环路。
1.使用tunnel隧道方式(仅作为了解)
R1与R3建立一个VPN隧道,或者R2和R3建立一个VPN隧道;只需要将这个VPN隧道宣告到Area 0就可以
2.使用虚链路 --- Vlink
原理:通过逻辑通道将远离骨干的区域"挂靠"到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在该区域禁用路由汇总)。
适用场景:
-
临时修复骨干区域不连续或不健壮的问题。
-
临时解决缺乏骨干区域的组网场景。
3.使用多进程双向重发布(最广泛的)
重发布 --- 把一种路由信息, 以另外一种路由协议的方式发布出去。
重发布必须配置在ASBR设备上。
ASBR真正的定义,是执行了重发布操作的设备;但是在理解时,同时运行多种路由协议的设备。

四、OSPF的LSA
OSPF协议类型与LSA机制
协议类型对比
| 类型 | 交互内容 | 更新方式 | 工作机制 |
|---|---|---|---|
| 距离矢量型 (RIP) | 路由信息 | 周期性洪泛路由表 | 基于传闻更新,易产生环路 |
| 链路状态型 (OSPF) | 链路状态信息 (LSA) | 触发更新 + 30分钟周期刷新 | 同步LSDB,独立运行SPF算法计算路径 |
OSPF工作流程
-
收集信息:路由器洪泛LSA,全网设备收集并存入LSDB。
-
同步认知:全网设备对LSDB的认知保持一致。
-
计算路由:每台路由器独立运行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非零生效条件(需同时满足):
-
该接口为BMA或NBMA类型。
-
该接口被宣告进OSPF。
-
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 泛洪到其他区域。
- 转发地址 (FA) 的特殊规则
-
默认值:7 类 LSA 中的 FA 一般 不为 0.0.0.0(这与 5 类 LSA 不同)。
-
取值优先级:
-
优先使用通告者(ASBR)设备 环回接口 (Loopback) 的 IP 地址作为 FA。
-
如果存在多个环回接口,则使用 最先宣告 进 OSPF 的那个环回地址。
-
如果没有环回接口,则使用 最先宣告 的物理接口 IP 地址。
-
-
作用:当 FA ≠ 0.0.0.0 时,其他设备收到该 LSA 后,会将数据包直接发往 FA 地址,而不是发往 ASBR。这有助于避免经过 ASBR 本身,实现路径优化。
OSPF路由撤销机制
OSPF在撤销路由时,并不是直接删除LSA,而是通过特定的老化机制来宣告路由失效。根据LSA类型的不同,撤销方式主要分为以下三类:
-
1类LSA (Router LSA) 撤销
-
机制:通过生成一条全新的LSA来覆盖旧LSA进行撤销。
-
参数变化:序列号 (seq) +1,校验和不变,老化时间 (Age) = 0。
-
-
2类LSA (Network LSA) 撤销
-
该类型LSA的撤销存在两种可能的情况(通常与DR/BDR的选举状态或拓扑变化有关):
-
方式一:序列号 (seq) +1,校验和不变,老化时间 (Age) = 0。
-
方式二:序列号 (seq) 不变,校验和不变,老化时间 (Age) = 3600S(即最大老化时间,直接宣告死亡)。
-
-
-
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认证
邻居间交互的所有报文携带口令,口令一致则身份合法。
-
接口认证
配置位置:在与邻居通信的接口上配置。
配置命令:r2-Serial1/0/0ospf authentication-mode md5 1 cipher 123456
注意点:1. 同一广播域内所有互联接口均需配置;2. Key ID(如上例中的1)必须相同。
-
区域认证
本质:批量接口认证,将属于某区域的所有接口开启认证。
配置命令:r2-ospf-1-area-0.0.0.0authentication-mode md5 1 cipher 123456
注意点:1. 区域内所有设备均需配置;2. Key ID必须相同。
-
虚链路认证
配置位置:仅针对虚链路配置。
配置命令: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)
注意点:
-
修改hello时间,dead时间会自动变为hello的4倍;修改dead时间,hello时间不变。
-
Waiting time(DR选举等待计时器)跟随dead时间变化。
-
链路两端设备的时间参数建议保持一致,否则可能导致邻居关系震荡。
静默接口 (Silent Interface)
作用:禁止接口收发OSPF报文。
配置命令:r1-ospf-1silent-interface GigabitEthernet 0/0/0
应用场景:
-
接口连接终端主机,无需建立OSPF邻居。
-
两台运行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,全网均无法学习该路由。
配置方式(借助路由汇总):
过滤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发布出去。
过滤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发布出去。
路由控制(干涉选路)
-
修改优先级
作用:仅影响本地路由表的优先级,不影响LSDB。
配置命令:
r2-ospf-1preference 50 --- 修改1/2/3类LSA路由的优先级(默认10)
r2-ospf-1preference ase 100 --- 修改5/7类LSA路由的优先级(默认150)
-
修改开销值 (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。
解决方案:
-
若先发布长掩码路由(10.1.1.0/25),后发布短掩码路由(10.1.1.0/24):
-
先发布一条正常描述短掩码路由的LSA(序列号N)。
-
立即发布一条序列号为N+1、描述长掩码路由的LSA,其LS ID使用直接广播地址(10.1.1.127)。
-
-
若先发布短掩码路由,后发布长掩码路由:
-
先将描述短掩码路由的LSA老化(Age=3600s,序列号不变)。
-
再发布序列号+1的描述短掩码路由的LSA。
-
最后发布描述长掩码路由的LSA,其LS ID使用直接广播地址。
-
OSPF选路原则
LSA分类与优先级:1/2类(域内)> 3类(域间)> 5/7类(域外)。
-
域内路由(1/2类LSA)
-
比较到达目标网段的Cost,越小越优。
-
Cost相同则负载均衡。
-
-
域间路由(3类LSA)
-
比较到达目标网段的Cost,越小越优。
-
Cost相同则负载均衡。
-
-
域外路由(5/7类LSA)
-
优先级:Type-1 永远优于 Type-2。
-
Type-1选路:总Cost = 本地到ASBR的Cost + LSA种子度量值。比较总Cost,小者优;相同则负载均衡。
-
Type-2选路:
-
先比较种子度量值,小者优。
-
若种子度量值相同,比较本地到ASBR的Cost,小者优。
-
若仍相同,则负载均衡。
-
-