OSPF协议
IGP动态路由协议的评判
收敛速度
选路
占用资源
希望的协议是收敛快、选路佳、占用资源少。
核心特点
- 无类路由协议,支持 VLSM、CIDR、路由汇总。
- 收敛快,拓扑变化仅泛洪对应 LSA,不会整网重计算。
- 支持区域划分,大型网络分区域部署,减小 LSDB 规模、降低设备压力。
- 可靠传输,通过 5 类报文保证 LSA 交互可靠。
- 支持认证,明文 / MD5/HMAC-SHA,提升安全性。
- 开销(Cost) 作为选路依据,开销 = 10⁸/ 接口带宽,带宽越大开销越小。
- 支持等价路由、分层路由架构。
优点
- 架构分层,适合大型网络;收敛快、路由无环、安全性高、扩展性强。
缺点
- 配置、原理复杂,对设备性能有一定要求;小型网络使用偏繁琐。
OSPF复习 --- 开放式最短路径优先协议
典型的链路状态型协议(传递的是TOPO信息),由IETF提出。
使用范围是IGP(AS内部);使用的算法是SPF算法。
OSPF版本:OSPFv2/OSPFv3
OSPF是跨层封装协议,没有传输层内容;OSPF没有周期更新,仅存在触发更新机制。
OSPF虽然没有周期更新,但是存在周期链路刷新机制(30min发送一次本地的LSA信息)。
- 一台路由器可同时属于多个区域(ABR 区域边界路由器)。
- 一个接口只能属于一个 OSPF 区域,不能跨区域。
- ABR:同时连接 Area 0 和其他区域的路由器,负责传递区域间路由。
OSPFv2与RIPv2对比
相同点: 1、两者都是无类别路由协议
2、两者都采用组播方式进行数据报文发送
RIPv2:224.0.0.9
OSPFv2:224.0.0.5/224.0.0.6
3、两者都支持等开销负载均衡(等价路由)
不同点: RIP应用于小型网络,OSPF应用于中大型网络
结构化部署 --- 区域划分
区域内部传递的是拓扑信息,而区域之间传递的是路由信息。--- OSPF的区域划分是基于设备接口进 行的。
区域ID(Area-ID);是由32位二进制组成,以IP地址格式书写;一般配置使用十进制方式。 其中区域0被称为骨干区域。
存在区域划分原则:
-
OSPF要求域中所有的非骨干区域,都必须与骨干区域直接相连。
-
骨干区域不能被分割。--- Area0有且只有一个。
区域划分原则的必要性
OSPF定义了一个概念,ABR(区域边界路由器)来确保所有人遵循第一条划分原则。
成为ABR条件: 1、至少连接两个区域 2、连接的区域中至少有一个区域是骨干区域 3、在区域0中至少存在一个活跃的邻居
引申:非骨干区域之间不允许直接相互发布路由信息。
OSPF规定:从非骨干区域接收的 路由信息 ,ABR设备可以接收,但不会使用这条路由信息 --- OSPF 的区域水平分割。---引申:从某个区域传出的路由,不会在传回该区域。
ASBR --- 自治系统边界路由器;只有处于OSPF工作域边界的设备,且负责将其他路由引入到OSPF 工作域中的设备,被称为ASBR。说明:ABR发送路由信息是本质,而ASBR不会主动传递路由,需要管 理员操作。
1. 内部路由器(IR,Internal Router)
所有接口都属于同一个 OSPF 区域,仅维护本区域 LSA。
2. 区域边界路由器(ABR,Area Border Router)
同时连接Area 0 骨干区域 和非骨干区域,可连接多个区域;负责区域间路由传递、路由汇总。
3. 自治系统边界路由器(ASBR,Autonomous System Boundary Router)
连接OSPF 域 与其他路由协议域 (RIP、静态、BGP 等),引入外部路由,产生 Type-5/Type-7 外部 LSA。 注:ASBR 可以在任意区域,不一定是 ABR。
4. 骨干路由器(Backbone Router)
至少有一个接口属于Area 0。ABR、纯骨干内路由器都属于骨干路由器。
补充组合身份
- 一台设备可同时为 ABR+ASBR
- 末梢区域、NSSA 区域内不能存在 ASBR(NSSA 例外,允许本地 ASBR)
OSPF工作过程
OSPF数据包

hello报文
用来发现、建立、周期保活OSPF邻居关系的报文,通过组播224.0.0.5发送。
hello报文每10秒发送一次。
hello-time hold-time:死亡时间,是hello-time的4倍,即40秒。
RID---路由器标识符Router-ID
要求全网唯一,使用IP地址格式表示。
配置方式:1.手工配置;2.自动配置(选取最大环回IP>选取最大物理IP)
DD报文 --- 数据库描述报文
里面携带的是路径信息摘要;
DD报文存在的意义:减少资源消耗(避免重复更新和减少更新量)。
LSR --- 链路状态请求报文
目的:根据DD报文,选择自己感兴趣的信息,通过LSR去正式申请。
作用 :向邻居请求缺失的完整 LSA
LSU --- 链路状态更新报文
注意:LSU报文中,包含的不是拓扑或路由,而是一个个LSA。
在OSPF中,所有的拓扑和路由,都会被包含在LSA中进行传递。
LSAck --- 链路状态确认报文作用:对 LSU 做确认,保证 LSA 可靠传输
OSPF状态机
down --- 关闭状态
一旦启动OSPF协议,本地发送hello报文,进入下一个状态
init --- 初始化
本地收到一个hello报文,并且该hello报文中存在自己的RID。
2-way --- 双向通讯
进入该状态,代表 邻居关系建立,此时处于稳定态。
条件匹配:只有条件匹配成功的设备,才会进入到下一个状态;即准备开始进行LSA交换。
exstart --- 预启动
使用未携带数据的DD报文(空的报文),进行主从关系选举。
选择Router-ID大的设备为主。
exchange --- 准交换
使用携带数据的DD报文,交换摘要信息。
本地接收完所有的摘要信息后,进入下一个状态
loading --- 加载状态
邻居之间使用LSR/LSU/LSAck报文来获取完整未知LSA信息。
full --- 转发状态
LSA交换完成后进入的状态,标志着 邻接关系的建立,也是稳定态。

邻居表、LSDB(链路状态数据库)表、OSPF路由表
补充:状态机还存在一个Attempt状态,该状态处于Down和Init之间,该状态,只有在NBMA网络 中才会存在。因为在NBMA网络中,不存在组播行为,所以OSPF启动后,不能直接进入init状态发送报 文,而是进入Attempt状态等待管理员告知本地邻居IP地址,从而发送单播OSPF报文。
条件匹配
目的:角色选举;减少重复更新。
角色分类:
DR --- 指定路由器
BDR --- 备份指定路由器
DRother --- 其他路由器
在一个广播域中,必须存在一个DR设备,BDR可以不存在。
如果两者的角色都是DRother,则形成的是邻居关系,即双方停留在2-way状态。不会传输LSA信息。
DR设备选举规则:1.比较接口优先级,越大越优,默认为1;0代表放弃选举;2.比较RID,越大越 优。注意点:先比较出DR,然后再比较出BDR;
注意:是非抢占模式,即选择出DR后,不会修改。
结构突变
新增网段
断开网段
无法沟通

r1ospf 1 router-id 1.1.1.1 --- 进程号仅具有本地意义,RID手工规定
r1-ospf-1area 0 --- 进入区域
r1-ospf-1-area-0.0.0.0network 10.1.1.1 0.0.0.0 --- 精准宣告
10.1.1.1--->本地待激活接口IP地址
0.0.0.0--->反掩码
结果:10.1.1.1/32:代表仅宣告IP地址为10.1.1.1的接口
宣告:1.激活接口;2.发布路由。
r1-ospf-1-area-0.0.0.0network 12.1.1.0 0.0.0.255 --- 范围宣告
推荐使用精确宣告。
r1display ospf peer brief --- 查看邻居简表
r1display ospf peer --- 查看邻居表
r1display ospf lsdb --- 查看数据库
r1display ospf routing --- 查看OSPF路由表
OSPF优先级默认为10;
OSPF的路由项开销值 = 路由传递过程中,所有入接口的Cost之和;接口Cost = 参考带宽/实际带 宽,参考带宽默认100Mbps。

OSPF报文格式
OSPF头部信息
大小为24字节;

OSPF的 邻居关系建立的影响因素:区域ID、认证、网络掩码、hello时间、死亡时间、可选项;

两台OSPF路由器如果通过MA网络相连,那么双方的直连接口必须配置相同的网络掩码;华为需要 查询。
dead时间一定是hello时间的四倍。

以华为AR系列路由器为例,缺省时,DD报文中的MTU参数默认为0;即对该参数不进行检查。该参 数是影响OSPF 邻接关系建立的因素,如果MTU检查未通过,则双方停留在exstart状态。
ospf mtu-enable 在接口配置
标志位I位 --- 代表此时进行主从关系选举
M位 --- 代表后续还存在更多的DD报文
MS位 --- 代表该设备为主设备
隐式确认机制 --- 依靠DD序列号完成,主设备每一次发送DD报文,序列号+1;该参数用于确保DD 报文传输的有序性和可靠性。
DD报文分类:
1、未携带数据的DD报文 --- 主从关系选举
2、携带数据的DD报文 --- 同步LSA摘要
3、未携带数据的DD报文 --- 进行隐式确认机制

链路状态类型、链路状态ID、通告路由器 --- 被称为LSA的三元组信息;用来唯一的标识一条LSA。


OSPF的接口网络类型
所谓的OSFP接口网络类型,可以理解为OSPF的接口,在某种网络类型下的工作方式。
如果要修改网络类型,邻居之间,网络类型必须修改一致。是OSPF邻居关系/邻接关系建立的影响 因素。
|----------------|--------------------------------------------------------------|
| 网络类型 | OSPF接口网络类型---工作方式 |
| BMA(Boradcast) | 1.可以建立多个邻居 2.需要进行DR/BDR选举 3.hello 10S;dead 40S |
| P2P(P2P) | 1.可以建立多个邻居 2.不需要进行DR/BDR选举 3.hello 10S;dead 40S |
| 环回接口(虚拟接口-P2P) | 1.华为定义P2P,思科定义loopback 2.该接口无数据收发 3.默认学习主机路由 |
| 手工修改(P2MP) | 1.可以建立多个邻居 2.不需要进行DR/BDR选举 3.hello 30S;dead 120S 4.学习邻居主机路由 |
| 帧中继(NBMA) | 1.可以建立多个邻居 2.需要进行DR/BDR选举 3.hello 30S;dead 120S 4.无法自动建立邻居关系 |
| (Virtual ) | 1.不需要进行DR/BDR选举 2.hello 10S;dead 40S 3.所有报文都是单播报文 |
1. Broadcast 广播型(默认:以太网、Ethernet)
- 场景:以太网、无线等支持广播 / 组播的多路访问网络
- 选举 DR/BDR
- Hello 间隔:10s,死亡时间 40s
- 邻居发现:自动组播发现,无需手动指定邻居
- 组播地址:224.0.0.5、224.0.0.6
2. P2P 点到点(默认:串口、PPP/HDLC 链路)
- 场景:两端直连串行链路、PPP 链路
- 不选举 DR/BDR
- Hello 间隔:10s,死亡时间 40s
- 邻居自动发现,仅两点互联
3. NBMA 非广播多路访问(默认:帧中继、ATM)
- 场景:帧中继、ATM 等多路访问,但不支持广播 / 组播
- 选举 DR/BDR
- Hello 间隔:30s,死亡时间 120s
- 必须手动指定邻居,无法自动发现
4. P2MP 点到多点
- 人为修改类型,常用于帧中继网络
- 不选举 DR/BDR
- Hello 间隔:30s
- 把整个网络看成多个点到点链路,自动发现邻居
5. P2MP-NonBroadcast 点到多点非广播
- P2MP 的非广播版本
- 不选举 DR/BDR
- Hello 间隔:30s
- 不支持广播,需要手动指定邻居

Poll --- 轮询时间 --- 在NBMA网络中,当邻居失效后,路由器将按照Poll时间来定期发送hello报文
Retransmit --- 重传LSA时间
Transmit Delay --- LSA传输延迟时间
LSA存在一个老化时间,当老化时间超时,则LSA会被删除;
在BMA网络上,OSPF以组播 发送hello、LSU和LSAck报文;以单播发送DD、LSR和LSU报文。

在P2P网络上,OSPF以组播发送所有报文。

在环回接口中,Cost恒定为0;
Type字段,在华为中使用P2P填充,在思科中使用Loopback填充。
OSPF规则:通过OSPF学习到的环回接口的路由,掩码全部为32位,即主机路由。
r2-LoopBack0ospf network-type broadcast
OSPF进行条件匹配时,存在一个计时器 Waiting ,该计时器时间=该接口的dead时间。当时间超时 后,未选择出接口角色,则本地成为DR/BDR。

华为将tunnel接口的传输速率设定为64Kbps。

特征:P2MP环境中,会学习邻居的接口IP地址的主机路由。
在P2MP环境中,以组播 发送hello报文,以单播发送其余报文。

在NBMA网络中使用OSPF时,需要配置 peer X.X.X.X 命令,指定邻居的IP地址,否则无法正常建 立邻居关系。在该网络中,所有报文都是以单播形式发送。
注意
- 只有 Broadcast、NBMA 才选举 DR/BDR
- 凡是非广播类型(NBMA、P2MP-NB)都要手动指定邻居
- 以太网默认 Broadcast,串口默认 P2P
- 10s Hello:Broadcast、P2P;其余均为 30s
OSPF不规则区域划分
OSPF区域划分规则
所有的非骨干区域与骨干区域直接相连
骨干区域不能被分割
引出两条OSPF的防环规则
1、非骨干之间不允许直接传递路由信息
2、OSPF区域水平分割规则
所谓的不规则区域:
-
远离骨干的非骨干区域
-
不连续骨干区域
主流解决方案
方案 1:虚链路 Virtual-link(临时应急方案,不建议长期商用)
方案 2:多实例 OSPF / 重新规划组网(最优永久方案)
方案 3:使用 Loopback 接口 + 静态路由 做隧道(替代虚链路)

可以使用VPN将R3和R2的区域0部分建立通道,但是因为水平分割会导致道路选择会选择开销最大的路线,不推荐使用
使用Tunnel隧道
R2和R3建立隧道,将隧道宣告在Area 0,使得R3成为ABR设备。
使用VPN隧道的问题:
-
选路不佳
-
重复更新
-
提高带宽的资源消耗
虚链路 --- Vlink
Virtual-link(vlink) :在两台 ABR 之间,通过一个普通非骨干区域(Transit Area)建立的逻辑链路 ,逻辑上属于 Area 0。
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-peer:指的是存在一个Vlink邻居,后面X.X.X.X,是邻居的Router-ID
注意:Vlink是一个虚拟的链路,这条链路穿越了非骨干区域,在这个非骨干区域中进行配置。
虚链路只能够穿越一个区域。因为配置时使用的是RID,而RID只能在同一个区域内找到,设备无法 跨区域找到RID所对应的设备。
核心规则
- 两端必须都是 ABR。
- 穿越的区域(中转区域)只能是 普通区域 ,不能是 Stub、Totally Stub、NSSA、Totally NSSA。
- 只能跨 1 个中转区域。
- 虚链路属于 Area 0 ,可以传 Type1/2/3/4 LSA ,一般不传外部 Type5。
- 配置时用对端的 Router-ID,不是接口 IP。

Vlink在建立连接时,如果Vlink的两端设备之间,存在多条路径,Vlink会优选Cost数值最小的路径 来建立Vlink连接。
Vlink被视为是骨干区域的一段延伸,即Vlink永远属于骨干区域。
多进程双向重发布
一台路由器上,可以同时跑多个 OSPF 进程(进程 1、进程 2、进程 100 等)。
- 不同 OSPF 进程彼此隔离 ,默认不共享路由
重发布:把一种路由信息,以另外一种路由协议的方式发布出去。
前置条件:重发布是执行在ASBR设备上的。

多进程,可以理解为设备身上运行了两种不同的路由协议。此时,R3就会被称为是 ASBR ;
注意:不是同时运行多个协议的设备就一定是ASBR,ASBR一定是将外部路由重发布到OSPF中的设 备,或者说是执行了重发布操作的设备。
重发布:将某一种路由,通过另一种方式发布。
r3-ospf-1import-route ospf 2
---- 将OSPF 2的路由信息,引入到OSPF 1中
r3-ospf-2import-route ospf 1
引入,不会影响到设备自身;
执行完重发布操作后,全图所有设备都将学习到所有的OSPF路由信息,并且不存在选路不佳的情 况。
O_ASE 代表的是OSPF的域外路由信息;这种路由的优先级默认为150。
OSPF多进程场景

OSPF的LSA信息
距离矢量型路由协议 --- 传递的是路由信息 --- 基于传闻的更新。
链路状态型路由协议 --- 不会直接交互路由信息,而是交互链路状态信息 --- 所有的路由器都会产生 用于描述自己直连接口状况的链路状态信息,并且发布出去。
路由器会将网络中洪泛的所有链路状态信息都收集起来,存放在LSDB中(本地以及收到)。
LSDB是全网路由器拥有的一致信息;每台路由器独立运行SPF算法,计算出以本地为根节点的一颗 无环的最短路径树。
OSPF的LSA种类很多,主要使用的6种。
LSA的头部信息


每一个LSA都包含的内容,总共20字节大小。
链路状态老化时间,指的是某条LSA的存活时间;当某条LSA被始发路由器产生时,该数值会被设定 为0,之后随着该LSA在网络中被洪泛,老化时间逐渐累加。
一般而言,任何一条LSA的老化时间,不会超过1800秒。 --- 因为存在30min周期链路刷新。
老化时间的最大数值=3600秒;一旦LSA老化时间到达max age时间,认为该LSA失效,会被路由器 从本地LSDB中删除。
在OSPF网络中,只有始发路由器能够提前使得某条LSA老化,即有意识的清除网络中的某条 LSA信息。
任何一条LSA的修改,都必须由始发路由器来完成。
链路状态ID+链路状态类型+通告路由器 ---> LSA的三元组信息,唯一的标识一条LSA。
通告路由器---发布该LSA的路由器的Router-ID。
链路状态序列号(LS seq)
每台路由器,每发送一个LSA(三元组相同),序列号+1。
该参数用于判断LSA的新旧关系,或是否重复。32bit组成,8位十六进制表示。
序列号初始:0x80000001
序列号截止:0x7FFFFFFF
OSPF的序列号不允许进入循环部分。
OSPF序列号刷新机制:当一条LSA序列号为0x7ffffffe时,来到周期链路刷新时,会向外通告 序列号为0x7fffffff的LSA,该LSA老化时间为3600秒;从而将全网LSA删除,始发路由器在产 生一条序列号为0x80000001的LSA信息,进行LSA更新。
判断LSA的新旧关系
-
序列号越大,则LSA越新。
-
具有较大校验和的LSA更优
-
比较两个LSA的老化时间
-
如果某条LSA的老化时间 = 3600S,则无条件选择。
-
如果没有某条LSA老化时间 = 3600S,则对比两个LSA老化时间的差值
-
如果差值>15分钟,则选择老化时间小的LSA
-
如果差值<15分钟,则选择任意一条。


Type-1 LSA
网络中的每台设备,都会发送出该类LSA,不管该设备存在多少接口,都只发送一条1类LSA信息。 同属于一个区域的接口共用同一个1类LSA信息,而不同区域使用不同的1类LSA信息进行描述。

V --- 代表发送该LSA的设备,是Vlink的一个端点
E --- 代表发送该LSA的设备,是一台ASBR设备
B --- 代表发送该LSA的设备,是一个连接在多个区域的设备
1类LSA使用Link信息来描述接口信息,一个接口信息,可能使用多个Link共同来描述。

Type-2 LSA
在MA网络中,OSPF需要选举DR/BDR,邻居信息是保存在DR身上的;
DR会在MA区域内,洪泛Type-2 LSA,列举出接入该MA网络的所有路由器的Router-ID,以及当 前MA网络的网络掩码信息。
LS ID是DR的IP地址。
Type-3 LSA
三类LSA的通告者是ABR设备,并且,ABR设备会将自己本地所有的OSPF路由都转换为对应的三类 LSA,每条路由对应一条三类LSA。

链路状态ID字段的数值是路由信息的目的网络地址。
LSA中的度量值 = ABR到达目标网段的总开销。
三类LSA传递路由信息的逻辑,类似于距离矢量型协议,通告者就是到达目标网段的下一跳。
设备接收到3类LSA后,需要根据1/2类LSA计算的拓扑信息,来寻找三类LSA的通告者;如果找到则 可以使用路由,如果未找到,则该3类LSA通告的路由信息在本地无效。
注意:三类LSA实际传播范围是单区域,只不过因为通告者是ABR,所以看起好像是多区域之间的传递。
Type-5 LSA


五类LSA是用来传递域外路由信息 ,且该LSA由ASBR产生,并传播到整个OSPF网络。
链路状态ID,是域外路由信息的网络地址。
度量值 ---> 该外部路由的Cost,只不过该Cost数值采用了一个常数来表示,这个常数被称为种子度 量值;在OSPF中,种子度量值 = 1。
r4-ospf-1import-route rip 1 cost 10
将RIP 1引入到OSPF 1中,种子度量值修改为10。
E位 ---> 用于标识外部路由使用的度量值类型
Type-1 --- E = 0
域内所有设备到达域外目标网段的Cost = 本地到达ASBR的COST + 种子度量值。
Type-2 --- E = 1
默认使用;域内所有设备到达该域外路由信息的Cost = 种子度量值。
区别点,在于路由器的路由表中的Cost数值的显示上;而OSPF在进行路由选路时,对于域外路由信 息,无论是类型1还是类型2,计算时,都会计算自己本地到达ASBR的Cost。即计算本地到ASBR + ASBR到目标网段总开销。
r4-ospf-1import-route rip 1 cost 10 type 1
将RIP 1引入到OSPF 1中,种子度量值修改为10,开销值类型为Type-1。
转发地址 --- FA;目的是解决某些场景中的次优路径问题;
FA = 0.0.0.0
本地到达域外路由信息的流量,会被引导到该LSA的通告者,即ASBR上。
在五类LSA中,一般都是0.0.0.0;
FA ≠ 0.0.0.0
本地到达域外路由信息的流量,会被引导FA地址所在设备上。

外部路由标记(External Route Tag) --- 只有域外路由信息才会存在的一个参数,被用于路由策略; 该参数默认数值 = 1;可以被修改。
r4-ospf-1import-route rip 1 tag 100
将域外引入的路由信息的标签修改为100
Type-4 LSA
传递路由信息的LSA都需要通过1/2类LSA进行验算(寻找通告者),5类LSA是全OSPF网络传播,除了 ASBR所在的区域的路由器,可以通过1/2类LSA进行验算,其他区域都无法直接验算到ASBR的位置。所 以,需要引入4类LSA来 辅助寻找ASBR的位置。
四类LSA结构非常简单,重点参数两个:
链路状态ID --- ASBR的RID
度量值 --- 该四类LSA的通告者,到达ASBR的开销值
说明:四类LSA使用的是三类LSA的格式,但是四类LSA通告的不是路由,而是ASBR的位置信息。
Type-7 LSA
也是用来描述域外路由信息的LSA,格式与5类LSA相同;但是该LSA只能在NSSA区域中存在。
O_NSSA 代表该路由来自于7类LSA信息;优先级150。

与5类LSA的不同点
-
Options字段
-
五类LSA,显示E标记位;代表允许洪泛5类LSA。
-
七类LSA,显示NP标记位;
-
N --- 代表允许处理7类LSA,一般在NSSA区域中存在。
-
P --- 代表允许进行7转5操作。
-
FA字段
-
在5类中一般为0.0.0.0;在7类中不为0.0.0.0。
-
FA为了解决次优路径或路由环路存在。
在7类LSA中,一般使用通告者(ASBR)设备的环回地址作为FA地址,如果存在多个环回, 则使用最先宣告的环回,如果没有环回,则使用物理地址。
LSA总结
Type 1 路由器 LSA(Router LSA)
- 产生者:所有 OSPF 路由器
- 泛洪范围 :仅本区域内,不能跨区域
- LS ID :本设备 Router-ID
- 内容:描述路由器直连的所有链路、接口状态、链路开销、链路类型
- 特点 :每台路由器只产生一条Type1 LSA;所有区域必存在
Type 2 网络 LSA(Network LSA)
- 产生者 :DR(仅广播 / NBMA 等多路访问网络产生,P2P/P2MP 无)
- 泛洪范围 :仅本区域内
- LS ID :DR 接口 IP 地址
- 内容:描述广播网段的子网掩码、该网段内所有接入路由器
- 特点:一个 MA 网络只生成一条 Type2;和 Type1 配合计算本网段路由
Type 3 网络汇总 LSA(Network Summary LSA)
- 产生者 :ABR
- 泛洪范围 :整个 OSPF AS(除特殊区域),可跨区域
- LS ID :目标网段前缀
- 内容 :传递区域间路由(其他区域的路由)
- 特点:骨干与非骨干区域之间互通路由依赖它;末梢区域可过滤
Type 4 ASBR 汇总 LSA(ASBR Summary LSA)
- 产生者 :ABR
- 泛洪范围 :整个 AS(除特殊区域)
- LS ID :ASBR 的 Router-ID
- 内容 :告知全网 ASBR 的位置、到达 ASBR 的开销
- 特点 :配合 Type5 外部路由使用;NSSA 区域不会产生 Type4
Type 5 外部 LSA(AS External LSA)
- 产生者 :ASBR
- 泛洪范围 :整个 OSPF 自治系统(所有普通区域)
- LS ID :外部路由网段
- 内容 :引入 OSPF 域外路由(静态、RIP、BGP 等),分E1、E2 两类开销
- E2(默认):只算外部开销,域内开销不计
- E1:外部 + 域内开销累加
- 特点 :
- Stub、Totally Stub 区域完全过滤 Type5
- NSSA 区域拒绝 Type5
Type 7 NSSA 外部 LSA(NSSA External LSA)
- 产生者 :NSSA 区域内的 ASBR
- 泛洪范围 :仅 NSSA 区域内部
- LS ID :外部路由网段
- 内容:和 Type5 作用一致,承载本区域引入的外部路由
- 特点 :
- 专为 NSSA / Totally NSSA 区域设计
- NSSA 的 ABR 会把 Type7 转换为 Type5 再发往其他普通区域
- 支持 E1/E2 开销;NSSA 区域无 Type4、Type5
注意在type2中对目的的开销默认为1
OSPF路由撤销
- 1类LSA
本地发送序列号+1,校验和不变,老化时间 = 0S
- 2类LSA
本地发送序列号+1,校验和不变,老化时间 = 0S
本地发送序列号不变、校验和不变、老化时间 = 3600S
- 3/5/7类LSA
本地发送序列号不变、校验和不变、老化时间 = 3600S
OSPF的优化
OSPF优化的目的:减少LSA的更新量,即减少路由信息数量。
1. 路由汇总 --- 减少骨干区域LSA更新量
2. OSPF特殊区域 --- 减少非骨干区域LSA更新量

路由汇总
- 域间路由汇总
实质上,是通过在ABR设备上对区域之间传递的三类LSA进行汇总。
将多条明细路由 合并为一条大网段路由发布,减少 LSA 数量、缩小路由表、降低设备负载、抑制部分路由震荡 。 OSPF 汇总不能在普通接口做 ,仅支持在 ABR、ASBR 上配置。
r1-ospf-1-area-0.0.0.2abr-summary 192.168.0.0 255.255.252.0
将路由汇总为192.168.0.0/22
说明:从哪个区域学习到明细路由,进入哪个区域进行汇总。
汇总并不会影响ABR设备自身的路由信息。
注意:域间路由汇总,只能汇总ABR设备,通过1/2类LSA学习到的明细路由。
2. 域外路由汇总
实质上,是通过在ASBR设备上对区域之间传递的五类LSA进行汇总。
r4-ospf-1asbr-summary 172.16.0.0 255.255.252.0
注意:5类LSA汇总之后的种子度量值计算方法:
Type1:汇总网段的种子度量值 = 所有明细路由种子度量值的最大值。
Type2:汇总网段的种子度量值 = 所有明细路由种子度量值的最大值 + 1。
OSPF特殊区域
末梢区域 --- Stub
要求:1.不能是骨干区域;2.不能存在虚链路;3.不能存在ASBR设备。
- 末梢区域 --- Stub Area
特点:
该区域将不再学习4/5类LSA信息 --- ABR不再向该区域通告4/5类LSA信息。
该区域还存在访问域外信息的需求,所以,ABR设备会向该区域通告一条3类描述缺省路 由的LSA信息。
r5-ospf-1-area-0.0.0.2stub
r1-ospf-1-area-0.0.0.2stub
注意:该区域内部所有设别,都需要配置上述命令。
- 完全末梢区域 --- Totally Stub Area
特 点:在末梢区域的基础上,进一步的拒绝3类LSA的传播;仅保留一条3类缺省LSA。
r1-ospf-1-area-0.0.0.2stub no-summary
该命令只需要在ABR设备身上配置即可。
- 过滤:Type-4、Type-5 LSA
- 保留:Type-1、Type-2、Type-3
- 补充:ABR 自动下发一条默认路由指向骨干
- 适用:无外部路由接入的末端区域
非完全末梢区域 --- NSSA
要求:1.不能是骨干区域;2.不能存在虚链路;3.必须存在ASBR设备。

1. 非完全末梢区域 --- NSSA
- 特点:
拒绝4/5类LSA传播到该区域;
但是因为该区域存在ASBR设备,所以一定有引入的路由信息,这类域外路由信息, 使用7类LSA的形式进行传播;该7类LSA在传出NSSA区域时,会被ABR设备转换为 5类LSA进行传播;
由ABR设备下发缺省路由;以7类LSA的形式在表示。
r3-ospf-1-area-0.0.0.1nssa
r4-ospf-1-area-0.0.0.1nssa
说明:该区域所有设备都需要配置
- 过滤:Type-3、Type-4、Type-5 LSA(仅保留本区域 1/2 类)
- 补充:ABR 下发默认路由,路由表最简
- 适用:纯末端、不需要其他区域明细路由
2. 完全的非完全末梢区域 --- Totally NSSA
- 特点:在NSSA区域的基础上,进一步的拒绝3类LSA的传递。但是,ABR会下发一条3类缺省 LSA信息,并保存NSSA区域下发的7类缺省LSA信息。 --- 保留7类缺省,是华为特有的操作
- r3-ospf-1-area-0.0.0.1nssa no-summary
说明:在ABR上配置 补充内容 NSSA区域环路问题
- 过滤:Type-4、Type-5 LSA
- 允许:Type-1、2、3、Type-7(本区域引入外部路由)
- 特点:区域内可存在本地 ASBR;ABR 会把 Type-7 转 Type-5 发往其他区域
补充内容
NSSA区域环路问题

总结:
-
NSSA区域的7类LSA需要ASBR或者ABR下发
-
如果多台设备下发缺省的7类LSA,虽然本地会收到多条LSA,但不会加入到自己的路由表,因为自 己下发是最好的
-
华为为了解决环路问题,保留了NSSA区域由ABR产生的七类LSA缺省路由。
OSPF规则:在NSSA区域中,可能同时存在多个ABR设备,为了防止环路产生,ABR设备之间不计 算对方发布的缺省路由。
FA地址解决NSSA次优路径问题

OSPF对于7转5操作有规定:
-
P标记位置位
-
FA字段不能为0.0.0.0
-
如果存在多个ABR,则选择Router-ID最大的设备进行7转5操作

OSPF扩展信息
OSPF扩展配置
-
手工认证 --- 在OSPF邻居之间交互的所有报文中,携带口令;如果口令相同,则身份合法。
-
接口认证
r1-Serial1/0/0ospf authentication-mode md5 1 cipher 123456
该命令需要在接入当前广播域中的所有设备的接口上进行配置;
注意:Key ID保持一致。
- 区域认证 --- 本质还是接口认证,相当于激活了同一个区域中的所有接口
r2-ospf-1-area-0.0.0.0authentication-mode md5 1 cipher 123456
- 虚链路认证
r2-ospf-1-area-0.0.0.1vlink-peer 3.3.3.3 md5 1 cipher 123456
- 加快收敛 --- 减少计时器时间
r2-GigabitEthernet0/0/0ospf timer ?
dead --- 死亡时间
hello --- hello时间
poll --- 轮询时间
retransmit --- LSA重传时间
注意:1.修改hello时间,dead随之变化;2.修改dead时间,hello时间不变;3.poll仅在 NBMA网络中有效;4.Waiting time时间不需要修改,dead修改后,随之变化。
r2-GigabitEthernet0/0/0ospf trans-delay ? --- 修改LSA传输延迟时间
INTEGER Second(s)
-
静默接口 --- 该接口不发送也不接受OSPF的数据报文
-
配置在连接终端设备的接口上;如果不想让两台设备建立OSPF邻居。
- r2-ospf-1silent-interface GigabitEthernet 0/0/0
-
缺省路由
-
3类缺省 --- 只能通过特殊区域的ABR设备自动生成;
-
标记为ospf,优先级10。
-
5类缺省 --- 只能通过手工配置生成
-
标记为O_ASE,优先级150。
- r2-ospf-1default-route-advertise --- 非强制性下发
r2-ospf-1default-route-advertise always --- 强制下放
-
注意:不携带always参数,则本地全局路由表中必须存在一条缺省路由,否则无法生成 5类缺省LSA信息。
-
7类缺省 --- 可以通过特殊区域下发,也可以使用命令下发。
-
标记为O_NSSA,优先级150。
- r1-ospf-1-area-0.0.0.2nssa default-route-advertise
- 路由过滤 --- 主要针对3/5/7类LSA进行过滤。
- r1-ospf-1-area-0.0.0.2abr-summary 15.0.0.0 255.255.255.0 not-advertise 过滤3类LSA r1-ospf-1asbr-summary 15.0.0.0 255.255.255.0 not-advertise 过滤5/7类LSA
-
就是借用了汇总的命令,但是没有去汇总路由,填写的还是明细路由,携带not-advertise参数 即可。
-
路由控制 --- 干涉路由器的选路,通过修改路由表中的参数。
-
优先级
- r1-ospf-1preference 50 --- 修改的是OSPF的默认优先级
仅针对类型为OSPF的路由,干涉1/2/3类LSA
2. r1-ospf-1preference ase 100仅针对类型为O_ASE或者O_NSSA的路由,干涉5/7类LSA
-
注意:上述的修改,仅针对设备本地路由表中的默认优先级修改。
-
开销值
-
接口Cost = 参考带宽/实际带宽
- r1-ospf-1bandwidth-reference 10000 --- 修改参考带宽
注意:修改时,全网都需要修改
r1-GigabitEthernet0/0/0undo negotiation auto --- 关闭接口自动协商
r1-GigabitEthernet0/0/0speed 100 --- 命令,需要重启接口
- 上述两种方式都不建议使用
3.r1-GigabitEthernet0/0/0ospf cost 500
1. 注意:某条链路两端接口都需要修改,否则可能会出现来回路径不一致问题。
附录E
描述了OSPF在特定环境下出现的路由计算错误的问题。

3/5/7类LSA,传递路由信息,而LS ID都是使用路由网络号来标识,LSA三元组中没有掩码信息。
只要3/5/7类LSA的LS ID、通告路由器、LSA序列号相同。
解决思路:
若网络掩码较短的路由先被发布到网络中,则产生 正常的LSA;而 网络掩码较长的LSA发布时, LS ID采用直接广播地址表示。
若网络掩码较长的LSA先发布,则产生正常的LSA;然后发布网络掩码较短的LSA:
先删除源先的LSA,然后使用序列号+1的LSA发布网络掩码较短的路由
在将网络掩码较长的路由,使用直接广播地址方式发布。
OSPF的选路原则
LSA类型分类:
域内 --- 1/2类LSA
域间 --- 3类LSA
域外 --- 5/7LSA;开销值类型 --- Type-1 Type-2
选路原则:
-
域内 --- 如果到达相同目标网络存在多条通过1/2类LSA学习到的路由信息,则比较Cost,越小越 优;如果开销值相同,则形成负载均衡(路由表中表现为等价路由)。
-
域间 --- 如果到达相同目标网络存在多条通过3类LSA学习到的路由信息,则比较Cost,越小越优; 如果开销值相同,则形成负载均衡(路由表中表现为等价路由)。
-
域外
-
Type-1 --- 域内所有设备到达域外目标网段的开销值 = 本地到达ASBR的Cost + 种子度量值 如果到达相同目标网段存在多条通过5/7类LSA学习到的路由信息,且开销值类型均为 Type-1
-
直接比较总开销值,即比较种子度量值 + 本地到达ASBR的度量值
-
如果相同,则负载均衡
-
Type-2 --- 域内所有设备到达域外目标网段的开销值 = 种子度量值
如果到达相同目标网段存在多条通过5/7类LSA学习到的路由信息,且开销值类型均为 Type-2
-
则先比较种子度量值,越小越优。
-
则比较沿途累加开销值,即比较本地到达ASBR的开销值,越小越优。
-
如果都相同,则负载均衡
-
Type-1永远优于Type-2;
-
域内永远优于域间,域间永远优于域外。
总结
1. 区域内路由(优先级最高)
- 对应 LSA:Type 1 + Type 2
- 生成范围:本区域内泛洪
- 路由属性:OSPF 内部路由,协议优先级 10
- 选路规则:多条域内路由,比较整条路径累加 Cost,开销小者优先。
2. 区域间路由(次之)
- 对应 LSA:Type 3(ABR 产生)
- 生成范围:跨区域泛洪
- 路由属性:仍属于 OSPF 内部路由,协议优先级 10
- 选路规则: 同网段下,域内路由 > 域间路由; 多条 Type3 路由,对比总 Cost,开销小优先。
3. 外部路由 E1(第三优先级)
- 对应 LSA:Type5 / Type7
- 路由属性:OSPF 外部路由,协议优先级 150
- 开销计算:外部开销 + 沿途所有域内链路 Cost 累加
- 场景:多路径时,综合全网链路成本选最优。
4. 外部路由 E2(优先级最低,默认类型)
- 对应 LSA:Type5 / Type7
- 开销计算:仅比较路由引入时的外部开销,忽略 OSPF 域内链路开销
- 选路规则:
- 先比外部开销,值小优先;
- 外部开销相同时,再比较域内到达 ASBR 的 Cost,开销小优先。
同类型 LSA 路由细化规则
- 同 LSA 类型、同网段、总 Cost 相等 形成等价路由,设备执行负载分担。
- Type4 LSA 作用 仅用于定位 ASBR 位置,不参与路由选路计算,配合 Type5 使用。
- NSSA 区域特殊点 区域内 Type7 LSA 路由,选路规则和 Type5 完全一致(区分 E1/E2); Type7 转 Type5 后,遵循普通外部路由规则。
完整选路流程(结合 LSA)
- 最长子网掩码匹配
- 路由来源 LSA 判断类型:
Type1+Type2(域内)>Type3(域间)>Type5/7(E1)>Type5/7(E2) - 同类型路由,对比总开销 Cost,开销越小越优
- 开销一致,负载分担