DNSサーバは、外部のDNSサーバに問い合わせた結果をDNSキャッシュに保存することで、無駄な外部サーバへの問い合わせを減らし、クライアントからの問い合わせにも高速に応答できる。そのDNSキャッシュの内容を調べたりクリアしたりする方法は?
対象OS:Windows 2000 Server / Windows Server 2003
DNSサーバは、クライアントからの名前解決要求を受け付けて、その名前(FQDN名)からIPアドレスを求めたり、その逆を行ったりするためのサービスを提供する。例えばwww.microsoft.comというFQDN名の問い合わせ要求を受け取ったら、wwwというホストのIPアドレスを、microsoft.comドメインのDNSサーバに問い合わせる(microsoft.comドメインの情報はcomドメインのDNSサーバに問い合わせ、comドメインの情報はさらにその上位にあるルートDNSサーバに問い合わせるというふうに動作している)。そして1度外部のDNSサーバに問い合わせた結果は、以後の問い合わせに備えて、「DNSキャッシュ」と呼ばれる内部的なデータベースに格納している。この仕組みにより、何度も外部へ問い合わせることなく、クライアントからの名前解決要求に高速に応答することができる。
DNSサーバが正しく動作している場合は、このDNSキャッシュに次々とDNSの問い合わせ結果(DNSレコード)が蓄積されていく。そのため、このキャッシュの内容を調査することにより、DNSサーバが正しく動作しているかどうかを確認することができる。またキャッシュされているDNSレコードの内容を調べることにより、正しいレコード情報がキャッシュされているかどうかを知ることができる。DNSサーバの動作が不調な場合や、返されるDNSレコードの内容が正しくないと思われる場合は、DNSキャッシュの内容を調査するのもよいだろう。
本TIPSでは、DNSサーバにおけるDNSキャッシュの内容の確認方法と、DNSキャッシュをクリアする方法について解説する。
Windows 2000 ServerやWindows Server 2003に含まれるDNSサーバのキャッシュの内容を確認するには、[管理ツール]の[DNS]管理コンソールを利用する。このDNS管理コンソールは、DNSサービスをインストールしているサーバOSでは標準で用意されているはずであるが、それ以外のWindows サーバOS(メンバ・サーバ)や、クライアントOSでも、管理者用ツールをインストールすることにより利用できる。管理ツールのインストール方法についてはTIPS「サーバ用管理ツールをクライアントPCにインストールする」を参照してほしい。
DNS管理コンソールを起動したら、左側ペインでDNSサーバ名を選択し(リモートのDNSサーバを管理する場合は、[操作]メニューの[DNSサーバーに接続]であらかじめ目的のDNSサーバに接続しておくこと)、[表示]メニューをクリックして[詳細設定]を選択する。デフォルトではこのメニュー項目はオフ(チェックマークが付いていない状態)になっている。これを選んでチェックマークをオンにすることにより、DNSキャッシュの内容や、デフォルトで定義されている逆引きゾーン(「0.in-addr.arpa」「127.in-addr.arpa」「255.in-addr.arpa」の3つ)が表示されるようになる。
このメニュー項目を選択することにより、管理コンソールの左側ペインに新しく[キャッシュされた状態]という項目が表示されるようになる。これをクリックしてツリーを展開することにより、現在キャッシュに格納されているDNSレコードの内容が階層的に表示される(最新の状態にするには、ときどき[更新]ボタンか[F5]キーを押して、強制的に再表示させること)。
DNSサーバは階層的に構築されており、その最上位には「ルートDNSサーバ」が配置されている。これらのルートDNSサーバはroot-servers.netドメインに属しているので、comやnet、root-servers.netドメインなどの情報もキャッシュされていることが分かる。ルートDNSサーバに関する情報はTIPS「DNSサービスのルート・ヒントを変更する」を参照してほしい。
なおDNSの検索結果は、クライアント側でも独自にキャッシュしているので(TIPS「名前解決のトラブルシューティング(DNSリゾルバ・キャッシュ編)」参照)、DNSサーバのキャッシュの内容を確認する場合は、あらかじめ「ipconfig /flushdns」コマンドを使ってクライアント側のキャッシュの内容をクリアしておくのが望ましい。
このように、DNSキャッシュには問い合わせ結果のDNSレコードがキャッシュされているが、キャッシングの前後の状態を確認したいのでキャッシュをクリアしたい場合や、キャッシュされているDNSレコードが多すぎて確認が難しいといった場合には、その内容をクリアすることができる。
キャッシュの内容はDNSサービスを再起動させるとクリアされるが、手動で強制的にクリアすることもできる。GUIでクリア操作を行うためには、DNSの管理コンソールで、サーバ名もしくは[キャッシュされた参照]というツリー項目を選択し、[操作]メニューから[キャッシュの消去]を選ぶか、右クリックしてポップアップ・メニューから[キャッシュの消去]を選ぶ。
これ以外にも、サポート・ツールに含まれるdnscmd.exeというコマンドを使って、「dnscmd サーバ名 /clearcache」を実行してもよい。サポート・ツールについてはTIPS「Windows 2000管理者向けツールの種類と使い分け」を参照していただきたい。
■この記事と関連性の高い別の記事
Copyright© Digital Advantage Corp. All Rights Reserved.