eNSP排错实战:OSPF多区域配置后PC1和PC2为啥不通?手把手教你查邻居、看路由、揪出配置‘坑’
当你按照教程一步步配置完OSPF多区域网络,却发现PC1和PC2死活ping不通时,那种挫败感我太熟悉了。去年在客户现场部署时,我就因为一个区域配置的小细节折腾了大半夜。今天我们就用eNSP模拟这个经典问题,带你像网络侦探一样层层剖析,找出那个藏在配置里的"坑"。
1. 问题重现与初步诊断
先看拓扑:六台路由器(R1-R6)组成多区域OSPF网络,其中Area 0为骨干区域,Area 1和Area 2为非骨干区域。PC3和PC4在Area 0内通信正常,但Area 2内的PC1和PC2无法互通。
典型症状检查清单:
- PC1能ping通自己的网关(R6)
- PC2能ping通自己的网关(R4)
- R6和R4之间直连链路通
- OSPF邻居关系显示正常
这时候就该祭出三大诊断命令了:
<R6>display ospf peer # 查看邻居状态 <R6>display ip routing-table # 检查路由表 <R6>display ospf lsdb # 分析链路状态数据库2. 邻居状态深度分析
在R6上执行display ospf peer,输出类似:
OSPF Process 1 with Router ID 10.0.2.254 Neighbors Area 0.0.0.2 interface 10.0.26.6(GigabitEthernet0/0/0)'s neighbors Router ID: 10.0.26.2 Address: 10.0.26.2 State: Full Mode:Nbr is Master Priority: 1 DR: 10.0.26.2 BDR: 10.0.26.6 MTU: 0 Dead timer due in 32 sec Retrans timer interval: 5看起来邻居状态是Full,似乎正常。但这里有个关键细节:Area 2的邻居都在同一个非骨干区域。根据OSPF的星型拓扑原则:
所有非骨干区域必须直接与骨干区域Area 0相连,且区域间路由必须通过骨干区域转发。
3. 路由表与LSA的蛛丝马迹
在R6上查看路由表:
<R6>display ip routing-table Route Flags: R - relay, D - download to fib ------------------------------------------------------------------------------ Routing Tables: Public Destinations : 10 Routes : 10 Destination/Mask Proto Pre Cost Flags NextHop Interface 10.0.2.0/24 Direct 0 0 D 10.0.2.254 GigabitEthernet0/0/2 10.0.26.0/24 Direct 0 0 D 10.0.26.6 GigabitEthernet0/0/0 10.0.46.0/24 Direct 0 0 D 10.0.46.6 GigabitEthernet0/0/1发现问题了吗?缺少Area 0和其他区域的路由!再看LSDB:
<R6>display ospf lsdb OSPF Process 1 with Router ID 10.0.2.254 Link State Database Area: 0.0.0.2 Type LinkState ID AdvRouter Age Len Sequence Metric Router 10.0.26.2 10.0.26.2 856 48 80000005 1 Router 10.0.2.254 10.0.2.254 912 36 80000004 1 Network 10.0.26.2 10.0.26.2 856 32 80000001 0 Sum-Net 10.0.4.0 10.0.26.2 856 28 80000001 1 Sum-Net 10.0.24.0 10.0.26.2 856 28 80000001 1关键点在于:没有Type-3 LSA(区域间路由)从Area 0传递过来。这就是PC1和PC2无法通信的根源。
4. 配置错误定位与修复
根本原因是:Area 2没有通过ABR正确连接到Area 0。检查R2的配置:
[R2]display current-configuration | include ospf ospf 1 area 0.0.0.0 network 10.0.12.0 0.0.0.255 network 10.0.24.0 0.0.0.255 area 0.0.0.2 network 10.0.26.0 0.0.0.255问题出在:R2虽然同时属于Area 0和Area 2,但没有配置为有效的ABR。解决方案:
- 确保R2有接口在Area 0和Area 2
- 确认R2的Router ID稳定
- 添加缺失的网络声明
修正后的关键配置:
[R2]ospf 1 [R2-ospf-1]area 0 [R2-ospf-1-area-0.0.0.0]network 10.0.12.0 0.0.0.255 [R2-ospf-1-area-0.0.0.0]network 10.0.24.0 0.0.0.255 [R2-ospf-1-area-0.0.0.0]network 10.0.26.0 0.0.0.255 # 新增 [R2-ospf-1]area 2 [R2-ospf-1-area-0.0.0.2]network 10.0.26.0 0.0.0.2555. 验证与排错技巧总结
修复后验证步骤:
检查ABR状态:
<R2>display ospf abr-asbr OSPF Process 1 with Router ID 10.0.12.2 Routing Table to ABR and ASBR ABR Routing Table Destination Cost Area-NextHop AdvRouter 10.0.12.2 1 10.0.12.2 10.0.12.2查看跨区域路由:
<R6>display ip routing-table Destination/Mask Proto Pre Cost Flags NextHop Interface 10.0.4.0/24 OSPF 10 2 D 10.0.26.2 GE0/0/0 10.0.12.0/24 OSPF 10 2 D 10.0.26.2 GE0/0/0
排错经验分享:
- 当非骨干区域设备看不到其他区域路由时,首先检查ABR配置
display ospf peer看邻居状态只是第一步,必须结合路由表和LSDB分析- 华为设备上可以用
reset ospf process小心地重启OSPF进程,有时能解决奇怪的状态问题 - 记住这个黄金法则:所有非骨干区域必须物理或逻辑连接到Area 0