一、OSPF 基础概念
1.1 静态路由与动态路由对比
特性 |
静态路由 |
动态路由 |
配置复杂度 |
简单(手动配置) |
复杂(需协议配置) |
资源消耗 |
低(不占用带宽、CPU、内存) |
高(需路由计算和信息交换) |
适应性 |
固定路径,无法自动调整 |
自动适应拓扑变化 |
安全性 |
高(无协议暴露,避免路由欺骗) |
低(可能受协议漏洞攻击) |
适用规模 |
小型 / 稳定网络 |
中大型 / 复杂网络 |
1.2 OSPF 基本概念
- 定义:开放式最短路径优先协议(Open Shortest Path First),基于链路状态算法(LS)的内部网关协议(IGP)。
- 特点:
- 支持无类路由(携带子网掩码)。
- 使用组播地址
224.0.0.5
(所有 OSPF 设备)和 224.0.0.6
(DR/BDR)。
- 结构化部署(区域划分)减少 LSA 泛洪。
- 区域划分原则:
- 必须存在区域边界路由器(ABR)。
- 采用星形拓扑,骨干区域(Area 0)连接所有非骨干区域。
1.3 OSPF 数据包类型
- Hello 包:发现、建立和保活邻居关系,携带 RID、区域 ID、Hello 时间等参数。
- DBD 包:链路状态数据库描述包,携带 LSDB 摘要信息。
- LSR 包:链路状态请求包,请求缺失的 LSA。
- LSU 包:链路状态更新包,携带具体的 LSA 信息。
- LSACK 包:链路状态确认包,确保 LSA 传输可靠性。
1.4 OSPF 状态机
- Down:初始状态,未收到 Hello 包。
- Init:收到 Hello 包,但未包含自身 RID。
- 2-Way:双向通信建立,完成邻居关系(条件匹配开始)。
- Exstart:主从关系选举,确定 DBD 包发送顺序。
- Exchange:交换 DBD 包,同步 LSDB 摘要。
- Loading:请求并接收缺失的 LSA。
- Full:邻接关系建立完成,LSDB 同步。
1.5 OSPF 基础配置
# 启动 OSPF 进程并指定 RID
[router] ospf 1 router-id 1.1.1.1
# 宣告接口到区域
[router-ospf-1] area 0.0.0.0
[router-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255 # 范围宣告
[router-ospf-1-area-0.0.0.0] network 192.168.1.1 0.0.0.0 # 精准宣告
二、OSPF 拓展配置
2.1 认证配置
2.1.1 接口认证
# 在接口下配置 MD5 认证
[router-GigabitEthernet0/0/0] ospf authentication-mode md5 1 cipher 123456
2.1.2 区域认证
# 在区域下配置 MD5 认证(批量应用到区域内所有接口)
[router-ospf-1-area-0.0.0.0] authentication-mode md5 1 cipher 123456
2.1.3 虚链路认证
# 在虚链路所在区域配置认证
[router-ospf-1-area-0.0.0.2] vlink-peer 5.5.5.5 md5 1 cipher 123456
2.2 加快收敛
2.2.1 计时器修改
# 修改 Hello 时间(Dead 时间自动变为 4 倍)
[router-GigabitEthernet0/0/0] ospf timer hello 2
# 单独修改 Dead 时间
[router-GigabitEthernet0/0/0] ospf timer dead 10
# 修改重传时间
[router-GigabitEthernet0/0/0] ospf timer retransmit 3
# 修改传输延迟
[router-GigabitEthernet0/0/0] ospf trans-delay 2
2.3 沉默接口
# 配置接口不发送 OSPF 报文(如连接 PC 的接口)
[router-ospf-1] silent-interface GigabitEthernet 0/0/1
2.4 缺省路由
2.4.1 手工下发缺省路由
# 普通下发(自身存在缺省路由时生效)
[router-ospf-1] default-route-advertise
# 强制下发(无论自身是否存在缺省路由)
[router-ospf-1] default-route-advertise always
2.4.2 特殊区域产生缺省路由
区域类型 |
产生条件 |
LSA 类型 |
发布者 |
普通区域 |
手工配置 default-route-advertise |
Type 5 |
ASBR |
Stub / Totally Stub |
自动产生 |
Type 3 |
ABR |
NSSA / Totally NSSA |
手工配置或自动产生 |
Type 7 / Type 3 |
ASBR / ABR |
2.5 路由过滤
2.5.1 域间路由过滤(3 类 LSA)
# 在 ABR 上拒绝发布特定网段的 3 类 LSA
[router-ospf-1-area-0.0.0.1] abr-summary 1.1.1.1 255.255.255.255 not-advertise
2.5.2 域外路由过滤(5/7 类 LSA)
# 在 ASBR 上拒绝引入特定网段的 5 类 LSA
[router-ospf-1] asbr-summary 10.0.0.0 255.255.255.0 not-advertise
2.6 路由控制(干涉选路)
2.6.1 修改协议优先级
# 修改 OSPF 协议优先级(仅本地生效)
[router-ospf-1] preference 70
# 修改 OSPF 域外路由优先级
[router-ospf-1] preference ase 10
2.6.2 修改开销(Cost)
# 修改接口真实带宽(不推荐)
[router-GigabitEthernet0/0/0] speed 10
# 修改参考带宽(所有设备需同步配置)
[router-ospf-1] bandwidth-reference 2000
# 直接修改接口 Cost
[router-GigabitEthernet0/0/0] ospf cost 10
三、OSPF 优化措施
3.1 路由汇总
3.1.1 域间路由汇总(3 类 LSA)
# 在 ABR 上配置域间路由汇总
[router-ospf-1-area-0.0.0.2] abr-summary 172.16.0.0 255.255.252.0
3.1.2 域外路由汇总(5/7 类 LSA)
# 在 ASBR 上配置域外路由汇总
[router-ospf-1] asbr-summary 172.16.0.0 255.255.254.0
3.2 特殊区域优化
3.2.1 Stub 区域
3.2.2 Totally Stub 区域
3.2.3 NSSA 区域
3.2.4 Totally NSSA 区域
四、OSPF 选路规则
4.1 路由优先级
- 域内路由(1/2 类 LSA):优先级最高。
- 域间路由(3 类 LSA):优先级次之。
- 域外路由(5/7 类 LSA):优先级最低。
4.2 域内 / 域间路由选路
- 比较到达目标网段的总开销(Cost),选择开销小的路径;开销相同则负载均衡。
4.3 域外路由选路
4.3.1 类型 1(Type 1)
- 总开销 = 本地到 ASBR 的开销 + 种子度量值。
- 选路时比较总开销,优先选择开销小的路径。
4.3.2 类型 2(Type 2)
- 总开销 = 种子度量值(默认优先级低于 Type 1)。
- 选路时先比较种子度量值,再比较到达 ASBR 的开销。
4.3.3 配置示例
# 重发布时指定开销类型为 Type 1
[router-ospf-1] import-route rip 1 type 1
五、OSPF 不规则区域处理
5.1 不规则区域类型
- 远离骨干的非骨干区域:非骨干区域未直接连接到 Area 0。
- 不连续骨干:骨干区域被分割为多个部分。
5.2 解决方案
5.2.1 虚链路(V-Link)
5.2.2 多进程双向重发布
六、LSA 详解
6.1 LSA 类型
类型 |
名称 |
作用 |
发布者 |
泛洪范围 |
1 |
Router LSA |
区域内拓扑信息 |
所有 OSPF 设备 |
本区域 |
2 |
Network LSA |
广播 / NBMA 网络中的拓扑信息 |
DR |
本区域 |
3 |
Sum-Net LSA |
域间路由信息 |
ABR |
其他区域 |
4 |
Sum-Asbr LSA |
指向 ASBR 的路由信息 |
ABR |
其他区域 |
5 |
AS-Extern LSA |
域外路由信息 |
ASBR |
整个 OSPF 域 |
7 |
NSSA LSA |
NSSA 区域的域外路由信息 |
ASBR |
NSSA 区域 |
6.2 LSA 头部字段
- Type:LSA 类型。
- LinkState ID:标识 LSA 的唯一标识符(根据类型不同含义不同)。
- AdvRouter:通告路由器的 RID。
- Age:LSA 老化时间(默认 1800 秒,最大 3600 秒)。
- Sequence:序列号,用于判断 LSA 新旧(范围
0X80000001 ~ 0X7FFFFFFE
)。
- Checksum:校验和,确保 LSA 完整性。
6.3 LSA 刷新机制
- 当序列号达到最大值(
0X7FFFFFFE
)时,LSA 老化时间设为 3600 秒,之后重新生成序列号从 0X80000001
开始的新 LSA。
七、常用查看命令
# 查看 OSPF 邻居信息
[router] display ospf peer
[router] display ospf peer brief
# 查看 OSPF 链路状态数据库
[router] display ospf lsdb
[router] display ospf lsdb router 1.1.1.1 # 查看特定 Router LSA
# 查看 OSPF 虚链路
[router] display ospf vlink
# 查看 OSPF 路由表
[router] display ip routing-table protocol osp