首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使BIND递归地发送类= ANY (255)的查询?

如何使BIND递归地发送类= ANY (255)的查询?
EN

Stack Overflow用户
提问于 2017-02-02 13:04:42
回答 1查看 772关注 0票数 0

如果我使用类(不是类型!)查询本地递归BIND9 DNS!任何情况下,它都会递归地向转发器发送一个查询,但是使用class = IN。如何使他用我发送的同一个类发送递归查询?有可能吗?

我想要的:

代码语言:javascript
复制
****** QUERY WITH CLASS "ANY" *********************** CLASS "ANY" *************
* ME *----------------------->* Local Recursive DNS *------------>* FORWARDER *
******                        ***********************             *************

实际发生了什么:

代码语言:javascript
复制
****** QUERY WITH CLASS "ANY" *********************** CLASS "IN" *************
* ME *----------------------->* Local Recursive DNS *----------->* FORWARDER *
******                        ***********************            *************

配置是

代码语言:javascript
复制
options {
    directory "/var/cache/bind";

    allow-query { any; };

    forwarders {
            8.8.8.8
    };
    forward only;

    listen-on {
            ...
    };

    auth-nxdomain no;    # conform to RFC1035
};
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-03 11:42:57

有趣的角落案子。

撇开“你为什么要那么做?”问题是,我认为答案是,使用QCLASS ANY的递归实际上并没有很好地定义。

RFC 1035指定NS记录保存关于名称服务器的数据“用于指定的类和域”(RFC 1035节3.3.11)。这意味着对于不同的类,可能存在不同的NS RRSets。这又意味着,到达具有不同集合的点的递归必须从两组名称服务器中分离并继续进行。没有将这种拆分递归的结果合并为单个响应的定义过程,单个递归不能有多个响应。所以,不是一个明确的过程。另外,RFCs 1034和1035都指定对QCLASS ANY查询的响应永远不可能是权威的,这也增加了复杂性。

您可以通过比较dig ns -c CH www.google.com +tracedig ns -c IN www.google.com +trace的输出,并尝试想象这两者都是同一个查找过程的一部分意味着什么,就可以得到一个相当清楚的提示。这没什么意义。

我怀疑,从BIND中看到的确切行为仅仅是没有人试图实现ANY QCLASS递归的结果。可以合理地认为,将查询转化为IN查询是一个错误,更正确的响应将是FORMERR (RFC 1035节4.1.1,“名称服务器无法解释查询”)。

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

https://stackoverflow.com/questions/42003005

复制
相关文章

相似问题

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