锐捷S7910E 配置丢失&主备配置同步机制

一、故障现象描述

某客户使用我司S7910E作为汇聚交换机,6.5进行主备倒换测试后出现OSPFV3配置丢失情况。
设备型号:RG-S7910E
设备版本:S7900_RGOS 12.4(1)B0501P1T1, Release(08210716)
网络拓扑VSU架构,问题出现本机上,与其他网络设备无关联

二、故障排查分析

  1. 接到客户方报障后,针对变更前后配置比对,明确对应丢失配置均为OSPFV3进程15的配置。
图一:前后配置比对
  1. 捞取对应客户方主备机日志以及底层记录,结合客户方提供的操作日志,梳理出对应故障期间时间线以及操作指令。(show cli record/show security-log detail all/日志、一键信息收集)
[00:35:41] 执行 wr 保存配置
[00:36:05] 执行 redundancy reload shelf 1 复位1机
[00:44:06] 执行 redundancy reload shelf 2 复位2机
[01:38:01] 执行 show ipv6 ospf neighbor ---发现IPV6有问题
[01:43:21] 执行 show run 核查配置
[02:01:04] 执行 show startup-config 核查启机配置
[02:17:39] 执行 ipv6 router ospf 15 vrf DCN-M和接口下的ipv6 ospf 15 area 0进行业务恢复
  1. 基于点2收集的信息分析,无配置删除操作&无异常的日志判断,非客户方技术人员操作或者环境因素触发配置丢失。
  2. 客户方针对现网多台多组设备进行核查,发现存在多组设备存在备机OSPFv3配置丢失情况(备机show run核查),明确非单点偶发故障,而是必现问题。(客户方主备show run对比,还发现存在很多组件主备机的配置不一致的情况,引申出主备机配置同步机制,具体参照根因说明主备机原理部分解析)
  3. 根据主备机配置同步原理,使用客户现网异常设备的/tmp/vsd/0/mng/cli/running-config.new文件比对主机config.text,界定问题不是出在主备配置同步机制上,而是OSPFv3配置在历史配置过程中备机因为什么逻辑刷入失败。
  4. 内部根据客户方操作步骤进行1:1内部环境尝试多次进行主备切换复现,并未复现故障现象,结合问题是必现问题初步判断问题并非是主备切换操作导致,而是备机一开始状态就存在异常,进一步与客户沟通了解背景信息:
① 客户方上次倒换时间为2023年4月14日0点
② OSPFV3配置是2023年11月24日0点配置
明确对应OSPFV3属于两次倒换测试间隔内新增配置,结合其他未倒换设备情况(也存在备机OSPFV3配置丢失情况),基本明确对应问题不是此次主备倒换导致的配置丢失,而是OSPFV3配置刷入时,OSPFv3因为某些内部组件因素导致备机配置刷入失败。
  1. 基于客户方现场异常环境中进一步捞取信息分析,发现当前备机OSPFv3组件内部是单协议VRF,并非主机配置上的多协议VRF,导致备机OSPFv3配置无法同步。分析客户的11月份割接文档中配置脚本,可以明确是单协议VRF删除,紧接着配置多协议VRF情况下,内部组件通信交互异常,导致备机OSPFv3组件内部保持单协议VRF的情况。
图二:nsm协议栈情况(可以看到为单协议栈)
图三:客户方11.24配置变更内容
  1. 与研发核对主备机协议栈VRF配置同步路径,明确对应备机协议栈同步路径:CLI --> 主机NET --> 主机LSM --> 备机LSM --> 备机NSM --> OSPF,针对对应路径核查对应备机LSM组件,对应LSM为多协议栈VRF,明确备机LSM --> 备机NSM中间存在信息丢失导致协议栈信息同步异常
LSM(Linklayer Service Module):接口管理模块是RGOS的核心,负责接口信息组织维护,并向其它模块提供接口信息查询服务及接口事件通告服务。
NSM(Network Service Model):主要的功能是作为路由协议和数据平面的一个中间层,提供协议的VRF,接口的服务,协议的生成的RIB路由也在NSM这边汇总,NSM优选后下发数据平面。
图四:备机LSM组件协议栈状态
  1. 结合客户方曾在2023年4月14日0点时间节点上进行过主从倒换行为,内部环境模拟割接前环境,在执行主从倒换之后,根据割接文档中配置导入内部环境后,成功模拟出故障现象。
  2. 根据内部环境模拟的步骤以及现象结合客户方的操作进行分析,故障产生原因如下(下面将故障中设备命名为1机:当前主机,2机:当前备机):
  1. 步骤一、在 1机上存在单协议VRF DCN-M,在客户方2023年4月14日进行主从倒换,执行 redundancy reload shelf 1 复位1机:2机升级为主机,当1机复位完成后,角色变为备机,2机与1机之间NSM业务会进行路由静态配置信息的同步,同步的消息包含所有VRF下的静态路由限制的配置信息,其中VRF DCN-M的静态路由限制的默认配置也被错误同步到了1机。执行 redundancy reload shelf 2 复位2机,1机恢复成主机,当2机复位完成就绪后,角色变为备机,同样1机与2机之间NSM业务会进行路由静态配置信息的同步,同步的消息包含所有VRF下的静态路由限制的配置信息,其中VRF DCN-M的静态路由限制的默认配置也被错误同步到了2机。
  1. 步骤二、主从倒换后,客户方在2023年11月24日部署IPv6配置,根据割接文档中配置的操作,在1机上执行单协议VRF DCN-M的删除,1机上在删除单协议VRF DCN-M时,会将VRF DCN-M消息同步2机上,在2机 NSM在上删除VRF DCN-M时,由于VRF DCN-M存在 1机通告的静态路由限制的配置的信息(1机在主从同步中的静态路由限制的默认配置信息),2机上 NSM内部业务处理异常,无法将单协议VRF DCN-M的删除。
步骤三、 1机上执行多协议VRF DCN-M的添加,1机将多协议VRF DCN-M同步此时的备机2机,由于NSM业务上此时2机上的单协议VRF DCN-M未删除,NSM业务在处理VRF DCN-M添加时,由于VRF name相同导致多协议VRF DCN-M添加失败,VRF DCN-M还是单协议VRF的状态。
步骤四、OSPFv3的VRF信息是从NSM业务获取,1机上NSM业务上VRF DCN-M是多协议VRF,OSPFv3上VRF DCN-M同样是多协议VRF,2机上NSM业务上VRF DCN-M是单协议VRF,导致OSPFv3上VRF DCN-M同样是单协议VRF,无法支持IPv6,配置失败,2机上OSPFv3配置丢失。
步骤五、此场景下,若是进行倒换测试,2机升主,就会表现为OSPFv3配置丢失行为(虽然主备倒换协议框架还会重刷一遍配置,但是由于单协议栈,OSPFv3配置刷入失败)。即客户方感知的执行redundancy reload shelf 1 复位1机,2机升为主机后,OSPFv3配置丢失故障问题。
  1. 现场问题逻辑说明:主机1机,备机2机,主备倒换过程中2机由于点9逻辑对应OSPFV3配置已经未配置成功,切换成主后配置就已经丢失,后续再进行一次倒换是按2机配置进行同步,所以再次切换回1机为主也出现配置丢失的情况。

三、故障根因说明

1、OSPFV3配置丢失根因:
由于NSM组件存在软件BUG,当进行主备切换叠加VRF协议栈变动场景下,会错误的将主机静态路由限制的默认配置同步备机,导致对应备机NSM组件vrf无法删除变为多协议栈,vrf DCN-M在OSPFv3内部属于单协议栈(主机为多协议栈VRF,单协议栈VRF仅支持IPV4),主备切换OSPFv3命令刷入时vrf DCN-M不具备IPV6属性配置刷入失败,导致配置未生效,对外表现为配置丢失行为。
2、主备配置同步机制说明逻辑如下:
① 主备机并不是所有配置都需要实时同步生效,不需要实时同步的业务,由配置管理框架将配置文件同步到备机【/tmp/vsd/0/mng/cli/running-config.new】,主备切换的时候再从该文件统一通过框架刷命令生效。
② 备机上show running只能查看部分有实时同步配置的业务(如ospf等)是否准确,可以算是一个中间临时过度文件,并非主备切换后的最终运行文件
③ 主机是使用show run配置作为备机/tmp/vsd/0/mng/cli/running-config.new源文件。
以下情况会触发主备配置文件同步【/tmp/vsd/0/mng/cli/running-config.new】:
1)设备启机刷完配置同步一次
2) 执行命令退出config模式
3)定时一个小时同步一次
4)WR保存配置进行配置同步
③ 查看命令:
debug support
execute diagnose-cmd more /tmp/vsd/0/mng/cli/running-config.new
exit

四、故障解决方案

1、VRF协议栈同步异常规避方案:
方案一(针对还未实施V6改造场景):在执行单协议VRF DCN-M删除与执行多协议VRF DCN-M配置之间,增加一次单协议VRF DCN-M的重建与删除(重建删除相当于避免单协议叠加主备切换场景)。
原执行配置(以下仅针对VRF创建删除配置进行说明,其他正常的接口加入VRF等割接配置省略):
no ip vrf DCN-M
vrf definition DCN-M
规避方案配置:
no ip vrf DCN-M
ip vrf DCN-M
no ip vrf DCN-M
vrf definition DCN-M
方案二(针对已出现故障问题场景):备机明确OSPFV3配置丢失的情况下,执行redundancy reload shelf x(show ver slot明确)复位备机,可以触发对应VRF协议栈重新同步 。
2、彻底解决方案:
我司S7910E最新的S7900_RGOS 12.5(4)B0501P1质量版本已解决此问题,可通过升级此版本彻底解决。

五、经验总结

  1. 协议栈主机同步路径:CLI --> 主机NET --> 主机LSM --> 主机NSM --> OSPF
备机同步路径:CLI --> 主机NET --> 主机LSM --> 备机LSM --> 备机NSM--> OSPF
  1. 主备机配置同步不是通过读取config.text启动,而是切换后框架使用/tmp/vsd/0/mng/cli/running-config.new刷入一次配置作为设备运行配置。
阅读剩余
THE END