ネームサーバーから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を実行しています。誰かがこれに光を当てることができれば、私はとても幸せになります!
ありがとう
古いスレッドを掘り下げている可能性がありますが、これは「クエリのステータスが拒否されました」をグーグル検索する際の最も関連性の高い結果の1つであるためです。
私の特定のケースでは、named.confの各ゾーン定義にallow-query { any; };
を含める必要があることがわかりました。
一見したところ、listen-on { 127.0.0.1; };
。そこに適切なIPアドレスを追加する必要があります。
同じことをしますが、named.conf.optionsにallow-queryオプションを入れました
私はまったく同じ問題を抱えており(ローカルでの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)はすぐにネームサーバーレコードをキャッシュしました。私のゾーンファイルは既に適切に構成されているため、ドメイン名はインターネット上で即座に表示されるようになりました。
私はこれを解決するためにかなり長い間頭を壁にぶつけていました。
再帰を許可するネットワークの明示的な参照を入力する必要がありました。 「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
リソースレコード(RR)を伴わない場合のNOERRORは、そのようなレコードがないことを意味します。そのため、「バージョン」を「なし」に設定したときにNOERROR応答が返され、「レコード」がない場合、期待どおりに機能しています。
BIND9にはallow-query
構成ステートメントもありますが、デフォルトではどこからでもクエリを許可するようになっています。
クエリを正しい場所に送信してもよろしいですか?
188.165.34.72(r29901.ovh.net
)上のサーバーはBIND 9.5.1-P2.1を実行しています-その応答文字列で期待どおりにDig @ip version.bind ch txt
のクエリに応答します。
ただし、上で引用したIPアドレスはNOTIMPL
エラーを返しますが、引用された構成ファイルには*.bind
疑似レコードに関するものがなく、BINDはそれらを無効にするために明示的な構成を必要とします。
ローカルマシンからのみ再帰を許可するからです。
許可したい場合、適切なIPアドレスを追加し、ローカルマシンから任意のアダプターのリッスン値を変更するか、ローカルマシンのインターフェースのIPアドレスを入力する必要があります。
listen-on { any;} or x.x.x.x;