// 此模板仅供参考,如果不适用可以修改
问题描述
不知道哪个地方配置有问题(没有捞到BMC的主机名和mac)
环境信息
-
操作系统:[如 Ubuntu 24.04]
-
软件版本:[如 OpenUBMC2509]
-
硬件配置:[如 CPU、内存等]
重现步骤
-
[第一步]
期望结果
[您希望实现什么]
实际结果
[实际发生了什么,包含错误信息]
尝试过的解决方案
[列出您已经尝试过的解决方案及结果]
// 此模板仅供参考,如果不适用可以修改
不知道哪个地方配置有问题(没有捞到BMC的主机名和mac)
操作系统:[如 Ubuntu 24.04]
软件版本:[如 OpenUBMC2509]
硬件配置:[如 CPU、内存等]
[第一步]
[您希望实现什么]
[实际发生了什么,包含错误信息]
[列出您已经尝试过的解决方案及结果]
答案内容由AI生成,仅供参考:
您的问题根本原因是:
Windows Server 2012 的 DHCPv6 服务无法自动获取 BMC 的主机名和 MAC,因为 IPv6 使用 DUID 代替 MAC,且 BMC 未发送 FQDN 信息。
为每台 BMC 手动创建 DHCPv6 保留项,并结合 CLI 获取的 MAC 与 DUID 进行绑定,从而实现:
如需批量管理,建议编写脚本自动同步 BMC 的 MAC 与 DUID 到 DHCP 保留列表。
根据您提供的信息,您在使用 Windows Server 2012 的 DHCP 服务为 BMC 设备分配 IPv6 地址时,虽然地址分配成功(客户端已获取 IPv6 地址),但 未能获取到 BMC 的主机名和 MAC 地址信息。此问题涉及 DHCPv6 的配置机制及客户端行为。
从截图中可以看到:
2001:db8::16a:1791:abc:1c7c)。
补充知识:DHCPv6 中的 FQDN 选项(Option 39)用于传递客户端的期望域名,若客户端未发送此选项,服务器不会主动查询。
从您的知识库内容可知,BMC 支持通过
Custom_DHCPv6DUIDType配置 DUID 类型,默认为DUID-LL。
因此,您看到的“唯一 ID”字段以 0001... 或 0004... 开头,即为 DUID 编码后的值,并非 MAC 地址本身。Windows DHCP 控制台 无法自动反推出原始 MAC 地址。
BMC-Server012001:db8::16a:1791:abc:1c7c000435d84e4e9070...
优势:
# BMC 定制文件 customset.ini
BMCSet_Ipv6_DHCPMode = on # 启用 DHCPv6 模式
BMCSet_SLAACEnable = on # 启用 SLAAC(配合使用)
Custom_DHCPv6DUIDType = DUID-LL # 推荐使用 DUID-LL 更易识别 MAC
根据知识库内容,当
Custom_DHCPv6DUIDType = DUID-LL时,DUID 是直接基于 MAC 地址生成的。
您可以从 DUID 解码出 MAC 地址:
000100012e3cf88f00...
工具推荐:使用 DUID 解码工具 或脚本进行解析。
虽然 Windows Server 2012 不直接支持强制客户端发送 FQDN,但可以尝试:
在客户端 BMC 上:
/etc/dhcp/dhclient6.conf 添加:send fqdn.fqdn "bmc-hostname.example.com";
send fqdn.encoded on;
send fqdn.server-update on;
在 Windows DNS 上:
由于 GUI 不显示 MAC 地址,可通过 PowerShell 提取租约并解析 DUID → MAC。
# 获取所有 IPv6 租约
Get-DhcpServerv6Lease -ComputerName "WIN-IOO92UB4RAM" -ScopeId 2001:db8:: |
Select-Object ClientId, IPAddress, Name, AddressType, ExpirationTime |
Format-Table -AutoSize
输出中的
ClientId即为 DUID,需要进一步解析。
DUID 格式:00010001XXXXXXXXXXwwxxyyzzwwvv
000100012e3cf88f24220102353924:22:01:02:35:39 → 即为 MAC 地址(但需确认是否为真实 MAC)通过 BMC 的命令行获取其当前网络信息(来自您提供的日志):
ipmcget -d ipinfo
输出包含:
MAC Address : 20:22:01:02:35:39
IPv6 Mode : dhcp
IPv6 Address 1 : (empty)
Link Local Address : fe80::2222:1fff:fe02:3539/64
建议:
# 查看 DUID 信息(如有)
cat /var/lib/dhcp/dhclient6.leases
| 项目 | 推荐配置 |
|---|---|
| BMC 端 IPv6 模式 | BMCSet_Ipv6_DHCPMode=on |
| DUID 类型 | Custom_DHCPv6DUIDType=DUID-LL(便于识别 MAC) |
| SLAAC 支持 | 启用 (BMCSet_SLAACEnable=on) |
| DNS 动态更新 | 在 Windows DNS 上允许非安全更新 |
| DHCPv6 保留 | 为每台 BMC 创建保留项,绑定名称 + DUID |
| 主机名同步 | 在 openUBMC 中配置 BMCSet_Hostname=on |
BMC-012001:db8::...nslookup 2001:db8::... 应返回主机名。| 方法 | 是否有效 | 原因 |
|---|---|---|
| 启用“自动获得 DNS 服务器地址” | 不解决主机名注册 | |
| 修改作用域选项添加 DNS 服务器 | 缺乏 FQDN 支持仍无名 | |
| 刷新 DHCP 控制台 | UI 不显示未注册主机名 |
您的问题根本原因是:
Windows Server 2012 的 DHCPv6 服务无法自动获取 BMC 的主机名和 MAC,因为 IPv6 使用 DUID 代替 MAC,且 BMC 未发送 FQDN 信息。
为每台 BMC 手动创建 DHCPv6 保留项,并结合 CLI 获取的 MAC 与 DUID 进行绑定,从而实现:
如需批量管理,建议编写脚本自动同步 BMC 的 MAC 与 DUID 到 DHCP 保留列表。
如您有更多 BMC 型号或日志信息,也可进一步优化自动化方案。
相关链接:
你好,建议优先基于AI答复进行排查
如果BMC 不支持 FQDN BMC 能获取到 DHCP ipv6么
FQDN主要用于:
在获取 IP 地址后,主动将 BMC 的主机名+域名注册到 DNS 服务器(即 DDNS 功能)
支持通过 主机名.域名 的形式远程访问 BMC
该功能并非 DHCPv6 协议本身的依赖项。
server端怎么抓包呀
wiindows可以使用wireshark抓包
这个是就是服务端抓的ipv6 包
如果是服务端没有针对bmc的请求回复响应的话,那就再排查下服务端的配置吧,应该不是BMC侧的问题。
你好,这个BMC获取地址还有什么问题么
有啊 没解决呀 还是老样子
这个建议还是排查下工具使用,目前没有发现BMC侧印象DHCPv6功能的已知问题。