如何更改我的 Ubuntu 的 IPv6 DUID?

如何更改我的 Ubuntu 的 IPv6 DUID?

一些背景信息:

我在 W10 和 Ubuntu 之间双启动我的桌面。(W10 用于游戏,Ubuntu 用于工作)

我有一个完全正常工作的 IPv6 设置,以 pfSense 作为边缘路由器。

DHCPv6 服务器配置为始终向 W10 操作系统分发相同的 IPv6 地址。这样做是为了允许 DNS 将 DHCPv6 分配的 IP 解析为主机名。

目前,Ubuntu 操作系统总是收到不同的 IP,因为它使用不同的 IAID 和 DUID 从服务器请求其 IP。

本质上,我想更改 Ubuntu 安装的 DUID/IAID 以匹配 W10 使用的字符串。

我修改了 NetworkManager 的连接配置(添加了最后两行),但显然这还不够:

rsq@beast:~$ sudo cat '/etc/NetworkManager/system-connections/Wired connection 1'
[connection]
id=Wired connection 1
uuid=a1e627b4-680c-3fbb-b4a4-b487c5a0a504
type=ethernet
autoconnect-priority=-999
permissions=
timestamp=1577458590

[ethernet]
mac-address=18:31:BF:6D:0E:24
mac-address-blacklist=

[ipv4]
dns-search=
method=auto

[ipv6]
addr-gen-mode=stable-privacy
dns-search=
ip6-privacy=0
method=auto
dhcp-duid=00:01:00:01:23:01:a6:ec:18:31:bf:6d:0e:24
dhcp-iaid=85471679

我对这个问题进行了广泛的搜索,但得到的资料很少。

所以本质上,我的问题是:Ubuntu 系统如何生成 DUID?哪些设置控制 DUID 生成过程?DUID 设置保存在哪里?它可以被覆盖吗?

感谢大家对此事的意见!谨致问候,Erik

答案1

因为它使用不同的 IAID 和 DUID 向服务器请求其 IP。

DUID 最初来自

/etc/machine-id

并在安装时创建一次。请注意,我们现在使用systemd它作为额外的搜索参数来过滤非systemd答案。

重要文件:

/etc/systemd/networkd.conf 

其中有一部分与 DUID 的创建相关:

如果DUIDType=vendor,则将使用“43793”作为供应商标识符(systemd)和 machine-id(5) 的哈希内容生成 DUID 值。如果DUIDType=未指定,则这是默认值。

关于 IAID:

[DHCP] 部分选项

本节配置 DHCP 协议使用的 DHCP 唯一标识符 (DUID) 值。DHCPv6 客户端协议在获取动态 IPv6 地址时将 DHCP 唯一标识符和接口身份关联标识符 (IAID) 发送到 DHCP 服务器。如果 ClientIdentifier=duid,DHCPv4 客户端协议在获取动态 IPv4 地址时将 IAID 和 DUID 发送到 DHCP 服务器。IAID 和 DUID 允许 DHCP 服务器唯一地标识请求 DHCP IP 的机器和接口。要配置 IAID 和 ClientIdentifier,请参阅systemd.网络(5)。

要设置IAIDDUID您需要:

DUID类型=

覆盖此网络的全局 DUIDType 设置。请参阅networkd.conf(5)了解可能值的描述。

DUIDRawData=

覆盖此网络的全局 DUIDRawData 设置。请参阅networkd.conf(5)了解可能值的描述。

IAID=

接口的 DHCP 身份关联标识符 (IAID),一个 32 位无符号整数。


示例来自网络配置文件为了DUID

示例 1.DUIDType=vendor具有自定义值的A

DUIDType=vendor
DUIDRawData=00:00:ab:11:f9:2a:c2:77:29:f9:5c:00

这指定了一个 14 字节的 DUID,其类型为 DUID-EN(“00:02”)、企业编号为 43793(“00:00:ab:11”),标识符值为“f9:2a:c2:77:29:f9:5c:00”。

相关内容