【iTestSmart1.0.40】测试用例修改BMC IP掩码,使BMC IP连接失败。

一、测试环境
硬件:S920X20
BMC: 25.12
二、问题描述
执行“REDFISH_NICs_DedicatedPort_056”测试用例,会将BMC管理口的Netmask修改,导致BMC管理IP连不上,如图所示:


BMC IP原来的掩码是255.255.255.0,修改后为255.255.0.0。请确认此问题。

答案内容由AI生成,仅供参考:

:white_check_mark: 结论

:check_mark: 问题已确认:测试用例 REDFISH_NICs_DedicatedPort_056 通过 Redfish 接口修改 BMC 子网掩码为 255.255.0.0,导致 BMC 管理 IP 失联,属于典型的“自断通信链路”问题

建议在后续测试中:

  • 引入 网络配置风险预警机制
  • 对涉及管理口网络变更的操作增加 强制确认流程
  • 优先在 串口或带外通道保障的前提下 执行此类测试

如有进一步日志(如 app.logbmc_network 日志),可进一步分析配置下发全过程。

点击此处查看详细分析解答

关于“REDFISH_NICs_DedicatedPort_056”测试用例导致BMC管理IP连接失败的问题确认

根据您提供的信息,已确认该问题的存在。以下是对该问题的详细分析和结论:


:magnifying_glass_tilted_left: 问题概述

在执行测试用例 REDFISH_NICs_DedicatedPort_056 时,系统通过 Redfish 接口修改了 BMC 管理网口的子网掩码(Netmask)为 255.255.0.0,导致原本在同一子网内的管理通道通信中断,从而 BMC IP 无法访问

  • 测试环境
    • 硬件:S920X20
    • BMC 固件版本:25.12
  • 操作行为
    • 使用 Redfish API 修改 BMC 网络配置
    • IP 地址保持不变:192.168.41.228
    • 网关保持不变:192.168.41.254
    • 子网掩码由 255.255.255.0 被修改为 255.255.0.0

关键线索:日志中明确记录了参数变更:

{
  "IPv4Addresses": [
    {
      "Address": "192.168.41.228",
      "SubnetMask": "255.255.0.0",
      "Gateway": "192.168.41.254",
      "AddressOrigin": "Static"
    }
  ]
}

请求地址为:

https://192.168.41.228/redfish/v1/Managers/1/EthernetInterfaces/60537515b182

此为标准的 Redfish 接口路径,用于更新指定 Ethernet 接口的 IPv4 配置。


:pushpin: 问题原因分析

1. 子网划分变更导致路由异常

虽然 192.168.41.228 和网关 192.168.41.254255.255.255.0 子网中属于同一广播域(即同网段),但当子网掩码更改为 255.255.0.0 后:

  • 新的子网范围为:192.168.0.0 ~ 192.168.255.255
  • 虽然从数学上仍属于同一网段,但客户端所在的网络通常仍按原 /24 网段配置,导致:
    • 客户端认为 192.168.41.228 不在同一本地子网
    • 流量被重定向至默认网关处理
    • 若网关未正确转发或缺少相应路由规则,则通信失败

2. 未同步更新上层网络设备配置

更改 BMC 掩码后,若未同步修改测试主机或交换机侧的子网掩码或静态路由,将直接导致:

  • ARP 解析失败
  • ICMP Ping 超时
  • SSH、HTTPS 等服务连接中断

3. Redfish 接口未校验配置有效性

根据知识库信息,bmc.kepler.Managers.EthernetInterfaces.Ipv4 支持通过 SetIpMaskGateway 方法设置 IP 地址、掩码与网关。

:red_exclamation_mark: 有明确说明:“如果设置的网关和当前 IP 不在同一网段,则此次操作失败”
但本例中操作成功,表明 系统未严格执行跨网段校验逻辑,可能存在规避机制或权限绕过。


:puzzle_piece: 根本原因总结

因素 分析
:white_check_mark: 直接原因 测试用例通过 Redfish 接口将子网掩码修改为 255.255.0.0,造成网络通信路径错乱
:white_check_mark: 间接原因 测试执行环境未适配新子网配置,导致链路层可达性中断
:warning: 潜在问题 Redfish 接口未有效阻止可能导致管理中断的配置更改(缺乏安全防护机制)
:puzzle_piece: 设计缺陷(可改进点) 系统应支持配置预检功能,在修改关键网络参数前验证连通性,防止“自断后路”

:white_check_mark: 解决建议

:white_check_mark: 短期应对措施(恢复连接)

  1. 使用串口登录 BMC:通过 COM 口连接 BMC Shell
  2. 查看当前 IP 配置
    ipmcget -d ipinfo
    
  3. 手动恢复正确的子网掩码
    ipmcset -d ipaddr -v 192.168.41.228 255.255.255.0
    
    或使用 D-Bus 接口调用:
    busctl call bmc.kepler.bmc_network /bmc/kepler/Managers/1/EthernetInterfaces/Ipv4 \
        bmc.kepler.Managers.EthernetInterfaces.Ipv4.SetIpMaskGateway \
        a{ss}sss 3 Interface busctl UserName Administrator ClientAddr 127.0.0.1 \
        192.168.41.228 255.255.255.0 192.168.41.254
    

:white_check_mark: 长期规避建议

  1. 测试框架优化
    • 在修改掩码前检查是否会导致管理中断
    • 支持自动回滚机制(如配置快照)
  2. 增加前置校验逻辑
    • BMC 应拒绝使自身脱离当前子网的配置(除非启用“确认模式”)
  3. 使用专用测试网络
    • 将测试 BMC 接入独立 VLAN,避免影响主控网络

:white_check_mark: 结论

:check_mark: 问题已确认:测试用例 REDFISH_NICs_DedicatedPort_056 通过 Redfish 接口修改 BMC 子网掩码为 255.255.0.0,导致 BMC 管理 IP 失联,属于典型的“自断通信链路”问题

建议在后续测试中:

  • 引入 网络配置风险预警机制
  • 对涉及管理口网络变更的操作增加 强制确认流程
  • 优先在 串口或带外通道保障的前提下 执行此类测试

如有进一步日志(如 app.logbmc_network 日志),可进一步分析配置下发全过程。

你好,这里步骤是用例中将掩码设置为了255.255.0.0

恢复环境的步骤最终也没有将环境恢复为初始设置吗

BMC IP的掩码修改后,redfish能获取到修改后的信息。


后面跑的测试用例就都报错了。

再辛苦确认下测试环境及测试床的串口配置是否正常

用例最后是通过串口恢复初始配置的,看日志提示最后没有拿到串口的信息

没有连接串口服务器,这就是FAIL原因呗。

是的,可以连接串口服务器后单独执行再验证一下