导语 | 2020年末,很多门户网站二级、三级链接的IPv6浓度要求达到85%以上。CDN业务切换到IPv6可能是最近很多互联网公司在做的事情,那么如何能够快速又稳定的将业务切换到IPv6呢?本文主要分享在腾讯云上切换IPv6的过程需要做哪些事情。
本文作者:腾讯云售后架构师 李彬文
CDN域名切换IPv6流程:使用方资源需求申报===>腾讯云评估资源===>腾讯云提供测试节点===>测试通过进行灰度切换===>灰度切换验证===>逐步全量切换
先确定对应地域CDN的IPv6带宽资源是否足够?
1)为什么要确定IPv6带宽资源?
虽然当前腾讯云支持IPv6的CDN节点足够多,覆盖率也足够高,但是当前腾讯云与其他CDN友商同样做不到IPv6带宽资源和IPv4一样充足。为了切量时能更加平稳适配对应CDN资源(尤其是对带宽量需求大的域名),需要提前确定IPv6带宽资源。
2)如何申报IPv6带宽资源?
需要使用方提前申报相关资源信息,申报表格大致如下:(峰值带宽在控制台可以根据域名直接查看,峰值QPS需要换算,预估峰值QPS=5分钟总请求数/300秒)
3)如何评估IPv6资源是否足够?
腾讯云CDN团队会按流程快速确认使用方申报的CDN资源,如果对应省份带宽和QPS资源都评估通过,那么会通知使用方进行CDN节点测试。
测试CDN节点是否可以正常支持IPv6资源请求?
1) 先了解一下请求CDN资源的基本加速原理:
1. 用户访问abc.test1.com/下的某图片资源(如:abc.png),会先向本地DNS服务器发起域名解析,默认支持双栈的终端解析请求优先指定解析类型为IPv6;
2. 当本地DNS解析abc.test1.com 域名时,会发现已经配置了CNAME abc.test1.com.cdn.dnsv1.com,利用CNAME指向腾讯云CDN全球调度体系;
3. 本地DNS服务器将解析请求发送到腾讯云CDN全球调度体系,解析出最佳的CDN节点对应IPv6地址;
4. 本地DNS服务器收到腾讯云CDN全球调度体系返回的最佳节点IPv6地址后,将最佳节点IPv6地址返回给用户;
5. 用户向最佳CDN节点IPv6地址发起对资源abc.png的访问请求;
6. 如果最佳CDN节点缓存了abc.png资源,那么会将数据直接返回给用户。若CDN节点无对应资源,则CDN节点会向业务源站发起对abc.png的请求,拿到资源后,结合用户自定义配置的缓存策略,将资源缓存到CDN节点,到此完整的一次CDN请求结束。
2) CDN节点IPv6测试:
1. 用户侧准备好测试环境,手机或者PC访问网址 https://test-ipv6.com/index.html.zh_CN 确认终端是否具备IPv6的网络环境;
不具备IPv6网络环境示意图:
具备IPv6网络环境示意图:
2. 确认终端支持IPv6网络环境后(如果PC所在办公环境不支持,可以选择用手机开4G后做热点,然后PC通过手机热点拿到IPV6地址访问公网),由腾讯云提供CDN测试节点。
3. 假设腾讯云提供的甘肃电信CDN测试节点地址为240e:935:a11:11c:30::,那么windows系统可以针对域名abc.test1.com绑定host为甘肃电信CDN节点240e:935:a11:11c:30::通过浏览器访问对应网址测试。linux系统则通过curl命令测试:curl -H "Host:abc.test1.com" -k -v -6 "http://[240e:935:a11:11c:30::]/webapp/js/abc.png" -I 。
4. 以此类推,测试其他省份 ISP的CDN节点,如果多次测试全部正常返回200,并且延迟符合预期,那么可以开始灰度切换域名。
如何灰度切换域名到IPv6?
1) 如果要切换的域名是多个,那么建议选择流量少的域名先灰度切换。并且最好选择单个省份 单运营商进行小规模灰度观察(例如abc.test1.com 甘肃 电信IPv6),切换后观察30分钟IPv6流量正常则可以继续按以下列表进行灰度:
abc.test1.com 甘肃 移动Pv6
abc.test1.com 甘肃 联通Pv6
abc.test1.com 黑龙江 电信Pv6
abc.test1.com 黑龙江 移动Pv6
abc.test1.com 黑龙江 联通Pv6
......最终将域名abc.test1.com 全国 所有ISP都切换到IPv6。
2) 当一个域名完全切换到支持IPv6后,观察24小时左右,如果业务通过IPv6持续正常访问,那么可以将类似业务的其他域名做逐步切换。切换IPv6后在控制台观察对应域名业务情况: