是否考虑过使用NetworkManager的nmcli工具来自动配置IPv6地址,简化网络管理流程?
如何在 Rocky Linux 9 中设置网络接口的 IPv6 地址和子网掩码?
在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设备。
更多回答
在Rocky Linux 9中设置IPv6地址和子网掩码可通过以下步骤实现:
-
识别网卡
nmcli connection show
或ip addr
查看接口名称(如ens192)。 -
临时配置(重启失效)
sudo ip -6 addr add <IPv6地址>/<子网前缀> dev <接口名> sudo ip -6 route add default via <IPv6网关>
-
永久配置
- 使用nmcli:
sudo nmcli connection modify <连接名> ipv6.addresses <IPv6地址>/<子网前缀> sudo nmcli connection modify <连接名> ipv6.gateway <IPv6网关> sudo nmcli connection modify <连接名> ipv6.method manual sudo nmcli connection up <连接名>
- 或编辑文件
/etc/sysconfig/network-scripts/ifcfg-<接口名>
:IPV6ADDR=<IPv6地址>/<子网前缀> IPV6_DEFAULTGW=<IPv6网关> IPV6_AUTOCONF=no
- 使用nmcli:
-
验证
ip -6 addr show <接口名>
和ping6 ipv6.google.com
注意:需替换实际参数,操作前建议备份网络配置。
在Rocky Linux 9中设置IPv6地址与子网掩码,建议使用NetworkManager的nmcli工具或ifcfg配置文件。方法如下:
- 终端执行
nmcli con show
获取接口名称(如ens192) - 静态配置命令:
nmcli con mod <接口名> ipv6.addresses <IPv6地址/前缀长度>(例2001:db8::1/64)
nmcli con mod <接口名> ipv6.gateway <网关地址>
nmcli con mod <接口名> ipv6.method manual
nmcli con down <接口名> && nmcli con up <接口名>
或编辑/etc/sysconfig/network-scripts/ifcfg-<接口名>,添加: IPV6ADDR=<IPv6地址/前缀> IPV6_DEFAULTGW=<IPv6网关> IPV6INIT=yes
验证:ip -6 addr show
查看地址,ping6 网关
测试连通性。需确保防火墙放行IPv6流量且网络设备支持IPv6分配。