bmc_network

版本信息

项目内容
组件版本1.120.17
文档作者mkdlf
最后更新2026-04-30

1. 组件概述

1.1 组件简介

bmc_network主要负责bmc的网络通信,从两个角度保障BMC的正常网络通信:
1、配置对外网络,用户可以通过BMC配置的管理IP带外访问BMC;
2、配置对内网络,主要用于管理板与BMC节点之间,同一机框内多个BMC之间,BMC与服务器内部其他固件的网络通信。

1.2 解决什么问题

bmc_network组件主要解决网络连通性、协议兼容性、故障恢复效率等问题,致力于提升服务可用性、优化运维效率、保障安全合规以及支撑未来扩展性等。

1.3 核心功能

  • 配置IPv4

IPv4有两种方式设置
1、设置静态IPv4信息:IP、掩码、网关;
2、设置DHCP模式由DHCP服务器动态分发IPv4信息,配置成DHCP时,还可配置备份IPv4地址、掩码,当DHCP未获取到IP地址时,还可以通过备份IP访问,详情见DHCP介绍

  • 配置IPv6

IPv6地址有三种方式设置
1、设置静态IPv6信息:IP、前缀、网关;
2、设置DHCPv6模式动态分发IPv6信息,详情见DHCPv6介绍
3、通过SLAAC自动配置无状态地址。

  • 外网网口切换

BMC的网络设备通常分为两种(专用网口、NCSI网口),专用网口是BMC自身的管理网口(通常对应eth2),NCSI网口指BMC通过NCSI技术与服务器内其他网络设备实现共享的网口(通常对应eth0);这里的网口切换指的是对外网络的配置在专用网口、NCSI网口之间切换,例如从专用网口切换到NCSI网口时,eth2上的对外IP会被清除,eth0上会重新配置对外IP,外网网口切换有两种模式:
1、手动切换到指定网口;
2、设置自适应模式,自动选择优先级高且是连接状态的网口(通常专用网口优先级最高)。

  • NCSI网口添加、删除

BMC支持NCSI能力,bmc_network提供了NCSI网口的添加和删除接口,该接口由network_adapter组件调用,初始化时network_adapter识别到NCSI网口的信息后来添加NCSI网口,如果该网口通信出现异常,network_adapter再调用删除接口将网口删除。

  • 外网VLAN配置

VLAN配置分为专用网口VLAN和NCSI网口VLAN两种配置,当配置了VLAN后,BMC的网口只会处理带了对应VLAN tag的报文,相当于划分了虚拟的局域网。

  • 内网配置

BMC除了配置对外IP,还需要配置内网与服务器内部的固件网络通信,内网的配置通常是在已有的网口上划分不同的VLAN用于和不同的固件进行通信;内网相对外网配置来说,要稳定许多,可供修改的接口较少,每种机型的内网配置在对应机型的CSR中,初始化时将网口、VLAN、IP等信息设置即可。

  • 节点与管理板链路检测

在机柜环境中,BMC的节点与管理板之间还有心跳检测,若链路检测失败,外网会切换到另一条通信正常的链路保障正常通信。

  • iptables配置

1、BMC想要通过web、ssh等服务被访问,不只是需要配置基本的网口和IP,还需要配置iptables的nat转发规则实现对不同服务报文的转发,才能让服务正常工作;
2、BMC配置filter表过滤规则,只接收对应网口收到的指定IP的报文,对报文的接收来源和速率进行限制,预防泛洪攻击。

  • LLDP

1、通过接收LLDP报文,获取对端交换机的端口描述,常用于解析节点槽位号,生成节点的内网IP等;
2、支持BMC往外发送LLDP报文,其中LLDP报文的发送周期是可配置的。

  • 网口相关配置

1、网口mac配置,可通过ipmi命令修改BMC网口的mac地址,mac地址一般在装备阶段设置一次后就固化下来;
2、网口速率配置,支持配置自协商或者非自协商模式下自定义网口速率和半/全双工模式;
3、支持up/down网口,初始化时会将所有网口全部up起来,同时也提供接口up/down网口。

  • 主机名、域名、FQDN配置

设置BMC的对外主机名(Host Name)和域名(Domain Name),全称域名FQDN,外界可通过域名和主机名访问BMC。

1.4 关键术语表

术语解释
专用网口BMC自身的网络设备,通常对应环境中的eth2
NCSI网口NC-SI(Network Controller – Sideband Interface)技术,即网络控制器边带接口技术,NCSI网口指BMC通过NCSI线缆直连的网络设备,也可以理解除专用网口外所有的网口统称为NCSI网口。NCSI网口又可以分为PCIe/LOM/OCP等类型
VLANVLAN(Virtual Local Area Network)即虚拟局域网,是将一个物理的LAN在逻辑上划分成多个广播域的通信技术。每个VLAN是一个广播域,VLAN内的主机间可以直接通信,而VLAN间则不能直接互通。这样,广播报文就被限制在一个VLAN内

1.5 外部交互边界图

2. API 使用说明与示例

2.1资源协作接口概览

2.1.1 EthernetInterfaces接口说明

资源树接口:bmc.kepler.Managers.EthernetInterfaces

属性说明
属性名类型只读描述示例值/备注
EthNameString网口名称eth2
NetModeString网络模式(Fixed, Automatic)Fixed
MacString网口Mac地址22:22:22:22:22:22
IpVersionStringIP协议类型(IPv4, IPv6, IPv4AndIPv6)IPv4AndIPv6
NcsiEnableBooleanNCSI使能状态false
PortIdU8当前激活端口1
StatusBoolean该IP是否在工作状态中true
ChannelU8网口对应LAN通道号9
VLANEnableBooleanNCSI VLAN使能状态false
VLANIdU16Vlan Id0
MinVLANIdU16VLAN取值下限1
MaxVLANIdU16VLAN取值上限4094
SLAACAddressListString[]SLAAC地址--
LinkLocalAddressStringIPv6本地链路地址0:0:0:0:0:0:0:0/64
BackupIpActivatedBoolean备份IP激活状态false
DefaultFactoryIpModeString出厂默认IPv4模式(DHCP, Static)Static
DefaultFactoryIpAddrString出厂默认IPv4地址--
DefaultFactoryIpv6ModeString出厂默认IPv6模式(DHCPv6, Static)Static
DefaultFactoryIpv6AddrString出厂默认IPv6地址0:0:0:0:0:0:0:0
DefaultFactoryIpVersionString出厂默认网络模式(IPv4, IPv6, IPv4AndIPv6)IPv4AndIPv6
Ipv6DynamicRouteRAPreferredBoolean是否用RA报文替代IPv6动态路由false(默认)
MTUSizeU16以太网MTU数值(范围:576-9000)1500(默认)
方法说明
方法名功能说明请求参数返回参数/说明
GetAllPort获取所有port列表Port(Array)
SetNetworkConfig设置网络配置信息NetMode(String)、PortId(U8)、VLANEnable(Boolean)、VLANId(U16)
AddMgmtPort添加管理网口DeviceId(U8)、DevicePortId(U8)、Silkscreen(String)、EthId(U8)、Type(String)、PortId(U8)PortId(U8)
DeleteMgmtPort删除管理网口PortId(U8)
AddIptablesRule添加Iptables映射规则InterfaceName(String)、IpAddr(String)Result(Boolean)
AddIp6tablesRule添加IPv6 tables映射规则InterfaceName(String)、Ipv6Addr(String)Result(Boolean)
SetVLANConfig设置端口vlanVLANEnabled(Boolean)、VLANId(U16)、PortType(U8)Result(Boolean)
SetEthState启用/禁用BMC网口EthName(String)、EthEnabled(Boolean)Result(Boolean)
NetworkFailover双平面切换外部网络From(String)、To(String)Result(Boolean)
SetChassisLanSubNet设置内网网段ChassisLanSubNet(String)

2.1.2 Ipv4接口说明

资源树接口:bmc.kepler.Managers.EthernetInterfaces.Ipv4

属性说明

属性名类型只读取值描述
IpModeStringDHCP/StaticIPv4模式
IpAddrStringString当前主IPv4地址
BackupIpAddrStringString备份IPv4地址
SubnetMaskStringString主IPv4子网掩码
BackupSubnetMaskStringString备份IPv4掩码
DefaultGatewayStringStringIPv4默认网关

方法说明

方法名功能参数返回
SetIpMaskGateway同步设置IPv4地址、掩码、网关IpAddr, SubnetMask, DefaultGatewayIpAddr
SetIpAddr设置IPv4地址与掩码IpAddr, SubnetMaskResult(Boolean)
SetDefaultGateway单独设置网关DefaultGatewayResult(Boolean)
SetDedicatedMaintIpMask设置专用运维IP/掩码IpAddr, SubnetMaskResult(Boolean)

2.1.3 Ipv6接口说明

资源树接口:bmc.kepler.Managers.EthernetInterfaces.Ipv6

属性说明

属性名类型只读取值描述
IpModeStringDHCPv6/StaticIPv6模式
IpAddrStringString当前IPv6地址
PrefixLengthS32S32IPv6前缀长度
ScopeStringLink/Global地址范围
DefaultGatewayStringString默认IPv6网关

方法说明

方法名功能参数返回
SetIpv6PrefixGateway一步设置IPv6地址/前缀和网关IpAddr, PrefixLength, DefaultGatewayIpAddr
SetIpAddr设置IPv6地址和前缀IpAddr, PrefixLengthResult(Boolean)
SetDefaultGateway单独设置网关DefaultGatewayResult(Boolean)

2.1.4 MgmtPort接口说明

资源树接口:bmc.kepler.Managers.EthernetInterfaces.MgmtPort

属性说明

属性名类型描述
IdU8Id,从1起,新增port注册传入0
EthIdU8Eth的Id
DeviceIdU8设备ID
DevicePortIdU8设备端口Id
SilkscreenString用于Web显示的端口丝印信息
TypeString网卡类型:ExternalPCIe/Dedicated
AdaptiveFlagBoolean是否参与自适应
LinkStatusStringLink状态(Connected/Disconnected)

2.2 cli、IPMI接口使用样例

2.2.1 设置IPv4信息

cli设置IPv4静态IP、掩码、网关,-v后面依次传入四段式的IP、掩码、网关(网关可不传):

bash
ipmcset -d ipaddr -v <ipaddr> <mask> [gateway]

cli设置IPv4静态网关:

bash
ipmcset -d gateway -v <gateway>

cli设置IPv4模式为DHCP/Static:

bash
ipmcset -d ipmode -v <dhcp|static>

ipmi设置IPv4地址:

bash
ipmitool -H <BMC的IP> -I lanplus -p 623 -U <用户> -P <> -C 17 raw 0x0c 0x01 0x01 0x03 <四个字节的IP地>

ipmi设置IPv4掩码:

bash
ipmitool -H <BMC的IP> -I lanplus -p 623 -U <用户> -P <> -C 17 raw 0x0c 0x01 0x01 0x06 <四个字节的掩>

ipmi设置IPv4网关:

bash
ipmitool -H <BMC的IP> -I lanplus -p 623 -U <用户> -P <> -C 17 raw 0x0c 0x01 0x01 0x0c <四个字节的网>

ipmi设置IPv4模式,mode位置传1表示Static,传2表示DHCP:

bash
ipmitool -H <BMC的IP> -I lanplus -p 623 -U <用户> -P <> -C 17 raw 0x0c 0x01 0x01 0x04 <1字节的mode>

2.2.2 设置IPv6信息

资源树接口:bmc.kepler.Managers.EthernetInterfaces.Ipv6

cli设置IPv6静态IP、前缀、网关,-v后面依次传入IP、掩码、网关(网关可以不传):

bash
ipmcset -d ipaddr6 -v <ipaddr> <prefix> [gateway]

cli设置IPv6静态网关:

bash
ipmcset -d gateway6 -v <gateway>

cli设置IPv6模式为DHCPv6/Static:

bash
ipmcset -d ipmode6 -v <dhcp|static>

ipmi设置IPv6地址(IP地址按小端方式传入):

bash
ipmitool -H <BMC的IP> -I lanplus -p 623 -U <用户> -P <> -C 17 raw 0x0c 0x01 0x01 0xcc <3字节的厂商ID> <16字节的IPv6地>

ipmi设置IPv6前缀:

bash
ipmitool -H <BMC的IP> -I lanplus -p 623 -U <用户> -P <> -C 17 raw 0x0c 0x01 0x01 0xcd <3字节的厂商ID> <1字节的前>

ipmi设置IPv6网关(网关地址按小端方式传入):

bash
ipmitool -H <BMC的IP> -I lanplus -p 623 -U <用户> -P <> -C 17 raw 0x0c 0x01 0x01 0xce <3字节的厂商ID> <16字节的网>

ipmi设置IPv6模式,mode位置传1表示Static,传2表示DHCP:

bash
ipmitool -H <BMC的IP> -I lanplus -p 623 -U <用户> -P <> -C 17 raw 0x0c 0x01 0x01 0xd0 <3字节的厂商ID> <1字节的mode>

2.2.3 外网网口切换

cli设置网络模式,传1表示固定网口,传2表示自适应模式:

bash
ipmcset -d netmode -v <网络模>

cli切换网口(网络模式为固定模式才能切换网口):

bash
ipmcset -d activeport -v <网口类> <port id>
参数说明:
网口类型:0-专用网口 1-LOM 2-PCIe
port id: 切换到该类型网口的第几个port(port id从0开始,网口类型传0时,该参数可不传)

ipmi设置网络模式:

bash
ipmitool -H <BMC的IP> -I lanplus -p 623 -U <用户> -P <> -C 17 raw 0x0c 0x01 0x01 <3字节的厂商ID> <1字节的网络模>
参数说明:
网络模式:1-专用网口 3-自适应模式 4-PCIe (默认切换到该类型网口的第一个port)

2.2.4 外网VLAN配置

cli设置VLAN:

bash
ipmcset -d vlan -v <off | id(1~4094)> [port type]
参数说明:
VLAN使能:关闭VLAN时传off,开启VLAN时传1~4094的数字;
port type:0表示设置NCSI的VLAN,1表示设置专用网口的VLAN,可以不传,不传时默认设置NCSI的VLAN;

ipmi设置VLAN:

bash
ipmitool -H <BMC的IP> -I lanplus -p 623 -U <用户> -P <> -C 17 raw 0x30 0x93 <3字节的厂商ID> 0x5a 0x1a 0x00 0x04 0x00 <1字节的port type> <1字节的VLAN使> <2字节的VLAN id>
参数说明:
port type:0表示设置NCSI的VLAN,1表示设置专用网口的VLAN;
VLAN使能:0表示关闭,1表示使能;
VLAN id:由两个字节组成,由前一个字节的低四位和后一个字节组成12位数字

3. 组件扩展案例

3.1 扩展能力概述

不适用。

4 配置介绍

4.1 配置导入导出项

plain
NetMode:网络模式(Automatic/Fixed)
ActivePort:对外网口
IpMode:IPv4模式(DHCP/Static)
IpAddr: IPv4地址
SubnetMask:IPv4子网掩码
DefaultGateway:IPv4网关
BackupIpAddr: 备份IPv4地址
BackupSubnetMask:备份IPv4掩码
Ipv6Mode:IPv6模式(DHCPv6/Static)
Ipv6Addr:IPv6地址
Ipv6Prefix:IPv6前缀
Ipv6DefaultGateway:IPv6网关
IpVersion:IP协议(IPv4、IPv6、IPv4AndIPv6)
VlanID:NCSI VLAN id
VlanState:NCSI VLAN使能
DedicatedVlanID:专用网口VLAN id
DedicatedVlanState:专用网口VLAN使能
SLAACEnable:SLAAC使能
------------
LLDPEnable:LLDP使能
TxDelaySeconds:LLDP延迟发送时间
TxIntervalSeconds:LLDP发送周期
TxHold:LLDP发送间隔
WorkMode:LLDP工作模式,目前只支持Tx
------------
HostName:主机名
------------
DomainName:域名
------------
ChassisLan: 机框内网网段

4.2 装备定制化项

通用定制项

plain
BMCSet_ETH0_DHCPMode:IPv4是否为DHCP
BMCSet_Eth0_Ipv4:IPv4是否为Static
Custom_Eth0_Ip_Addr:IPv4地址和掩码
Custom_ipv4_gateway:IPv4网关
BMCSet_Ipv6_DHCPMode:IPv6是否为DHCPv6
BMCSet_NCSI_VLAN_ID:NCSI VLAN id
BMCSet_DEDICATED_VLAN_ID:专用网口VLAN id
BMCSet_DedicatedNCSIEnable:专用网口模式下是否使能NCSI
BMCSet_LLDPEnable:LLDP使能
BMCSet_NET_Mode:网络模式
Custom_NCSI_Port_Num:NCSI的端口号,对应NCSI网口对象的DevicePortId
BMCSet_Hostname:主机名
BMCSet_DDSN_DomainName:域名
BMCSet_IPVersion:IP协议
BMCSet_SLAACEnable:SLAAC使能
BMCSet_ChassisLan_SubNet: 机框内网网段
Custom_Ipv6_IpAddr:默认网口组上Ipv6的地址和前缀
Custom_Ipv6_Gateway:默认网口组上Ipv6的网关

4.3 多网口特性CSR配置介绍

4.3.1 网口组CSR配置

网口组CSR配置的字段为"EthGroup"。历史网口组仅有一个,由EthernetInterfaces、Ipv4、Ipv6三个资源树接口共同构成,它们由bmc_network组件自上树,不依赖CSR加载。新增网口组由EthGroup接口承载,可以通过CSR加载。新增网口组可以有多个对象,每个对象承载一组网络配置。

EthGroup的CSR配置示例如下所示:

plain
        "EthGroup_OutEthGroup1": {
            "Name": "OutEthGroup1", //网口组名字
            "GroupId": 1,           //网口组ID
            "OutType": 2,           //网口组类型(2即为对外网口)
            "ActiveEthId": 0,       //网口组对应的ethid(此处指eth0,需对应实际情况)
            "InnerNetWork": "",
            "VLANId": 0,            //网口组对应的vlanID
            "VLANEnabled": false,   //网口组对应的vlan使能
            "EthAlias": 255,
            "IpAddr":"192.168.2.102",           //网口组对应的Ipv4地址
            "BackupIpAddr": "192.168.2.102",    //备份IP地址
            "BaseIpAddr": "",
            "SubnetMask": "255.255.255.0",          //网口组对应的Ipv4子网掩码
            "BackUpSubnetMask": "255.255.255.0",    //网口组对应的备份Ipv4子网掩码
            "DefaultGateway": "192.168.2.200",      //网口组对应的Ipv4默认网关
            "IpPolicy": 0,                       
            "Status": true,                     //网口组使能
            "IpMode": "DHCP",                   //网口组对应的Ipv4模式
            "Ipv6Mode": "Static",               //网口组对应的Ipv6模式
            "Ipv6Addr": "",                     //网口组对应的Ipv6地址
            "PrefixLength": 0,                  //网口组对应的Ipv6前缀长度
            "Ipv6DefaultGateway": "",           //网口组对应的Ipv6默认网关
            "AssociatedPortType": 1,            //网口组关联的Port类型,1代表NCSI口,2代表专用口
            "Channel": 2                        //网口组对应的LAN通道号
        },

对于三网口组环境,目前可以配置两个网口组,一个用于承载NCSI口(eth0),另一个用于承载专用口(eth3),实现三网口同时使能。三网口组环境的多网口组配置可以参考如下:

plain
     "EthGroup_OutEthGroup1": {
            "Name": "OutEthGroup1",
            "GroupId": 1,
            "OutType": 2,
            "ActiveEthId": 0,
            "InnerNetWork": "",
            "VLANId": 0,
            "VLANEnabled": false,
            "EthAlias": 255,
            "IpAddr":"192.168.2.102",
            "BackupIpAddr": "192.168.2.102",
            "BaseIpAddr": "",
            "SubnetMask": "255.255.255.0",
            "BackupSubnetMask": "255.255.255.0",
            "DefaultGateway": "192.168.2.102",
            "IpPolicy": 0,
            "Status": true,
            "IpMode": "Static",
            "Ipv6Mode": "Static",
            "Ipv6Addr": "",
            "PrefixLength": 0,
            "Ipv6DefaultGateway": "",
            "AssociatedPortType": 1,
            "Channel": 2
        },
        "EthGroup_OutEthGroup2": {
            "Name": "OutEthGroup2",
            "GroupId": 2,
            "OutType": 2,
            "ActiveEthId": 3,
            "InnerNetWork": "",
            "VLANId": 0,
            "VLANEnabled": false,
            "EthAlias": 255,
            "IpAddr":"192.168.2.103",
            "BackupIpAddr": "192.168.2.103",
            "BaseIpAddr": "",
            "SubnetMask": "255.255.255.0",
            "BackUpSubnetMask": "255.255.255.0",
            "DefaultGateway": "192.168.2.103",
            "IpPolicy": 0,
            "Status": true,
            "IpMode": "Static",
            "Ipv6Mode": "Static",
            "Ipv6Addr": "",
            "PrefixLength": 0,
            "Ipv6DefaultGateway": "",
            "AssociatedPortType": 2,
            "Channel": 3
        },

4.3.2 网口组CSR配置

网口CSR配置的字段为"EthMac"。该CSR用于配置需要拉起的网口信息,包括Id,MAC等。EthMac的CSR配置示例如下所示:

双网口组环境示例:

plain
        "EthMac_Eth0": {
            "EthId": 0,                          //网口组对应的ethid(此处指eth0,需对应实际情况)
            "EthName": "eth0",                   //网口名
            "GroupId": "EthGroup0",              //网口对应的网口组
            "Mac": "20:22:01:75:BC:60",          //网口对应的MAC地址
            "MacUseEnabled": false,              //是否使能该网口(对于每个网口组,仅有一个网口需要使能,此处不使能eth0)
            "SpeedDuplexEnable": true,
            "SpeedSetting": 0,
            "DuplexSetting": 0
        },
        "EthMac_Eth2": {
            "EthId": 2,
            "EthName": "eth2",
            "GroupId": "EthGroup0",
            "Mac": "20:22:01:75:BC:60",
            "MacUseEnabled": true,              //是否使能该网口(对于每个网口组,仅有一个网口需要使能,此处使能eth2)
            "SpeedDuplexEnable": true,
            "SpeedSetting": 0,
            "DuplexSetting": 0
        }

三网口组环境示例:

plain
        "EthMac_Eth0": {
            "EthId": 0,
            "EthName": "eth0",
            "GroupId": "EthGroup0",
            "Mac": "20:22:01:75:BC:60",
            "MacUseEnabled": false,
            "SpeedDuplexEnable": true,
            "SpeedSetting": 0,
            "DuplexSetting": 0
        },
        "EthMac_Eth2": {
            "EthId": 2,
            "EthName": "eth2",
            "GroupId": "EthGroup0",
            "Mac": "20:22:01:75:BC:60",
            "MacUseEnabled": true,
            "SpeedDuplexEnable": true,
            "SpeedSetting": 0,
            "DuplexSetting": 0
        },
        "EthMac_Eth3": {
            "EthId": 3,
            "EthName": "eth3",
            "GroupId": "EthGroup0",
            "Mac": "20:22:01:75:BC:60",
            "MacUseEnabled": false,
            "SpeedDuplexEnable": true,
            "SpeedSetting": 0,
            "DuplexSetting": 0
        }

4.3.3 专用网口CSR配置

专用网口CSR配置的字段为"DedicatedPort"。该CSR用于配置专用网口信息,三网口组环境的专用网口CSR配置示例如下所示:

plain
        "DedicatedPort_Eth2": {
            "Id": 1,                         //专用网口对应的PortId(eth2固定为1)
            "EthId": 2,                      //专用网口对应的EthId
            "DeviceId": 1,                   //专用网口对应的设备ID
            "DevicePortId": 1,               //专用网口对应的设备PortID 
            "Silkscreen": "Mgmt1",           //专用网口对应的丝印
            "NcsiInitPortFlag": true,
            "VLANId": 0,                     //专用网口对应的VlanId(专用网口vlan需配置一致)
            "VLANEnabled": false,            //专用网口对应的Vlan使能
            "OriginalGroupId": 0,            //专用网口对应的默认网口组归属
            "CurrentGroupId": 0              //专用网口对应的当前网口组归属
        },
        "DedicatedPort_Eth3": {
            "Id": 2,
            "EthId": 3,
            "DeviceId": 1,
            "DevicePortId": 2,
            "Silkscreen": "Mgmt2",
            "NcsiInitPortFlag": false,
            "VLANId": 0,
            "VLANEnabled": false,
            "OriginalGroupId": 2,
            "CurrentGroupId": 0
        }

4.3.4 LAN通道CSR配置

LAN通道CSR配置的字段为"IPMIChannel",该CSR用于配置IPMI的lan通道信息,于网口组EthGroup中的”Channel“字段对应。三网口组环境的LAN通道CSR配置示例如下所示:

plain
        "IPMIChannel_LAN1": {
            "ChanType": 4,
            "Instance": 1,         //与LAN通道ID一致
            "ChanPro": 1,
            "ChannelID": 1,        //与LAN通道ID一致
            "DestAddr": 32,
            "SrcAddr": 0,
            "MedType": 4
        },
        "IPMIChannel_LAN2": {
            "ChanType": 4,
            "Instance": 2,
            "ChanPro": 1,
            "ChannelID": 2,
            "DestAddr": 32,
            "SrcAddr": 0,
            "MedType": 4
        },
        "IPMIChannel_LAN3": {
            "ChanType": 4,
            "Instance": 3,
            "ChanPro": 1,
            "ChannelID": 3,
            "DestAddr": 32,
            "SrcAddr": 0,
            "MedType": 4
        },

5. 日志说明

5.1 一键日志收集

文件路径内容说明
dump_info\AppDump\bmc_network\lldp_info.txtlldp配置信息
dump_info\AppDump\bmc_network\mdb_info.log资源树信息
dump_info\AppDump\bmc_network\network_info.txt网络配置信息

5.2 关键日志信息

日志片段日志级别含义解读建议处理动作
===== network service init =======NOTICE网络初始化
eth mac self discovery finishNOTICE自发现对象分发完成
set_ipv4_mask_gateway: ip_mode = [Static], ip_addr = [x.x.x.x], ip_submask = [x.x.x.x], ip_gateway = [x.x.x.x]NOTICErpc设置ipv4静态地址
set_ipv6_prefix_gateway: [Static], ip_addr = [xxxx], PrefixLength = [x], DefaultGateway = [xxxx]NOTICE自发现对象rpc设置ipv6静态地址分发完成
dhcp get out eth(ethx) new ipv4 info, ip: x.x.x.x, mask: x.x.x.x, gateway: x.x.x.xNOTICEDHCP获取到ipv4地址
dhcpv6 get out eth(ethx) new ipv6 info, ip: xxxx, prefix: x, gateway: xxxxNOTICEDHCPv6获取到ipv6地址

6. 问题定界指南

6.1 典型问题定界

现象描述是否为本组件问题判断依据关键证据收集方法
ssh登录bmc失败,可以ping通BMC--
ssh登录bmc失败,不能ping通BMC--
ping BMC环境或者用ssh登录BMC环境,一会通一会不通MAC地址冲突,在OS修改MAC地址后解决-

6.2 调试方法

6.2.1 开启调试日志

  • 定制互联网仓
text
##设置xx定制仓
busctl --user set-property bmc.kepler.maca /bmc/kepler/Managers/1/Package bmc.kepler.Managers.Package Customer s "xx"

##定制完互联网仓后需重启BMC生效
ipmcset -d reset

##查询当前环境定制类型
busctl --user get-property bmc.kepler.maca /bmc/kepler/Managers/1/Package bmc.kepler.Managers.Package Customer
  • 查看与删除持久化数据

由于单网口和多网口环境中持久化数据不一致,在使用多网口环境回退到单网口环境时,可能存在某些持久化数据不一致的问题,因此可以在环境内进行持久化数据的查看与清理。

持久化数据主要分为临时持久化、复位持久化、掉电持久化和永久持久化,其数据库存储路径如下:

临时持久化(TemporaryPer): /run/persistence/per_temporary.db
复位持久化(ResetPer):
/opt/bmc/pram/persistence/per_reset.db
掉电持久化(PoweroffPer):
/data/trust/persistence/per_poweroff.db
永久持久化(PermanentPer):
/dev/mmcblk0p8

  • 查看与清除持久化的命令示例
text
/usr/sbin/sqlite3 /data/trust/persistence/per_poweroff.db
//查看
select * from persist_table where table_name='t_ncsi_nc_info';
select * from persist_table where table_name='t_channel_number_mappings';
select * from persist_table where table_name='t_network_mgmtport';
select * from persist_table where table_name='t_network_ethernetInterface';
select * from persist_table where table_name='t_network_ipv4';
select * from persist_table where table_name='t_network_ipv6';
select * from persist_table where table_name='t_network_eth_group';
//删除
DELETE FROM t_update_mgmt WHERE ID = 1;
DELETE FROM persist_table WHERE table_name='t_channel_number_mappings';
DELETE FROM persist_table WHERE table_name='t_network_eth_group';
DELETE FROM persist_table WHERE table_name='t_network_mgmtport';
DELETE FROM persist_table WHERE table_name='t_network_ethernetInterface';
DELETE FROM persist_table WHERE table_name='t_ncsi_nc_info';
  • 常用的CLI命令

CLI命令分为ipmcset和ipmcget,使用CLI命令是主要关注-d、-t参数,可以参考:

text
Usage: ipmcget -d dataitem [-v value]
    -d <dataitem>                                
       ipinfo                        Get ip information                                                          
       lldpinfo                      Get LLDP information                                                   
       version                       Get openUBMC version
Usage: ipmcset  -d dataitem [-v value]      
    -d <dataitem>
       activeport                    Set EthGroup active port                                                            
       backupipaddr                  Set backup ip address                                                               
       gateway                       Set gateway                                      
       gateway6                      Set ipv6 gateway                                                 
       ipaddr                        Set ip address                                    
       ipaddr6                       Set ipv6 address                                             
       ipmode                        Set ip mode                                      
       ipmode6                       Set ipv6 mode                                    
       ipversion                     Set ip version                                          
       netmode                       Set net mode                                                                                   
       vlan                          Set sideband vlan

详细使用案例见2.2章节。

  • 查看资源树属性
text
//查看网络模块相关资源树
busctl --user tree bmc.kepler.bmc_network | egrep -v "IpmiCmds"

//查看第一个网口组资源树
busctl --user introspect bmc.kepler.bmc_network /bmc/kepler/Managers/1/EthernetInterfaces
busctl --user introspect bmc.kepler.bmc_network /bmc/kepler/Managers/1/Ipv4
busctl --user introspect bmc.kepler.bmc_network /bmc/kepler/Managers/1/Ipv6

//查看新增网口组资源树(OutEthGroup1代表第一个新增网口组)
busctl --user introspect bmc.kepler.bmc_network /bmc/kepler/Managers/1/EthernetInterfaces/EthGroup/EthGroup_OutEthGroup1_00

//查看网口资源树(最后一个数字代表网口的PortId)
busctl --user introspect bmc.kepler.bmc_network /bmc/kepler/Managers/1/EthernetInterfaces/1
  • 查看系统协议栈
text
//查看系统协议栈网口信息
ifconfig
sbin/ifconfig
//查询过滤规则,是否每个对外网口均添加
iptables -t filter -nvL
ip6tables -t filter -nvL
//查询转发规则,是否每个对外网口均添加
iptables -t nat -nvL
ip6tables -t nat -nvL

注意: 以上均配置正常则可能需要抓包处理。 可能不连通的原因:(1)局域网中存在相同的IP或MAC地址;(2)Vlan没有和交换机匹配;(3)能ping通,转发规则正常,ssh、web服务不能连通则需联系运维组件。

7. 常见问题解答

7.1 pingBMC环境或者用ssh登录bmc环境,一会通一会不通

原因解决方案
MAC地址冲突在OS修改MAC地址解决 ipmitool raw 0x30 0x90 0x44 0x02 <6字节的mac>
IP地址冲突可切换DHCP模式或修改静态IP

更多常见问题请查阅《网络管理常见问题指南》

附录

附录A 参考资料

附录B 修订记录

版本日期修订人修订内容
v1.02026-04-30mkdlf修改文档格式、补充bmc_network说明