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