/etc/resolv.conf配置例子:
1 2 3 4 |
options timeout:1 attempts:1 rotate single-request-reopen nameserver 114.114.114.114 nameserver 114.114.115.115 nameserver 223.6.6.6 |
dns 服务器最多能设三个。
search 最多设6个。
timeout: 查询一个dns的超时时间,单位是秒。系统缺省是5,最大可以设为30。改成最小值:1
attempts: 全部dns都查询一遍的次数。缺省是2,有3台dns的前提下,都查询一遍完全够了
rotate: 随机选取一个作为首选查询的dns。没有这个选项的话,系统缺省是从上到下的
single-request-reopen: 发送A类型请求和AAAA类型请求使用不同的源端口。这样两个请求在conntrack表中不占用同一个表项,从而避免冲突。不理解的话,记住加上更好就行了。
(https://www.cnblogs.com/zhangmingda/p/9725746.html,https://cloud.tencent.com/developer/article/1449227)
ndots:5 所有查询中,如果.的个数少于5个,则会根据search中配置的列表依次在对应域中先进行搜索,如果没有返回,则最后再直接查询域名本身
https://www.ichenfu.com/2018/10/09/resolv-conf-desc/
在RHLE6/CENTOS6的环境里,需要在/etc/resolv.conf添加以下参数options single-request-reopen。具体原因请看下面。
一. 在RHEL5/CentOS5/Ubuntu 10.04等linux下,dns的解析请求过程如下图:
1 主机从一个随机的源端口,请求 DNS的AAAA 记录,
2 主机接受dns服务器返回AAAA记录,
3 主机从一个另一个随机的源端口,请求 DNS的A 记录,
4 主机dns 服务器返回A记录,
二. 如果是RHEL6/CentOS6,交互过程有所不同,如图:
1 主机从一个随机的源端口,请求 DNS的A 记录,
2 主机从同一个源端口,请求 DNS的AAAA 记录,
3 主机接受dns服务器返回A记录,
4 主机接受 dns服务器返回AAAA记录,
三. 上面3,4并没有严格的先后顺序,实际的顺序受网络环境,服务器环境的影响
理论上讲centos6的这种工作机制,效率更高,端口复用度更高,能节省更多的资源。
但是这里也同样存在着一个问题。比如在存在防火墙等机制的网络环境中,同样源目的ip,同样源目的port,同样的第4层协议的连接会被防火墙看成是同一个会话,因此会存在返回包被丢弃现象。如下图:
此时的整个dns解析过程如下:
1 主机从一个随机的源端口,请求 DNS的A 记录,
2 主机从同一个源端口,请求 DNS的AAAA 记录,
3 主机先收到dns返回的AAAA记录,
4 防火墙认为本次交互通信已经完成,关闭连接,
5 于是剩下的dns服务器返回的A记录响应包被防火墙丢弃
6 等待5秒超时之后,主机因为收不到A记录的响应,重新通过新的端口发起A记录查询请求,此后的机制等同于centos5)
7 主机收到dns的A记录响应;
8 主机从另一个新的源端口发起AAAA
9 主机收到dns的AAAA记录响应;
我们看到在这个解析的序列里面,dns解析有5秒的延迟发生。所以当用linux系统安装大量远程包的时候宏观上看延迟就非常大了(linux是不缓存dns解析记录的)。
那么到底options single-request-reopen这个参数的作用是什么的,
man 5 resolv.conf的结果如下,作用就是不用等待5秒,如果没收到响应,就直接关闭这个连接,重新发起一个新连接。
1 2 3 4 5 6 |
#man 5 resolv.conf single-request-reopen (since glibc 2.9) The resolver uses the same socket for the A and AAAA requests. Some hardware mistakenly only sends back one reply. When that happens the client sytem will sit and wait for the second reply. Turn- ing this option on changes this behavior so that if two requests from the same port are not handled correctly it will close the socket and open a new one before sending the second request. |
如果 显示 No manual entry for resolv.conf
安装 yum install man-pages
dns的负载均衡设置
nscd dns缓存
如何根据ip的请求来源地址实现dns的就近解析? 定义ACL和启用VIEW
————————————————
版权声明:本文为CSDN博主「fanren224」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/fanren224/article/details/79822206
声明: 本文由( 小天 )原创编译,转载请保留链接: Linux DNS客户端解析域名慢解决,DNS优化 选项说明
------====== 本站公告 ======------
欢迎使用趣域网域名百科,我们将长期提供域名使用相关知识和投资域名的方法和技巧;并提供主机、服务器的解决问题和网站运营方法。