
OSPF配置完成后,两台路由器始终没有建立邻居,应该从哪里查起?先在两端执行display ospf peer,确认是没有邻居记录,还是停在Init、2-Way、ExStart等状态。不同状态对应的故障方向不同,直接删除配置重做,往往既浪费时间,也找不到真正原因。

如果邻居表为空,优先检查接口、OSPF使能和Hello报文;如果停在ExStart或Exchange,重点检查数据库描述(DD)报文交互;如果显示2-Way,则要先判断它是不是广播网络中的正常状态。下面以华为VRP设备和OSPFv2为例,按实际排障顺序说明。
一、OSPF邻居建不起来,先检查什么?
先不要改配置,分别在两端查看邻居、OSPF接口和进程信息:
display ospf peerdisplay ospf 1 interfacedisplay ospf interface verbosedisplay ospf 1 brief这里的1表示本机OSPF进程号,实际环境请使用对应进程号。display ospf peer重点看对端Router ID、邻居State和所在接口;display ospf 1 interface确认互联接口是否真正参与OSPF;display ospf interface verbose查看网络类型、MTU和Hello/Dead定时器;display ospf 1 brief可核对Router ID及区域信息。
拿到状态后,可以先用这张表确定下一步:
当前现象或状态优先排查什么没有邻居记录接口Up状态、IP连通性、OSPF是否在接口运行、静默接口及报文过滤Down或反复消失Hello报文接收、链路是否波动、定时器和邻居Down原因Init本端收到对端Hello,但对端可能未正常收到本端Hello2-Way先看网络类型及DR/BDR角色,可能无需修复ExStart、ExchangeDD报文协商、MTU检查、Router ID及丢包情况LoadingLSA请求与同步、重传、链路质量及MTU相关问题
判断的关键不是状态名称本身,而是它是否长期停留。邻居刚建立时短暂经过ExStart、Exchange、Loading属于正常过程;应连续观察,而不是看到一次中间状态就认定故障。
二、没有邻居记录,或者停在Down、Init,怎么排查?
1. 先确认接口和IP通信没有问题两端接口的物理状态、协议状态应正常Up,互联IP地址及掩码要符合链路规划。先执行display interface查看链路状态、错误包与丢包,再从两端分别Ping对端互联IP。
如果Ping不通,先检查物理连接、VLAN、三层接口及中间设备。如果能Ping通,也不能直接认定OSPF报文一定能通:普通IP连通性正常,不代表OSPF协议报文没有被ACL或中间设备限制。
2. 检查互联接口是否真正运行OSPF用display ospf 1 interface确认互联接口出现在OSPF接口列表中,再检查相关配置:
display current-configuration configuration ospfdisplay current-configuration interface GigabitEthernet 0/0/0如果通过OSPF进程下的network命令使能接口,注意它匹配的是本机接口IP地址,不是随意填写一段准备学习的远端网段。还要确认接口没有被配置为silent-interface,否则无法通过该接口建立邻居。
若接口没有进入预期区域,或处于静默状态,应先在确认网络设计后修正对应配置,不必把整个OSPF进程删除重建。
3. 两端参数要对照,不要只看一台设备接口和OSPF都已启用,仍没有邻居时,重点比对以下项目:
- Router ID:两端不能相同,同一个OSPF域内也应保持唯一。
- 区域:互联接口的Area ID应一致,Stub、NSSA等区域类型也要匹配。
- 认证:如启用了认证,认证方式、密钥以及相关标识需正确匹配;注意接口认证和区域认证的配置位置。
- 定时器:核对Hello与Dead间隔,不要仅凭两端都能发送Hello就认为参数正确。
- 网络类型与地址:检查Broadcast、P2P、NBMA等类型设置,以及互联IP地址、掩码;NBMA网络还需要注意邻居指定配置。
可执行下面的命令检查OSPF错误计数,并间隔约10秒重复查看;如果某类错误计数持续增加,再针对性比较两端参数:
display ospf error interface GigabitEthernet 0/0/04. 卡在Init,重点查Hello是否单向可达Init意味着本端已经收到对端Hello,但尚未在收到的Hello邻居列表中看到自己的Router ID。此时不要只检查本端是否能收到包,还要检查对端能否收到本端发出的Hello。如果中间经过交换机或安全设备,应排查相关转发、过滤与组播处理。
还有一种容易忽略的情况:同一个广播网段接入三台或更多路由器,却把接口都强制设置为P2P网络类型。这种设计可能造成邻居停在Init,需重新核对网络类型和拓扑,而不是盲目增加重试次数。
三、邻居停在2-Way、ExStart、Exchange或Loading,分别怎么处理?
2-Way不一定是故障,先判断DR/BDR角色OSPF的“邻居关系”和“邻接关系”不是一回事。广播网络中,两个DROther之间保持2-Way可能完全正常,它们通常分别与DR、BDR建立完整邻接。
可结合display ospf peer和display ospf 1 interface查看DR、BDR及接口优先级。如果本端和对端都是DROther,且网络已有正常的DR/BDR,就不要仅为了把2-Way变成Full而随意修改优先级。若广播网络所有参与选举的接口优先级都为0,无法选出DR,则需要按拓扑设计调整。
ExStart、Exchange:检查DD协商和MTUExStart主要涉及DD报文主从协商,Exchange则是数据库摘要交换阶段。长时间停在这里,应先核对Router ID是否冲突、链路是否丢包,再检查接口MTU及DD报文的MTU检查设置。
MTU不同,并不意味着所有华为OSPF邻居都会必然卡在ExStart。华为设备在接口启用ospf mtu-enable时才对收到的DD报文进行相应MTU检查,因此要先查看两端是否启用了该命令,再比较实际接口MTU。跨厂商互联时,还需要考虑对端设备的默认检查行为。
display current-configuration interface GigabitEthernet 0/0/0display ospf interface GigabitEthernet 0/0/0display interface GigabitEthernet 0/0/0如果确认MTU检查导致DD报文不被接受,应按照链路设计统一两端MTU,同时确认中间传输路径能够承载该值;不要为了让邻居上线而随意关闭检查或直接把MTU调大。
Loading:检查LSA同步,不要反复重启进程进入Loading说明已经完成DD信息交换,正在请求和获取缺少的LSA。大型网络的LSA较多时,这个阶段可能需要一定时间;如果长期无法进入Full,应继续检查报文重传、链路质量、MTU相关问题,以及是否存在异常的LSA同步。
如果邻居曾经Full,但现在反复Down,排查方向又不同。可以执行:
display ospf 1 peer last-nbr-downdisplay logbuffer优先看最近一次Down记录中的Immediate Reason和Primary Reason。例如提示Hello未收到,重点追查收包和链路;如果显示BFD会话Down,则应同步检查BFD状态,而不是只调整OSPF定时器。
四、华为OSPF邻居建立失败:两个实验排障示例
下面用两种常见配置差异说明排查方法。示例假设两台设备之间的三层接口已正常Up;接口名和实际设备软件版本不同的环境,应以设备支持的命令为准。
场景一:IP能互通,但Area ID不一致R1和R2通过GE0/0/0直连,IP分别为10.10.12.1/30和10.10.12.2/30;Router ID分别为1.1.1.1和2.2.2.2。两端OSPF进程号均为1,但互联接口被加入了不同区域:
设备互联接口IPOSPF区域R110.10.12.1/30Area 0R210.10.12.2/30Area 1
这种情况下,即使互联IP能Ping通,也不能正常建立OSPF邻居。先在两端查看display ospf 1 interface和OSPF配置,确认区域差异。如果网络设计要求两台设备在Area 0建立邻居,可在R2上删除该互联接口对应的Area 1宣告,再加入Area 0:
system-viewospf 1 area 0.0.0.1 undo network 10.10.12.2 0.0.0.0 quit area 0.0.0.0 network 10.10.12.2 0.0.0.0return这里的0.0.0.0是精确匹配接口IP的通配符掩码。变更后再次执行display ospf peer检查邻居状态。若区域已经一致仍未建立,再继续核对认证、Hello/Dead和网络类型,不能把所有故障都归因于Area ID。
场景二:长时间停在ExStart,检查DD报文MTU假设R1和R2已在同一OSPF区域,Router ID不同,接口正常通信,但两端接口都配置了ospf mtu-enable,一端MTU为1500,另一端为1400。此时可能因为DD报文MTU检查无法顺利完成数据库同步。
按顺序在两端检查接口配置、OSPF接口MTU及邻居状态:
display ospf peerdisplay current-configuration interface GigabitEthernet 0/0/0display ospf interface GigabitEthernet 0/0/0确认是MTU配置不一致后,结合整条链路和业务要求选择共同支持的MTU值,再观察邻居能否由ExStart、Exchange继续进入Full。这个示例用于说明定位过程,不同华为设备型号、版本或仿真环境,故障表现可能不同,不能仅凭看到ExStart就直接改MTU。
五、邻居恢复后,如何确认OSPF真正正常?
看到Full只是第一步,还应确认邻接关系稳定、预期路由确实产生,并且业务流量能够转发。可以按下面三个层次验证:
- 看邻居:再次执行display ospf peer,确认需要形成完整邻接的对端达到Full,且没有频繁Down;广播网络中的正常DROther邻居不必全部是Full。
- 看路由:执行display ospf routing和display ip routing-table,确认目标前缀是否被OSPF计算、是否进入设备路由表。若邻居已Full却缺少路由,应另查LSA、路由宣告、过滤和路由优选。
- 看业务:针对真正需要访问的远端网段测试Ping、路径和业务连通性,排除回程路由、ACL等与邻居建立无关的问题。
如果邻居仍然反复中断,保留两端display ospf peer、display ospf interface verbose、错误计数和邻居Down日志,按照时间线比对。生产网络中不要把reset ospf process当作常规排障第一步,它会重建邻居并可能影响现网路由。
OSPF邻居排障最有效的顺序是:先确认接口是否参与OSPF,再看Hello能否双向到达,接着根据邻居状态检查DD和LSA交互,最后验证路由与业务。这样比照着故障原因清单逐项重配,更容易定位问题,也更适合在实验和真实网络中复用。













