首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >并不是所有的名称服务器都会被查找。

问并不是所有的名称服务器都会被查找。
EN

Unix & Linux用户
提问于 2018-10-03 19:07:48
回答 1查看 3K关注 0票数 1

因此,我的/etc/resolv.conf中有多个名称服务器,但是关于它们出现的顺序,我可以或不能解析我的公司VPN主机名:当VPN的DNS位于本地主机之前时,I am能够解析公司主机。当我的本地名称服务器是第一个时,<#>I就不能解析公司主机。

我不认为这是有意的行为,因为所有的同名者都必须经过测试,然后再向我扔NXDOMAIN?

我如何使所有的名称服务器活动(一开始不返回),这样顺序就不重要了。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2018-10-03 21:25:45

在DNS中,NXDOMAIN消息并不是完全失败的。它是,或者至少应该是完全有效的信息,而您所要求的域并不存在。错误可能是“我不知道”或“我不允许告诉你”或"“。

在/etc/resolv.conf中,期望所有配置的名称服务器都是相等的。也就是说,它们都应该对DNS信息具有相同的访问权限:它们都应该能够解析任何您可能需要解析的名称。

如果这不是真的,那么传统的Unix风格的/etc/resolv.conf将是不够的。许多人试图通过调整文件中DNS服务器的顺序来实现您想要的结果,但都失败了:<#>it只是没有那样工作。

相反,您通常需要设置一个DNS解析器/缓存/代理,该解析器可以配置一些规则,例如“如果您需要解析的名称属于这些域之一,则询问其中一个服务器;如果名称位于该域中,则使用该服务器;对于其他一切,请使用这些服务器。”

例如,您可以设置dnsmasq并在dnsmasq.conf中编写类似的内容:

代码语言:javascript
复制
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 (防止循环)
  • 使用名称服务器10.1.2.3解析corporate-domain.com.example域中的任何名称和10.1.0.0/16网络中对IP地址的任何反向查询
  • 使用8.8.8.8解析google.com域中的任何名称
  • 其余部分,请使用9.9.9.9。

一旦像这样配置了dnsmasq,就可以配置/etc/resolv.conf,只使用nameserver 127.0.0.1,以便将所有本地dnsmasq请求重定向到本地D21。

如果本地名称服务器是绑定的,则可以使用type forward的区域声明执行相同的操作:

代码语言:javascript
复制
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配置完全相同的结果,但是绑定配置语法稍微冗长一些。

票数 4
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/473062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档