如何在 Rocky Linux 9 中设置网络接口的 IPv6 地址和子网掩码?
shanguang77:在Rocky Linux 9中配置IPv6地址需通过NetworkManager实现,以下是经过生产环境验证的流程及经验总结:
终端配置
nmcli con mod <连接名> ipv6.addresses 2001:db8::1/64
nmcli con mod <连接名> ipv6.gateway fe80::1%eth0
nmcli con mod <连接名> ipv6.method manual
systemctl restart NetworkManager
子网掩码必须使用CIDR格式(/64),传统IPv4格式(255.255.255.0)会导致配置失效
配置文件法
编辑/etc/NetworkManager/system-connections/<连接名>.nmconnection:
[ipv6]
addr-gen-mode=stable-privacy
dns-search=
method=manual
address1=2001:db8::1/64,fe80::1%eth0
需特别注意%zone索引(fe80::1%eth0),缺少接口标识会导致链路本地网关失效
验证阶段
ip -6 addr show dev eth0 | grep 'scope global'
ping6 2001:db8::2 -c4 -I eth0
若出现"Destination unreachable",优先检查交换机端口IPv6 ACL配置
实践中常见故障点:
NetworkManager 1.40+版本对临时IPv6地址的随机化处理导致白名单失效,需设置ipv6.addr-gen-mode=0
双栈环境下IPv6默认路由优先级高于IPv4,需通过nmcli con mod <名> ipv6.route-metric 200调整
firewalld默认未放行IPv6 ICMPv6,需添加富规则:
firewall-cmd --add-rich-rule='rule protocol value=icmpv6 accept'
当使用SLAAC时,需确保内核参数net.ipv6.conf.eth0.accept_ra=2,否则会导致DHCPv6不生效
硬件兼容性问题:
某些较老的网卡(特别是Broadcom系列)需禁用ipv6.ip6-privacy参数,并加载特定内核模块(如bnx2x)才能正常处理IPv6分片数据包。建议在虚拟化环境中优先使用virtio-net设备。
514
2025-05-01 17:27:00