调度精确性检测包含如下模块:
config.py
待对比测试的域名及其权威DNS信息 待对比测试的终端IP样本及其对应的运营商,地域信息
evaluator.py
检测脚本,针对所有的待检测域名,分别采用EDNS权威,HTTPDNS,DNSPOD D+,Google DoH四种方式,携带终端IP样本进行解析,对比HTTPDNS、DNSPOD D+、Google DoH与权威EDNS解析的差异,并给出有差异的解析数据及最终的差异统计信息。
samples.py
待检测的IP采样点集合,覆盖不同地域与运营商,目前只包括中国与东南亚地区,如果需要更多地区的探测点,请到阿里云HTTPDNS 提交工单。
sudo pip2.7 install -r requirements.txt
python2.7 evaluator.py
- Terminal会输出大多数概述性的信息
- httpdns_accuracy_detail.csv: 详细的数据表报告
- httpdns_accuracy.run_log:运行日志,包含错误输出及最终结果
按照以下步骤,比较阿里云HTTPDNS与友商的解析精度。
登录阿里云官网开通 阿里云HTTPDNS ,HTTPDNS为每个账户提供150万次解析/月的免费测试额度。
- 在HTTPDNS控制台的概览 的左上角获取自己的HTTPDNS的账户ID
- 把evaluator.py文件中HTTPDNS_URL的'139450'修改为自己的HTTPDNS账户ID
HTTPDNS_URL = "http://47.74.222.190/{HTTPDNS账号ID}/d?host=%s&ip=%s"
- 把domains.txt中的域名列表替换为自己待测试的域名列表
- 执行命令得到配置文件config.py中的HOSTS变量
bash config_helper.sh
- 用上面命令得到的HOSTS数据替换config.py中的HOSTS数据
登录HTTPDNS控制台,把HOSTS第一列中的域名添加到HTTPDNS域名白名单
确保HTTPDNS解析配置生效后,执行以下命令比较解析精度
python2.7 evaluator.py
如果出现本提示,是指某次DNS查询超时了,正在重试,由于评估过程中会发送大量UDP包,所以较为常见
请调节THREAD_POOL = ThreadPoolExecutor(max_workers=30) 中的并发数量
curl "https://dns.google/resolve?name=www.aliyun.com&type=a&edns_client_subnet=202.97.96.0"