
1. Rocky Linux 9 IPv6配置概述在当今互联网环境中IPv6已成为不可或缺的网络协议。作为RHEL的替代发行版Rocky Linux 9默认已集成完整的IPv6支持栈。与IPv4相比IPv6不仅拥有更大的地址空间128位 vs 32位还具备更好的多播支持、更简化的报头结构和原生安全特性。实际部署中我们主要会遇到三种IPv6地址配置场景SLAAC无状态地址自动配置路由器通告前缀主机自动生成接口标识DHCPv6通过DHCP服务器获取完整配置静态配置手动指定所有网络参数关键提示Rocky Linux 9已弃用传统的ifcfg文件全面转向NetworkManager的nmconnection配置体系。所有网络配置现在存储在/etc/NetworkManager/system-connections/目录下。2. 网络环境检测与准备2.1 现有网络接口检查首先确认系统识别到的网络接口及当前IP配置nmcli device status ip -6 address show典型输出示例ens192: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc fq_codel state UP group default qlen 1000 inet6 2001:db8::a00:27ff:fe4e:66a1/64 scope global dynamic valid_lft 2592000sec preferred_lft 604800sec inet6 fe80::a00:27ff:fe4e:66a1/64 scope link valid_lft forever preferred_lft forever2.2 内核IPv6模块验证检查IPv6内核支持状态lsmod | grep ipv6 sysctl -a | grep ipv6 | grep disable关键参数说明net.ipv6.conf.all.disable_ipv6全局禁用开关net.ipv6.conf.default.disable_ipv6默认接口策略net.ipv6.conf.interface.disable_ipv6指定接口策略常见问题若发现IPv6被禁用可通过sysctl -w net.ipv6.conf.all.disable_ipv60临时启用或编辑/etc/sysctl.conf永久生效。3. NetworkManager配置详解3.1 nmcli基础命令结构NetworkManager提供了完整的IPv6管理功能其命令语法遵循统一模式nmcli [OPTIONS] OBJECT { COMMAND | help }IPv6相关OBJECT包括connection管理连接配置device操作物理/虚拟设备general查看守护进程状态3.2 静态IPv6配置实战配置永久静态IPv6地址示例使用2001:db8::1/64nmcli connection modify ens192 \ ipv6.addresses 2001:db8::1/64 \ ipv6.gateway 2001:db8::ffff \ ipv6.dns 2001:4860:4860::8888 \ ipv6.method manual \ ipv6.ignore-auto-dns true参数解析ipv6.addresses支持多个地址用逗号分隔ipv6.method manual表示静态配置ipv6.ignore-auto-dns禁用自动DNS获取3.3 DHCPv6配置方法启用有状态DHCPv6获取nmcli connection modify ens192 \ ipv6.method dhcp \ ipv6.dhcp-duid llt \ ipv6.dhcp-iaid mac关键参数说明dhcp-duid客户端标识类型llt/link-layer/uuiddhcp-iaid接口关联标识生成方式3.4 SLAAC自动配置配置无状态自动获取nmcli connection modify ens192 \ ipv6.method auto \ ipv6.addr-gen-mode stable-privacy \ ipv6.ip6-privacy 2地址生成模式选项eui64基于MAC地址的传统方式stable-privacy增强隐私保护RFC72174. 高级配置场景4.1 多地址绑定实践为单个接口配置多个IPv6地址nmcli connection modify ens192 \ ipv6.addresses 2001:db8::100/64 \ ipv6.addresses 2001:db8::200/64使用符号表示追加而非覆盖现有配置。4.2 IPv6路由管理查看当前路由表ip -6 route show添加永久静态路由nmcli connection modify ens192 \ ipv6.routes 2001:db8:1::/64 2001:db8::ffff4.3 防火墙策略配置使用firewalld管理IPv6流量firewall-cmd --zonepublic --add-rich-rulerule familyipv6 source address2001:db8::/64 accept --permanent firewall-cmd --reload5. 故障排查指南5.1 连接测试基础命令基本连通性检查ping6 2001:db8::1 traceroute6 google.com详细诊断工具nmcli device show ens192 | grep -i ip6 journalctl -u NetworkManager --since 1 hour ago | grep -i ipv65.2 常见问题解决方案场景1IPv6地址无法获取排查步骤确认路由器通告已开启检查NetworkManager日志验证防火墙未阻断DHCPv6流量UDP 546/547场景2DNS解析失败解决方案nmcli connection modify ens192 \ ipv6.ignore-auto-dns false \ ipv6.dns 2001:4860:4860::8888 2001:4860:4860::8844 systemctl restart NetworkManager场景3MTU问题导致大包传输失败诊断方法ping6 -s 1472 -M do 2001:db8::1若1472字节失败但1400字节成功表明存在MTU不匹配。6. 持久化配置与优化6.1 连接配置备份导出当前网络配置nmcli connection export ens192 ens192-backup.nmconnection导入配置恢复nmcli connection import type ethernet file ens192-backup.nmconnection6.2 性能调优参数优化IPv6栈性能echo net.ipv6.conf.all.forwarding1 /etc/sysctl.conf echo net.ipv6.conf.default.accept_ra2 /etc/sysctl.conf sysctl -p6.3 网络测试脚本示例自动化测试连接质量#!/bin/bash TEST_IP2001:db8::1 ping6 -c 4 $TEST_IP /dev/null 21 if [ $? -eq 0 ]; then echo IPv6 connectivity OK mtr --report --report-cycles 5 $TEST_IP else echo IPv6 connectivity FAILED ip -6 route show nmcli device show fi在实际部署中我发现Rocky Linux 9的NetworkManager对IPv6的支持相当完善但在处理复杂路由场景时建议结合iproute2工具进行补充配置。对于需要高可用性的环境可以考虑使用keepalived实现IPv6 VIP的故障转移。