OSPF之多区域
1. OSPF路由协议
1)LSA类型
单区域中的LSA
产生范围: 仅在单区域中产生并泛洪
包含类型:
第一类LSA(路由器LSA)
第二类LSA(网络LSA)
第一类LSA(路由器LSA)
产生者: 所有运行OSPF的路由器
描述内容: 路由器自身的直连链路信息
特点: 每个OSPF路由器都会产生
第二类LSA(网络LSA)
产生者: 广播多路访问网络中的DR路由器
包含信息:
当前广播多路访问网络的子网掩码信息
当前DR路由器连接的一组路由器的Router ID
适用范围: 仅在广播型多路访问网络中产生
2. OSPF单区域存在问题
1)OSPF单区域存在的问题
数据库膨胀:单区域中链路状态数据库(LSDB)会非常庞大,占用大量内存,SPF算法计算开销大。如同游戏地图越大占用的显卡资源越多。
拓扑变化影响:LSA洪泛范围覆盖整个区域,任何拓扑变化都会导致所有路由器重新计算路由(就像地图上任何小改动都需要全部重绘)
路由汇总限制:无法进行路由汇总,导致路由表条目过多,查找效率低下(最长掩码匹配原则使精确路由条目持续增加)
2)OSPF多区域解决方案
区域划分优势
独立数据库:每个区域维护独立的LSDB,显著减小数据库规模
洪泛隔离:LSA洪泛被限制在区域内,拓扑变化影响范围可控(如区域1变化仅影响本区域路由计算)
路由汇总:在区域边界(ABR)可进行路由汇总,压缩路由表规模
多区域基本结构
骨干区域:Area 0必须连续存在,作为核心中转区域
非骨干区域:必须直接连接Area 0,区域间路由需经Area 0中转(形成星型拓扑)
特殊区域:Stub/NSSA等特殊区域可进一步优化路由传播
区域边界路由器(ABR)
数据库特性:ABR维护多个LSDB(必须包含Area 0的数据库)
路由转换:将区域内拓扑信息转换为三类LSA(路由信息)传递到其他区域
开销调整:跨区域传递时需要重新计算路由开销值(如区域1到区域0的路径开销会重新计算)
自治系统边界路由器(ASBR)
外部路由引入:通过五类LSA传播外部路由信息
位置通告:需要四类LSA告知ASBR的位置信息(如区域2的ASBR需要通过四类LSA告知Area 0)
3)OSPF的LSA分类
LSA1:Router LSA
发起路由器: 每个运行OSPF的路由器都会生成
洪泛范围: 仅在描述区域内泛洪
作用: 描述路由器的直连拓扑信息
内容特点:
包含路由器所有接口状态
记录链路类型(P2P/StubNet等)和开销值
Link State ID为路由器自身的Router ID
LSA2:Network LSA
发起路由器: 由DR(指定路由器)生成
洪泛范围: 仅在所属区域内泛洪
作用:
描述多路访问网络(广播/NBMA)
包含该网络上所有连接的路由器列表
关键字段:
Link State ID为DR接口的IP地址
包含子网掩码信息
列出所有与DR形成邻接关系的路由器
LSA3:Summary LSA
发起路由器: 由ABR(区域边界路由器)产生
洪泛范围: 在区域内泛洪(非ASBR所在区域)
作用:
描述区域间的路由信息
携带目的网络地址和掩码
包含ABR到目的网络的度量值
特点:
Link State ID为目的网络地址
相比1/2类LSA显著减少数据库大小
允许路由汇总(减少路由表条目)
LSA4:ASBR LSA
发起路由器: 由与ASBR同区域的ABR产生
洪泛范围: 在区域内泛洪(除ASBR所在区域)
作用:
描述去往ASBR的可达性
包含ASBR的Router ID
提供ABR到ASBR的开销值
协同工作:
与5类LSA配合描述外部路由
4类告诉"怎么去ASBR",5类告诉"ASBR知道哪些外部路由"
LSA5:External LSA
发起路由器: 由ASBR(自治系统边界路由器)产生
洪泛范围: 整个OSPF路由域(除特殊区域)
作用:
描述OSPF外部路由信息
包含外部网络地址和掩码
可设置外部路由的开销值(默认type2)
关键参数:
Link State ID为外部网络地址
开销值可通过import-route static cost配置
默认使用Type2外部度量(不累加内部开销)
LSA类型对比
拓扑信息LSA:
1类(路由器LSA): 描述路由器直连拓扑
2类(网络LSA): 描述多路访问网络拓扑
4类(ASBR LSA): 描述ASBR可达性
路由信息LSA:
3类(汇总LSA): 区域间路由
5类(外部LSA): 自治系统外部路由
7类(NSSA LSA): NSSA区域外部路由
洪泛范围差异:
1/2类: 单区域内
3/4类: ABR连接的区域内
5类: 整个自治系统(除特殊区域)
多区域优势
解决的问题:
减少LSDB规模(通过区域边界汇总)
降低SPF计算开销
限制拓扑变化影响范围
实现路由聚合(减小路由表)
实际效果:
外部区域路由用3类LSA表示(1条代替多条)
区域内部仍保留详细拓扑(1/2类LSA)
ABR必须至少有一个接口在Area 0
LSA报文头格式
关键字段:
LS Type: 标识LSA类型(1-11)
Link State ID: 根据LSA类型变化
1类: 路由器自身Router ID
2类: DR接口IP地址
3类: 目的网络地址
4类: ASBR的Router ID
5类: 外部网络地址
Advertising Router: 始发路由器的Router ID
其他字段:
LS Age: LSA存在时间(秒)
LS Sequence Number: 防止旧LSA覆盖新LSA
LS Checksum: 校验和保证数据完整性
4)OSPF的LSA传播过程
路由器网段路由计算
LSA关键字段:
LS Type: 标识LSA类型(Type1-Type11),决定路由信息的传播范围
Link State ID: 根据LSA类型变化,如网络地址或路由器ID
Advertising Router: 始发路由器的Router ID
路由计算过程:
区内计算:通过LSA1描述直连网段(如10.1.3.0/24),开销值累加(如10+100=110)
区间传播:ABR将LSA1转换为LSA3传播到其他区域,开销值继续累加(如区域0内100+110=210)
递归计算:通过SPF算法逐跳累加开销(如区域0→区域2:100+100+110=310)
外部路由处理:
ASBR通过LSA5发布外部路由(如172.16.0.0/16)
配合LSA4告知ASBR位置,计算总开销=外部开销+区内开销(如1000+100=1100)
OSPF外部路由开销类型
类型1(优选):
计算方式:外部开销+到ASBR的开销
特点:更精确反映实际路径代价(如1400=1000+300+100)
应用场景:需要精确路径选择的网络
类型2(默认):
计算方式:仅计算外部开销
比较规则:先比较外部开销,相同再比较到ASBR开销
特点:相当于给类型1加无穷大,优先级永远低于类型1
特殊处理:
转发地址0.0.0.0:通过LSA1/LSA4计算ASBR路径
非零转发地址:需查询OSPF路由表,找不到则忽略
5)OSPF多区域路由计算总结
分层计算原则:
先计算区域内路径(LSA1/LSA2)
再挂载区域间路由(LSA3/LSA4)
最后处理外部路由(LSA5)
路由优选顺序:
区域内路由 > 区域间路由 > 外部路由
同类型比较开销值
类型1永远优于类型2
洪泛边界:
LSA1/LSA2仅在区内传播
ABR转换LSA3跨区域传播
ASBR通过LSA5发布外部路由,配合LSA4定位
关键记忆点:
一类二类管区内,三类传区间,五类传外部
开销类型1更精确,类型2计算更简单
路由选择时先看类型再看开销值
6)OSPF区域路由汇总
汇总原理:在ABR上将多个明细路由聚合成一条汇总路由,减少LSA3的传播数量
汇总位置:只能在ABR上进行区域间路由汇总,不能在普通路由器上执行
汇总内容:只能汇总路由信息(LSA3),不能汇总拓扑信息(LSA1/LSA2)
OSPF区域路由汇总配置命令
基本命令:
通告控制:
默认行为:通告汇总路由,抑制明细路由
禁止通告:添加not-advertise参数将同时抑制汇总和明细路由
区域方向:
从非骨干区域向区域0汇总:area N range
从区域0向其他区域汇总:area 0 range
路由汇总配置
配置示例:
效果验证:
原路由:192.168.1.0/24、192.168.2.0/24、192.168.3.0/24
汇总后:仅发布192.168.0.0/16一条路由
注意事项:
华为设备仅支持ABR上的汇总(思科支持ASBR汇总)
汇总范围应包含所有明细路由,否则会导致路由黑洞
OSPF外部路由汇总
汇总位置:在ASBR上对重分布的外部路由进行汇总
配置命令:
通告控制:
默认行为:生成LSA5汇总路由并抑制明细路由
禁止通告:添加not-advertise参数将抑制所有外部路由
OSPF外部路由汇总配置命令
设备限制:部分设备型号(如演示中的华为设备)不支持ASBR上的外部路由汇总
实现效果:将多条外部路由(LSA5)合并为一条汇总路由
典型应用:当OSPF引入大量外部路由时,减少路由表规模和提高转发效率
3. OSPF的特殊区域
1)OSPF特殊区域
定义:人为定义的位于OSPF区域边缘的逻辑区域,只能与骨干区域相连
分类:
Stub区域(末梢区域)
Totally Stub区域(完全末梢区域)
NSSA区域(非纯末梢区域)
完全NSSA区域
2)特殊区域详解
Stub区域
特性:
位置:位于网络拓扑的最边缘末端
路由处理:不存储外部路由信息(4类和5类LSA),使用默认路由(0.0.0.0)代替
配置命令:在区域视图下执行stub命令
配置验证:
配置前:存在3类、4类、5类LSA
配置后:仅保留1类、2类和默认路由的3类LSA
Totally Stub区域
特性:
路由简化:进一步消除3类LSA,仅保留区域内路由和默认路由
配置方法:在ABR上使用stub no-summary命令
应用场景:当路由器无法承载大量LSA时使用,但会降低路由精确性
NSSA区域
特性:
特殊功能:允许引入外部路由但使用7类LSA而非5类LSA
转换机制:7类LSA在ABR处转换为5类LSA再传播到其他区域
配置命令:使用nssa命令
验证方法:
查看LSA数据库,确认外部路由以7类LSA形式存在
在ABR上确认7类LSA转换为5类LSA
完全NSSA区域
特性:
路由简化:在NSSA基础上进一步消除3类LSA
配置方法:使用nssa no-summary命令
与Stub区域对比:
相同点:都消除3类LSA
不同点:NSSA允许外部路由注入
3)OSPF开销调整
配置方法:
物理接口:ospf cost <1-65535>
VLAN接口:同样支持开销调整
应用场景:
路径控制:通过调整开销实现主备路径选择
注意事项:
同一链路两端开销可以不同
但建议保持对称以避免路由计算复杂
三层交换机VLAN接口开销配置与物理接口相同