linux – 反向DNS查找减慢了LAN上的网络操作教程
环境
我的局域网设置非常基础:
连接到ISP的调制解调器和互联网的路由器
我的开发pc直接连接到路由器
路由器提供DHCP但不运行自己的DNS服务器.事实上,我的LAN(典型的家庭网络设置)上没有托管任何DNS服务器.路由器配置为发送ISP的DNS服务器作为DHCP租约信息的一部分.
我在我的开发PC上安装了一台VirtualBox机器,并在其上安装了Debian Squeeze(6.0.4). VirtualBox网络模式是桥接适配器,用于模拟LAN上的独立服务器.作为VirtualBox服务器而不是物理服务器并不重要,但我提到它是为了完整性.
问题
每次网络操作在执行之前执行LAN ip的DNS反向查找时,服务器都会有很长的延迟.网络运行缓慢的一些例子:
从我的开发PC连接到服务器的SSH
连接到Glassfish服务器的管理端口
netstat -l(netstat -nl非常快)
启动MTA:启动时exim4需要很长时间才能完成
其中一些有解决方法,例如将我的dev pc的Ip添加到/ etc / hosts或添加特定于命令的选项以避免进行DNS反向查找.显然,使用/ etc / hosts只是因为它与DHCP不一致.
但是,我不禁想到我错过了什么.我真的需要在局域网的某个地方设置DNS服务器吗?对我的需求而言,这似乎是一项巨大而无用的努力,我无法相信像我这样的DHCP环境中没有其他选择.
我搜索网络很多,也许我没有正确的搜索条件,但我找不到解决方案……
在BillThor的回答之后更新1
使用host(dig给出相同的结果):
# ip of stackoverflow.com
$time host -v 64.34.119.12
Trying "12.119.34.64.in-addr.arpa"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15537
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;12.119.34.64.in-addr.arpa. IN PTR
;; ANSWER SECTION:
12.119.34.64.in-addr.arpa. 143 IN PTR stackoverflow.com.
Received 74 bytes from 192.168.1.1#53 in 15 ms
real 0m0.020s
user 0m0.008s
sys 0m0.000s
# ip of dev pc
$time host -v 192.168.1.50
Trying "50.1.168.192.in-addr.arpa"
;; connection timed out; no servers could be reached
real 0m10.004s
user 0m0.004s
sys 0m0.000s
我的/etc/resolv.conf(在安装过程中自动创建)
nameserver 192.168.1.1
对于公共IP,主机和数据库都返回非常快,但是对于LAN ip,需要10秒才能超时.我猜10s是我当前的超时值.
更新2
在/ etc / hosts文件中使用dev-pc:
$time getent hosts 192.168.1.50
192.168.1.50 dev-pc
real 0m0.001s
user 0m0.000s
sys 0m0.000s
在/ etc / hosts文件中没有dev-pc:
$time getent hosts 192.168.1.50
real 0m10.012s
user 0m0.004s
sys 0m0.000s
看起来越来越像我必须为每个试图进行反向DNS查找的分段程序选项或参数找到它们!没有任何机器(虚拟机或非机器机)可以充当我的LAN上的DNS服务器,因为它们并不总是处于启动状态.不幸的是,路由器的固件不包括DNS服务器.
解决方法:
路由器的IP地址是192.168.1.1吗?
名称服务器192.168.1.1建议您的路由器将自己宣传为DNS服务器,而不是“发送ISP的DNS服务器”.
你有什么品牌和型号的路由器? Web界面是否显示日志消息?
我想知道你的路由器是否正在将请求转发给你的ISP名称服务器,但你的ISP的名字服务器正在删除请求,因为他们不想让你知道他们的IP 192.168.1.50的机器被调用了什么.
建议:
仔细检查路由器的设置.它应该回答您自己的private network的请求.也许您可以在路由器的Web界面中添加静态主机条目?
尝试在网络上的所有系统上安装Avahi.
告诉您的路由器使用Google Public DNS(8.8.8.8和8.8.4.4)或OpenDNS