针对 DNS 全球优化做的 CoreDNS 额外配置
发现最近基于 DNS 做访问优化的大企业越来越多。今天从 mirrors.aliyun.com 的 pypi 上更新 package,发现竟然速度只有几十 KB/s,太惊人了。反应了很久才想起来,可能是 DNS 解析的问题。aliyun 对从国外 DNS 服务器回溯的请求,给出的是国外 CDN 节点的 IP。我在国内,去连接国外的 CDN,当然慢了。有了设想,简单证实一下,分别从四个一和 dnspod 解析 mirrors.aliyun.com
这个域名,果然不一样。印证了我的猜想。
不止阿里云,亚麻,azure,这些云服务商,甚至苹果这种做产品的企业,也都有类似基于 DNS 的全球网络优化。
之前用 CoreDNS 做防毒的方案,并没有考虑到这一点,所以在这里补充一下更新后的配置。更新后的配置考虑到几个常用的服务,这几个服务会走国内的 DNS 服务器做解析,以便获取到厂商在国内的服务器 IP,加快访问的速度。
PS:新版的 CoreDNS 新增了对 tls://
协议的支持。tls://
应该会默认走 tcp 可靠连接。对外连接的时候,用了 tls://
协议,实现防毒的目标。
aliyun.com apple.com github.com fastly.net githubusercontent.com binary.com amazonaws.com azk9s.com qcloud.com {
forward . 223.5.5.5 119.29.29.29 114.114.114.114 223.6.6.6 {
max_fails 3
expire 5s
health_check 3s
policy sequential
}
}
company.com {
hosts /etc/hosts {
fallthrough
}
forward . 192.168.1.103 119.29.29.29 114.114.114.114 {
max_fails 3
expire 5s
health_check 3s
policy sequential
}
}
# ---- global conf
.:53 {
hosts /etc/hosts {
#127.0.0.1 a.com
fallthrough
}
forward . tls://8.8.8.8 tls://9.9.9.9 tls://1.1.1.1 119.29.29.29 223.5.5.5 {
force_tcp
max_fails 3
expire 10s
health_check 5s
policy sequential
except company.com
}
prometheus
cache 120
reload 6s
log
errors
}
更新配置后要重启 CoreDNS。试验了一下,阿里云下载 pypi,能达到 3-5 MB/s 的速度。瞬间回血。