环境

我的局域网设置非常基础:

连接到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

标签: linux, dns, networking, debian

相关文章推荐

添加新评论,含*的栏目为必填