【iTestSmart 1.0.39】SNMP查询风扇整体状态,认证错误。

一、测试环境
硬件:920BS
BMC: 25.09
二、问题描述
执行”SNMP查询风扇整体状态“用例,报如下错误:


如果将认证改为”SHA256“,snmpget命令就能够正确执行。
这台机器的BMC也是1711的,为什么脚本里没有用”SHA256“呢?

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

:white_check_mark: 总结与建议

项目 内容
问题根源 测试脚本默认使用 SHA 认证算法,而目标设备(Hi1711 + master_v3)的实际配置为 SHA256,导致认证失败。
错误类型 并非密码错误,而是 认证算法不匹配,因安全机制限制统一提示为“Authentication failure”。
根本对策 更新测试脚本,在 Hi1711 平台且运行于 master_v3 等版本时,默认启用 -a SHA256
长期建议 引入动态查询机制,通过接口获取 AuthenticationProtocol 值,实现自适应认证算法选择,提升兼容性与可维护性。

建议立即行动:修改 iTestSmart 测试用例逻辑,将 SHA 替换为 SHA256 作为 Hi1711 平台默认值,并加入版本兼容性注释。

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

问题分析:SNMP 查询风扇状态时认证失败

一、问题描述

在执行“SNMP查询风扇整体状态”用例时,snmpget 命令返回 “Authentication failure (incorrect password, community or key)” 错误,提示认证失败。
经测试发现:

  • 使用 -a SHA(即 SHA1)认证算法时,命令失败;
  • 将认证算法改为 -a SHA256 后,命令可成功执行。

系统环境信息如下:

  • 硬件型号:920BS
  • BMC 芯片:Hi1711(属于 1711 系列)
  • 当前 BMC 版本:openUBMC 5.****(构建时间为 2026-02-02)
  • ipmcget -d version 输出显示为 openUBMC 架构(与 openUBMC 生态一致)

测试脚本中默认使用 SHA(即 SHA1),但实际设备要求 SHA256,导致认证失败。


二、根本原因分析

1. 1711 系列 BMC 默认认证算法已升级为 SHA256

根据提供的日志信息:

###特性:部分1711机型的SNMP默认认证算法为SHA256,支持版本:['release_650', 'master', 'master_3.5_0', 'master_v3', ...],当前版本:master_v3###

表明:

  • master_v3 等特定版本分支中,SNMPv3 默认认证算法已从 SHA(SHA1)升级为 SHA256
  • 这是 openUBMC 项目为提升安全性而进行的安全策略增强;
  • 脚本当前未识别该变更,仍使用旧版默认值 SHA,导致认证失败。

:white_check_mark: 结论:脚本配置与系统实际安全策略不匹配是问题核心。

2. BMC 中的 SNMP 认证机制依赖于 AuthenticationProtocol 设置

根据知识库内容:

  • AuthenticationProtocolSnmpUser 对象的一个关键属性,用于定义 SNMPv3 用户的认证算法。
  • 支持的算法包括:CommunityString(v1/v2c)、SHA256(v3)等。
  • 在 openUBMC 中,此设置由 IAM(身份访问管理)模块控制,并通过 SnmpService 组件进行管理。
  • 即使用户名和密码正确,若客户端使用的认证算法与 BMC 中 AuthenticationProtocol 配置不一致,将直接返回“Authentication failure”

此外,由于安全设计原则“避免信息泄露”,BMC 不会区分“密码错误”或“算法错误”,统一返回“Authentication failure”,以防止暴力探测。


三、为何脚本未自动使用 SHA256?

尽管系统属于 1711 系列且运行在 master_v3 版本,理论上应启用 SHA256,但测试脚本中的默认算法仍为 SHA(SHA1),可能原因如下:

原因 说明
1. 脚本未动态获取设备的 AuthenticationProtocol 当前脚本使用硬编码的 -a SHA,未通过查询设备实际配置来确定认证算法。理想做法是先调用 GetSnmpUser 或类似方法获取当前用户配置。
2. 设备版本识别逻辑不完整 虽然检测到 master_v3 分支,但脚本中判断逻辑可能存在遗漏,未能覆盖所有适用场景(如构建号、SDK 版本等),导致未触发 SHA256 切换。
3. ipmcget -d version 中缺少明确的 SNMPPolicy 标识 当前版本信息仅显示 Active openUBMC VersionCPU: Hi1711,无明确字段指示 SNMP 安全策略变更,不利于自动化识别。

四、解决方案建议

:white_check_mark: 1. 修改测试脚本,优先使用 SHA256 作为默认认证算法

针对 master_v3 及以上版本、Hi1711 芯片平台,将默认认证算法从 -a SHA 改为 -a SHA256

snmpget -t 10 -v3 -l priv -a SHA256 -x AES \
        -u Administrator -A Admin@9000 -X Admin@9000 \
        192.168.40.231:161 \
        1.3.6.1.4.1.2011.2.235.1.1.8.50.1.4.1.1
:white_check_mark: 2. 实现动态检测机制(推荐增强)

在执行命令前,通过查询设备当前 SNMP 用户配置,动态决定使用哪种认证算法:

  • 方法一:通过 IPMI/Redfish 查询 SNMP 用户
    若系统支持,可通过 Redfish 接口 GET /redfish/v1/AccountService/Accounts/{id} 或专用 SNMP 配置接口获取 AuthenticationProtocol

  • 方法二:使用辅助命令探测
    先尝试 snmpget 使用 SHA256;失败后再降级尝试 SHA,并记录告警。

  • 方法三:解析 SnmpService 配置
    在本地配置表中维护不同 BMC 版本对应的默认算法映射表,例如:

    snmp_algo_map = {
        "Hi1711": {
            "branches": ["master_v3", "master", "tce_25_0"],
            "default_auth_proto": "SHA256"
        }
    }
    
:white_check_mark: 3. 提升日志可读性,避免误判

当前错误日志包含大量 MIB 加载失败信息(如 Cannot find module (IF-MIB)),会干扰问题排查。建议:

  • 预安装标准 MIB 包;
  • 或添加 -m ALL 参数抑制警告;
  • 或在日志处理中过滤非关键信息。

五、参考依据(来自上下文)

来源 内容摘要
Document Chunk 1 AuthenticationProtocol 控制 SNMP 用户认证算法,SHA256 是合法且推荐选项;PAM 初始化失败也会导致统一返回“Authentication failure”。
Search Result #2 SNMPv3 使用 securityAuthProto 指定认证算法,由“鉴权密码+鉴权算法”生成 AuthenticationKey;算法变化直接影响密钥生成结果。
Search Result #3 account 组件管理 SNMP 用户,包括认证与加密属性,说明用户配置与算法绑定。
KG Entity: AuthenticationProtocol 定义为“读写属性”,支持配置如 SHA256 等算法,应可通过接口查询。

:white_check_mark: 总结与建议

项目 内容
问题根源 测试脚本默认使用 SHA 认证算法,而目标设备(Hi1711 + master_v3)的实际配置为 SHA256,导致认证失败。
错误类型 并非密码错误,而是 认证算法不匹配,因安全机制限制统一提示为“Authentication failure”。
根本对策 更新测试脚本,在 Hi1711 平台且运行于 master_v3 等版本时,默认启用 -a SHA256
长期建议 引入动态查询机制,通过接口获取 AuthenticationProtocol 值,实现自适应认证算法选择,提升兼容性与可维护性。

建议立即行动:修改 iTestSmart 测试用例逻辑,将 SHA 替换为 SHA256 作为 Hi1711 平台默认值,并加入版本兼容性注释。

相关链接:

  1. 【SNMP】snmpget接口报错:认证失败,但密码是正确的
  2. 风扇型号信息是否有明确的定义标准或文档支撑信息查询和校验
  3. 【iTestSmart 1.0.36】SNMP V1连接功能异常团体名验证测试
  4. 【redfish】Sensors资源批量获取性能不满足散热要求
  5. openUBMC

您好。当前该机型的默认认证算法未在配置文件中进行配置,内部脚本已适配,将在下个月版本带出,敬请期待!

提供下错误日志吧

SNMP_Fan_008_FUNC_1405
10-49-37_202602031049268712018517155953188865.txt (2.5 MB)

您好,这日志打开是乱码了。还有日志吗?

还有version信息的截图能不能提供更加完整的截图,方便我们这边定位下

应该是需要显示文件后缀,然后把文件后缀改成.rar,就可以解压缩了。

好的,改后缀后已成功解压。当前已定位出根因,下次外发版本将解决该问题