在我的自定义 Yocto Linux 版本中,我想使用 IPv6 链接本地地址。我有地址fe80::bdc2:521:a893:b757/64
,但我的 MAC 地址是e4:5f:01:75:d3:04
。据我所知,它们应该对应。我不确定这个地址的持久性如何。我怎样才能强制它使用基于MAC的地址?在我所有其他 Linux 计算机上,除了安装了 Raspbian 的 Raspberry Pi 之外,都是这样工作的。
在我的自定义 Yocto Linux 版本中,我想使用 IPv6 链接本地地址。我有地址fe80::bdc2:521:a893:b757/64
,但我的 MAC 地址是e4:5f:01:75:d3:04
。据我所知,它们应该对应。我不确定这个地址的持久性如何。我怎样才能强制它使用基于MAC的地址?在我所有其他 Linux 计算机上,除了安装了 Raspbian 的 Raspberry Pi 之外,都是这样工作的。
这不是一个要求。链路本地地址仍然使用邻居发现,因此不需要特定的格式。
取决于什么软件生成的。非基于 MAC 的地址可能使用RFC7217 样式的基于哈希的生成;像 systemd-networkd 这样的用户空间软件会自动使用基于文件的种子,例如
/etc/machine-id
– 但另一方面,内核中的地址分配代码没有办法生成和存储种子,因此地址只能是持久的如果.stable_secret
sysctl 是手动设置的。如果地址是由内核分配的(即显示
proto kernel_ll
),则将接口的addrgenmode
参数设置为eui64
:ip link set eth0 addrgenmode eui64
sysctl net.ipv6.conf.eth0.addr_gen_mode=0