DNS解析超时排查/etc/resolv.conf single-request-reopen参数说明
添加
options rotate timeout:1 attempts:3 single-request-reopen
添加到/etc/resolv.conf 中
#释义: 循环查询 超时时间 重试次数 只收到一个IPV4应答或者只收到一个IPV6应答,重新开一个socket查询
single-request-reopen参数说明
说明:
在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的结果如下
#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.
转载请注明:酷喃|coolnull| » centos 6中single-request-reopen参数说明
DNS解析超时排查/etc/resolv.conf single-request-reopen参数说明的更多相关文章
- Nignx添加proxy_pass可能造成DNS解析超时的问题解决
resolver 219.149.194.55; location ^~ /bigdata { proxy_set_header Host $host; ...
- 网卡配置和DNS配置,手动挂在nas存储的共享目录,网络相关其它操作命令,修改防火墙中的端口配置,resolv.conf配置详细介绍和网卡信息配置详细介绍
1. 网卡配置和DNS配置 若想服务器能够发邮件,需要让部署的服务器能够访问到外网环境.若部署的服务器访问不到外网,通过ping www.baidu.com的方式执行的时候,会出现以下问题: &q ...
- /etc/resolv.conf服务器客户端DNS重要配置文件
DNS客户端配置文件:etc/resolv.conf /etc/resolv.conf文件相当于windows如下图: 当然/etc/resolv.conf文件为辅助配置DNS文件,其实在网卡里也可以 ...
- 开发环境入门 linux基础 (部分)网络 SSH 更名 DNS解析 元字符
nginx---> web ifconfig 查看网络配置信息 id add show 查看当前网卡信息(最小安装下) mtu 是指网卡传输的最大单元 单位:字节 网卡配置 临时配置 ifcon ...
- centos7重启后/etc/resolv.conf 被还原解决办法
每次重启服务器后,/etc/resolv.conf文件就被自动还原了,最后发现是被Network Manager修改了. 查看Network Manager服务状态 systemctl status ...
- 如何为linux服务器配置DNS解析?
本文建立在已经搭建好DNS服务器时,为linux机器配置DNS服务器的三种方式. IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址.DNS(域名解析)就是域名到IP ...
- Linux服务器配置DNS解析
概述 DNS(Domain Name System,域名系统) DNS的作用,简单的说:就是把我们输入的网站域名翻译成IP地址的系统. 本文建立在已搭建好DNS服务器,这里讨论为linux机器配置DN ...
- 避免resolv.conf设置被覆盖
resolv.conf文件简介 /etc/resolv文件是系统指定dns服务器地址的配置文件.下面简称resolv.conf 当系统进行域名解析时,会先读取resolv.conf文件中设置的DNS地 ...
- Linux上DNS解析总是选择resolv.conf中第二位的DNS服务器IP地址
问题现象: 在Linux机器上,用户自建了一台DNS服务器.然后改动/etc/resolv.conf将其服务器IP地址添加到第一项.将阿里云的内网DNS放到第二位,然而在测试过程中发现telnet,p ...
随机推荐
- C# Pechkin初始化一次后被锁住的问题
Pechkin.dll可用于pdf的生成,常规用法网上都有介绍:https://www.cnblogs.com/felixnet/p/5143934.html 但是当在一个页面上执行过一次之后,再次就 ...
- 数字逻辑实践5->Verilog语法 | wire 与 reg 的选择与特性
问题起因:最初学习数字逻辑设计理论的时候还没有注意到,在实验课上写代码的时候发现了一个问题: 对于源码模块的变量定义,何时定义为reg.何时定义为wire?它们各自又有什么特性和物理意义? 1. wi ...
- 洛谷 P6199 - [EER1]河童重工(点分治+虚树)
洛谷题面传送门 神仙题. 首先看到这样两棵树的题目,我们肯定会往动态树分治的方向考虑.考虑每次找出 \(T_2\) 的重心进行点分治.然后考虑跨过分治中心的点对之间的连边情况.由于连边边权与两棵树都有 ...
- WC 2007 剪刀石头布
WC 2007 剪刀石头布 看到这个三元环的问题很容易可以考虑到求不合法的三元环的数量的最小值. 什么情况不合法?既然不合法,当且仅当三元环中有一个人赢了另外两个人.所以我们考虑对于一个人而言,如果她 ...
- JSOI 2008 最小生成树计数
JSOI 2008 最小生成树计数 今天的题目终于良心一点辣 一个套路+模版题. 考虑昨天讲的那几个结论,我们有当我们只保留最小生成树中权值不超过 $ k $ 的边的时候形成的联通块是一定的. 我们可 ...
- canvas 基本介绍
# canvas 基本功能介绍 - canvas 能做什么 1. 绘制简单图形线条 2. 裁剪图片 - 开始绘制画布 新建html文档添加 canvas标签 ```html <div style ...
- 【R】如何将重复行转化为多列(一对一转化一对多)?
目录 需求 方法一 方法二 需求 一个数据框一列或多列中有重复行,如何将它的重复行转化为多列?即本来两列一对一的关系,如何转化为一对多的关系?普通的spread函数实现较为麻烦. 示例数据如下: It ...
- 【Python小试】使用列表解析式简化代码
列表解析式的好处: 代码简洁 可读性强 运行快 示例 来自<Python编程>中的一个例子:同时投掷两颗面数不同的骰子(如一个6面的D6和一个10面的D10)n次,统计两个骰子点数之和,并 ...
- R 多图间距调整
在R中多图画到一起的时候,各图间距通常默认的较远. 如下图: 1 par(mfcol=c(2,1)) 2 plot(1:100) 3 plot(1:100) 调整图片间距这时我们要用到par()函数中 ...
- CentOS6忘记root密码如何重置
CentOS6忘记root密码,如何重置密码 ① 重启服务器,按"e"键进入修改系统开机项界面 ② 选择内核项,按"e"进入其中进行配置 在文件内 ...