是否可以配置与域相关的名称服务器以进行地址解析(例如resolv.conf)?
例如
nameserver 1.2.3.4 for any domain abc.com
nameserver 4.3.2.1 for any domain cba.com
nameserver 1.4.2.3 for anything else
我正在使用现代 Debian。
答案1
您不能仅使用 来执行此操作resolv.conf
,而是使用中间 DNS 转发守护程序,例如域名解析(在 Debian 中打包为dnsmasq
相关包)。
使用 Dnsmasq,您可以使用服务器列表配置 Dnsmasq 本身:
server=/abc.com/1.2.3.4
server=/cba.com/4.3.2.1
server=1.4.2.3
并告诉它不要看resolv.conf
:
no-resolv
然后,您可以resolv.conf
通过删除其中的所有条目来更改它,使其指向 Dnsmasq 守护进程nameserver
。您还需要确保任何 DHCP 设置都不会覆盖resolv.conf
.
答案2
是的。这已经有四分之一个世纪了。您正在寻找的是水平分割 DNS 服务,而且这不是通过摆弄 来完成的/etc/resolv.conf
。该配置文件向 DNS 客户端库指示内容,该客户端库(通常)内置于应用程序链接到的 C 库中。那个图书馆是简单的并且不会做出复杂的决定,例如根据问题部分确定将不同的查询发送到哪里。
这是通过摆弄(机器本地或站点本地)来完成的解析代理 DNS 服务器DNS 客户端库配置为与之通信。具体来说:这些/etc/resolv.conf
设置将应用程序指向解析 DNS 代理服务器,该服务器侦听(例如)绑定到 IPv4 地址 127.0.0.1 的套接字,以及那服务器以特定于服务器软件的方式进行配置,以适当的方式制定查询解析。该代理 DNS 服务器,甚至内容 DNS 服务器它反过来与,是所有水平分割机制所在的地方。
- 在 ISC 的 BIND 中,这是通过以下方式完成的有条件转发或与存根区域。
- 在 Daniel J. Bernstein 的 dnscache 中,这是通过文件完成的。
servers/domain
- 在 dnsmasq 中,这是通过另一种方式完成的。同样是系统解决的。等等。
因此,在您的 Debian 计算机上安装这些服务器软件之一(Debian 甚至预先打包了其中一些),配置 DNS 客户端库以使用它,并将其配置为执行水平分割 DNS。
进一步阅读
- 乔纳森·德博因·波拉德 (2002)。提供“水平分割”DNS服务。。常见答案。
- https://unix.stackexchange.com/a/413646/5132