dga*_*gan 2 dns linux-mint resolv.conf
因此,我的 中有多个名称服务器/etc/resolv.conf
,但考虑到它们出现的顺序,我是否能够解析我的公司 VPN 主机名:当 VPN 的 DNS 位于我的本地 DNS 之前时,我能够解析公司主机。当我的本地名称服务器是第一个名称服务器时,我无法解析公司主机。
我不认为这是有意的行为,因为在向我扔东西之前必须测试所有名称服务器NXDOMAIN
?
我如何使所有名称服务器处于活动状态(第一次失败时不返回),以便该顺序无关紧要?
在 DNS 中,NXDOMAIN 消息并不完全是失败。这是,或者至少应该是,您所请求的域不存在的完全有效的信息。错误可能是“我不知道”或“我不允许告诉你”或“[沉默直到超时]”。
在 中/etc/resolv.conf
,期望所有配置的名称服务器都是相同的。也就是说,它们都应该对 DNS 信息具有相同的访问权限:它们都应该能够解析您可能需要解析的任何名称。
如果不是这样,那么传统的 Unix 风格/etc/resolv.conf
就不够了。许多人尝试通过调整文件中 DNS 服务器的顺序来实现您所寻求的目标,但都失败了:它就是不能那样工作。
相反,您通常需要设置一个 DNS 解析器/缓存/代理,可以配置一些规则,例如“如果您需要解析的名称属于这些域之一,则询问这些服务器之一;如果名称是在该域中,然后使用该服务器;对于其他一切,请使用这些服务器。”
例如,您可以在以下位置设置dnsmasq
并编写类似的内容dnsmasq.conf
:
no-resolv
server=/corporate-domain.com.example/10.1.2.3
rev-server=10.1.0.0/16,10.1.2.3
server=/google.com/8.8.8.8
server=9.9.9.9
Run Code Online (Sandbox Code Playgroud)
这意味着:
/etc/resolv.conf
(以防止循环)corporate-domain.com.example
域中的任何名称以及 10.1.0.0/16 网络中 IP 地址的任何反向查询google.com
名称一旦您进行了dnsmasq
这样的配置,您就可以配置/etc/resolv.conf
only nameserver 127.0.0.1
,将所有本地 DNS 请求重定向到本地dnsmasq
.
如果您的本地名称服务器是 BIND,您可以使用以下区域声明执行相同操作type forward
:
zone "corporate-domain.com.example" {
type forward;
forwarders { 10.1.2.3; };
};
zone "1.10.in-addr.arpa" {
type forward;
forwarders { 10.1.2.3; };
};
zone "google.com" {
type forward;
forwarders { 8.8.8.8; 8.8.4.4; };
};
options {
forwarders { 9.9.9.9; };
forward only;
};
Run Code Online (Sandbox Code Playgroud)
这实现了与上面配置完全相同的结果dnsmasq
,但 BIND 配置语法有点冗长。
归档时间: |
|
查看次数: |
3269 次 |
最近记录: |