centos的dns首次解析失败的困惑


公司有台centos服务器比较奇怪,
就是curl ping wget 之类访问外网的操作都会卡住几秒种。(相同配置及相同服务换将的其他几台机器正常)
域名在hosts文件中强制指定ip秒开。如 1.2.3.4 www.baidu.com
可以说明是dns解析的问题。

$ time curl domain-xxx.com 发现每次返回都10秒以上,
此时/etc/resolv.conf 包含两个nameserver。
然后删除一个nameserver后,每次返回在5秒以上。
设置3个nameserver后,每次返回在15秒以上。

然后修改了/etc/resolv.conf中options timeout:1(超时设置成了1秒)
n个nameserver,每次返回n秒以上。(当然n最大为3)
可以看出是/etc/resolv.conf nameserver都失败了。

但是例如 $ dig www.baidu.com 返回如下结果


 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.3 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25008
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.baidu.com.         IN  A

;; ANSWER SECTION:
www.baidu.com.      90  IN  CNAME   www.a.shifen.com.
www.a.shifen.com.   214 IN  A   220.181.112.244
www.a.shifen.com.   214 IN  A   220.181.111.188

;; Query time: 15 msec
;; SERVER: 8.8.8.8#53(8.8.8.8) ## /etc/resolv.conf 中第1个 nameserver
;; WHEN: Mon Aug 10 21:14:19 2015
;; MSG SIZE  rcvd: 90

real    0m1.019s ## 可以看到此时有1秒的时间莫名消耗掉了,当前只有1个nameserver
user    0m0.003s
sys 0m0.000s

我的问题来了
1,如果 /etc/resolv.conf 中的3个 nameserver都失败了
那么为什么的dig的server结果还是8.8.8.8
2,为什么会出现超时重试,即第1次轮询失败,第2次的第1个nameserver就成功了(我这样理解。。。)。
3,centos系统或机房网络有没有什么可能影响我本机dns解析的。

谢谢大家。
补充一下:CentOS release 6.4 (Final)

dns curl wget centos ping

Michiyo 9 years, 3 months ago

Your Answer