Rocky Linux 9 IPv6配置与NetworkManager实践指南
2026/9/14 5:37:46 网站建设 项目流程

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 forever

2.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_ipv6=0临时启用,或编辑/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/64):

nmcli 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/uuid)
  • dhcp-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:增强隐私保护(RFC7217)

4. 高级配置场景

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::ffff"

4.3 防火墙策略配置

使用firewalld管理IPv6流量:

firewall-cmd --zone=public --add-rich-rule='rule family="ipv6" source address="2001:db8::/64" accept' --permanent firewall-cmd --reload

5. 故障排查指南

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 ipv6

5.2 常见问题解决方案

场景1:IPv6地址无法获取

排查步骤:

  1. 确认路由器通告已开启
  2. 检查NetworkManager日志
  3. 验证防火墙未阻断DHCPv6流量(UDP 546/547)
场景2:DNS解析失败

解决方案:

nmcli connection modify ens192 \ ipv6.ignore-auto-dns false \ ipv6.dns "2001:4860:4860::8888 2001:4860:4860::8844" systemctl restart NetworkManager
场景3:MTU问题导致大包传输失败

诊断方法:

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.nmconnection

6.2 性能调优参数

优化IPv6栈性能:

echo "net.ipv6.conf.all.forwarding=1" >> /etc/sysctl.conf echo "net.ipv6.conf.default.accept_ra=2" >> /etc/sysctl.conf sysctl -p

6.3 网络测试脚本示例

自动化测试连接质量:

#!/bin/bash TEST_IP="2001:db8::1" ping6 -c 4 $TEST_IP > /dev/null 2>&1 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的故障转移。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询