OSPF邻居无法建立排错之华为防火墙对接华三思科路由器 3/3

一.通用优先排查思路:
- 优先查物理连通性
2.IP 配置
3.确认能收发到彼此OSPF协商报文(防火墙的话放行安全策略,路由器的话相互Ping通)
4.OSPF 基础参数
1、ROUTER ID不能相同;
2、HELLO时间必须一致;
3、DEAD时间必须一致;
4、区域ID必须相同;
5、认证必须相同;
6、STUB标志位必须相同;
7、MTU不匹配;
8、*OSPF网络类型,这点可能影响的是路由传递
5.善用display ospf error迅速定位故障
二.从OSPF邻居“状态机”出发针对性的逐一检查
状态机:
Down→Init:收到首个Hello包但未包含自身Router ID,后面收到Hello包含自己的Router ID 之后就变为2-way
2-Way:双向通信确认,广播网络选举DR/BDR的基准状态,选举完成后DR-Other和DR建立邻居关系,DR-Othter之间停留在2-way (先比DR优先级、再比Router ID)
Exstart:通过空DD报文协商主从关系(Router ID高者为主)
Exchange:交换数据库描述信息,同步LSDB摘要。
Loading:请求并加载详细信息,完成LSDB全量同步。
Full:邻接关系建立完成,进入SPF计算阶段

无法显示OSPF邻居
可能原因:未开启OSPF进程,相应接口未network,Router-ID冲突
排查思路:
在用户视图下执行display ospf interface命令,查看Interface字段,检查对应的接口是否被成功使能
如果对应的接口没有使能到OSPF进程,请在OSPF进程中执行network
邻居状态一直是Init(已经收到邻居的Hello报文,检查自身发送的OSPF报文是否发送到邻居,区域ID不匹配)
可能原因:对端设备收不到本端发送的Hello报文(自身【防火墙】及链路上的安全策略、ACL过滤OSPF报文)
排查思路:
对端设备收不到本端发送的Hello报文,此时请排查链路和设备故障,有条件可分别在两端debug 查看报文OSPF Hello报文收发情况,或者镜像之后wirkshak抓包。
首先本端ping对端接口地址,如果是防火墙的话,或者中间有部署透明防火墙检查防火墙自身安全策略或者透明防火墙安全策略,或中间二层交换机的ACL(交换机镜像抓包)
检查两端区域ID
邻居状态一直是2-Way(广播网络停留在选举DR/BDR)
可能原因:错误配置DR优先级,广播网络中DR-Other之间的正常状态,OSPF网络类型不匹配
排查思路:
display ospf interfac 查看dr-priority 数值,广播网络中的所有OSPF接口不能全是0,0标识不参与选举,越大越优先
如果本接口地址和邻居地址(Address字段) 都不等于DR字段或BDR字段的值,说明该OSPF邻居与本设备都是DROther,邻居关系保持在2-way是正常的
检查OSPF网络类型配置,保持两端一直(如果只是两个路由器互联的以太网(默认是广播),建议两端都设置为P2P【P2P具有高效性与简便性:无需 DR/BDR 选举,简化流程;自动发现邻居,减少配置工作量(OSPF 组播(目标地址 224.0.0.5))】;邻居故障检测快,收敛速度高( Hello 报文间隔默认仅为10 秒、死亡时间 40 秒);
邻居状态一直是Exstart(一直在进行DD协商,但无法进行DD同步,主从关系协商无法完成)
可能原因:超大报文包无法正常收发, MTU值配置不同,Router ID冲突,OSPF认证不通过
排查思路:
Ping 1500 大包是否能ping通,查看两端MTU配置,检查Router ID,如果启用了OSPF认证,检查OSPF认证是否通过
