网站搜索

如何在 CentOS/RHEL 8 上配置 IPv6 网络


IPv6 寻址是在预期 IPv4 地址耗尽的情况下开发的。它旨在通过使用更广泛的网络寻址空间来解决 IPv4 地址耗尽的问题。 IPv6 地址是一个 128 位数字,由 8 个冒号分隔的组组成,每个组由 4 个十六进制数字组成。

另请阅读:IPv4 有什么问题以及我们为何转向 IPv6

IPv6 地址的示例如下所示:

2001:1:1:1443:0:0:0:400

IPv6 通常在 CentOS/RHEL 8 上默认启用。要检查您的系统是否启用了 IPv6,请运行以下命令:


sudo sysctl -a | grep ipv6.*disable

0 表示 IPv6 在您的节点上处于活动状态。值 1 表示 IPv6 已禁用。因此,从上面的输出来看,IPv6 已启用。

检查 IPv6 是否已启用的另一种方法是查看 /etc/network-scripts/ 目录中的网络接口。在我们的例子中,这将是 /etc/sysconfig/network-scripts/ifcfg-enps03 文件。

因此,让我们执行以下命令并检查 IPv6 是否已启用。


cat /etc/sysconfig/network-scripts/ifcfg-enps03

请注意以下 IPV6 选项,如下所示:

  • IPV6INIT=yes – 这会初始化 IPv6 寻址的接口。
  • IPV6_AUTOCONF=yes – 这将为接口启用 IPv6 自动配置。
  • IPV6_DEFROUTE=yes – 这表示默认 IPv6 路由已分配给该接口。
  • IPV6_FAILURE_FATAL=no – 表示即使 IPv6 出现故障,系统也不会出现故障。

上面的输出确认 IPv6 寻址已启用。在终端上,您可以通过运行以下IP命令来查看接口的IPv6地址。


ip a
OR
ip -6 addr

请注意 inet6 前缀,如下所示。

要暂时禁用 IPv6,请运行以下命令:

sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
ip -6 addr

要启用 IPv6,请运行以下命令:

sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0

然后重新启动 NetworkManager 以使更改生效。

sudo systemctl restart NetworkManager

要永久禁用 IPv6,请编辑 GRUB /etc/default/grub 文件。在 GRUB_CMDLINE_LINUX 行中,将参数 ipv6.disable=1 附加到行尾,如图所示。

要应用更改,请重新启动您的系统。

就像IPv4一样,可以使用nmtuinmcli工具手动配置IPv6。但不建议这样做,因为手动配置 IPv6 容易出错,而且相当费力。

此外,跟踪哪些 IPv6 地址分配给哪些系统是一项艰巨的任务。您很可能会搞乱您的配置。