curl - centos的dns首次解析失败的困惑
大家讲道理
大家讲道理 2017-04-25 09:02:46
0
0
746

公司有台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)

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复 (0)
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!