前言

IPv6 作为未来互联网应用的基石,推广它的重要性是不言而喻的,IPv6 对比 IPv4 不仅地址库更大而且还带来了更好的网络性能和安全性。

目前阿里云的VPC已经支持了 IPv4 和 IPv6 双栈网络,我们可以通过创建 IPv6 网关来获得双向IPv6通信的能力。同时也带了一些新的特性,例如最大支持 1Gbps 的公网带宽和丰富的网络管理模式。

教程

原生的 IPv4v6 双栈还是比较复杂的,远没有之前 《使用SLB+DNS轻松实现网站的IPV6双栈兼容》来的简单。大致流程是:

1.专有网络开通 IPv6 --> 2. ECS 分配IPv6地址 --> 3.开通 IPv6 公网访问权限 --> 4.配置 IPv6 安全组

本教程适合新购ECS。

一、进入专有网络控制台,创建一个专有网络。 专有网络是地域级的,我们还要选定好地域,截至发文目前阿里云仅华北五支持 IPv6。

阿里云ECS部署 IPv4 IPv6 双栈实践 - 新建篇-米饭粑

二、专有网络部分,按要求填写,然后一定要勾选 分配 IPv6网段。

阿里云ECS部署 IPv4 IPv6 双栈实践 - 新建篇-米饭粑

三、交换机部分我们配置相应的网段,网段的策略就是一定不要分配的太大,不然后期搞一些混合云或者跨网络的规划就会很麻烦了。

阿里云ECS部署 IPv4 IPv6 双栈实践 - 新建篇-米饭粑

四、可以看到在专有网络和交换机部分都已经存在了我们创建的 IPv6 的实例

阿里云ECS部署 IPv4 IPv6 双栈实践 - 新建篇-米饭粑
阿里云ECS部署 IPv4 IPv6 双栈实践 - 新建篇-米饭粑

五、然后我们在交换机处,点击 购买 --> ECS实例 ,我们也可以直接在ECS页面新购,然后选择指定地域和交换机。

阿里云ECS部署 IPv4 IPv6 双栈实践 - 新建篇-米饭粑

六、专有网络中选择创建了 IPv6 的VPC和交换机,然后要勾选 IPv6,此时的 IPv6 仅具备内网访问能力,仍不能被公网感知。

阿里云ECS部署 IPv4 IPv6 双栈实践 - 新建篇-米饭粑

七、在第三步 系统配置 处,点击开启 高级选项

阿里云ECS部署 IPv4 IPv6 双栈实践 - 新建篇-米饭粑

八、然后在 实例自定义数据 处写入自动配置 IPv6 的脚本。

阿里云ECS部署 IPv4 IPv6 双栈实践 - 新建篇-米饭粑

Linux 填写:

#!/bin/sh
install_dir=/usr/sbin
install_path="$install_dir"/ecs-utils-ipv6
if [ ! -f "$install_path" ]; then
    tool_url="http://ecs-image-utils.oss-cn-hangzhou.aliyuncs.com/ipv6/rhel/ecs-utils-ipv6"
    # 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"

Windows 填写:

#powershell
$install_dir="C:\Windows\system32"
$install_path = "$install_dir\ecs-utils-ipv6.exe"

if(-not (Test-Path -Path $install_path)){
    # download the tool
    $tool_url = 'http://ecs-image-utils.oss-cn-hangzhou.aliyuncs.com/ipv6/win/64/ecs-utils-ipv6.exe' 
    Invoke-WebRequest -uri $tool_url -OutFile $install_path
    Unblock-File $install_path
}

# run the tool
Start-Process -FilePath "$install_path" -ArgumentList "--noenterkey" -NoNewWindow

九、然后几个下一步后,我们就可以开始创建实例了。

十、登录服务器我们就可以看到已经创建完成的 IPv6 了。

阿里云ECS部署 IPv4 IPv6 双栈实践 - 新建篇-米饭粑

十一、不过这时候我们还无法访问 IPv6 公网。 因为我们还没有买 IPv6 的公网带宽。

阿里云ECS部署 IPv4 IPv6 双栈实践 - 新建篇-米饭粑

十二、进入 IPv6网关 点击自己的网关进行管理。

阿里云ECS部署 IPv4 IPv6 双栈实践 - 新建篇-米饭粑

十三、进入 IPv6公网带宽 菜单页,点击 开通公网带宽

阿里云ECS部署 IPv4 IPv6 双栈实践 - 新建篇-米饭粑

十四、按需选择流量模式,一般我是选择 按流量计费 然后最大用 200Mbps,免费规格最大是 200M,选大了也没用。

阿里云ECS部署 IPv4 IPv6 双栈实践 - 新建篇-米饭粑

十五、等待公网能力生效后,我们再测试一下,可以看到已经成功了

阿里云ECS部署 IPv4 IPv6 双栈实践 - 新建篇-米饭粑

十六、然后我们再进行安全组的配置。进入到 ECS 的本实例安全组配置中去,可以看到授权类型都只是给 IPv4 的

阿里云ECS部署 IPv4 IPv6 双栈实践 - 新建篇-米饭粑

十七、然后我们 添加安全组规则

阿里云ECS部署 IPv4 IPv6 双栈实践 - 新建篇-米饭粑

十八、我这里开放 IPv6 的 80 端口。

阿里云ECS部署 IPv4 IPv6 双栈实践 - 新建篇-米饭粑

授权对象:输入 ::/0 类似于 IPv4 的 0.0.0.0/0,就是全部 IP 开放了。

授权类型:IPv6地址段访问

十九、然后我们需要修改一下程序。

例如 Nginx 的监听就要从

listen  80;

修改成

listen  [::]:80;

以实现同时监听 IPv4 和 IPv6

二十、检测一下,有 IPv6 网络的直接浏览器访问即可,如果没有的话,那就通过 curl 来检测

curl -6 -g -I http://[2408:4004:0:2001:979:c21f:ffff:ffff]/

IPv6 的地址要想被访问,需要被放在 [] 内,不然会打不开。

阿里云ECS部署 IPv4 IPv6 双栈实践 - 新建篇-米饭粑