在 Debian 10 中解析子域名

在 Debian 10 中解析子域名

我在 Windows Server 2012 上有一个带有活动目录和 DNS 的服务器,它有以下子域:

ac:alm.local<---10.0.0.3

DNS 主机:

javi.a.alm.local <---- 10.0.0.20

当我在 Windows 中解决时:

nslookup javi.a

server: localhost
address: 127.0.0.1

name: javi.a.alm.local
address: 10.0.0.20

但是当我在 debian 中时:

nslookup javi.a

Server: 10.0.0.3
Address: 10.0.0.3 # 53

** server can't find javi.a: NXDOMAIN

为什么没有解决??

resolv.conf:

nameserver 10.0.0.3
search alm.local

答案1

默认情况下,Linux 解析器不会将search域应用于已包含点的查询名称。因此javi.a将被视为 FQDN,并且不会将域alm.local附加到其中。

您可以使用 更改此行为ndots option。这表示名称中可以包含的最小点数,以将其视为 FQDN。默认为1

在执行此操作之前,您还应该考虑手册页中的警告resolv.conf(5)

解析器查询少于 点(默认值为 1)将依次尝试使用搜索路径的每个组件,直到找到匹配项。对于具有多个子域的环境,请阅读选项 ndots:n以避免中间人攻击和根 DNS 服务器不必要的流量。请注意,如果列出的域的服务器不是本地的,则此过程可能会很慢,并且会产生大量网络流量,并且如果其中一个域没有可用的服务器,则查询将超时。

以及以下文档options ndots

设置必须出现在名称中的点数的阈值查询(3)(见解析器(3))才会进行初始绝对查询。n 的默认值为 1,这意味着如果名称中有任何点,则在向其附加任何搜索列表元素之前,将首先尝试将该名称作为绝对名称。此选项的值默认限制为 15。

(请注意,这意味着在尝试将名称作为 FQDN 之后,将使用搜索域进行尝试,但实际上这实际上不会发生。它根本没有使用搜索域进行尝试。这就是您今天在这里发帖的原因。)

因此您可以在 resolv.conf 中添加:

options ndots:2

现在,带有一个点的名称将附加搜索域,而带有两个或更多点的名称则不会附加。如手册页所述,如果需要,您可以将其设置为最高 15。

相关内容