如何对特定域使用本地 DNS 服务器,对其他所有域使用 DHCP 分配的 DNS

如何对特定域使用本地 DNS 服务器,对其他所有域使用 DHCP 分配的 DNS

出于开发目的,我需要在笔记本电脑上运行本地(不可路由)域的本地 DNS 服务器。简单的编辑/etc/hosts对我来说还不够,因为我需要某些依赖于实际 DNS 的虚拟机来解析本地域。

配置绑定以服务本地域很容易。配置带有转发地址的绑定也很容易。

问题在于,一旦配置了 bind,并将 resolvconf 设置为使用 127.0.0.1 进行名称解析,依赖于基于 Web 的身份验证的无线网络连接就会中断,因为本地无线网络的 DNS 服务器不再使用。

是否有某种方法可以在网络启动时动态设置 Bind 的转发地址(也许通过 resolvconf 或其他类似的服务)?

或者,有没有办法使用我的本地绑定服务器仅有的作为我的本地域名,并使用 DHCP 提供的域名进行所有其他名称解析?

答案1

resolvconf程序能够重新配置绑定以使用每个当前连接 DNS 转发器。

debian软件包resolvconf-update-bind中提供了 bind8 的示例脚本resolvconf
它不会自动安装在/etc/resolvconf/update.d/目录中。

答案2

您能将无线 DNS 服务器添加到绑定的转发器吗?例如在您的/etc/bind/named.conf.options配置文件中:

options {
    directory "/var/cache/bind";

    recursion yes;                 # enables resursive queries
    ...
    allow-transfer { none; };      # disable zone transfers by default

    forwarders {
            Wireless DNS's server;
            Other DNS server IP (open dns resolver, ...);
    };
...
};

在这种情况下,如果请求的域不存在于其配置的区域中,bind 将转发请求,首先转发到无线 DNS 服务器,然后转发到开放 DNS 服务器。由于您正在“堆叠”解析器,这可能会导致无线 DNS 服务器未提供服务的域的 DNS 回复延迟。然后您应该设置 DNS 缓存服务器。

编辑

来源:https://www.digitalocean.com/community/tutorials/how-to-configure-bind-as-a-private-network-dns-server-on-ubuntu-14-04

为特定域指定 DNS 服务器

来源:https://serverfault.com/questions/391914/is-there-a-way-to-use-a-specific-dns-for-a-specific-domain

使用 无法实现这一点resolv.conf。但你可以使用 dnsmasq 实现这一点:

/etc/dnsmasq.conf

server=/mydomain.net/X.X.X.X

您的本地 DNS 服务器在哪里X.X.X.X,它未出现在您的 dhcp 填充resolv.conf文件中。

相关内容