动态获取IPv6地址 Linux操作系统(手动配置启用IPv6) 注意: CentOS 6.x和Debian操作系统的云主机内部配置IPv6自动获取功能之后,将该云主机制作为私有镜像,使用该镜像在非IPv6网络环境中创建云主机时,由于等待获取IPv6地址超时,导致云主机启动较慢,您可以参考设置云主机获取IPv6地址超时时间设置获取IPv6地址超时时间为30s,然后再重新制作私有镜像。 步骤 1执行如下命令,查看当前云主机是否启用IPv6。 ip addr 如果没有开启IPv6协议栈,则只能看到IPv4地址,如下图所示,请参考步骤2先开启IPv6协议栈。 未开启IPv6协议栈 如果已开启IPv6协议栈,则可以看到LLA地址(fe80开头)。 已开启IPv6协议栈 如果已开启IPv6协议栈并且已获取到IPv6地址,则会看到如下地址: 已开启IPv6协议栈并且已获取到IPv6地址 说明: Linux公共镜像均已开启IPv6协议栈(即情况二);Ubuntu 16公共镜像不仅已开启IPv6协议栈,而且可以获取到IPv6地址(即情况三),无需特殊配置。 步骤 2 开启Linux云主机IPv6协议栈。 1. 执行如下命令,确认内核是否支持IPv6协议栈。 sysctl a grep ipv6 − 如果有输出信息,表示内核支持IPv6协议栈。 − 如果没有任何输出,说明内核不支持IPv6协议栈,需要执行步骤2.2加载IPv6模块。 2. 执行以下命令,加载IPv6模块。 modprobe ipv6 3. 修改“/etc/sysctl.conf”配置文件,增加如下配置: net.ipv6.conf.all.disableipv60 4. 保存配置并退出,然后执行如下命令,加载配置。 sysctl p 步骤 3手动配置启用IPv6。操作系统不同,步骤有所差别。 Ubuntu操作系统云主机配置动态获取IPv6。 说明: Ubuntu 18.04和20.04请执行以下操作步骤;Ubuntu 16.04操作系统已默认启用IPv6,不需要做任何配置操作。 a. 执行以下命令,进入“/etc/netpaln/”。 cd /etc/netplan b. 执行以下命令,查询配置文件名。 ls 查询配置文件名 c. 执行以下命令,编辑“01networkmanagerall.yaml”配置文件。 vi 01networkmanagerall.yaml d. 在“01networkmanagerall.yaml”下增加如下内容,注意yaml文件格式及缩进: ethernets: eth0: dhcp6: true 修改结果 修改完成后保存退出。 e. 执行以下命令,使更改生效。 sudo netplan apply Debian操作系统云主机配置动态获取IPv6。 a. 编辑“/etc/network/interfaces”文件,使之包含以下内容: auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp iface eth0 inet6 dhcp preup sleep 3 b. 如果有多个网卡,则在“/etc/network/interfaces”文件中,增加对应网卡的配置,以eth1为例,需要增加: auto eth1 iface eth1 inet dhcp iface eth1 inet6 dhcp preup sleep 3 c. 执行如下命令重启网络服务。 service networking restart 说明: 如果将网卡进行down/up操作之后无法获取IPv6地址,也可以通过此命令重启网络服务。 d. 执行步骤步骤1检查是否已开启动态IPv6。 CentOS/EulerOS/Fedora操作系统云主机配置动态获取IPv6。 a. 编辑主网卡配置文件“/etc/sysconfig/networkscripts/ifcfgeth0”。 补充如下配置项: IPV6INITyes DHCPV6Cyes b. 编辑“/etc/sysconfig/network”,按如下所示添加或修改以下行。 NETWORKINGIPV6yes c. CentOS 6系列从网卡需要编辑对应的配置文件,以eth1为例,编辑“/etc/sysconfig/networkscripts/ifcfgeth1”。 补充如下配置项: IPV6INITyes DHCPV6Cyes CentOS 6.3系统中默认ip6tables会过滤dhcpv6client请求,所以CentOS 6.3除了需要编辑“ifcfgeth”文件外,还需要额外添加一条允许dhcpv6client请求的ip6tables规则。操作如下: i. 执行以下命令,添加ip6tables规则。 ip6tables A INPUT m state state NEW m udp p udp dport 546 d fe80::/64 j ACCEPT ii. 执行以下命令,保存ip6tables规则。 service ip6tables save 命令示例 d. (可选配置)CentOS 7/CentOS 8系列需要将扩展网卡的IPv6 LLA地址模式修改为EUI64。 i. 执行如下命令查看网卡信息。 nmcli con 查看网卡信息 ii. 将eth1的IPv6 LLA地址模式按以下命令修改为EUI64: nmcli con modify "Wired connection 1" ipv6.addrgenmode eui64 说明: CentOS不同系列,网卡信息存在差异,命令中的“Wired connection 1”需要根据实际查询的网卡信息的“NAME”列进行替换。 iii. 通过ifconfig命令将eth1进行down/up操作。 ifdown eth1 ifup eth1 e. 重启网络服务。 i. CentOS 6系列执行以下命令,重启网络服务。 service network restart ii. CentOS 7/EulerOS/Fedora系列执行以下命令,重启网络服务。 systemctl restart NetworkManager f. 执行步骤步骤1检查是否已开启动态IPv6。 l SUSE/openSUSE/CoreOS操作系统云主机配置动态获取IPv6。 SUSE 11 SP4不支持IPv6自动获取。 SUSE 12 SP1、SUSE 12 SP2无需特殊配置。 openSUSE 13.2、openSUSE 42.2无需特殊配置。 CoreOS 10.10.5无需特殊配置。