背景
IPV6异步接口设置IPv6地址时,BMC优先设置本地属性,然后再往协议栈设置,当环境中IP冲突时,IPv6的DAD(重复地址检测)检测失败,协议栈不能使用该地址用作通信,但是BMC记录的本地属性并未恢复,等到IP冲突解除也并未再去尝试设置,因此新做需求,在BMC各个接口设置IPv6地址时,修改本地属性前,先做地址冲突检测,若此地址与其他环境冲突,则此次接口设置IPv6地址返回失败。
决策点
redfish/cli/web接口在设置ipv6地址重复后,新增错误引擎和提示
整体架构/方案
新增IPV6重复地址检测场景,redfish/cli/web接口对该场景新增错误提示
决策点1:redfish接口新增ipv6地址冲突时的错误引擎
涉及的接口如下:
https://device_ip/redfish/v1/Chassis/ipconfig
https://device_ip/redfish/v1/Managers/manager_id/EthernetInterfaces/StaticIp
https://device_ip/redfish/v1/Managers/manager_id/NICs/nicid
变化类型:新增错误引擎
操作类型:PATCH
应用场景:调用接口设置IPV6地址
“DuplicateIPv6Address”: {
"Description": "The request for IPv6Address modification failed because the IPv6 address is duplicated.",
"Message": "The request for IPv6Address modification failed because the IPv6 address is duplicated.",
"Severity": "Warning",
"NumberOfArgs": 0,
"Resolution": "Change the IPv6 address and try again."
}
决策点2:webrest:https://ip /UI/Rest/BMCSettings/NetworkSettings 新增 ‘操作失败,IPv6地址冲突’错误消息
变化类型:新增错误消息
操作类型:PATCH
错误码: code : “DuplicateIPv6Address”
错误信息:
‘DuplicateIPv6Address’: {
‘errorMessage’: ‘操作失败,IPv6地址冲突’
}
决策点3:cli设置ipv6地址冲突后,新增错误提示 “Set failed, IPv6 address is duplicated.”
接口:
设置ipv6地址:ipmcset -d ipaddr6 -v <ipaddr6/prefixlen> [gateway6]
设置浮动ip: ipmcset [ -l smm ] -d floatipaddr6 -v <ipaddr6/prefixlen> [gateway6]
变化类型:新增错误消息
操作类型:SET
评审结论
决策点1:不同意新增自定义错误消息,参考redfish标准错误定义,评估产品变更影响,重新申报议题
决策点2:不同意新增自定义错误消息,参考redfish标准错误定义,评估产品变更影响,重新申报议题
决策点3:同意cli设置IPv6地址的命令新增错误回显:“Set IPv6 address failed, the address is duplicated.”