快速入门

最近更新时间: 2024-06-12 15:06:00

本教程将帮助您搭建一个具有 IPv6 CIDR 的私有网络(VPC),并为 VPC 内的云服务器开启 IPv6,实现 IPv6 的内外网通信。

操作场景

  1. 云服务器启用 IPv6,和 VPC 内其他云服务器的 IPv6 内网互通。

  2. 云服务器启用 IPv6,和 Internet 的 IPv6 用户进行双向通信。

操作须知

  1. IPv6 地址为GUA地址,每个 VPC 分配1个/56的 IPv6 CIDR,每个子网分配1个/64的 IPv6 CIDR,每个弹性网卡分配1个 IPv6 地址。

  2. 主网卡、辅助网卡均支持申请 IPv6 地址。想要了解更多云服务器和弹性网卡的关系,请参见 弹性网卡 产品文档。

操作步骤

步骤一:VPC 分配 IPv6 CIDR

  1. 登录 私有网络控制台

  2. 选择支持 IPv6 的地域,并在 VPC 所在行的操作栏下,单击【获取IPv6地址】。

系统将为 VPC 分配一个/56的 IPv6 地址段,您可以在列表里看到 IPv6 地址段的详细信息。

步骤二:为子网分配 IPv6 CIDR

  1. 登录 私有网络控制台

  2. 在左侧目录下选择【子网】,进入管理页面。

  3. 步骤一 中的 VPC 中的子网所在行的操作栏下,单击【分配 Ipv6 CIDR】.

  1. 在弹出的对话框中,为子网分配IPv6 CIDR并单击【确定】。

系统将从 VPC 的/56 IPv6 CIDR 分配一个/64的 IPv6 CIDR。

步骤三:购买云服务器并配置云服务器的 IPv6

为 VPC 和子网分配 IPv6 CIDR 后,您可在该子网下创建一个具有 IPv6 地址的云服务器,也可以为该子网下运行中的云服务器获取 IPv6 地址。因为 IPv6 地址目前还不支持自动下发到网卡,所以从在控制台获取 IPv6 地址后,您还需要登录云服务器进行 IPv6 的配置。

  1. 登录 云服务器购买页

  2. 在云服务器购买页上方,选择【自定义配置】。

  3. 在【选择地域与机型】页签,选择已分配IPv6 CIDR的私有网络和子网,设置实例类型,并单击【下一步:选择镜像】。

  4. 在【选择镜像】页签,设置镜像、操作系统、系统架构、及镜像版本,并单击【下一步:选择存储和带宽】。

  5. 在【选择存储和带宽】页签,选择系统盘类型、指定是否现在分配公网IP,勾选【分配IPv6地址】,并单击【下一步:设置安全组和主机】。

  6. 在【设置安全组和主机】页签,设置安全组及实例登录密码等相关参数,并单击【下一步:确认配置信息】。

  7. 在【确认配置信息】页签,确认云服务器信息无误后,单击【开通】。

  8. 云服务器购买成功后,即可在云服务器列表查看到 IPv6 地址信息。

说明:

  • 如果云服务器在购买时未分配 IPv6 地址,可在对应云服务器实例所在行的操作栏下,选择【更多】>【弹性IP】>【管理 IPv6地址】,为主网卡分配 IPv6 地址。
  • 如果想要给云服务器的其他弹性网卡也分配 IPv6 地址,请参见 申请和释放 IPv6 进行操作。
  1. 登录云服务器配置 IPv6,由于各类云服务器操作系统配置 IPv6 的方式不同,详细操作方法请参见 Linux 云服务器配置 IPv6Windows 云服务器配置 IPv6

步骤四:为云服务器的 IPv6 地址开通公网(可选)

  1. 登录 私有网络控制台

  2. 在左侧目录下选择【IP 与网卡】>【弹性公网 IPv6】。

  3. 选择云服务器的所在地域,单击【申请】,进入管理页面。

  4. 勾选云服务器的 IPv6 地址、设置目标带宽上限,单击【提交】即可。

说明:

  • 云服务器申请了 IPv6 地址后,默认关闭了公网访问能力,可通过弹性公网 IPv6 管理 IPv6 公网能力
  • 当运营商类型为 BGP 时,弹性公网 IPv6 地址即为云服务器获取到的 IPv6 地址,所以请确保云服务器已经获取到 IPv6 地址。
  • 单次操作可支持最多100个 IPv6 地址同时开通公网,如果超过100个 IPv6 地址需要开通公网,请分多次操作。

步骤五:配置 IPv6 的安全组规则

说明:

出入方向的安全组规则支持配置来源为单个 IPv6 地址或者 IPv6 CIDR,其中::/0代表所有的 IPv6 源地址。

  1. 登录 私有网络控制台

  2. 在左侧目录下选择【安全】>【安全组】,在列表页中单击云服务器绑定的安全组 ID,进入详情页。

  3. 选择【入站规则】并单击【添加规则】,添加 IPv6 的入方向安全组规则,单击【完成】即可。

  1. 选择【出站规则】并单击【添加规则】,添加 IPv6 的出方向安全组规则,单击【完成】即可。

步骤六:测试 IPv6 的连通性

说明:

  • 如果是测试公网连通性,请确保已经开通公网。
  • 如果是未开通公网使用 ssh 或远程桌面测试 IPv6 的连通性,可使用另一台处于同一私有网络的云服务器 ssh 或远程桌面被测试的云服务器。

Linux 云服务器

Linux 云服务器可通过 Ping 或 ssh 等操作来测试 IPv6 的连通性。

  • 方式1:通过 Ping 进行测试,操作如下: 在云服务器中执行 ping6 IPv6地址进行测试,例如,ping6 240c::6666ping6 www.qq.comping6 同一私有网络下的 IPv6 地址,成功结果如下图所示:

  • 方式2:通过 IPv6 地址 ssh 云服务器,操作如下: 执行如下命令查看 IPv6 地址,并用 PuTTY 或者 Xshell 等软件,测试能否通过 IPv6 地址 ssh 到云服务器。
ifconfig

成功结果如下图所示。

Windows 云服务器

Windows 云服务器可通过 Ping 或远程桌面测试 IPv6 连通性。

  • 方式1:通过 Ping 进行测试,操作如下: 在操作系统界面,选择左下角的,单击 ,打开 “Windows PowerShell” 窗口,执行ping -6 IPv6 地址进行测试,例如,ping -6 240c::6666ping -6 同一私有网络下的 IPv6 地址,成功如下图所示。

  • 方式2:通过 IPv6 地址进行远程桌面,远程桌面操作详情请参见使用远程桌面连接登录 Windows 实例。

附录

Linux 云服务器配置 IPv6

Linux 云服务器配置 IPv6 有两种方式:工具配置 和 手动配置

  • 工具配置通过工具一键配置 IPv6。

  • 手动配置需要您对 Linux 命令有一定的熟练掌握程度。

    请根据您的实际情况选择对应的方式,推荐您使用更高效的自动配置工具配置 IPv6 地址。

    镜像类型 购买时间 是否已开启 IPv6 工具配置
    (推荐)
    手动配置
    CentOS 7.5/CentOS 7.6 2019-06-30前购买 enable_ipv6 工具 如下列举了四种常用镜像的操作方法,若不满足您的需求,请提交 [工单申请](http://console.fincloud.tencent.cn/workorder/category?step=0" target="_blank) :
    - 新购 CentOS 7.5/新购 CentOS 7.6 配置 IPv6
    - CentOS 6.8 配置 IPv6
    - CentOS 7.3/存量 CentOS 7.5/存量 CentOS 7.6 配置 IPv6
    - Debian 8.2 配置 IPv6
    2019-06-30后购买 config_ipv6 工具
    CentOS 6/CentOS 7(不含7.5/7.6)
    Ubuntu14.04/Ubuntu 12.04
    Debian 8/Debian 9
    CoreOS 17
    Tencent Linux
    2019-11-13 01:00前购买 enable_ipv6 工具
    2019-11-13 01:00后购买 config_ipv6 工具

    FreeBSD、Suse、Ubuntu18
    2019-11-13 01:00前购买 不支持
    2019-11-13 01:00后购买

工具配置

请根据云服务器是否已开启 IPv6 选择对应的配置方式:

  • 未开启 IPv6 的云服务器:enable_ipv6 工具配置

  • 已开启 IPv6 的云服务器:config_ipv6 工具配置

enable_ipv6 工具配置

enable_ipv6 工具可以为已分配 IPv6 地址的 CVM 实例一键配置 IPv6 地址。

使用限制

  • enable_ipv6 工具仅适用于 VPC 网络环境下。

  • enable_ipv6 工具运行时会自动重启网卡、网络服务,短时间内网络可能会不可用,请慎重执行。

    操作步骤

  1. 登录云服务器,在云服务器中直接执行如下命令下载 enable_ipv6 工具:
wget https://iso-1251783334.cos.ap-guangzhou.myqcloud.com/scripts/enable_ipv6.sh
  1. 赋予执行权限后使用管理员权限执行:
chmod +x ./enable_ipv6.sh
./enable_ipv6.sh [网卡名称]  
# 示例 1:./enable_ipv6.sh eth0
# 示例 2:./enable_ipv6.sh eth1
  1. (此步骤仅适用于 CoreOS 操作系统)重启云服务器,使上述配置生效。

config_ipv6 工具配置

config_ipv6 工具可以为已开启 IPv6 且已分配 IPv6 地址的 CVM 实例一键配置 IPv6 地址。

使用限制

  • config_ipv6 工具仅适用于 VPC 网络环境下。

  • config_ipv6 工具运行时会自动重启网卡、网络服务,短时间内网络可能会不可用,请慎重执行。

    操作步骤

  1. 登录云服务器,在云服务器中直接执行如下命令下载 config_ipv6 工具:
wget https://iso-1251783334.cos.ap-guangzhou.myqcloud.com/scripts/config_ipv6.sh
  1. 赋予执行权限后使用管理员权限执行:
chmod +x ./config_ipv6.sh  
./config_ipv6.sh [网卡名称] 
# 示例 1:./config_ipv6.sh eth0
# 示例 2:./config_ipv6.sh eth1
  1. (此步骤仅适用于 CoreOS 操作系统)重启云服务器,使上述配置生效。

对于需要自动化配置 IPv6 实例的需求,例如,大批量配置,建议您使用实例自定义数据配合脚本的方式来调用。详情请参见 实例自定义数据。如下为脚本示例(假设是 RHEL 系列,Bash Shell 脚本)。

说明:

该示例仅对 eth0 进行配置,实际操作时注意修改为实际使用的网卡名。

#!/bin/sh
install_dir=/usr/sbin
install_path="$install_dir"/config-ipv6
if [ ! -f "$install_path" ]; then
    tool_url="https://iso-1251783334.cos.ap-guangzhou.myqcloud.com/scripts/config_ipv6.sh"
    # download the tool
    if ! wget "$tool_url" -O "$install_path"; then
        echo "[Error] download tool failed, code $?"
        exit "$?"
    fi
fi
# chmod the tool
if ! chmod +x "$install_path"; then
    echo "[Error] chmod tool failed, code $?"
    exit "$?"
fi
# run the tool
$install_path eth0

手动配置

如下列举了四种常用的 Linux 云服务器的操作方法:

  • 新购 CentOS 7.5/新购 CentOS 7.6 配置 IPv6

  • CentOS 6.8 配置 IPv6

  • CentOS 7.3/存量 CentOS 7.5/存量 CentOS 7.6 配置 IPv6

  • Debian 8.2 配置 IPv6

    说明:

    • 新购 CentOS 7.5/新购 CentOS 7.6 指2019年06月30日购买的云服务器。
    • 存量 CentOS 7.5/存量 CentOS 7.6 指2019年06月30日购买的云服务器。

新购 CentOS7.5 /新购 CentOS7.6 配置 IPv6

  1. 进入 云服务器控制台 并登录实例。

2. 执行如下命令,打开/etc/sysconfig/network-scripts/文件夹下的ifcfg-eth0文件。

vim /etc/sysconfig/network-scripts/ifcfg-eth0
  1. 按 “i” 切换至编辑模式,增加如下内容。
DHCPV6C=yes

  1. 按 “Esc”,输入 “:wq”,保存文件并返回。

  2. 依次执行如下命令,查看是否已经获取到 IPv6 地址。

# 若云服务器有多个网卡,请执行 dhclient -6 网卡名称,如 dhclient -6 eth0
dhclient -6 或 dhclient -6 网卡名称
ifconfig

  1. 执行如下命令,打开 /etc/ssh/文件夹下的sshd_config文件。
vim /etc/ssh/sshd_config
  1. 按 “i” 切换至编辑模式,删除对AddressFamily any的注释(即删除前面的#),为 ssh 等应用程序开启 IPv6 监听。

  1. 按 “Esc”,输入 “:wq”,保存文件并返回。

  2. 执行如下命令,重启 ssh 进程。

service sshd restart
  1. 执行如下命令,查看 ssh 是否已经监听 IPv6。
netstat -tupln

CentOS 6.8 配置 IPv6

  1. 远程连接实例。具体操作,请参见登录及远程连接。

  2. 检查实例是否已开启 IPv6 服务,执行如下命令:

ip addr | grep inet6
或者
ifconfig | grep inet6
  • 若实例未开启 IPv6 服务,请根据下文继续开启 IPv6 服务。

  • 若返回inet6相关内容,表示实例已成功开启 IPv6 服务,您可以跳至 第9步 继续操作。

  1. 执行如下命令,打开/etc/modprobe.d/文件夹下的ipv6.conf文件。
vi /etc/modprobe.d/ipv6.conf
  1. 按 “i” 切换至编辑模式,将如下的内核参数设置为0。
options ipv6 disable=0

  1. 按 “Esc”,输入 “:wq”,保存文件并返回。

  2. 执行如下命令,打开etc文件夹下的sysctl.conf.first文件。

vim /etc/sysctl.conf.first
  1. 按 “i” 切换至编辑模式,将如下的配置文件参数设置为0。
net.ipv6.conf.all.disable_ipv6 = 0

  1. 按 “Esc”,输入 “:wq”,保存文件并返回。

  2. 执行如下命令,打开/etc/sysconfig/文件夹下的network文件。

vi /etc/sysconfig/network
  1. 按 “i” 切换至编辑模式,增加如下内容。
NETWORKING_IPV6=yes
DHCPV6C=yes

  1. 按 “Esc”,输入 “:wq”,保存文件并返回。

  2. 执行如下命令,打开或创建/etc/sysconfig/network-scripts/文件夹下的route6-eth0文件。

vim /etc/sysconfig/network-scripts/route6-eth0
  1. 按 “i” 切换至编辑模式,增加如下内容,为网卡的 IPv6 添加默认出口。
default dev eth0

  1. 按 “Esc”,输入 “:wq”,保存文件并返回。

  2. 重启云服务器,仅通过 service network restart,IPv6 无法正常加载。

  3. 执行如下命令查看重启后 IPv6 是否已经正常加载。

sysctl -a | grep ipv6 | grep disable

  1. 依次执行如下命令,查看是否已经获取到 IPv6 地址。
# 若云服务器有多个网卡,请执行 dhclient -6 网卡名称,如 dhclient -6 eth0
dhclient -6 或 dhclient -6 网卡名称
ifconfig

  1. 执行如下命令,打开 /etc/ssh/文件夹下的sshd_config文件。
vim /etc/ssh/sshd_config
  1. 按 “i” 切换至编辑模式,删除对AddressFamily any的注释(即删除前面的#),为 ssh 等应用程序开启 IPv6 监听。

  1. 按 “Esc”,输入 “:wq”,保存文件并返回。

  2. 执行如下命令,重启 ssh 进程。

service sshd restart
  1. 执行如下命令,查看 ssh 是否已经监听 IPv6。
netstat -tupln

CentOS 7.3/存量 CentOS 7.5/存量 CentOS 7.6 配置 IPv6

  1. 远程连接实例。具体操作,请参见登录及远程连接。

  2. 检查实例是否已开启 IPv6 服务,执行如下命令:

ip addr | grep inet6
或者
ifconfig | grep inet6
  • 若实例未开启 IPv6 服务,请根据下文继续开启 IPv6 服务。

  • 若返回inet6相关内容,表示实例已成功开启 IPv6 服务,您可以跳至 第8步 继续操作。

  1. 执行如下命令,打开etc文件夹下的sysctl.conf文件。
vim /etc/sysctl.conf
  1. 按 “i” 切换至编辑模式,将如下的 IPv6 相关参数设置为0。
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0

  1. 按 “Esc”,输入 “:wq”,保存文件并返回。

  2. 执行如下命令,对参数进行加载。

sysctl -p
  1. 执行如下命令,查看是否修改成功。
sysctl -a | grep ipv6 | grep disable

显示结果如下,则已成功修改。

  1. 执行如下命令,打开或创建/etc/sysconfig/network-scripts/文件夹下的ifcfg-eth0文件。
vim /etc/sysconfig/network-scripts/ifcfg-eth0
  1. 按 “i” 切换至编辑模式,增加如下内容。
DHCPV6C=yes

  1. 按 “Esc”,输入 “:wq”,保存文件并返回。

  2. 执行如下命令,打开或创建/etc/sysconfig/network-scripts/文件夹下的route6-eth0文件。

vim /etc/sysconfig/network-scripts/route6-eth0
  1. 按 “i” 切换至编辑模式,增加如下内容,为网卡的 IPv6 添加默认出口。
default dev eth0

  1. 按 “Esc”,输入 “:wq”,保存文件并返回。

  2. 执行如下命令,重新启动网卡。

service network restart
或者
systemctl restart network
  1. 依次执行如下命令,查看是否已经获取到 IPv6 地址。
# 若云服务器有多个网卡,请执行 dhclient -6 网卡名称,如 dhclient -6 eth0
dhclient -6 或 dhclient -6 网卡名称
ifconfig

  1. 执行如下命令,打开 /etc/ssh/文件夹下的sshd_config文件。
vim /etc/ssh/sshd_config
  1. 按 “i” 切换至编辑模式,删除对AddressFamily any的注释(即删除前面的#),为 ssh 等应用程序开启 IPv6 监听。

  1. 按 “Esc”,输入 “:wq”,保存文件并返回。

  2. 执行如下命令,重启 ssh 进程。

service sshd restart
  1. 执行如下命令,查看 ssh 是否已经监听 IPv6。
netstat -tupln

Debian 8.2 配置 IPv6

  1. 远程连接实例。具体操作,请参见登录及远程连接。

  2. 检查实例是否已开启 IPv6 服务,执行如下命令:

ip addr | grep inet6
或者
ifconfig | grep inet6
  • 若实例未开启 IPv6 服务,请根据下文继续开启 IPv6 服务。

  • 若返回inet6相关内容,表示实例已成功开启 IPv6 服务,您可以跳至 第6步 继续操作。

  1. 执行如下命令,打开etc文件夹下的sysctl.conf
vim /etc/sysctl.conf
  1. 按 “i” 切换至编辑模式,将如下的 IPv6 相关参数设置为0。
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
  1. 按 “Esc”,输入 “:wq”,保存文件并返回。

  2. 执行如下命令,对参数进行加载。

sysctl -p
  1. 依次执行如下命令,查看是否已经获取到 IPv6 地址。
# 若云服务器有多个网卡,请执行 dhclient -6 网卡名称,如 dhclient -6 eth0
dhclient -6 或 dhclient -6 网卡名称
ifconfig

  1. Debian 8.2 系统默认为 ssh(22端口)开启 IPv6 监听,无需特殊配置,您可执行如下命令,进行查看。
netstat -tupln

  1. 执行如下命令,配置默认路由。
ip -6 route add default dev eth0

Windows 云服务器配置 IPv6

如下操作以 Windows 2012 为例:

  1. 登录云服务器实例,进入操作系统的【控制面板】>【网络和 Internet】>【网络和共享中心】,单击命名为“以太网”的网卡进行编辑。

  1. 在“以太网状态”弹窗中,单击【属性】。

  2. 在“以太网属性”弹窗中,选中【Internet 协议版本 6(TCP/IPv6)】并单击【属性】。

  1. 在“Internet 协议版本 6(TCP/IPv6)属性”弹窗中,手工输入 步骤三 中云服务器获取到的 IPv6 地址并设置 DNS(推荐使用240c::6666),单击【确定】。

  1. 在操作系统界面,选择左下角的,单击 ,打开 “Windows PowerShell” 窗口,依次执行如下命令配置默认路由以及查看 IPv6 地址。
netsh interface ipv6 add route ::/64295985640140800 "以太网"
ipconfig