因此,我的/etc/resolv.conf中有多个名称服务器,但是关于它们出现的顺序,我可以或不能解析我的公司VPN主机名:当VPN的DNS位于本地主机之前时,I am能够解析公司主机。当我的本地名称服务器是第一个时,<#>I就不能解析公司主机。
我不认为这是有意的行为,因为所有的同名者都必须经过测试,然后再向我扔NXDOMAIN?
我如何使所有的名称服务器活动(一开始不返回),这样顺序就不重要了。
发布于 2018-10-03 21:25:45
在DNS中,NXDOMAIN消息并不是完全失败的。它是,或者至少应该是完全有效的信息,而您所要求的域并不存在。错误可能是“我不知道”或“我不允许告诉你”或"“。
在/etc/resolv.conf中,期望所有配置的名称服务器都是相等的。也就是说,它们都应该对DNS信息具有相同的访问权限:它们都应该能够解析任何您可能需要解析的名称。
如果这不是真的,那么传统的Unix风格的/etc/resolv.conf将是不够的。许多人试图通过调整文件中DNS服务器的顺序来实现您想要的结果,但都失败了:<#>it只是没有那样工作。
相反,您通常需要设置一个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这将意味着:
/etc/resolv.conf (防止循环)corporate-domain.com.example域中的任何名称和10.1.0.0/16网络中对IP地址的任何反向查询google.com域中的任何名称一旦像这样配置了dnsmasq,就可以配置/etc/resolv.conf,只使用nameserver 127.0.0.1,以便将所有本地dnsmasq请求重定向到本地D21。
如果本地名称服务器是绑定的,则可以使用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;
};这实现了与上面的dnsmasq配置完全相同的结果,但是绑定配置语法稍微冗长一些。
https://unix.stackexchange.com/questions/473062
复制相似问题