【问题求助】BMC网络相关日志刷屏

// 此模板仅供参考,如果不适用可以修改

问题描述

BMC网络相关日志刷屏,频率间隔1分多钟

环境信息

  • 软件版本:OpenUBMC2512 LTS SP1

unknown_service NOTICE: prefix.lua(99): eth2: parse and save prefix info, router_addr: fe80::529a:88ff:fe03:6306, prefix_len: 64

开源未找到对应代码,需要确认是否异常

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

总结

项目 内容
问题本质 BMC因持续接收IPv6 RA报文而频繁记录前缀信息
是否异常 功能正常,但日志冗余
根本原因 上游设备高频发送RA + BMC无日志去重机制
推荐解决方式 调整RA发送间隔 + 启用日志限频
版本建议 升级至已支持日志限频的OpenUBMC版本(≥25Q4)
点击此处查看详细分析解答

BMC网络相关日志刷屏问题分析

问题描述

用户反馈在使用 OpenUBMC2512 LTS SP1 版本的系统中,BMC相关日志出现周期性刷屏现象,频率约为每1分钟多次。主要日志内容为:

unknown service NOTICE: prefix.lua(99): eth2: parse and save prefix info, router addr: fe80::529a:88ff:fe03:6306, prefix_len: 64

该日志由 prefix.lua 脚本触发,涉及对 eth2 接口的IPv6前缀信息解析与保存操作。


日志分析

主要日志特征

字段 内容
服务名称 unknown service
日志级别 NOTICE
脚本路径 prefix.lua(99)
操作对象 eth2 网络接口
行为 解析并保存IPv6路由前缀信息
路由器地址 fe80::529a:88ff:fe03:6306(链路本地地址)
前缀长度 64

日志显示,系统每隔约 30秒至1分钟 会重复执行一次对 eth2 接口的IPv6前缀信息处理。

此外,伴随出现以下信息:

  • 系统持续上报 get_power_state: power OFF,表明主机处于关机状态。
  • 存在MCTP通信超时日志:mctp ERROR: request timeout,可能与设备间通信不稳定有关。

根本原因分析

1. prefix.lua 日志来源定位

根据知识库内容,bmc_network 是负责管理BMC网络配置的核心组件,其功能包括:

  • IPv4/IPv6配置管理
  • DHCPv6与静态IP处理
  • LLDP信息解析
  • 接口资源配置与状态监控

prefix.lua 文件的行为正属于 IPv6前缀处理逻辑,极有可能是 bmc_network 组件的一部分或其依赖模块。

尽管当前版本未找到开源代码对应实现,但从日志行为可判断:

bmc_network 组件正在周期性监听IPv6路由器通告(Router Advertisement, RA)报文,一旦收到RA消息,即调用 prefix.lua 解析并记录新的网络前缀信息。


2. 为何频繁触发?

结合网络环境分析,该现象的根本原因是:

上游网络设备(如交换机或路由器)持续发送IPv6 RA报文,导致BMC不断接收到相同的前缀信息(fe80::/64),从而反复触发 parse and save prefix info 日志。

此行为在以下场景中常见:

  • 网络中启用SLAAC(无状态地址自动配置)
  • IPv6网关配置了短周期RA发送间隔(如默认600秒内频繁发送)
  • 存在网络环路或异常设备广播RA

由于BMC在系统关机状态下仍保持运行,它会持续监听并响应这些网络事件,造成日志高频输出。


3. “unknown service” 的含义

日志中显示 unknown service 而非 bmc_network,可能原因如下:

  • prefix.lua 脚本未正确注册服务名
  • 日志上报时上下文丢失
  • 某些日志框架未将Lua脚本归属到具体服务

此为显示问题,不影响实际行为。


4. 是否为异常?

:white_check_mark: 该日志本身不是错误,而是 正常功能行为

:warning: 但若:

  • 日志频率过高(<30秒)
  • 前缀信息未变化却频繁记录
  • 占用大量磁盘空间或影响性能

则属于 日志冗余问题,建议进行优化。


解决方案建议

:white_check_mark: 方案一:调整RA报文发送频率(推荐)

操作位置:上游网络设备(交换机/路由器)

操作建议

# 示例(Cisco-like配置)
interface vlan 100
 ipv6 nd ra interval 300  # 将RA间隔设为300秒

目的:减少不必要的RA广播,从根本上降低BMC处理频率。


:white_check_mark: 方案二:增加日志去重或限频机制

参考已有案例(见参考文档#1),类似LLDP日志刷屏问题已通过日志限频机制解决。

建议在 prefix.lua 或日志系统中加入如下控制:

-- 示例逻辑
if last_log_time and (os.time() - last_log_time) < 60 then
    return -- 60秒内不重复记录相同前缀
end

已在 25Q4版本中实现日志限频功能,建议升级至后续支持版本。


:white_check_mark: 方案三:确认是否需启用IPv6 RA处理

若业务不需要动态IPv6地址分配,可考虑:

  • 关闭BMC接口的IPv6 RA监听功能
  • 配置为静态IPv6地址模式

:warning: 注意:此操作可能影响远程管理能力,请评估网络策略后再执行。


:white_check_mark: 方案四:排查网络拓扑是否存在异常

检查是否存在:

  • 网络环路
  • 异常设备发送RA
  • 重复网关配置

使用工具如 tcpdump 抓包分析:

tcpdump -i eth2 icmp6 && ndp -a  # Linux环境查看NDP表

确认是否仅有一个合法RA源。


总结

项目 内容
问题本质 BMC因持续接收IPv6 RA报文而频繁记录前缀信息
是否异常 功能正常,但日志冗余
根本原因 上游设备高频发送RA + BMC无日志去重机制
推荐解决方式 调整RA发送间隔 + 启用日志限频
版本建议 升级至已支持日志限频的OpenUBMC版本(≥25Q4)

关联实体参考(来自Knowledge Graph)

  • bmc_network:负责网络配置管理的核心组件
  • prefix.lua:处理IPv6前缀信息的脚本(疑似属于 bmc_network
  • dmesg:可用于查看底层网络事件(如RA接收)
  • app.log:可能包含更详细的日志上下文信息
  • Mctp Engine Lua:同属后台任务脚本,存在类似日志机制设计模式

:pushpin: 最终建议:协调网络管理员优化RA配置,并推动BMC侧实施日志频率控制机制以提升系统可观测性与稳定性。

该日志为例行任务获取网关前缀信息的日志,非异常,闭源在研版本已优化为info级别。

麻烦帮忙确认下具体的修复版本,以及LTS版本是否解决了

330版本上线修复方案

LTS版本已经解决