连接两个网络时如何设置DNS?

连接两个网络时如何设置DNS?

我有一台带有两个网络接口的Linux机器。它们都连接到本地网络——一个是192.168.*.*,另一个是10.*.*.*

192.168.*.*网络是完全私有的,无法访问互联网。该10.*.*.*网络确实可以访问互联网。

目前,我可以执行 externalping的操作,并且名称将解析

ping google.com

但是,当我尝试 ping192.168.*.*网络上的计算机名称时,该名称无法解析

ping computer-name
ping computer-name.domain
ping computer-name.domain.local

如果我指定一个IP地址,它将解析

ping 192.168.x.x

如何设置 DNS 设置,以便解析专用本地网络上的计算机名称,但我仍然可以解析外部地址?

我用的是Centos6。

答案1

本地解析器库假设任何名称服务器都可以解析所有名称。就您而言,您可能会遇到副作用,即如果您的本地不具有权威性,它就不会响应。然后您的库将使用下一个名称服务器重试(延迟后)。

更好的方法是运行本地名称服务器,将数据快速发送到正确的位置。如果你安装了dnsmasq,配置的核心内容非常简单。就像是:

/etc/dnsmasq.conf

# This sets up your private domain
server=/privatedomain/192.168.10.15
server=/.168.192.in-addr.arpa/192.168.10.15

如果主服务器 (10.10.1.15) 在您的resolv.conf.如果它收到对私有域的请求,它将转到本地服务器。如果它收到其他任何请求,它将使用 resolv.conf 中的非本地主机服务器。

然后只需将您的服务器设置为 resolv.conf 中的第一个服务器即可。

解析配置文件

search privatedomain
nameserver 127.0.0.1
nameserver 10.10.1.15

答案2

我可以通过修改我的/etc/resolv.conf文件来使其工作

domain privatedomain
search privatedomain publicdomain.com
nameserver 192.168.10.15
nameserver 10.10.1.15

privatedomain本地192.168.*.*网络域名。是可访问互联网的网络publicdomain.com的域名。10.*.*.*

它现在可以正确解决所有这些请求

ping computer.privatedomain
ping computer
ping computer2.publicdomain.com
ping google.com

唯一的缺点是,当我尝试解析无法从私有域访问的名称时,会出现明显的延迟。例如:

ping google.com

我想这是因为它首先尝试通过 上的第一个名称服务器解析名称privatedomain,这最终会超时,然后转到能够解析它的第二个名称服务器。

相关内容