前回までの記事でDNSサーバーとして設定はひととおり完了しました。今回はDNSサーバーが正しく動作しているかどうかを確認する方法について見ていきます。

digコマンド

DNSサーバーの動作を確認するためにはdigコマンドを使用します。digコマンドはDNSサーバーに対して様々な要求を出すことが出来ます。また、digコマンドが表示する結果はこれまでに設定してきたゾーンファイルと同じフォーマットとなるため、正しく設定できているかどうかの確認がしやすいことが特徴です。

DNSサーバーの動作確認で使用するコマンドとしてnslookupコマンドがあります。Windowsでも同名のコマンドがあるため、nslookupコマンドの方が認知度は高いと思いますが、LinuxでDNSサーバーのトラブルシューティングを行う際にはdigコマンドを使うことが推奨されます。

nslookupコマンドは応答を加工して表示したり、実際に行いたい問い合わせ以外の問い合わせも行うので、場合によっては意図しない結果に見えることがあるなど、トラブルシューティングには向かない部分があるからです。

ホスト名からIPアドレスを確認する

では、早速digコマンドを使用してホスト名からIPアドレスを検索してみましょう。オプションなしで使用するとAレコードを検索します。

# dig pc01.webtest01.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> pc01.webtest01.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58998
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;pc01.webtest01.com.            IN      A

;; ANSWER SECTION:
pc01.webtest01.com.     86400   IN      A       172.16.0.1

;; AUTHORITY SECTION:
webtest01.com.          86400   IN      NS      ns.webtest01.com.

;; ADDITIONAL SECTION:
ns.webtest01.com.       86400   IN      A       172.16.0.10

;; Query time: 2 msec
;; SERVER: 172.16.0.10#53(172.16.0.10)
;; WHEN: Sat Jan  2 01:18:24 2016
;; MSG SIZE  rcvd: 85

「ANSWER SECTION」を確認すると、「pc01.webtest01.com.」に対応するIPアドレスが「172.16.0.1」であることが確認できます。

digコマンドの出力では応答メッセージのヘッダ情報から、各セクションの応答内容がしっかりと分かれて表示されているのが分かります。また、「Query time」欄には問い合わせにかかった時間も表示されます。

IPアドレスからホスト名を確認する

続いて、IPアドレスからホスト名を検索します。-xオプションをつけるとPTRレコードを検索します。

# dig -x 172.16.0.1

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> -x 172.16.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9642
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;1.0.16.172.in-addr.arpa.       IN      PTR

;; ANSWER SECTION:
1.0.16.172.in-addr.arpa. 86400  IN      PTR     pc01.webtest01.com.

;; AUTHORITY SECTION:
0.16.172.in-addr.arpa.  86400   IN      NS      ns.webtest01.com.

;; ADDITIONAL SECTION:
ns.webtest01.com.       86400   IN      A       172.16.0.10

;; Query time: 0 msec
;; SERVER: 172.16.0.10#53(172.16.0.10)
;; WHEN: Sat Jan  2 01:35:53 2016
;; MSG SIZE  rcvd: 106

「ANSWER SECTION」を確認すると、IPアドレス「172.16.0.1」に対応するホスト名が「pc01.webtest01.com.」であることが確認できます。

外部との接続を確認する

自身が管理するゾーン以外のホスト名に対しても名前解決ができるかどうか確認します。

# dig www.google.co.jp

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> www.google.co.jp.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16288
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 4

;; QUESTION SECTION:
;www.google.co.jp.              IN      A

;; ANSWER SECTION:
www.google.co.jp.       300     IN      A       216.58.196.227

;; AUTHORITY SECTION:
google.co.jp.           86400   IN      NS      ns2.google.com.
google.co.jp.           86400   IN      NS      ns4.google.com.
google.co.jp.           86400   IN      NS      ns1.google.com.
google.co.jp.           86400   IN      NS      ns3.google.com.

;; ADDITIONAL SECTION:
ns4.google.com.         172130  IN      A       216.239.38.10
ns2.google.com.         172130  IN      A       216.239.34.10
ns1.google.com.         172130  IN      A       216.239.32.10
ns3.google.com.         172130  IN      A       216.239.36.10

;; Query time: 56 msec
;; SERVER: 172.16.0.10#53(172.16.0.10)
;; WHEN: Sat Jan  2 01:38:35 2016
;; MSG SIZE  rcvd: 196

無事に名前解決できていることが確認できます。