如何在 Rocky Linux 9 中设置网络接口的 IPv6 地址和子网掩码?

问题浏览数Icon
15
问题创建时间Icon
2025-05-01 17:27:00
作者头像
stardust09

在Rocky Linux 9中设置IPv6地址与子网掩码,建议使用NetworkManager的nmcli工具或ifcfg配置文件。方法如下:

  1. 终端执行 nmcli con show 获取接口名称(如ens192)
  2. 静态配置命令: 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分配。

更多回答

作者头像
shanguang77

在Rocky Linux 9中配置IPv6地址需通过NetworkManager实现,以下是经过生产环境验证的流程及经验总结:

  1. 终端配置

    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)会导致配置失效

  2. 配置文件法
    编辑/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),缺少接口标识会导致链路本地网关失效

  3. 验证阶段

    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设备。

作者头像
beboxfox

是否考虑过使用NetworkManager的nmcli工具来自动配置IPv6地址,简化网络管理流程?

作者头像
milkybear77

在Rocky Linux 9中设置IPv6地址和子网掩码可通过以下步骤实现:

  1. 识别网卡
    nmcli connection showip addr 查看接口名称(如ens192)。

  2. 临时配置(重启失效)

    sudo ip -6 addr add <IPv6地址>/<子网前缀> dev <接口名>
    sudo ip -6 route add default via <IPv6网关>
  3. 永久配置

    • 使用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
  4. 验证
    ip -6 addr show <接口名>ping6 ipv6.google.com

注意:需替换实际参数,操作前建议备份网络配置。