是否可以为地址解析(例如 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。
是否可以为地址解析(例如 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。
你不能只使用
resolv.conf
,而是使用中间 DNS 转发守护进程,例如Dnsmasq(打包在 Debiandnsmasq
和相关软件包中)。使用 Dnsmasq,您可以使用服务器列表配置 Dnsmasq 本身:
并告诉它不要看
resolv.conf
:然后,您将通过删除其中的所有条目来更改
resolv.conf
它指向 Dnsmasq 守护程序。nameserver
您还需要确保任何 DHCP 设置都不会覆盖resolv.conf
.是的。四分之一个世纪以来,这一直是可能的。你要找的是水平分割的DNS服务,不是随便摆弄就能搞定的
/etc/resolv.conf
。该配置文件向 DNS 客户端库指示内容,该库(通常)内置于应用程序链接到的 C 库中。该库很简单,不会做出复杂的决定,例如根据问题部分确定将不同查询发送到何处。它是通过摆弄(机器本地或站点本地)解析 DNS 客户端库配置为与之通信的代理 DNS 服务器来完成的。具体而言:
/etc/resolv.conf
设置将应用程序指向解析 DNS 代理服务器,该服务器侦听(例如)绑定到 IPv4 地址 127.0.0.1 的套接字,并且该服务器以特定于服务器软件的方式进行配置,以执行查询解析以适当的方式。该代理 DNS 服务器,甚至是它与之通信的内容 DNS 服务器,是所有水平分割机制所在的位置。servers/domain
因此,在您的 Debian 机器上安装这些服务器软件之一(Debian 甚至预先打包了其中一些),配置 DNS 客户端库以使用它,并将其配置为执行水平分割 DNS。
进一步阅读