目次
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からの問い合わせにも対応できるようにネットワークの範囲を設定しなおしました。