前言
IPv6 作为未来互联网应用的基石,推广它的重要性是不言而喻的,IPv6 对比 IPv4 不仅地址库更大而且还带来了更好的网络性能和安全性。
目前阿里云的VPC已经支持了 IPv4 和 IPv6 双栈网络,我们可以通过创建 IPv6 网关来获得双向IPv6通信的能力。同时也带了一些新的特性,例如最大支持 1Gbps 的公网带宽和丰富的网络管理模式。
教程
原生的 IPv4v6 双栈还是比较复杂的,远没有之前 《使用SLB+DNS轻松实现网站的IPV6双栈兼容》来的简单。大致流程是:
1.专有网络开通 IPv6 –> 2. ECS 分配IPv6地址 –> 3.开通 IPv6 公网访问权限 –> 4.配置 IPv6 安全组
本教程适合新购ECS。
一、进入专有网络控制台,创建一个专有网络。 专有网络是地域级的,我们还要选定好地域,截至发文目前阿里云仅华北五支持 IPv6。
二、专有网络部分,按要求填写,然后一定要勾选 分配 IPv6网段。
三、交换机部分我们配置相应的网段,网段的策略就是一定不要分配的太大,不然后期搞一些混合云或者跨网络的规划就会很麻烦了。
四、可以看到在专有网络和交换机部分都已经存在了我们创建的 IPv6 的实例
五、然后我们在交换机处,点击 购买 –> ECS实例 ,我们也可以直接在ECS页面新购,然后选择指定地域和交换机。
六、专有网络中选择创建了 IPv6 的VPC和交换机,然后要勾选 IPv6,此时的 IPv6 仅具备内网访问能力,仍不能被公网感知。
七、在第三步 系统配置 处,点击开启 高级选项
八、然后在 实例自定义数据 处写入自动配置 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 了。
十一、不过这时候我们还无法访问 IPv6 公网。 因为我们还没有买 IPv6 的公网带宽。
十二、进入 IPv6网关 点击自己的网关进行管理。
十三、进入 IPv6公网带宽 菜单页,点击 开通公网带宽。
十四、按需选择流量模式,一般我是选择 按流量计费 然后最大用 200Mbps,免费规格最大是 200M,选大了也没用。
十五、等待公网能力生效后,我们再测试一下,可以看到已经成功了
十六、然后我们再进行安全组的配置。进入到 ECS 的本实例安全组配置中去,可以看到授权类型都只是给 IPv4 的
十七、然后我们 添加安全组规则
十八、我这里开放 IPv6 的 80 端口。
授权对象:输入 ::/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 的地址要想被访问,需要被放在 []
内,不然会打不开。