nslookup 在 .local 域中找到了主机名的 IP,但 ping 没有找到

nslookup 在 .local 域中找到了主机名的 IP,但 ping 没有找到

我知道这看起来像所有其他“可以通过 ip ping 但不能通过 dns”的问题,但那些实际上对我没有任何帮助。

此外,由于该服务器最终将处理大量连接到它的计算机,因此在所有机器上都拥有主机文件是不可行的。

我已经设置了 ldap+dns 服务器,并且我希望我网络上的计算机在 ldap 服务器上进行身份验证。

它的 ldap 部分工作正常,我可以使用 ldap 凭据正常 ssh 进入 ldap 服务器。

问题出在客户端机器上,客户端设置为使用 dns 服务器(在本例中为 192.168.0.243),如果我进入终端并执行 nslookup,它会找到 ldap 服务器。

fernando@desktest:~$ nslookup ldap.mynet.local
Server:     192.168.0.243
Address:    192.168.0.243#53

Name:   ldap.mynet.local
Address: 192.168.0.243

但当我 ping 它时,它找不到 IP 地址。它只是挂在那里,直到我按 CTRL-C 才恢复。

当然,通过 ip 地址 ping 就可以了。

以下是 DNS 服务器的区域文件:

fernando@ldap:~$ cat /etc/bind/named.conf.local
zone "mynet.local" {
    type master;
    file "/etc/bind/db.mynet.local";
};

zone "0.168.192.in-addr.arpa" {
    type master;
    notify no;
    file "/etc/bind/db.192";
};
fernando@ldap:~$ cat /etc/bind/db.mynet.local 
;
; BIND data file for local loopback interface
;
$TTL    604800
@   IN  SOA ns.mynet.local. root.mynet.local. (
                  7     ; Serial
             604800     ; Refresh
              86400     ; Retry
            2419200     ; Expire
         604800 )   ; Negative Cache TTL
;
@   IN  NS  ns.mynet.local.
ns  IN  A   192.168.0.243
server  IN  A   192.168.0.250
desktest    IN  A   192.168.0.249
remote  IN  A   192.168.0.248
winserver   IN  A   192.168.0.247
web         IN  A   192.168.0.246
tempfs  IN  A   192.168.0.245
ldap    IN  A   192.168.0.243
antenarfb   IN  A   192.168.0.253
antenapan   IN  A   10.82.223.7
adslgvt IN  A   192.168.0.1
fernando@ldap:~$ cat /etc/bind/db.192 
;
; BIND reverse data file for local loopback interface
;
$TTL    604800
@   IN  SOA mynet.local. root.mynet.local. (
                  6     ; Serial
             604800     ; Refresh
              86400     ; Retry
            2419200     ; Expire
             604800 )   ; Negative Cache TTL
;
@   IN  NS  ns.
1   IN  PTR ns.mynet.local.
2   IN  PTR server.mynet.local.
3   IN  PTR desktest.mynet.local.
4   IN  PTR remote.mynet.local.
5   IN  PTR winserver.mynet.local.
6   IN  PTR web.mynet.local.
7   IN  PTR tempfs.mynet.local.
8   IN  PTR ldap.mynet.local.
9   IN  PTR antenarfb.mynet.local.
10  IN  PTR antenapan.mynet.local.
11  IN  PTR adslgvt.mynet.local.
fernando@ldap:~$ 

我真的不知道该怎么办,如果能提供任何帮助我将非常感激。

- - 编辑 - -

在有人询问之前,是的,服务器正在运行:)

root@ldap:/etc/bind# rndc status
version: 9.7.0-P1
CPUs found: 1
worker threads: 1
number of zones: 16
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running

---- 结束编辑 ----

答案1

我相信这是由 mdns - 多播 dns 引起的,用于 .local 域的自动配置。

如果你签入/etc/nsswitch.conf,你可能会看到:

hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4

mdns4 负责执行多播 DNS。尝试将其更改为:

hosts: files dns

看看是否有任何不同。如果有效,你可以使用以下命令永久删除 mdns:

尝试apt-get remove libnss-mdns

这也会nsswitch.conf为您带来改变。

或者,不要使用 .local - 而使用 .lan 或其他名称。

答案2

我发现另一个干扰 DNS 的方法是安装 winbind。它似乎在inwins之前放置了一个条目,这会导致 DNS 失败,但可以通过移动到“NOTFOUND”部分之后来修复,最好在 dns 之后,以便首先进行 dns 查找,请参见:[NOTFOUND=return]/etc/nsswitch.confwins

http://ubuntuforums.org/showthread.php?t=1496488

(但不确定为什么默认会发生这种情况;欢迎评论!)

答案3

只是为了完成事情:

  1. nslookup 仅向给定的 DNS 服务器询问分配的 A 记录,它不能保证该记录背后的设备实际上具有该 IP。

  2. 即使设备具有正确的 IP(例如:设备的固定 IP 与 DNS 提供的 IP 匹配) - 也不能保证设备配置为响应 ping。这是一个常见的挫败点。(我说的就是你,Windows 防火墙)

  3. 当您跨子网时,路由器/网关/防火墙也可能会限制 ICMP 流量(这就是 ping)。

因此,您始终需要检查从发送方到接收方的完整服务链,反之亦然。在第三种情况下,可能涉及 a) 默认网关或 b)(默认)路由等设置。因此,请将它们添加到您的检查清单中。

抱歉挖出这个旧帖子,但从标题来看,它似乎有一些信息,有人可以从中获益。

你好。

答案4

就我而言 resolve [!UNAVAIL=return],删除后问题就解决了

cat /etc/nsswitch.conf
...
#hosts:          files mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns myhostname
hosts:          files mdns4_minimal [NOTFOUND=return] dns myhostname
...

相关内容