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等类型 |
| VLAN | VLAN(Virtual Local Area Network)即虚拟局域网,是将一个物理的LAN在逻辑上划分成多个广播域的通信技术。每个VLAN是一个广播域,VLAN内的主机间可以直接通信,而VLAN间则不能直接互通。这样,广播报文就被限制在一个VLAN内 |
1.5 外部交互边界图
2. API 使用说明与示例
2.1资源协作接口概览
2.1.1 EthernetInterfaces接口说明
资源树接口:bmc.kepler.Managers.EthernetInterfaces
属性说明
| 属性名 | 类型 | 只读 | 描述 | 示例值/备注 |
|---|---|---|---|---|
| EthName | String | 是 | 网口名称 | eth2 |
| NetMode | String | 否 | 网络模式(Fixed, Automatic) | Fixed |
| Mac | String | 是 | 网口Mac地址 | 22:22:22:22:22:22 |
| IpVersion | String | 否 | IP协议类型(IPv4, IPv6, IPv4AndIPv6) | IPv4AndIPv6 |
| NcsiEnable | Boolean | 是 | NCSI使能状态 | false |
| PortId | U8 | 是 | 当前激活端口 | 1 |
| Status | Boolean | 是 | 该IP是否在工作状态中 | true |
| Channel | U8 | 否 | 网口对应LAN通道号 | 9 |
| VLANEnable | Boolean | 是 | NCSI VLAN使能状态 | false |
| VLANId | U16 | 是 | Vlan Id | 0 |
| MinVLANId | U16 | 是 | VLAN取值下限 | 1 |
| MaxVLANId | U16 | 是 | VLAN取值上限 | 4094 |
| SLAACAddressList | String[] | 是 | SLAAC地址 | -- |
| LinkLocalAddress | String | 是 | IPv6本地链路地址 | 0:0:0:0:0:0:0:0/64 |
| BackupIpActivated | Boolean | 是 | 备份IP激活状态 | false |
| DefaultFactoryIpMode | String | 是 | 出厂默认IPv4模式(DHCP, Static) | Static |
| DefaultFactoryIpAddr | String | 是 | 出厂默认IPv4地址 | -- |
| DefaultFactoryIpv6Mode | String | 是 | 出厂默认IPv6模式(DHCPv6, Static) | Static |
| DefaultFactoryIpv6Addr | String | 是 | 出厂默认IPv6地址 | 0:0:0:0:0:0:0:0 |
| DefaultFactoryIpVersion | String | 是 | 出厂默认网络模式(IPv4, IPv6, IPv4AndIPv6) | IPv4AndIPv6 |
| Ipv6DynamicRouteRAPreferred | Boolean | 否 | 是否用RA报文替代IPv6动态路由 | false(默认) |
| MTUSize | U16 | 否 | 以太网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 | 设置端口vlan | VLANEnabled(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
属性说明
| 属性名 | 类型 | 只读 | 取值 | 描述 |
|---|---|---|---|---|
| IpMode | String | 否 | DHCP/Static | IPv4模式 |
| IpAddr | String | 是 | String | 当前主IPv4地址 |
| BackupIpAddr | String | 否 | String | 备份IPv4地址 |
| SubnetMask | String | 是 | String | 主IPv4子网掩码 |
| BackupSubnetMask | String | 否 | String | 备份IPv4掩码 |
| DefaultGateway | String | 是 | String | IPv4默认网关 |
方法说明
| 方法名 | 功能 | 参数 | 返回 |
|---|---|---|---|
| SetIpMaskGateway | 同步设置IPv4地址、掩码、网关 | IpAddr, SubnetMask, DefaultGateway | IpAddr |
| SetIpAddr | 设置IPv4地址与掩码 | IpAddr, SubnetMask | Result(Boolean) |
| SetDefaultGateway | 单独设置网关 | DefaultGateway | Result(Boolean) |
| SetDedicatedMaintIpMask | 设置专用运维IP/掩码 | IpAddr, SubnetMask | Result(Boolean) |
2.1.3 Ipv6接口说明
资源树接口:bmc.kepler.Managers.EthernetInterfaces.Ipv6
属性说明
| 属性名 | 类型 | 只读 | 取值 | 描述 |
|---|---|---|---|---|
| IpMode | String | 否 | DHCPv6/Static | IPv6模式 |
| IpAddr | String | 是 | String | 当前IPv6地址 |
| PrefixLength | S32 | 是 | S32 | IPv6前缀长度 |
| Scope | String | 是 | Link/Global | 地址范围 |
| DefaultGateway | String | 是 | String | 默认IPv6网关 |
方法说明
| 方法名 | 功能 | 参数 | 返回 |
|---|---|---|---|
| SetIpv6PrefixGateway | 一步设置IPv6地址/前缀和网关 | IpAddr, PrefixLength, DefaultGateway | IpAddr |
| SetIpAddr | 设置IPv6地址和前缀 | IpAddr, PrefixLength | Result(Boolean) |
| SetDefaultGateway | 单独设置网关 | DefaultGateway | Result(Boolean) |
2.1.4 MgmtPort接口说明
资源树接口:bmc.kepler.Managers.EthernetInterfaces.MgmtPort
属性说明
| 属性名 | 类型 | 描述 |
|---|---|---|
| Id | U8 | Id,从1起,新增port注册传入0 |
| EthId | U8 | Eth的Id |
| DeviceId | U8 | 设备ID |
| DevicePortId | U8 | 设备端口Id |
| Silkscreen | String | 用于Web显示的端口丝印信息 |
| Type | String | 网卡类型:ExternalPCIe/Dedicated |
| AdaptiveFlag | Boolean | 是否参与自适应 |
| LinkStatus | String | Link状态(Connected/Disconnected) |
2.2 cli、IPMI接口使用样例
2.2.1 设置IPv4信息
cli设置IPv4静态IP、掩码、网关,-v后面依次传入四段式的IP、掩码、网关(网关可不传):
ipmcset -d ipaddr -v <ipaddr> <mask> [gateway]cli设置IPv4静态网关:
ipmcset -d gateway -v <gateway>cli设置IPv4模式为DHCP/Static:
ipmcset -d ipmode -v <dhcp|static>ipmi设置IPv4地址:
ipmitool -H <BMC的IP> -I lanplus -p 623 -U <用户名> -P <密码> -C 17 raw 0x0c 0x01 0x01 0x03 <四个字节的IP地址>ipmi设置IPv4掩码:
ipmitool -H <BMC的IP> -I lanplus -p 623 -U <用户名> -P <密码> -C 17 raw 0x0c 0x01 0x01 0x06 <四个字节的掩码>ipmi设置IPv4网关:
ipmitool -H <BMC的IP> -I lanplus -p 623 -U <用户名> -P <密码> -C 17 raw 0x0c 0x01 0x01 0x0c <四个字节的网关>ipmi设置IPv4模式,mode位置传1表示Static,传2表示DHCP:
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、掩码、网关(网关可以不传):
ipmcset -d ipaddr6 -v <ipaddr> <prefix> [gateway]cli设置IPv6静态网关:
ipmcset -d gateway6 -v <gateway>cli设置IPv6模式为DHCPv6/Static:
ipmcset -d ipmode6 -v <dhcp|static>ipmi设置IPv6地址(IP地址按小端方式传入):
ipmitool -H <BMC的IP> -I lanplus -p 623 -U <用户名> -P <密码> -C 17 raw 0x0c 0x01 0x01 0xcc <3字节的厂商ID> <16字节的IPv6地址>ipmi设置IPv6前缀:
ipmitool -H <BMC的IP> -I lanplus -p 623 -U <用户名> -P <密码> -C 17 raw 0x0c 0x01 0x01 0xcd <3字节的厂商ID> <1字节的前缀>ipmi设置IPv6网关(网关地址按小端方式传入):
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:
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表示自适应模式:
ipmcset -d netmode -v <网络模式>cli切换网口(网络模式为固定模式才能切换网口):
ipmcset -d activeport -v <网口类型> <port id>
参数说明:
网口类型:0-专用网口 1-LOM 2-PCIe
port id: 切换到该类型网口的第几个port(port id从0开始,网口类型传0时,该参数可不传)ipmi设置网络模式:
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:
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:
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 配置导入导出项
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 装备定制化项
通用定制项
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配置示例如下所示:
"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),实现三网口同时使能。三网口组环境的多网口组配置可以参考如下:
"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配置示例如下所示:
双网口组环境示例:
"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
}三网口组环境示例:
"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配置示例如下所示:
"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配置示例如下所示:
"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.txt | lldp配置信息 |
| 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 finish | NOTICE | 自发现对象分发完成 | 无 |
| 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] | NOTICE | rpc设置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.x | NOTICE | DHCP获取到ipv4地址 | 无 |
| dhcpv6 get out eth(ethx) new ipv6 info, ip: xxxx, prefix: x, gateway: xxxx | NOTICE | DHCPv6获取到ipv6地址 | 无 |
6. 问题定界指南
6.1 典型问题定界
| 现象描述 | 是否为本组件问题 | 判断依据 | 关键证据收集方法 |
|---|---|---|---|
| ssh登录bmc失败,可以ping通BMC | 否 | - | - |
| ssh登录bmc失败,不能ping通BMC | 是 | - | - |
| ping BMC环境或者用ssh登录BMC环境,一会通一会不通 | 是 | MAC地址冲突,在OS修改MAC地址后解决 | - |
6.2 调试方法
6.2.1 开启调试日志
- 定制互联网仓
##设置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
- 查看与清除持久化的命令示例
/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参数,可以参考:
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章节。
- 查看资源树属性
//查看网络模块相关资源树
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- 查看系统协议栈
//查看系统协议栈网口信息
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.0 | 2026-04-30 | mkdlf | 修改文档格式、补充bmc_network说明 |