这是我在 debian 机器上的一个 resolv.conf 文件(我们称之为它deb01
):
search mydomain.com
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 10.20.232.11 ##local DNS server
nameserver 10.20.232.12 ##local DNS server
我还有另一个 debian 盒子,我们称之为deb02
.
我的问题,从 deb01 看到:
- 我无法在 LAN 上 ping deb02(
ping deb02
返回未知主机)但ping deb02.local
可以正常工作。 host deb02
或host deb02.local
返回Host not found: 3(NXDOMAIN)
nslookup deb02
或者nslookup deb02.local
也不工作- 我无法在 deb01 上从 deb02 安装文件夹(在 deb01 的 fstab 中:
deb02:/folder /mnt/myserver nfs rw 0 0
-我也尝试过附加.local
,但没有区别) - 我有一个运行良好的 postfix 邮件服务器
如果我更改 resolv.conf 文件中的顺序以首先放置本地 DNS 服务器,那么上面的 1、2、3 和 4 可以正常工作,使用简单的服务器名称:deb02。
但是发送到本地地址@mydomain.com 的电子邮件会卡住(连接超时),尽管我可以毫无问题地向其他域发送电子邮件。这可能是由于本地 DNS 服务器没有任何 MX 记录。
万一这很重要,网络的其余部分都是基于 Windows 的。
如果可能,使用简单的服务器名称:deb02,使 1、2、3、4 和 5 工作的正确 DNS 配置是什么?
我猜你有一个像 "
hosts: files mdns dns
" in的行/etc/nsswitch.conf
。这控制了哪些源用于进行名称查找——files
告诉系统查询 /etc/hosts,mdns
使用 avahi 守护程序通过多播 DNS (Bonjour/ZeroConf) 查找名称,并且dns
是对/etc/resolv.conf
. (只有当他们在同一个网络上时,pingdeb02.local
可能才会起作用;中间有路由器,或者如果 deb02 已关闭一段时间,它也会失败。)host
、nslookup
、 和dig
是专门进行 DNS 查询的工具,并绕过 ; 中列出的其他方法nsswitch.conf
;ping
将通过它们。默认情况下,resolv.conf 条目会按顺序查询,仅当您收到超时或内部错误 (
SERVFAIL
) 时才会移动到列表中的下一个条目。不存在的名称 (NXDOMAIN
) 不会将您移到列表的下方。因此,如果您有一个内部域,则应该首先列出知道它的服务器。当那是 MS Active Directory 时,您只想在 resolv.conf 中列出您的 MSAD DNS 服务器——通常是您的域控制器。由于听起来您的 AD 域名与
mydomain.com
您的搜索路径中的匹配,并且您的 AD DNS 没有为您的域提供任何 MX 记录,因此 postwill 采用回退行为,即尝试从对 A 记录的查询中向主机传递目标(此处为mydomain.com
自身)。AD 服务器将返回该查询的域控制器集,并且 AD DC 通常不运行 MTA,这就是您看到连接超时的原因。通常,您将拥有一个本地邮件服务器,您将其配置为智能主机(
relayhost
是后缀设置),或者您可以为 mydomain.com 添加一个后缀传输规则,以指向您的域的正确邮件服务器。