DNSサーバの確認に便利なWebサービスと、各種コマンドを解説します
さて、早速チェックと言いたいところですが、DNSサーバ関連の設定は反映に時間がかかるため、最低でも設定から1日程度時間を置いてから確認するようにしてください。
急いで確認して、正しい設定を変更してしまわないように注意してください。
WebサイトにアクセスしてDNSサーバの設定を確認
名前解決ができているかどうかチェックするには、取得したドメインでWebサイトにアクセスするのが手っ取り早い方法です。ブラウザでアドレスを入力して、下の画像にあるようなApacheの画面が出ていれば上位DNSに登録された証拠です。
これはCentOSでApacheサーバを運用している場合の表示です。
Webサービスを利用してDNSサーバの設定を確認
DNSサーバの動作を確認するnslookupコマンドをブラウザで手軽に利用できる「nslookup(dig)テスト【DNSサーバ接続確認】」を利用させていただいて、チェックしてみましょう。
「ホスト名(FQDN)またはIPアドレス」欄に「example.com(自分のホスト名)」を入力、「オプション」にて「ANY」を選択。「nslookup実行」ボタンをクリックします。
「オプション」で「ANY」を選んだ場合の一覧は以下のようになります。
自分で設定した通りに応答があったでしょうか?
よくある間違いとしては以下のとおりです。
- ゾーンファイルでホスト名の後に「.(ドット)」を入れ忘れて「example.com.examle.com」と2重になっている。
- MXレコードで「@」を入力して「info@example.com」となることで正常に認識されていない。正しくは「.(ドット)」で繋ぎ「info.example.com」とします。
nslookup実行時のオプションでMXレコード、Aレコードなど個別に問い合わせることもできるので、問題点の切り分けに利用してみてください。
コマンドを利用してDNSサーバの設定を確認
上のWebサービスで利用した「nslookupコマンド」ですが、WindowsやMacでも簡単に利用できます。
Windowsでは「スタートから検索の開始でcmd.exe」、Macでは「アプリケーション > ユーティリティ > ターミナル」で利用できます。
「nslookupコマンド」は対話型のコマンドのため、打つと以下のようにコマンド待ちの状態になります。
※コマンドラインの見方
「コマンド」「引数、その他」「コメント」「#(rootユーザ)」「$(一般ユーザ)」
$ nslookup > ←コマンド待ちを表すプロンプト
例)example.comに関する、すべての情報を表示する場合
> set type=ANY
> example.com
応答内容は先程Webサービスで解説したものと同じはずです。
その他に以下の様な記述があると思います。
サーバ: dns.example.ne.jp Address: 192.168.0.1
これは利用しているISP(インターネットサービスプロバイダー)のローカルネームサーバです。普段ブラウザからアクセスする時は、このネームサーバで名前解決をしています。
その他nslookupコマンドの例
例)Aレコードを表示する場合
> set type=A
> example.com
例)NSレコードを表示する場合
> set type=NS
> example.com
例)PTRレコード(逆引き)を表示する場合
> set type=PTR > 192.168.0.1 ←自分のグローバルIPアドレス
問い合わせるDNSサーバの変更
問い合わせに利用するDNSサーバですが、BINDで構築したDNSサーバでも名前解決ができるかチェックすることもできます。
> server ns.example.com ←BINDで作成したネームサーバ名
すると以下のように応答があるはずです。
規定のサーバ: ns.example.com Address: 192.168.0.1
オープンリゾルバに対する注意 同一ネットワーク上や、限定されたネットワーク上でのみ有効なら問題ありませんが、 外部からの問い合わせに対して無差別に応答する状態をオープンリゾルバと言います。 この状態を放置するとハッキング行為の片棒を担ぐことになるため、対策が必要です。 対策をまとめたので以下のページをご覧ください。 「DNS Amp攻撃の解説と、踏み台にされないためのBIND DNSの設定」
あとは同じように対話コマンドで問い合わせをしてみてください。
nslookupの終了するには、「exit」とタイプして「Enter」です。
その他DNSサーバをチェックするコマンド
他にもLinuxにTera Term等でログインして「hostコマンド」や「digコマンド」を利用してもDNSの情報を表示することができます。試しにgoogleやyahooなど大規模なDNSサーバの構成を見てみると面白いかもしれません。
余談ですが、古くからDNSサーバの確認に利用される「nslookupコマンド」。環境によって挙動が違うため、現在では「digコマンド」の利用が推奨されています。「digコマンド」はDNSサーバからの応答を加工せず表示してくれるため、問題の把握には便利です。
例)hostコマンドでgoogleのDNSサーバに関する情報を表示する
$ host -a google.co.jp
例)hostコマンドで173.194.38.95(googleのAレコードのアドレス)の逆引きを調べる
$ host -a 173.194.38.95
例)digコマンドでgoogleのDNSサーバに関する情報を表示する
$ dig google.co.jp
例)digコマンドで173.194.38.95(googleのAレコードのアドレス)の逆引きを調べる
$ dig -x 173.194.38.95
例)digコマンドでルートネームサーバを表示する
$ dig
それぞれのコマンドの詳細はmanでマニュアルをご覧ください。
以上で名前解決に関する全ての設定と動作確認は終了です。
自分のドメインで、自分のLinuxサーバへアクセスできるようになったので、次は「Webサービスの最前線で動作するApache HTTP サーバの初期設定」です。