如果您需要在VPC中进行IPv6公私网通信,您可以在开通了IPv6网段的VPC和交换机下创建带有IPv6地址的ECS实例。本文介绍ECS实例如何实现通过IPv6地址通信、如何为ECS实例分配IPv6地址、配置IPv6地址等。
说明 由于IPv4网络地址资源的有限性,在IPv4环境中,网络工程师经常需要花费大量时间和精力去解决地址冲突等问题。相比之下,引入IPv6网段后,不仅因其庞大的地址空间解决了网络地址资源的限制问题,还消除了众多接入设备连接互联网时所面临的障碍。
使用限制
IPv6网关支持的地域
区域 | 地域 |
中国 | 华北1(青岛)、华北2(北京)、华北3(张家口)、华北5(呼和浩特)、华北6(乌兰察布)、华东1(杭州)、华东2(上海)、华东5(南京-本地地域)、华东6(福州-本地地域)、华南1(深圳)、华南2(河源)、华南3(广州)、西南1(成都)、中国香港、华中1(武汉-本地地域) |
亚太 | 菲律宾(马尼拉)、新加坡、日本(东京)、韩国(首尔)、印度尼西亚(雅加达)、马来西亚(吉隆坡)、泰国(曼谷) |
欧洲与美洲 | 美国(弗吉尼亚)、美国(硅谷)、德国(法兰克福) |
不支持IPv6的ECS实例规格族
密集计算型实例规格族ic5
内存型实例规格族se1
大数据型实例规格族d1
本地SSD型实例规格族i2g,本地SSD型实例规格族i1
高主频计算型实例规格族hfc5,高主频通用型实例规格族hfg5
通用型弹性裸金属服务器实例规格族ebmg5,内存网络增强型弹性裸金属服务器实例规格族ebmr5s
上一代共享型实例规格族xn4、n4、mn4、e4
配置步骤
步骤一: 分配IPv6地址
为ECS实例分配IPv6地址,以使其能够通过IPv6协议与其他实例或外部网络进行通信。
为已有实例分配IPv6地址
登录ECS管理控制台。
在左侧导航栏,选择。
在页面左侧顶部,选择目标资源所在的资源组和地域。
选择已创建的ECS实例,在操作列下选择。
在管理辅助私网IP对话框中,按照界面提示分配IPv6地址。
重要 如果实例所在的交换机没有打开分配IPv6地址的功能,点击开通交换机IPv6,在交换机界面开通IPv6。交换机如何开通IPv6,请参见交换机开通IPv6。
单击确定。
新建实例时分配IPv6地址
创建实例时,需要注意以下信息(其他配置说明,请参见自定义购买实例):
网络及可用区:选择已开通IPv6的专有网络和交换机。若未开通,可参考文档交换机开通IPv6。
实例:筛选出支持IPv6的实例规格,并选择一个实例规格。
带宽和安全组:单击弹性网卡|IPv6(选填),然后选中免费分配 IPv6 地址。
分配完成后,您可以通过ECS管理控制台查看IP地址详情。具体操作,请参见查看IP地址。
步骤二: 配置IPv6地址
将IPv6地址配置到云服务器的网卡上,以使镜像操作系统内部识别并生效IPv6。
部分镜像支持自动配置并识别IPv6地址,通过以下步骤确认您的ECS实例操作系统是否已经识别了IPv6地址。
Linux实例
远程连接Linux实例。
具体操作,请参见通过密码或密钥认证登录Linux实例。
执行ip -6 addr show
或者ifconfig
命令。
如果返回信息如下图所示,则表示已成功识别IPv6地址,可以跳过此配置IPv6的步骤,如果没有,请继续执行以下操作。
Windows实例
远程连接Windows实例。
具体操作,请参见通过密码认证登录Windows实例。
打开命令行工具,执行ipconfig
命令
如果返回信息如下图所示,则表示已成功识别IPv6地址,可以跳过此配置IPv6的步骤,如果没有,请继续执行以下操作。
配置IPv6地址。
重要 自动配置IPv6地址方式需安装云助手;若您的实例不支持或不方便安装云助手,请通过手动方式配置IPv6地址。
(推荐)自动配置IPv6地址
前提条件
实例已安装云助手。若未安装,请参见安装云助手Agent。
仅适用于以下操作系统:Alibaba Cloud Linux 2/3、CentOS 6/7/8、Red Hat 6/7、Anolis OS、Fedora、Ubuntu 14/16/18/20、Debian 8/9/10/11、SUSE 11/12/15、OpenSUSE 15/42、FreeBSD 11。
重要 配置过程需使用到云助手,可能会自动重启网卡、网络服务,短时间内网络可能会不可用,请慎重执行。
操作步骤
远程连接Linux实例。
具体操作,请参见通过密码或密钥认证登录Linux实例。
执行以下命令配置IPv6地址。
说明 在默认情况下,执行以下命令时会自动校验ecs-utils-ipv6
插件是否已在本地安装,或本地版本是否为最新。若未安装或版本较旧,插件将自动从网络上下载最新版本并执行安装,这一过程需要您的ECS实例具备公网访问功能。
sudo acs-plugin-manager --exec --plugin=ecs-utils-ipv6
手动配置(Linux)
远程连接Linux实例。
具体操作,请参见通过密码或密钥认证登录Linux实例。
执行ip addr | grep inet6
或者ifconfig | grep inet6
命令,检查实例是否已开启IPv6服务。
如果未返回inet6
相关内容:表示实例未开启IPv6服务,请开启IPv6服务。
如何开启IPv6服务?
Alibaba Cloud Linux 2/3
执行以下命令,修改/etc/sysctl.conf
配置文件。
vi /etc/sysctl.conf
按i
键进入编辑模式,找到如下内容,将内容末尾数值1
替换为0
。
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
如果需要开启指定网络接口,修改信息示例如下。
net.ipv6.conf.eth0.disable_ipv6 = 0
修改完成后按Esc
键退出编辑模式,输入:wq
后按下回车键,保存并退出。
执行以下命令,验证/etc/sysctl.conf
配置信息是否与initramfs中的/etc/sysctl.conf
存在差异。
diff -u /etc/sysctl.conf <(lsinitrd -f /etc/sysctl.conf)
说明 Alibaba Cloud Linux 2配置了initramfs(initram file system)。如果initramfs中的/etc/sysctl.conf
文件与IPv6的配置文件/etc/sysctl.conf
存在差异,系统可能会生效新的配置,与您需求的配置混淆。
若两个配置文件存在差异,执行以下命令,重新生成initramfs
。
sudo dracut -v -f
重启ECS实例使配置生效。具体操作,请参见重启实例。
执行ip addr | grep inet6
或者ifconfig | grep inet6
命令,验证是否已成功开启IPv6。
若系统返回inet6
相关内容,则表示IPv6服务已成功开启。
CentOS 6/7
执行以下命令,修改/etc/modprobe.d/disable_ipv6.conf
配置文件。
vi /etc/modprobe.d/disable_ipv6.conf
按i
键进入编辑模式,将options ipv6 disable=1
修改为options ipv6 disable=0
。
修改完成后按Esc
键退出编辑模式,输入:wq
后按下回车键,保存并退出。
执行以下命令,修改/etc/sysconfig/network
配置文件。
vi /etc/sysconfig/network
按i
键进入编辑模式,将NETWORKING_IPV6=no
修改为NETWORKING_IPV6=yes
。
修改完成后按Esc
键退出编辑模式,输入:wq
后按下回车键,保存并退出。
(可选)依次执行以下命令,重新加载IPv6模块。
说明 若您的操作系统为CentOS 6,则需要执行该步骤。否则,跳过该步骤。
modprobe ipv6 -r
modprobe ipv6
lsmod | grep ipv6
若系统返回以下内容,表明IPv6模块已经成功加载。
ipv6 xxxxx 8
说明 返回内容第三列参数值不能为 0,否则您需要重新设置IPv6服务。
执行以下命令,修改/etc/sysctl.conf
配置文件。
vi /etc/sysctl.conf
按i
键进入编辑模式,找到如下内容,替换内容末尾数值1
为0
。
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
修改完成后按Esc
键退出编辑模式,输入:wq
后按下回车键,保存并退出。
执行以下命令,使配置生效。
sudo sysctl -p
Debian 8/9
执行以下命令,修改/etc/default/grub
配置文件。
vi /etc/default/grub
按i
键进入编辑模式,删除ipv6.disable=1
内容。
修改完成后按Esc
键退出编辑模式,输入:wq
后按下回车键,保存并退出。
执行以下命令,修改/boot/grub/grub.cfg
配置文件。
vi /boot/grub/grub.cfg
按i
键进入编辑模式,删除ipv6.disable=1
内容。
修改完成后按Esc
键退出编辑模式,输入:wq
后按下回车键,保存并退出。
重启Linux实例。具体操作,请参见重启实例。
执行以下命令,修改/etc/sysctl.conf
配置文件。
vi /etc/sysctl.conf
按i
键进入编辑模式,找到如下内容,替换内容末尾数值1
为0
。
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0
修改完成后按Esc
键退出编辑模式,输入:wq
后按下回车键,保存并退出。
执行以下命令,使配置生效。
sudo sysctl -p
Ubuntu 14/16、OpenSUSE 42
执行以下命令。修改vi /etc/sysctl.conf
配置文件。
vi /etc/sysctl.conf
按i
键进入编辑模式,找到如下内容,替换内容末尾数值1
为0
。
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0
修改完成后按Esc
键退出编辑模式,输入:wq
后按下回车键,保存并退出。
执行以下命令,使配置生效。
sysctl -p
FreeBSD 11
执行以下命令,修改/etc/rc.conf
配置文件。
vi /etc/rc.conf
按i
键进入编辑模式,添加ipv6_activate_all_interfaces="YES"
内容。
修改完成后按Esc
键退出编辑模式,输入:wq
后按下回车键,保存并退出。
执行以下命令,重启网络使配置生效。
/etc/netstart restart
SUSE 11/12
执行以下命令,修改/etc/modprobe.d/50-ipv6.conf
配置文件。
vi /etc/modprobe.d/50-ipv6.conf
按i
键进入编辑模式,删除install ipv6 /bin/true
内容。
修改完成后按Esc
键退出编辑模式,输入:wq
后按下回车键,保存并退出。
执行以下命令。修改vi /etc/sysctl.conf
配置文件。
vi /etc/sysctl.conf
按i
键进入编辑模式,找到如下内容,替换内容末尾数值1
为0
。
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0
修改完成后按Esc
键退出编辑模式,输入:wq
后按下回车键,保存并退出。
执行以下命令,使配置生效。
sysctl -p
如果返回inet6
相关内容:表示实例已开启IPv6服务,请配置IPv6地址。
配置IPv6地址。
Alibaba Cloud Linux 2/3、CentOS 6/7、Red Hat 6/7
执行以下命令,修改网卡配置文件。
vi /etc/sysconfig/network-scripts/ifcfg-eth0
eth0
:需要替换为实际网卡接口名称。修改完成后,保存并退出。
按i
键进入编辑模式,在文件中根据实际信息添加以下配置。
DHCPV6C=yes
IPV6INIT=yes
修改完成后按Esc
键退出编辑模式,输入:wq
后按下回车键,保存并退出。
重启ECS实例使配置生效。具体操作,请参见重启实例。
CentOS 8
确认网卡配置文件是否包含IPV6INIT=yes
和DHCPV6C=yes
两项内容。如果包含直接进行下一步操作,如果未包含需先手动添加。
vi /etc/sysconfig/network-scripts/ifcfg-eth0
eth0
为网卡标识符,您需要修改成实际的标识符。修改完成后,保存并退出。
禁用cloud-init修改/etc/sysconfig/network-scripts/
目录下网卡文件的能力。
说明 分配IPv6地址后无需手动配置,但重启之后可能丢失,因此需要禁用cloud-init修改网卡文件的能力。
执行vi /etc/cloud/cloud.cfg
打开网卡配置文件。
vi /etc/cloud/cloud.cfg
在Example datasource config
内容前添加以下信息:
network:
config: disabled
修改完成后,保存并退出。
重启ECS实例使配置生效。具体操作,请参见重启实例。
Debian 8/9/10/11、Ubuntu 16
执行vi /etc/network/interfaces
打开网卡配置文件,在文件中根据实际信息添加以下内容:
iface eth0 inet6 dhcp
eth0
:需要替换为实际网卡接口名称。修改完成后,保存并退出。
重启ECS实例使配置生效。具体操作,请参见重启实例。
Ubuntu 18/20
禁用cloud-init修改/etc/sysconfig/network-scripts/
目录下网卡文件的能力。
说明 分配IPv6地址后无需手动配置,但重启之后可能丢失,因此需要禁用cloud-init修改网卡文件的能力。
执行vi /etc/cloud/cloud.cfg
打开网卡配置文件。
vi /etc/cloud/cloud.cfg
在Example datasource config
内容前添加以下信息:
network:
config: disabled
修改完成后,保存并退出。
重启ECS实例使配置生效。具体操作,请参见重启实例。
Ubuntu 14
执行vi /etc/network/interfaces
打开网卡配置文件,在文件中根据实际信息添加以下内容:
iface eth0 inet6 dhcp
eth0
:需要替换为实际网卡接口名称。修改完成后,保存并退出。
重启ECS实例使配置生效。具体操作,请参见重启实例。
FreeBSD 11
执行vi /etc/rc.conf
命令,打开网卡配置文件,在文件中根据实际信息添加以下内容:
ipv6_enable="YES"
ipv6_ifconfig_vtnet0="<IPv6地址> <子网前缀长度>"
vtnet0
:需要替换为实际网卡接口名称。修改完成后,保存并退出。
继续在文件中修改以下信息,修改完成后,保存并退出。
ip6addrctl_enable="YES"
ipv6_activate_all_interfaces="YES"
ipv6_network_interfaces="auto"
修改完成后,配置文件内容示例如下:
hostname="Aliyun"
sshd_enable="YES"
dumpdev="NO"
ipv6_enable="YES"
ip6addrctl_enable="YES"
ip6addrctl_policy="ipv4_prefer"
ipv6_activate_all_interfaces="YES"
ipv6_network_interfaces="auto"
ifconfig_lo0="inet 127.0.0.1 netmask 255.0.0.0"
ifconfig_vtnet0="inet 192.168.XX.XX netmask 255.255.255.0"
ipv6_ifconfig_vtnet0="2001:XXXX:4:4:4:4:4:4 prefixlen 64"
defaultrouter="192.168.XX.XX"
hostname="freebsd"
重启ECS实例使配置生效。具体操作,请参见重启实例。
Anolis OS 7.9/8.4、CentOS Stream、Fedora
确认网卡配置文件是否包含IPV6INIT=yes
和DHCPV6C=yes
两项内容。如果包含无需再做任何操作,如果未包含需先手动添加。
vi /etc/sysconfig/network-scripts/ifcfg-eth0
eth0
:需要替换为实际网卡接口名称。修改完成后,保存并退出。
重启ECS实例使配置生效。具体操作,请参见重启实例。
手动配置(Windows)
远程连接Windows实例。
具体操作,请参见通过密码认证登录Windows实例。
打开命令行工具,执行ipconfig
命令,检查实例是否已开启IPv6服务。
如果未返回inet6
相关内容:表示实例未开启IPv6服务,请开启IPv6服务。
如何开启IPv6服务?
选择。
单击当前网络连接名,打开状态界面,再单击属性。
选中Internet 协议版本 6 (TCP/IPv6)。
Windows Server 2008/2012/2016/2019/2022的操作步骤如下:
检查IPv6协议这一行是否被选中。如果没有选中则需要先选中,然后单击确定。
Windows Server 2003的操作步骤如下:
根据IPv6协议是否存在,执行不同操作。
存在IPv6协议:选中Internet 协议版本 6 (TCP/IPv6),再单击确定。
不存在IPv6协议:
在本地连接属性页面,单击安装,在网络组件类型页面单击。
在选择网络协议页面,选择完成安装。
选中Internet 协议版本 6 (TCP/IPv6),再单击确定。
如果返回inet6
相关内容:表示实例已开启IPv6服务,请配置IPv6地址。
配置IPv6地址。
在实例详情页,获取已生成的IPv6地址。
配置IPv6地址。
Windows Server 2008/2012/2016的操作步骤如下:
选择。
单击当前网络连接名,打开状态界面,再单击属性。
选择。
选中使用以下IPv6地址,并填入IPv6地址、子网前缀长度和IPv6网关,单击确定。
(可选)绑定多个IPv6地址:在Internet 协议版本 6(TCP/IP)属性界面,单击高级打开高级设置界面,单击添加做批量处理。完成后单击确定。
Windows Server 2003的操作步骤如下:
选择,查看当前网络连接名,假设为本地连接 2。
在Windows系统桌面使用Win+R
组合键打开运行对话框,并输入cmd
命令,然后单击确定,打开命令行工具。
添加IPv6地址。
单个IPv6地址执行以下命令:
netsh interface ipv6 add address "本地连接 2" <IPv6 地址>
多个IPv6地址执行以下命令:
netsh interface ipv6 add address "本地连接 2" <IPv6 地址 1>
netsh interface ipv6 add address "本地连接 2" <IPv6 地址 2>
执行以下命令,添加默认路由。
netsh interface ipv6 add route ::/0 "本地连接 2" <IPv6 网关>
(条件必选)如果您的ECS实例运行的是Linux系统,请执行此步骤;否则,可跳过此操作。
执行以下命令,查看实例是否安装了多网卡配置工具。
ls /sbin/eni-ifscan
若返回信息如下图,则表示实例预装了多网卡配置工具,您需要修改多网卡配置工具的eni-function
文件。
说明 如果Linux实例预装了多网卡配置工具,由于该工具默认不支持IPv6,将导致Linux系统内的IPv6网卡无法自动识别,实例重启后系统无法获取IPv6地址。
如何修改eni-function
文件
执行以下命令,修改eni-function
文件。
vim /etc/eni_utils/eni-function
按i
键进入编辑模式,将IPV6INIT=no
修改为IPV6INIT=yes
,并添加DHCPV6C=yes
行,修改后保存并退出。
验证,当输入ifconfig
或ipconfig
命令返回第一步的结果时即表示配置成功。
步骤三: (可选)开通IPv6公网带宽
默认云服务器的IPv6地址仅具有私网通信能力,若您想要通过该IPv6地址访问公网或被公网访问,则需开通IPv6公网带宽。
如何开通IPv6公网带宽
登录专有网络管理控制台。
在左侧导航栏,选择。
- 在顶部菜单栏处,选择IPv6网关的地域。
在IPv6网关页面,根据实例的专有网络ID找到对应IPv6网关,然后单击IPv6网关ID。
在IPv6网关的详情页面,单击IPv6公网带宽页签,找到目标IPv6地址,然后在操作列单击开通公网带宽。
在IPv6公网带宽(后付费)页面,根据以下信息配置公网带宽,然后单击立即购买并完成支付。
参数 | 描述 |
流量 | 选择公网带宽的计费类型。 公网带宽支持按固定带宽计费和按使用流量计费两种计费类型。更多信息,请参见计费说明。 |
带宽 | 根据需要调整公网带宽的带宽峰值。 |
计费周期 | 公网带宽的计费周期。有Day(按天)和Hour(按小时)两种计费周期。 当公网带宽选择按固定带宽计费时,计费周期为Day(按天),当公网带宽选择按使用流量计费时,计费周期为Hour(按小时)。 |
步骤四: IPv6网络连通性测试验证
测试IPv6的网络连通性,以保证配置的IPv6地址已具备访问公网或被公网访问的能力。
说明 测试IPv6的网络连通性时,您需要确保服务端与客户端都支持并配置了IPv6。
测试公网连通性
ping -6 aliyun.com
系统返回信息如下图所示,表示网络连接正常。
说明 在此示例中,网站aliyun.com已支持IPv6,当您的ECS实例配置完成后,即可通过IPv6访问aliyun.com。
测试私网连通性
在ECS01实例中执行ping6 <ECS02 IPv6私网地址>
命令,ping6
ECS02实例的IPv6地址,测试私网通信是否正常。
如果能接收到回复报文,表示通信正常。经测试,ECS01实例到ECS02实例的IPv6私网通信正常。
在ECS02实例中执行ping6
命令,ping
ECS01实例的IPv6地址,测试私网通信是否正常。
如果能接收到回复报文,表示通信正常。经测试,ECS02实例到ECS01实例的IPv6私网通信正常。
说明 在此示例中,两台ECS实例互相访问的前提是您的ECS01实例与ECS02实例均已配置了IPv6。
其他操作
添加IPv6安全组规则
IPv4和IPv6通信彼此独立,如果当前的安全组规则不能满足业务需求,为了增强网络安全性您需要为ECS实例单独配置IPv6安全组规则。
如何添加IPv6安全组规则
登录ECS管理控制台。
在左侧导航栏,选择。
在页面左侧顶部,选择目标资源所在的资源组和地域。
找到目标安全组,在操作列中,单击管理规则。
在安全组详情页,找到访问规则区域,选择入方向或出方向。
添加安全组规则。具体操作,请参见添加安全组规则。
说明 您需要设置授权对象为IPv6地址段,例如:2001:db8:1234:1a00::***
。有关安全组规则更多信息,可参见安全组规则。
删除已分配的IPv6地址
如果您的ECS实例不需要IPv6地址,您可以删除实例的IPv6地址。删除IPv6地址后,您仍然可以使用IPv4地址。本章节介绍如何通过ECS管理控制台删除IPv6地址。
操作步骤
登录ECS管理控制台。
在左侧导航栏,选择。
在页面左侧顶部,选择目标资源所在的资源组和地域。
在弹性网卡页面,选择已绑定至目标实例并分配了IPv6地址的弹性网卡,然后在操作列单击管理弹性网卡IP。
在弹出的管理弹性网卡IP对话框中,单击IPv6地址信息右侧的图标。
单击确定。