DNSで名前解決ができない( query (cache) ‘xxxxxxx.com/A/IN’ denied)の解決方法

CentOSでDNSサーバーを構築したのですが、外部のマシンから名前解決ができない事象が発生しました。

外部マシン(Windows)から「test.local」を引くと以下のように名前解決ができない事象が発生します。
※DNSサーバーでは名前解決はできる

C:>\nslookup vcsa.test.local 10.0.0.1
サーバー:  UnKnown
Address:  10.0.0.1

*** UnKnown が vcsa.test.local を見つけられません: Query refused

この事象についての解決方法を以下でメモしておきます。

外部マシンからDNS宛に名前解決ができない原因は「allow-query」で許可されてないため

DNSサーバーに名前解決を実施しても上記のようにうまく名前解決ができないので、DNSサーバで以下のコマンドでステータスを確認します。

ステータスは「running」となっていますが、以下のようなメッセージが発生していました。

[root@dns ~]# systemctl status named

------中略------
 4月 06 05:07:31 dns.fko.local named[65715]: client @0x7fd9f715e650 192.168.0.1#50985 (sls.update.microsoft.com): query (cache) 'sls.update.microsoft.com/A/IN' denied
 4月 06 05:07:33 dns.fko.local named[65715]: client @0x7fd9de9835d0 192.168.0.1#62272 (sls.update.microsoft.com): query (cache) 'sls.update.microsoft.com/A/IN' denied

外部のマシンからの問い合わせは拒否しているようです。

DNS(named.conf)allow-queryに「any;」を追加

今回の事象の解決方法は「named.conf」で「allow-query」で「any」を追加することで、どこからの問い合わせも受け付けるようにします。

# vi /etc/named.conf

options {
        allow-query     { localhost; network; any;};

設定を追記した後はnamedサービスを再起動します。

[root@dns ~]# systemctl restart named

namedサービス再起動後、再度外部マシンから名前解決実施

named.conf変更後、再度DNSに問合せすると正常に名前解決ができたことを確認できます。

C:\>nslookup vcsa.test.local 10.0.0.1
サーバー:  dns.test.local
Address:  10.0.0.1

名前:    vcsa.test.local
Address:  10.0.0.100

「query (cache) ‘xxxxxxx.com/A/IN’ denied」による名前解決ができない事象の解決方法は以上となります。




エンジニアのオンライン学習

ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。

おすすめオンライン教材
自宅で学習ができるオンラインスクール

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUT US
げんき☆ひろき
インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!