由于OSPF(开放式最短路径优先)路由正确的加入到全局路由表,依赖于正确的OSPF路由计算,而OSPF计算路由依赖于正确的OSPF LSDB数据库信息,要建立正确的OSPF LSDB数据库则首先要确保邻居之间能够形成正确的邻接关系. OSPF路由问题的排查整体思路为:
故障问题大致分为三类:
第一类:检查OSPF邻居关系的建立问题;
第二类:检查OSPF LSA的泛洪问题,检查OSPF LSDB数据库信息;
第三类:检查OSPF路由的计算问题,检查全局路由表。
故障排查流程图:
一、OSPF邻居关系建立问题
OSPF建立邻接关系的三大条件:
1) 两邻居路由器必须在同一物理链路上。
使用show cdp neighbor命令查看CDP邻居关系。如果发现没有CDP邻接关系说明物理连接有问题,你得去查看接口状态是否为UP?是否激活接口?是否物理线路有问题?如果能看到CDP邻居关系说明物理链路没有问题。进入下一步。
2) 相连路由器都必须加入OSPF。
通过show ip protocols命令查看路由器接口是否宣告到相应区域内。
或者用debug ip ospf hello命令查看路由器哪些接口没有发HELLO包,就说明这个接口没有加入OSPF。找到问题马上更正。如果这一步也没问题,进入下一步。
3) 相连路由器的6大HELLO包参数是否一样?
a) Network/mask
b) Hello/dead interval
c) Network type
d) Area-id
e) Area-type
f) Authentication-type
有时路由器之间无法建立起邻接关系,这个时候就无法传递LSA,也就无法传递路由,生成路由表,所以在这里分析一下OSPF无法建立起来邻接关系的几个原因:
a) 检查接口网段是否一致。接口两端掩码的不一致,broadcasst和nbma接口应该在同一网段。链路两端能ping通。并且区域ID,区域类型应一致。如果网络类型是P2P,则掩码不一致也可以建立邻居关系,对于MA网络这个时候会出现能ping通但是无法建立邻居。
b) 检查接口优先级是否有非0,broadcast和NBMA需要保证至少接口优先级是非0的,保证能选举出DR,否则只能到2-way状态。使用display ospf interface查