OSPF 配置全攻略:从基础原理到实战演练
OSPF 配置全攻略:从基础原理到实战演练
前言
肝文不易,点个免费的赞和关注,有错误的地方请指出,看个人主页有惊喜。 作者:神的孩子都在歌唱
OSPF(Open Shortest Path First,开放最短路径优先) 是一种非常重要的 动态路由协议,他是一个内部网关协议 (Interior Gateway protocol, IGP),用于在 单一自治系统 (Autonomous System , AS) 内决策路由 。 适合小型,中型,较大规模的网络。
与 RIP(路由信息协议)相比,OSPF 具有 更快的收敛速度、更高的扩展性和更精确的路由计算能力。它基于 链路状态(Link-State) 运行,使用 Dijkstra 最短路径优先(SPF)算法 计算最优路径,并通过 区域(Area)划分 提高网络可扩展性。
一. OSPF 协议概述
1.1 OSPF 的核心特点
✅ 基于链路状态数据库(LSDB):每个 OSPF 路由器都会维护整个自治系统的拓扑信息,而不是像 RIP 仅存储下一跳信息。 ✅ 采用 SPF(最短路径优先)算法:确保数据包始终走最优路径,避免 RIP 那样的跳数限制问题。 ✅ 支持 VLSM 和 CIDR:相比 RIP,OSPF 可以使用 可变长度子网掩码(VLSM),提高地址利用率。 ✅ 收敛速度快:当网络拓扑发生变化时,OSPF 只会更新变化部分,而不是像 RIP 那样定期广播整个路由表。 ✅ 支持区域(Area)划分:可以将大型 OSPF 网络划分为多个 区域,减少路由器的计算和存储负担,提高可扩展性。 ✅ 支持多路径负载均衡:可以同时使用多条路径进行数据转发,提高带宽利用率。
1.2 OSPF 的工作原理
OSPF 通过 五种不同类型的数据包(Hello、DBD、LSR、LSU、LSAck) 进行邻居发现、链路状态更新和路由计算,具体过程如下:
1️⃣ 邻居发现(Hello 报文)
- • OSPF 路由器通过 Hello 报文 在网络上发现邻居,并建立 OSPF 邻接关系。
2️⃣ 建立邻接关系(DBD、LSR、LSU、LSAck)
- • 交换 数据库描述报文(DBD),了解彼此的拓扑数据库。
- • 通过 链路状态请求(LSR) 和 链路状态更新(LSU) 交换完整的 LSDB 信息。
- • 使用 链路状态确认(LSAck) 确认更新信息是否正确。
3️⃣ 计算最优路径(Dijkstra SPF 算法)
- • 每个 OSPF 路由器都会运行 SPF 算法 计算最优路径,并更新本地路由表。
4️⃣ 链路状态更新(LSU 触发式更新)
- • 当拓扑发生变化时,OSPF 只会传播受影响部分的更新,而不会周期性广播整个路由表。
二. OSPF 典型拓扑示例
为了更好地理解 OSPF,我们使用 华为 ENSP 搭建一个简单的 OSPF 网络拓扑:
需要网络拓扑文件 可关注公众号 获取
设备 | 接口 | IP 地址 | 子网掩码 |
---|---|---|---|
R1 | G0/0/0 | 10.1.1.1 | 255.255.255.0 |
R1 | G0/0/1 | 10.1.2.1 | 255.255.255.0 |
R2 | G0/0/0 | 10.1.1.2 | 255.255.255.0 |
R2 | G0/0/1 | 192.168.2.1 | 255.255.255.0 |
R3 | G0/0/0 | 10.1.2.2 | 255.255.255.0 |
R4 | G0/0/0 | 192.168.2.2 | 255.255.255.0 |
OSPF相关命令
命令 | 作用 |
---|---|
ospf [进程号] | 进入 OSPF 进程,例如 ospf 1 |
area [区域号] | 配置 OSPF 区域,例如 area 0 |
network [网络地址] [反掩码] | 将接口划入 OSPF,例如 network 10.1.1.0 0.0.0.255 |
display ospf peer | 查看OSPF邻居关系 |
display ospf routing | 查看OSPF的路由信息 |
三. OSPF 配置步骤
3.1 启用 OSPF 并进入 OSPF 进程
在 R1、R2、R3 上分别执行:
代码语言:javascript代码运行次数:0运行复制<Huawei> system-view
[Huawei] sysname R1 # 修改设备名称
[R1] ospf 1 # 启动 OSPF 进程 1
3.2 配置 OSPF 网络区域
在各个路由器上添加对应网络到 OSPF:
代码语言:javascript代码运行次数:0运行复制[R1] interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0] ip address 10.1.1.1 255.255.255.0 # 配置接口IP
[R1] interface GigabitEthernet 0/0/1
[R1-GigabitEthernet0/0/0] ip address 10.1.2.1 255.255.255.0 # 配置接口IP
[R1] ospf 1
[R1-ospf-1] area 0
[R1-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255 # 将接口划入 OSPF
[R1-ospf-1] area 1
[R1-ospf-1-area-0.0.0.1] network 10.1.2.0 0.0.0.255
神唱小知识: 配置完成后可以通过display ospf routing
查看
对于 R2 和 R3和R4,执行类似命令:
代码语言:javascript代码运行次数:0运行复制[R2] ospf 1
[R2-ospf-1] area 0
[R2-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[R2] ospf 1
[R2-ospf-1] area 2
[R2-ospf-1-area-0.0.0.2]network 192.168.2.0 0.0.0.255
[R3] ospf 1
[R3-ospf-1] area 1
[R3-ospf-1-area-0.0.0.1] network 10.1.2.0 0.0.0.255
[R4] ospf 1
[R4-ospf-1] area 2
[R4-ospf-1-area-0.0.0.2] network 192.168.2.0 0.0.0.255
好啦,接下来就是 验收阶段 了。
- 1. 我们先来看看R1的路由表,已经学到了全部路由
- 2. 测试 OSPF 互通 : 在 R1 上 PING R4 的 192.168.2.2
正常连通,说明 OSPF 配置成功!
发布评论