Dig对于外部查询是否返回“状态:已拒绝”?


14

我似乎无法弄清楚为什么我的DNS无法正常工作,如果我从名称服务器运行dig,它可以正常运行:

# dig ungl.org

; <<>> DiG 9.5.1-P2.1 <<>> ungl.org
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24585
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1

;; QUESTION SECTION:
;ungl.org.                      IN      A

;; ANSWER SECTION:
ungl.org.               38400   IN      A       188.165.34.72

;; AUTHORITY SECTION:
ungl.org.               38400   IN      NS      ns.kimsufi.com.
ungl.org.               38400   IN      NS      r29901.ovh.net.

;; ADDITIONAL SECTION:
ns.kimsufi.com.         85529   IN      A       213.186.33.199

;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Mar 13 01:04:06 2010
;; MSG SIZE  rcvd: 114

但是当我从同一数据中心中的另一台服务器运行它时,会收到:

# dig @87.98.167.208 ungl.org

; <<>> DiG 9.5.1-P2.1 <<>> @87.98.167.208 ungl.org
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 18787
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;ungl.org.                      IN      A

;; Query time: 1 msec
;; SERVER: 87.98.167.208#53(87.98.167.208)
;; WHEN: Sat Mar 13 01:01:35 2010
;; MSG SIZE  rcvd: 26

我对该域的区域文件是

$ttl 38400
ungl.org.       IN  SOA r29901.ovh.net. mikey.aol.com. (
                201003121
                10800
                3600
                604800
                38400 )
ungl.org.       IN  NS  r29901.ovh.net.
ungl.org.       IN  NS  ns.kimsufi.com.
ungl.org.       IN  A   188.165.34.72
localhost.      IN  A   127.0.0.1
www             IN  A   188.165.34.72

并且named.conf.options是默认值:

options {
    directory "/var/cache/bind";

    // If there is a firewall between you and nameservers you want
    // to talk to, you may need to fix the firewall to allow multiple
    // ports to talk.  See http://www.kb.cert.org/vuls/id/800113

    // If your ISP provided one or more IP addresses for stable 
    // nameservers, you probably want to use them as forwarders.  
    // Uncomment the following block, and insert the addresses replacing 
    // the all-0's placeholder.

    // forwarders {
    //  0.0.0.0;
    // };

    auth-nxdomain no;    # conform to RFC1035
    listen-on-v6 { ::1; };
    listen-on { 127.0.0.1; };
    allow-recursion { 127.0.0.1; };
};

named.conf.local:

//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in your
// organization
// include "/etc/bind/zones.rfc1918";

zone "eugl.eu" {
         type master;
         file "/etc/bind/eugl.eu";
         notify no;
};


zone "ungl.org" {
         type master;
         file "/etc/bind/ungl.org";
         notify no;
};

该服务器正在运行Ubuntu 9.10和Bind 9,如果有人可以帮助我了解一下,这会让我非常高兴!

谢谢


绑定配置的“选项”部分在不正常的服务器上是什么样的?默认情况下,在ubuntu上,我相信它全部在/etc/bind/named.conf.options中
Cory J

我已经更新了问题,我尚未更改选项中的任何内容

1
在named.conf.local中的区域定义如何?
ktower 2010年

添加到主要帖子

Answers:


18

尽管我可能正在挖掘旧线程,但我这样做是因为这是在Google搜索“查询状态被拒绝”时最相关的结果之一。

在我的特殊情况下,我发现我必须allow-query { any; };在named.conf中的每个区域定义中都包括它。


你是我的救命天使!非常感谢
Codezombie

5

乍一看,由于,它似乎没有配置为收听世界其他地方的声音listen-on { 127.0.0.1; };。您需要在其中添加适当的IP地址。


我已将其更改为服务器的Internet IP地址(188.165.34.72)并重新加载了绑定,但是我仍然收到相同的拒绝消息

1
那台机器上有本地防火墙吗?您可能需要打开端口(53个TCP和UDP)。
约翰·加迪尼尔

该URL现在似乎可以正常使用,但仍显示来自其他服务器的相同拒绝状态

4

我做同样的事情,但是我将allow-query选项放在named.conf.options中


1

当没有资源记录(RR)的时候出现NOERROR意味着没有这样的记录,因此当您将NOLOG设置为“ none”时,如果收到NOERROR响应并且没有“ record”,则表明它正常工作。

allow-queryBIND9 也有一个配置语句,但是我认为默认值是允许从任何地方查询。


1

我遇到了完全相同的问题(在本地挖掘状态为NOERROR,从外部挖掘状态为REFUSED),并且解决方案将匹配客户端从“ localhost”(这是绑定安装的默认值)更改为“ any”(后来我可能找出我的域名提供商的确切IP,然后出于安全原因将其限制为该特定IP。另外,我将视图名称从local_something更改为默认名称。名称真的没关系。

view default {
        match-clients      { any; };
        match-destinations { any; };
        include "/etc/named.rfc1912.zones";
};

这确实是“拒绝挖掘身份”业务的问题。在更改match-clients参数之后,我的dig @ 12.34.56.78 mydomain.com查询开始以NOERROR状态进行解析,并且域名提供者(godaddy)立即缓存了名称服务器记录。由于我的区域文件已经正确配置,因此域名立即在Internet上可见。

不过,我已经将头撞墙了好一阵子才能解决这个问题。


1
您能否澄清一下,您在哪台计算机上修改了哪个文件?
阿列克谢2015年

1

我必须为希望允许递归的网络输入明确的参考。指定“ any”无济于事。默认情况下(Umbutu Server 15)在/etc/bind/named.conf.options文件中没有为此的条目。

recursion yes;  << needed to add this but did not resolve greater prob
allow-recursion { any; }; << this did not work
allow-recursion { 10.1.0.0/16; }; << this did the trick

0

您确定要将查询发送到正确的位置吗?

您在188.165.34.72(r29901.ovh.net)上的服务器正在运行BIND 9.5.1-P2.1-它回答有关以下内容的查询dig @ip version.bind ch txt使用该响应字符串按预期。

但是NOTIMPL,即使引用的配置文件中没有关于*.bind伪记录的内容,并且上面引用的IP地址都返回了错误,并且BIND需要显式配置才能将其禁用。


NOTIMPL未实现?为什么会具有默认情况下未启用的功能?

如果是BIND,则有一个名为“版本”的选项,该选项告诉它向该查询发送用户指定的值,或“无”以禁用该功能。如果未指定选项,则返回实际的版本号。您未引用任何此类选项,这使我怀疑您未在与正确的服务器通信。参见isc.org/software/bind/documentation/arm95
Alnitak

我进行了进一步检查-在具有绑定9.6.0的MacOSX盒子上,将“版本”设置为“无”将返回,NOERROR而不是NOTIMPL我从该IP中看到的错误。
Alnitak

0

因为您只允许从本地计算机进行递归。

如果要允许添加适当的IP地址,并且需要从本地计算机更改对任何适配器的监听值,或放置本地计算机接口的IP地址:

listen-on { any;} or x.x.x.x;
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.