Fedora 上稳定的 IPv6 地址

max*_*zig 4 fedora ipv6

与其他系统不同,Fedora 25 工作站默认不使用稳定的 IPv6 地址。

例如,在 CentOS 7 或 Fedora 23 中,会自动配置稳定的 IPv6(在 IPv6 启用的网络中,其中存在 IPv6 路由器)——即从 MAC 地址派生的 IPv6。

然后可以在 DNS AAAA 记录中使用该 IPv6 地址。

相比之下,Fedora 25 工作站系统的 IPv6 地址与其 MAC 地址没有任何关系,并且似乎不稳定。

如何在 Fedora 25 上配置确定性和稳定的 IPv6 地址?

max*_*zig 8

在 Fedora 25 Workstation 上,NetworkManager (NM) 默认配置所有网络接口。这也意味着有线的。并且 NetworkManager 不会创建EUI-64派生的 IPv6 地址。相反,它生成所谓的“稳定隐私”。显然不要向每个 IPv6 目的地透露 MAC 地址。

这是可以改变对于给定的界面$i经由改变IPV6_ADDR_GEN_MODE/etc/sysconfig/network-scripts/ifcfg-$i的配置文件。例如通过:

sed -i 's/^IPV6_ADDR_GEN_MODE=stable-privacy/IPV6_ADDR_GEN_MODE=eui64/' \
  /etc/sysconfig/network-scripts/ifcfg-$i
Run Code Online (Sandbox Code Playgroud)

更改在 NetworkManager 重新读取其配置和重新连接后生效:

nmcli con reload
nmcli con down $i
nmcli con up $i
Run Code Online (Sandbox Code Playgroud)

笔记

  • 此选项不会通过 NM 设置 GUI 公开
  • /etc/sysconfig/network-scriptsNM 读取的接口配置文件是 Fedora/Redhat 特定的,但配置密钥不是 - 即在其他发行版上,NM 只是从不同位置/配置文件读取接口配置

Fedora 还带有 systemd- networkd,默认情况下它不会禁用 EUI64 生成。因此,在 Fedora 下获得稳定 IPv6 地址的一种更简单的方法是删除 NetworkManager 并配置/启用 systemd-networkd。

或者可以在 NetworkManager 中将有问题的接口设置为非托管,然后在 systemd-networkd 中进行配置。

在任何情况下,networkd 配置都非常小,例如:

cat /etc/systemd/network/20-wired.network
[Match]
# manage all matching interfaces
#Name=en*
# just manage one:
Name=eno1
    
[Network]
DHCP=ipv4
Run Code Online (Sandbox Code Playgroud)


Mic*_*ton 5

您认为不稳定的地址实际上是不稳定的。

这些是RFC 7217稳定隐私地址,旨在使设备在跨网络漫游时不易被跟踪,同时在任何给定网络上保持相同的地址。

当在链路上使用 SLAAC 时,会分配稳定的隐私地址,而不是 EUI-64 派生地址。它们不会取代RFC 4941隐私地址。

这一切都意味着,为了拥有稳定的地址,你不需要做任何事情。您还可以使用有状态 DHCPv6 并完全摆脱 SLAAC,这样您就可以集中控制地址分配。但这样你就失去了稳定隐私地址的好处。