阿里云ECS部署 IPv4 IPv6 双栈实践 – 新建篇

前言

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

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

教程

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

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

本教程适合新购ECS。

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

1545965909435

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

1545965993658

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

1545966127345

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

1545966245160
1545966270303

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

1545966544972

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

1545975753124

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

1545975981949

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

1545976047217

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 了。

1545976365520

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

1545977609360

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

1545976709043

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

1545976773426

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

1545976830554

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

1545977658335

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

1545977822956

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

1545977855359

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

1545977957645

授权对象:输入 ::/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 的地址要想被访问,需要被放在 [] 内,不然会打不开。

1545978917631