DNS

nslookup Query refusedの解決策

bind構築 named.conf設定で起きた問題

こんにちは。新居に引っ越しをしてまだWiFiの環境が整っていなく、今か今かと待ちわびているヤマオカです。

今回は新しくDNSサーバを立てたので、
そのDNSがうまく動いているのかを

nslookup yahoo.co.jp

上記のコマンドを打ち確認してみました。
しかし、そこでQuery refusedという形でエラーが出たので、その解決策についてお伝えします。

現在の状態

1.bindを構築。
2.DNS自身でnslookupで聞いて問い合わせする。
3.クライアントPCからのDNSの設定を今回作成したDNSに設定する。
4.コマンドプロンプトで名前解決ができているのかをnslookupで確認。

理想の状態

nslookup yahoo.comを実行した際 DNS自身、クライアントPC、この二つから問い合わせた際に、名前解決ができる。

今回問題になった点

今回構築したDNS自身で、nslookup yahoo.comをした際には名前解決ができます。

しかし、PCのDNSの設定を構築したDNSに、
コマンドプロンプトでnslookup yahoo.co.jpを打つと、下記のような表示が出てきて、名前解決ができない状態になりました。

サーバー:  UnKnown
Address:  192.168.20.163

*** UnKnown が yahoo.co.jp を見つけられません: Query refused

named.conf内で怪しいところ

  • allow-queryの設定
  • view "internal"の設定

解決した方法

named.conf内の view "internal" の設定を変更。 (allow-queryの設定は確認したが問題がなかったため今回は省略。)

viewのinternalとは

内向き用の設定
view条件にマッチしたクライアントのみに適用されます。

どこをどう変えたのか


view internal {
    match-clients {
            localhost;
            192.168.20.0/24;
    };

↑上の表記では内部向けのIPアドレスが社内で使っている検証IPになっていました。

そのためネットワークの範囲外であったIPのクライアントPCからの問い合わせに対してrefusedしていたわけです。

view internal {
    match-clients {
            localhost;
            192.168.1.0/24;
    };

↑そこで、上の表記で内部向けの設定の範囲を変更し、クライアントPCからの問い合わせでも応答があるようにします。

結果

クライアントPCのコマンドプロンプトでnslookup yahoo.co.jpを打つと、しっかりと応答が返って来ました。

> yahoo.co.jp
サーバー:  UnKnown
Address:  192.168.20.163

名前:    yahoo.co.jp
Addresses:  192.168.20.163 //自分のDNSサーバにゾーンがあるのでそれが返ってきています。
          216.58.220.99

まとめ

構築の時点でviewの設定を社内で使っている
ネットワークの範囲内IPアドレスに設定していたので、ネットワークの範囲外であったクライアントPCからの問い合わせには拒否された状態でした。

そこでviewの設定で自身のクライアントPCからの問い合わせにも対応できるようにネットワークの範囲を設定しなおしました。

返信を残す

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

CAPTCHA