Fedora 上的稳定 IPv6 地址

Fedora 上的稳定 IPv6 地址

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

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

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

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

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

答案1

在 Fedora 25 工作站上,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

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

nmcli con reload
nmcli con down $i
nmcli con up $i

笔记

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

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

或者可以在 NetworkManager 中将相关接口设置为非托管,然后在 systemd-networkd 中配置它。

无论如何,网络配置非常小,例如:

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

答案2

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

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

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

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

答案3

您可以针对每个连接进行配置。在 Fedora 35 上测试。

nm-设置手册:nm-settings-nmcli - ipv6 设置

  1. 编辑/etc/NetworkManager/system-connections/<connection_name>.nmconnection并设置addr-gen-modeeui64.默认为stable-privacy.

    [ipv6]
    addr-gen-mode=eui64
    
  2. 重启。

相关内容