如何将 DNS 请求路由到特定的 DNS 服务器?

如何将 DNS 请求路由到特定的 DNS 服务器?

我有一组虚拟机,需要为学校作业进行配置。我在服务器机器上配置了 DHCP 和 DNS 服务器。DHCP 文件中指向option-domain-name servers我的 DNS 服务器的 IP 地址,并option-domain-name具有我的“aulas”域名。

问题是...我的网络上还有另一台带有两个接口的机器。其中一个由我的学校 DHCP 服务器配置,另一个接口由我的 DHCP 服务器配置(工作正常)。出于某种原因,当我使用 dig 发出 DNS 请求时,DNS 查询会转到学校 DNS 服务器,该服务器(当然)不知道这个“aulas”域,也不会返回任何答案。我会将链接放在我的 conf 文件中这里

我知道如果我编辑客户端文件/etc/resolv.conf并将我的域名服务器放在第一位,它将解决查询。但如果两个接口都启动并运行,则文件将自动更新,如下所示:

nameserver 192.168.x.x
nameserver 10.0.0.1
search students.x.x.x.x aulas.asr

在这里,查询转到第一个名称服务器(学校 DNS),甚至没有尝试第二个名称服务器,也没有返回任何答案。如果我删除第一个名称服务器,它对我的​​ aulas.asr 域来说就很管用了。我是否需要进行某种路由才能同时使用两个接口?如果是,我该怎么做?

答案1

如果 DNS 查询明确确定该名称不存在(从其角度来看),则仍视为成功 - 解析器没有理由继续重试其他服务器。只有在完全没有响应(超时)或服务器直接拒绝查询时才会发生这种情况。

操作系统的内置存根解析器仅支持所有内容的单一名称服务器列表 - 如果您需要每个域的路由,则需要其他软件:Unbound;dnsmasq;pdnsd;或 systemd-resolved。

未绑定配置示例:

#/etc/resolv.conf
名称服务器 127.0.0.1
#/etc/unbound/unbound.conf #/etc/unbound/unbound.conf
服务器:
    ...全部默认内容...

前锋区:
    名称:“aulas.asr”
    转发地址:10.0.0.1

前锋区:
    姓名: ”。”
    转发地址:192.168.xx

unbound-control这些设置也可以实时更新。

如果操作系统安装了“resolvconf”或“openresolv”,它可以自动生成Unbound/pdnsd/dnsmasq的配置;请参阅手册resolvconf.conf

NetworkManager 可以自动启动 dnsmasq 或 Unbound,并从 DHCP 获取每个连接的 DNS 服务器;请参阅dns=手册NetworkManager.conf

相关内容