OSPF 基础:区域、邻居与 LSA
High Contrast
Dark Mode
Light Mode
Sepia
Forest
2 min read333 words

OSPF 基础:区域、邻居与 LSA

OSPF(Open Shortest Path First)是企业内网最常用的动态路由协议。它让所有路由器共享完整的网络拓扑图,各自独立计算最短路径——网络变化时自动收敛,无需手动更新路由表。


OSPF vs RIP:为什么选 OSPF

特性              OSPF                RIP
──────────────────────────────────────────────────────────────
算法              Dijkstra(最短路径)  Bellman-Ford(距离向量)
度量标准          带宽(Cost)         跳数(最大15跳)
收敛速度          快(秒级)           慢(分钟级)
可扩展性          大型网络             最多15跳(小型网络)
无环路保证        有(完整拓扑图)      Holddown/Split Horizon
认证支持          MD5/SHA              可选
标准              开放(RFC 2328)     开放(RFC 2453)

选 OSPF:企业内网 10+ 路由器,需要快速收敛,有大型层次化网络设计需求。


OSPF 核心概念

区域(Area)

OSPF 将网络分成区域(Area),减少 LSA 泛洪范围:
Area 0(骨干区域,必须存在)
┌─────────────────────┐
│  ABR  ──  ABR  ──  ABR  │
└──┬──────────────────┬──┘
│                  │
Area 1               Area 2
┌──────────┐          ┌──────────┐
│ 分支路由器│          │ 分支路由器│
└──────────┘          └──────────┘
Area 0:骨干区域,所有区域间流量必须经过骨干区域
ABR:区域边界路由器,连接不同区域
ASBR:自治系统边界路由器,引入外部路由(如静态路由、BGP)

Router-ID

每台 OSPF 路由器需要一个唯一 ID(32位,格式像 IP):
优先选择手动配置的 Router-ID
其次选择最高的回环接口 IP
最后选择最高的活跃物理接口 IP
最佳实践:手动配置 Router-ID(用回环接口 IP)
router ospf 1
router-id 1.1.1.1

OSPF 邻居建立过程

sequenceDiagram participant R1 participant R2 Note over R1,R2: 初始状态:Down R1->>R2: Hello(每10秒,含Router-ID/Area/网段/参数) Note over R2: 收到Hello → Init状态 R2->>R1: Hello(含R1的Router-ID在邻居列表中) Note over R1: 看到自己的ID → 2-Way状态(双向通信建立) Note over R1,R2: 选举DR/BDR(广播网络) R1->>R2: DBD(数据库描述,交换LSA摘要) R2->>R1: DBD Note over R1,R2: ExStart → Exchange状态 R1->>R2: LSR(请求缺少的LSA) R2->>R1: LSU(发送完整LSA) R1->>R2: LSAck(确认收到) Note over R1,R2: Loading状态 Note over R1,R2: 数据库同步完成 → Full状态(邻接建立)

邻居状态速记:Down → Init → 2-Way → ExStart → Exchange → Loading → Full


Hello 报文参数(必须匹配才能建立邻居)

必须相同的参数:
✅ Area ID(区域号)
✅ Hello/Dead 间隔(默认 10s/40s,广播网络)
✅ 认证类型和密码
✅ MTU 大小(DBD 交换阶段)
✅ 子网掩码(广播网络)
可以不同的参数:
✓ Router-ID(不同就对了)
✓ 优先级(用于DR选举)

DR/BDR 选举(广播网络)

广播网络(以太网)上,OSPF 选举 DR/BDR 减少邻接数量:
没有 DR/BDR(5台路由器,需要 10 条邻接):
R1 ─ R2 ─ R3 ─ R4 ─ R5
├─────────────────────┤  全网状
有 DR/BDR(同样5台,只需4+4条邻接):
所有路由器只与 DR 和 BDR 建立完全邻接(Full)
其他路由器之间保持 2-Way
DR 选举规则:
优先级最高(0-255,默认1)成为 DR
优先级相同 → Router-ID 最大的成为 DR
优先级 = 0 → 不参与选举
注意:DR/BDR 选举后不抢占(除非 DR 失效后 BDR 升为 DR,重新选 BDR)

LSA 类型速览

LSA 类型    名称              产生者         范围
─────────────────────────────────────────────────────────────
Type 1      Router LSA        每台路由器      本区域内
Type 2      Network LSA       DR             本区域内
Type 3      Summary LSA       ABR            其他区域(区域间路由)
Type 4      ASBR Summary      ABR            通告 ASBR 位置
Type 5      AS External LSA   ASBR           整个 OSPF 域(外部路由)
Type 7      NSSA External     NSSA 区域的 ASBR  NSSA 区域内
日常用到最多的:Type 1(路由器本身)、Type 3(区域间路由)、Type 5(外部路由如默认路由)

Linux 配置 OSPF(FRRouting)

# 安装 FRRouting(支持 OSPF/BGP/OSPF6 等)
apt install frr
# 启用 OSPF 守护进程
sed -i 's/ospfd=no/ospfd=yes/' /etc/frr/daemons
systemctl restart frr
# 进入 FRR 命令行
vtysh
# 配置 OSPF
Router# configure terminal
Router(config)# router ospf
Router(config-router)# router-id 1.1.1.1
Router(config-router)# network 10.0.10.0/24 area 0
Router(config-router)# network 10.0.20.0/24 area 0
Router(config-router)# passive-interface eth0    # 不向 eth0 发 Hello(连终端设备的接口)
Router(config-router)# exit
# 查看 OSPF 邻居
Router# show ip ospf neighbor
# 查看 OSPF 路由
Router# show ip ospf route
# 查看 LSDB(链路状态数据库)
Router# show ip ospf database

CCNA 对应考点

考纲位置:Domain 3.4 — Configure and verify single area OSPFv2

高频考题: - OSPF 邻居建立的必要条件(Hello 参数匹配) - DR/BDR 选举规则(优先级 → Router-ID) - OSPF Cost 计算(100 Mbps = Cost 1,1 Gbps = Cost 1,需要调整 reference-bandwidth) - Area 0 的重要性(所有区域间路由必须经过骨干区域)


下一节OSPF 配置与排错——OSPF 邻居建立了,但路由为什么还是不通?系统性排查 OSPF 故障的方法。