我有一台带有两个网络接口的 Linux 机器。它们都连接到本地网络——一个是192.168.*.*
,另一个是10.*.*.*
。
该192.168.*.*
网络完全是私有的,无法访问互联网。该10.*.*.*
网络可以访问互联网。
目前,我可以进行外部 ping,并且名称将解析
ping google.com
但是,当我尝试在网络上 ping 计算机名称时192.168.*.*
,该名称无法解析
ping computer-name
ping computer-name.domain
ping computer-name.domain.local
如果我指定一个 IP 地址,它将解析
ping 192.168.x.x
我如何设置 DNS 设置以便私有本地网络上的机器名称可以解析,但仍可以解析外部地址?
我正在使用Centos6。
答案1
在这种情况下,您通常需要设置一个 DNS 解析器,该解析器将根据命名空间转发到各种上游 DNS 服务器。您可以这样做使用 DNSMasq,绑定和其他 DNS 服务器。
答案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
,这最终会超时,然后转到能够解析它的第二个名称服务器。