背景
框内通讯鉴权失败场景,预期SMM板可以通过IPMBETH通道获取BMC框内通信信息。明确框内通信失败原因增强可定位性。
关联ISSUE
整体方案
当框内通信建链失败,管理节点通过ipmbeth通道下发ipmi命令获取框内通信相关配置,用于定位框内通信失败原因
评审点
- 新增查询框内通信信息IPMI命令,用于查询框内通信使能状态与权限信息
- 新增查询证书属性字段IPMI命令,用于查询框内通信CA证书信息
详细描述
评审点1:新增IPMI命令Get Inter Chassis Information用于查询框内通信信息
命令名称: Get Inter Chassis Information
命令说明: 查询框内通信信息
命令权限: ReadOnly
是否锁定之后可以访问: 是
是否有敏感数据: 否
命令请求参数:
| 字节顺序 | 域内容 |
|---|---|
| NetFn | 30h |
| CMD | 93h |
| 1:3 | Manufacture ID |
| 4 | SubCmd:96h |
| 5 | ParameterSelector,详见参数表 |
| 6 | Reserved,保留字段 |
命令响应参数:
| 字节顺序 | 域内容 |
|---|---|
| 1 | Completion Code |
| 2:4 | Manufacture ID |
| 5 | DataLength,响应结果长度 |
| 6:N | Data,响应结果,详见参数表 |
全局参数表:
| ParameterSelector | #(十进制) | DataLength | Data(响应结果) |
|---|---|---|---|
| InterChassisAuthEnabled | 1 | 1 | 框内通信使能状态0:关闭,1:开启 |
| AccessRoleId | 2 | 1 | 框内通信用户角色id |
| LoginInterface | 3 | 1 | 框内通信用户可用登录接口 bit0-Web: 0 disabled; 1 enabled bit1-SNMP: 0 disabled; 1 enabled bit2-IPMI: 0 disabled; 1 enabled bit3-SSH: 0 disabled; 1 enabled bit4-SFTP: 0 disabled; 1 enabled bit6-Local: 0 disabled; 1 enabled bit7-Redfish: 0 disabled; 1 enabled |
命令示例:
样例1:查询框内通信证书使能状态
- 请求:ipmitool raw 0x30 0x93 0xdb 0x07 0x00 0x96 0x01 0x00
- 响应:0x00 0xdb 0x07 0x00 0x01
评审点2:新增IPMI命令Get Certificate Information用于查询证书信息
命令名称: Get Certificate Information
命令说明: 查询证书信息
命令权限: ReadOnly
是否锁定之后可以访问: 是
是否有敏感数据: 否
命令请求参数:
| 字节顺序 | 域内容 |
|---|---|
| NetFn | 30h |
| CMD | 93h |
| 1:3 | Manufacture ID |
| 4 | SubCmd:97h |
| 5 | CertificateType,详见证书类型表 |
| 6 | CertificateID,证书ID |
| 7 | CertificateProperty,详见证书属性字段表 |
| 8 | Read Offset,读取的数据偏移,从0开始 |
| 9 | Length,读取长度 |
| 字节顺序 | 域内容 |
|---|---|
| 1 | Completion Code |
| 2:4 | Manufacture ID |
| 5 | End of List 表示当前数据是否结束。当参数数据比较长的时候,可能需要分多次读取,通过此字段可以判断数据是否读完。 [7:1]:reserved [0]:End of list 0=last data 1=middle data |
| 6:N | Data,实际返回的数据可能小于等于 Length。 |
证书类型表:
| CertificateType | 字段含义 | CertificateID限制 |
|---|---|---|
| 0 | CA证书 | 1-32 |
| 1 | SSL证书 | 1-5 |
| 2 | 固件完整性校验证书 | 1-2 |
| 3 | 框内通信身份证书 | 1-2 |
证书属性字段表:
| CertificateProperty | 字段含义 |
|---|---|
| 0 | CommonName |
| 1 | SerialNumber |
| 2 | Issuer |
| 3 | Subject |
请求参数CertificateType与CertificateProperty不支持情况下报错“ActionParameterNotSupported”,完成码0xff;
请求参数CertificateID未导入的情况下报错“PropertyValueNotInList”,完成码0xc9
样例1:查询CA证书CommonName
- 请求:ipmitool raw 0x30 0x93 0xdb 0x07 0x00 0x97 0x00 0x01 0x00 0x00 0x00
- 响应:0x00 0xdb 0x07 0x00 0x00 0x74 0x65 0x73 0x74
评审结论
遗留问题
- 与psr绑定,只在特定产品提供
- 命令字使用93还是94,94针对smm通信
- 从工程能力上能不能隔离,不污染主干