配置Linux/UNIX Dns解析器以追加域搜索名称和路径(ndots选项)

时间:2020-01-09 10:40:41  来源:igfitidea点击:

如何配置CentOS Linux系统,以便DNS解析器将搜索路径扩展名追加到其中带有圆点的主机名?
例如,我的域名是test.com。
当我查询邮件主机名时,它应该追加.test.com并返回mail.test.com主机名的IP地址。

您可以轻松配置域搜索列表。搜索列表通常是根据本地域名确定的;默认情况下,它仅包含本地域名。 可以通过在搜索关键字后列出所需的域搜索路径(用空格或制表符分隔名称)来更改此名称。
依次使用搜索路径的每个组件尝试其中点数少于ndots(默认值为1)的解析器查询,直到找到匹配项为止。
对于具有多个子域的环境,请阅读下面的选项ndots:n以避免中间人攻击和根dns服务器的不必要流量。
请注意,如果列出的域的服务器不在本地,则此过程可能会很慢,并且会产生大量的网络流量;如果没有一个域的服务器可用,则查询将超时。

设置主机名查找的DNS搜索列表

打开/etc/resolv.conf文件,执行:

# vi /etc/resolv.conf

或者

$ sudo vi /etc/resolv.conf

现在添加搜索路径,如下所示:

search test.com

保存并关闭文件。

可选的ntdots配置

请注意,您可能还需要使用ndots:n选项来设置阈值,该阈值用于在进行初始绝对查询之前必须在给定查询名称中显示的点数。

n的默认值为1,这意味着如果名称中有点,则在将任何搜索列表元素追加到该名称之前,将首先尝试将该名称作为绝对名称。
例如,将ndots设置为2,如下所示,以响应nslookup f1.mail查询以获取f1.mail.in.test.com主机名的IP:

## config file - /etc/resolv.conf ##
options ndots:2
search test.com in.test.com

保存并关闭文件。

测试一下

如下使用host命令或dig命令:

$ host f1
$ host mail
$ dig smtp

局限性

  • 目前,搜索列表仅限于六个域,总共256个字符。

dhclient在基于Linux的系统上覆盖的帮助/etc/resolv.conf文件

您可能会发现/etc/resolve.conf由dhcp客户端生成并覆盖,因此对/etc/resolv.conf文件所做的任何更改都将随后被覆盖。