web-dev-qa-db-ja.com

Digは外部クエリに対して "status:REFUSED"を返しますか?

ネームサーバーからDigを実行すると、DNSが正しく機能しているのに、DNSが正しく機能していない理由がわかりません。

# 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を実行しています。誰かがこれに光を当てることができれば、私はとても幸せになります!

ありがとう

14
Mikey

古いスレッドを掘り下げている可能性がありますが、これは「クエリのステータスが拒否されました」をグーグル検索する際の最も関連性の高い結果の1つであるためです。

私の特定のケースでは、named.confの各ゾーン定義にallow-query { any; };を含める必要があることがわかりました。

18
w00t

一見したところ、listen-on { 127.0.0.1; };。そこに適切なIPアドレスを追加する必要があります。

5
John Gardeniers

同じことをしますが、named.conf.optionsにallow-queryオプションを入れました

4
user57966

私はまったく同じ問題を抱えており(ローカルでのDigステータスNOERROR、外部からのDigステータスREFUSED)、解決策はmatch-clientsを "localhost"(バインドインストールのデフォルト)から "any"に変更していました(後で私はドメイン名プロバイダーの正確なIPを確認し、セキュリティ上の理由から特定のIPに制限します)。また、ビュー名をlocal_somethingからdefaultに変更しました。名前は本当に重要ではありません。

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

それがこの「Dig status refused」ビジネスの問題でした。 match-clientsパラメーターを変更した直後、Dig @ 12.34.56.78 mydomain.comクエリはNOERRORステータスで解決され始め、ドメイン名プロバイダー(godaddy)はすぐにネームサーバーレコードをキャッシュしました。私のゾーンファイルは既に適切に構成されているため、ドメイン名はインターネット上で即座に表示されるようになりました。

私はこれを解決するためにかなり長い間頭を壁にぶつけていました。

1
wingedhorse

再帰を許可するネットワークの明示的な参照を入力する必要がありました。 「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
1
Iradw

リソースレコード(RR)を伴わない場合のNOERRORは、そのようなレコードがないことを意味します。そのため、「バージョン」を「なし」に設定したときにNOERROR応答が返され、「レコード」がない場合、期待どおりに機能しています。

BIND9にはallow-query構成ステートメントもありますが、デフォルトではどこからでもクエリを許可するようになっています。

1
ZaphodB

クエリを正しい場所に送信してもよろしいですか?

188.165.34.72(r29901.ovh.net)上のサーバーはBIND 9.5.1-P2.1を実行しています-その応答文字列で期待どおりにDig @ip version.bind ch txtのクエリに応答します。

ただし、上で引用したIPアドレスはNOTIMPLエラーを返しますが、引用された構成ファイルには*.bind疑似レコードに関するものがなく、BINDはそれらを無効にするために明示的な構成を必要とします。

0
Alnitak

ローカルマシンからのみ再帰を許可するからです。

許可したい場合、適切なIPアドレスを追加し、ローカルマシンから任意のアダプターのリッスン値を変更するか、ローカルマシンのインターフェースのIPアドレスを入力する必要があります。

listen-on { any;} or x.x.x.x;
0
tamirat