随着IPv6的普及,很多网站已经支持IPv6的访问,我们公司很多客户就要求网站支持IPv6,我们目前是推荐客户使用阿里云的IPv6的产品来实现。但是客户问题就来了,怎么检测网站支持IPv6访问呢,目前我们使用国家IPv6发展检测平台来检测,但是这个平台经常会出现维护或无法检测。作为程序员,想自己写一套Api或者程序来实现网站的IPv6和IPv4的检测。
本人计划利用工作空余时间,在1-2周内完成开发(求鞭策),并可以发布访问。
2021.04.11
今天主要是思考下,如何实现?
目前网站访问是通过域名解析来实现的,域名解析常用的又分为A记录、CName记录、AAAA记录,其中A记录和CName记录为IPv4的记录,AAAA记录为IPv6的记录。那么一个网站要实现IPv6的访问,首先是必须有AAAA的解析记录。
如何检测域名的解析记录呢?在我们日常的都是用命令NsLookup和ping来判断这个域名的解析,ping的话有时候不是很准确,所以这里推荐NsLookUp命令。
如何检测现在想明白了,那实现思路也比较清晰了,就是输入一个域名,然后通过NsLookUp来获取网站域名的解析记录值,从而判断是否有AAAA记录。
检测第一步想明白了,那检测后,如何判断支不支持IPv6的访问呢?目前我所熟悉的网络中除了手机4G偶尔会是IPv6的网络,其它环境都是IPv4的。
头大。。。。
2021.4.16
最近公司业务系统被网络攻击,忙于调整云架构和系统防护中,有点耽误,周末会赶上来。
2021.05.02
非常抱歉,之前忙于工作和出差,没时间写,趁着假期不出门,今天在家里写了一天把功能基本实现了。
之前困扰的是如何将验证检测到的Ipv6地址是否有效,后来想到了最简单的办法就是购买一台Ipv6的Ecs,在Ecs上执行有效性的检测。目前Ipv6 Ecs考虑在阿里云Ecs里选够一台。
简单说一下整体流程:
1、通过手动提交域名,通过NsLookup命令检测出Ipv4和Ipv6地址;
2、购买一台Ipv6的ecs,在ecs上执行定时任务,每10分钟或者5分钟通过Api获取到提交的域名的待检测列表。在Ipv6服务上执行web访问命令,检测Ipv6的Http和Https访问。
3、通过Api将检测结果信息回调到前端,呈现到页面;
目前手里只有一个备案域名,准备启用ipv6.bigcat.net.cn这个域名。
目前的进展是只差购买一台Ipv6的ecs,服务正在测试中。
2021.05.04
今天把代码做了一波优化,并发布到服务器上,绑定了证书开始运行,网址:https://ipv6.bigcat.net.cn ,这个域名有点不合时宜,目前只有这个域名可用。
今天更新的时候遇到一个坑,Nslookup在本地执行速度很快,但是在服务器上执行特别慢,经过几番调试是因为NsLookup我设置了一组Ipv4和Ipv6的Dns导致的。经过测试将Ipv6的Dns去掉,就好了。
目前还是Ipv6地址服务器的采购,目前在阿里云想使用抢占式的方式来,但是测试了几次,一直没办法生成Ipv6地址。打算提工单问问阿里云的人,等采购后就可以发布检测服务。
2021.05.07
经过昨天和今天早上的测试,已经成功使用阿里云ECS搭建了一个纯Ipv6的网络环境,并部署了相关检测服务,现在已经可以实现自动检测,检测频率为 1-5分钟。
检测地址: https://ipv6.bigcat.net.cn
欢迎有需要检测Ipv6网站的朋友进行检测,如有其它要求也可以在这里留言。