文章目录
OSPF域间路由计算:多区域的路由计算
一、OSPF区域设计原则
1.1 区域划分核心规则
- 骨干区域(Area 0) :必须存在且唯一
- 非骨干区域(编号非0):必须和骨干区域相连(编号非0)
- 基于接口:区域是基于接口的,每条链路的接口在同一区域
1.2 区域特性
- 独立LSDB:每个区域维护独立的链路状态数据库LSDB
- SPF树隔离:各区域独立运行SPF算法生成最短路径树SPF树
- LSA泛洪限制:1/2类LSA仅在区域内泛洪,3类LSA跨区域传播
二、LSDB与SPF树机制
2.1 ABR设备特性
- 多LSDB维护:每个接口连接的区域对应独立LSDB
[R2]display ospf lsdb # ABR会出现两个LSDB
Area:0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2 156 36 80000005 1 #1类
Router 1.1.1.1 1.1.1.1 161 36 80000004 1
Network 12.1.1.2 2.2.2.2 156 32 80000002 0 #2类
Sum-Net 100.1.1.1 2.2.2.2 93 28 80000001 1 #3类
Sum-Net 23.1.1.0 2.2.2.2 191 28 80000001 1
Area:0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2 130 36 80000004 1
Router 3.3.3.3 3.3.3.3 94 48 80000005 1
Network 23.1.1.3 3.3.3.3 127 32 80000002 0
Sum-Net 12.1.1.0 2.2.2.2 191 28 80000001 1
2.2 路由计算过程
- 域内计算:基于1/2类LSA生成精确拓扑
- 域间传递:ABR将最优路由转换为3类LSA
[R1]display ip routing-table protocol ospf #区域外的路由也能学到
Route Flags : R - relay , D – download to fib
--------------------------------------------------------------------------------------------------
Public routing table : OSPF
Destinations : 2 Routes : 2
OSPF routing table status : <Active>
Destinations : 2 Routes : 2
Destination/Mask Proto Pre Cost Flags Nexthop Interface
23.1.1.0/24 OSPF 10 2 D 12.1.1.2 GigabitEthernet0/0/0
100.1.1.1/32 OSPF 10 2 D 12.1.1.2 GigabitEthernet0/0/0
OSPF routing table status : <Inactive>
Destinations : 0 Routes : 0
[R1]display ospf lsdb
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2 277 36 80000005 1
Router 1.1.1.1 1.1.1.1 279 36 80000004 1
Network 12.1.1.2 2.2.2.2 277 32 80000002 0
Sum-Net 100.1.1.1 2.2.2.2 214 28 80000001 1
Sum-Net 23.1.1.0 2.2.2.2 311 28 80000001 1
三、3类LSA工作原理
3.1 LSA生成机制
- 来源转换:将1/2类LSA的拓扑信息转换为路由条目
- 防环设计:仅允许骨干区域转发3类LSA
3.2 路由传递示例
3.3 报文结构深度解析
3.3.1 关键字段说明
[R1]display ospf lsdb summary 100.1.1.1
OSPF Process 1 with Router ID 2.2.2.2
Area:0.0.0.0
Link State Database
Type : Sum-Net #LS类型:3类LSA(Summary LSA)。用来描述区域间路由的信息
Ls id : 100.1.1.1 #LSA的名字。3类LSA中使用该路由的网络地址充当
Adv rtr : 2.2.2.2 #通告者:3类LSA中一般使用ABR路由器
Ls age : 565 #LSA存活时间(秒)
Len : 28
Options : E
seq# : 80000001 #序列号(用于识别新旧LSA)
chksum : 0xfeed #校验和(数据完整性验证)
Net mask : 255.255.255.255 #这个路由信息的网络掩码
TOS 0 metric : 1 #ABR路由器到达该目的网络的开销值
Priority : Low
3.3 多ABR转发机制
3.3.1 跨区域转发流程
3.3.2 转发规则细节
-
重新包装机制:
- 修改AdvRouter为当前ABR的Router ID
- 更新Metric值:
新Metric = 原Metric + 出接口Cost
-
防环设计:
- 仅允许骨干区域→非骨干区域转发
- 禁止非骨干区域→骨干/非骨干区域转发
3.4 路由计算特性
3.4.1 路径开销计算
总开销公式:
总开销值 = 自身路由器到达ABR的开销值 + 3类LSA携带的开销值
3.4.2 SPF树处理逻辑
- 叶子节点特性:3类LSA作为ABR节点的叶子信息
- 拓扑独立性:3类LSA的缺失不影响区域内的SPF树稳定性
- 路由矢量特征:仅当ABR路由表存在该路由时才进行泛洪
四、LSA类型总结
LSA类型 | 名称 | 作用范围 | 关键功能描述 |
---|---|---|---|
1类 | Router LSA | 本区域 | 描述自身直连接口链路状态信息 |
2类 | Network LSA | 本区域 | 描述伪节点信息(拓扑信息+叶子信息) |
3类 | Summary LSA | 跨区域 | 描述域间路由信息 |
五、ABR工作机制深度解析
- ABR:连接多个区域,并且在骨干区域存在一个活动的接口
- 功能:
- 将直连区域内的最优路由转换成3类LSA,泛洪到其他连接的区域中。
- 将骨干区域内的3类LSA,继续以3类LSA的形式泛洪到其他直连非骨干区域内。
5.1 ABR判定场景
5.1.1 连接模式对比
5.1.2 典型连接场景
-
无效ABR
- 连接区域1/2/3(均非骨干区域)
- 无区域0接口
-
潜在ABR
Loopback0-------R1---------R2
|-- Area0 -----|-- Area1 ---|
- 需验证邻接状态
- 有效ABR
R3------------R1-----------R2
|-- Area0 -----|-- Area1 ---|
- 骨干区域建立Full邻接
六、华为设备特殊机制
6.1 ABR标识异常
异常配置示例
[R1] ospf 1
[R1-ospf-1] area 0
[R1-ospf-1-area-0.0.0.0] area 1 # 未宣告任何接口
6.1.1 现象表现
检测项 | 正常ABR | 异常ABR |
---|---|---|
display ospf peer | 显示Full状态 | 无邻接关系 |
option字段 | ABR位已置位 | ABR位虚置 |
路由表 | 有3类LSA路由 | 无实际路由 |
6.2 故障排查要点
- ABR有效性验证
display ospf peer # 检查邻接状态
display ospf lsdb # 验证3类LSA生成
display ip routing-table # 确认路由实际下发
- 配置规范建议
- 确保至少一个骨干区域接口激活
- 所有连接区域需实际宣告接口
- 验证ABR间的Full邻接状态
七、区域间路由防环机制
7.1 拓扑
- 14.1.1.0/24网段不会变成3类LSA传递到其他区域,为什么呢?
7.2 核心防环原则
- ospf规定不同区域间的路由器交互只能通过ABR实现。ABR是连接到骨干区域的,所以在区域设计上规定
- 所有非骨干区域要连接到骨干区域
- 区域间的通讯需要通过骨干区域,形成逻辑上的星型拓扑,且无环。
- ABR不会将非骨干区域的3类LSA传递到骨干区域,1类2类可以转换成3类传递到骨干区域 ;
- ABR在骨干区域存在邻居的时候,不会计算非骨干区域的3类LSA ;
- ABR在骨干区域不存在邻居的时候,会计算非骨干区域的3类LSA。
- 无论cost,1类LSA优于3类LSA
八、典型场景分析
8.1 拓扑说明:
8.2 问题:
❓ Area 0的1.1.1.1/32能否出现在R3路由表中?
分析流程:
结论:
✅ 会出现,R3通过3类LSA学习到该路由
8.3 问题:
❓ Area 0的2.2.2.2/32能否出现在R1/R2路由表中?
防环机制:
结论:
❌ 不会出现在R1/R2路由表,ABR阻止非骨干→骨干转发
8.4 问题:
❓ R5是否学习到1.1.1.1/32和2.2.2.2/32?
转发限制:
结论:
❌ 两条路由均不会出现在R5路由表