简单测试一下公共 DNS

几天前做实验的时候,发现 CentOS 6 的 ping 指令非常慢,往往需要 10秒左右才能出结果。搜索了一下资料,发现 Linux 在 ping 的时候,会把解析出的 IP 地址进行反向查询,如果 ping 的时候使用 -n 参数便可以避免反向查询这个操作,加上 -n 试了下后,发现一切都正常了。然而,我发现造成 ping 响应速度过慢的原因并不是这个。

偶然的一个瞬间,发现实验机上的 DNS 配置的是 DNSPod 的公共DNS,地址是 119.29.29.29,作为腾讯旗下的公共 DNS,对它的印象一直很好。然而不知道为什么,一旦遇到 IP 地址反向查询的时候,用这个 DNS 就会卡顿很长的时间,类似这样(分别是 Linux 和 Windows 的查询结果):

1
2
3
4
5
6
7
8
9
# 查询有 PTR 记录的 IP地址
$ nslookup 1.1.1.1 119.29.29.29
;; connection timed out; trying next origin
;; connection timed out; no servers could be reached

# 查询没有 PTR 记录的 IP地址
$ nslookup 203.208.43.120 119.29.29.29
;; connection timed out; trying next origin
;; connection timed out; no servers could be reached
1
2
3
4
5
6
7
8
# Windows 上的测试结果
>nslookup 1.1.1.1 119.29.29.29
服务器: pdns.dnspod.cn
Address: 119.29.29.29

DNS request timed out.
timeout was 2 seconds.
*** 请求 pdns.dnspod.cn 超时

在 Linux 上,反向查询直至失败的耗时已经超过了 20多秒,Windows 下好一点,超时只用了 2 秒。可以看出,这个方向解析的服务基本是不可用的。测试一下其他公共DNS,比如 114DNS(114.114.114.114) 和 阿里DNS(223.5.5.5)都能得到了正确的结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# 114DNS,有 PTR 记录的 IP
$ nslookup 1.1.1.1 114.114.114.114
Server: 114.114.114.114
Address: 114.114.114.114#53

Non-authoritative answer:
1.1.1.1.in-addr.arpa name = one.one.one.one.

Authoritative answers can be found from:

# 阿里DNS,有 PTR 记录的 IP
$ nslookup 1.1.1.1 223.5.5.5
Server: 223.5.5.5
Address: 223.5.5.5#53

Non-authoritative answer:
1.1.1.1.in-addr.arpa name = one.one.one.one.

Authoritative answers can be found from:

# 114DNS,无 PTR 记录的 IP
$ nslookup 203.208.43.120 114.114.114.114
Server: 114.114.114.114
Address: 114.114.114.114#53

** server can t find 120.43.208.203.in-addr.arpa.: NXDOMAIN

# 阿里DNS,无 PTR 记录的 IP
$ nslookup 203.208.43.120 223.5.5.5
Server: 223.5.5.5
Address: 223.5.5.5#53

** server can t find 120.43.208.203.in-addr.arpa.: NXDOMAIN

尽管 114DNS 似乎在网上风评不太好,但对比之下,无论是解析速度和准确率,结果都比阿里和腾讯的公共DNS 要好。其实不同地区的 DNS 服务水平也不同,公共DNS 也不一定比运营商DNS好用。然后,CNNIC(中国互联网络信息中心)也有公共DNS,地址是 1.2.4.8 ,试了一下也不错的。不过,鉴于我常年需要谷歌和维基百科检索资料,这个DNS就不考虑了吧 : )

0%