Windows TIPS
[Network]
  Windows TIPS TOPへ
Windows TIPS全リストへ
内容別分類一覧へ

DNSのラウンドロビン設定を確認する

解説をスキップして操作方法を読む

デジタルアドバンテージ 打越 浩幸
2006/05/27
 
対象OS
Windows 2000
Windows XP
Windows Server 2003
DNSサーバでラウンドロビン・レコードを定義しておくと、DNSの名前解決を実行するたびに異なるIPアドレスが返され、クライアントからのアクセスを分散させることができる。
だがpingコマンドなどで確認しようとすると、クライアント側のDNSキャッシュ機能が働き、ラウンドロビンが機能していないように見える。
これを回避するには、一時的にDNSのキャッシュ・サービスを停止すればよい。
 
解説

 TIPS「DNSのラウンドロビン機能を利用する」では、DNSサーバにおける、DNSラウンドロビン機能の設定方法について解説した。ラウンドロビン機能を使ってWebサーバなどのIPアドレスを複数登録しておくと、クライアントがアクセスするたびに異なるIPアドレス(のリスト)が返され、結果的にサーバの負荷分散が実現できる。

 だがpingやWebブラウザといった一般のアプリケーションでFQDNの名前解決を利用する場合は、正しくラウンドロビンが機能していないように見えることがある。DNSの問い合わせ結果がキャッシュされてしまうからだ。

 アプリケーション(が使っている名前解決機能)がDNSサーバに問い合わせを行うと、その内容がキャッシュに保存され、その内容がしばらくの間、使われ続けるようになっている。これを「DNSのキャッシュ機能」といい、DNSサーバに対するひんぱんな問い合わせを避け、名前解決のパフォーマンスを向上させるために用意されている。DNSキャッシュの内容は「ipconfig /displaydns」コマンドで確認できるし、「ipconfig /flushdns」コマンドで削除できる。

 このキャッシュ機能が有効になっていると、1度キャッシュされたDNSレコードがずっと使われるので、例えば「ping www.example.co.jp」というコマンドを繰り返し実行しても、同じアドレスばかりが使われることになる(複数のIPアドレス・リストが返された場合は、通常は先頭のIPアドレスが使用される)。

C:\>ping -n 1 www.example.co.jp …1回目のping

Pinging www.example.co.jp [10.20.5.5] with 32 bytes of data:

Reply from 10.20.5.5: bytes=32 time<1ms TTL=128

Ping statistics for 10.20.5.5: …1回目のping先アドレス
    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

C:\>ping -n 1 www.example.co.jp …2回目のping

Pinging www.example.co.jp [10.20.5.5] with 32 bytes of data:

Reply from 10.20.5.5: bytes=32 time<1ms TTL=128

Ping statistics for 10.20.5.5: …2回目のping先アドレス。1回目と同じ
    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

…(以下省略)…

 2回pingを実行しているが、そのping先のIPアドレスは、常に同じ10.20.5.5となっている。これでは、DNSラウンドロビンが正しく設定されているかどうか分からない。

 本TIPSでは、このラウンドロビン設定の確認方法(レコードが正しく設定され、機能しているかどうかの確認方法)について解説する。

操作方法

nslookupによる確認

 DNSサーバでラウンドロビン・レコードを定義した場合(同一ホスト名に複数のIPアドレスを定義した場合)、それが正しく設定されているかどうかを確認する一番基本的な方法は、nslookupコマンドを使うことである。

 DNSサーバにおいて、1つのホスト名に対して複数のIPアドレスが定義されている場合、nslookupコマンドでは、複数のIPアドレスがすべてまとめてリスト形式で返される。

 さらにラウンドロビン機能が有効になっていると、実行するたびにリストの内容が循環して返される。

C:\>nslookup
Default Server:  localhost
Address:  127.0.0.1

> www.example.co.jp …1回目の問い合わせ
Server:  localhost
Address:  127.0.0.1

Name:    www.example.co.jp
Addresses:  10.20.5.5, 10.20.5.4, 10.20.5.3, 10.20.5.2
          10.20.5.1 …1回目の問い合わせ結果

> www.example.co.jp …2回目の問い合わせ
Server:  localhost
Address:  127.0.0.1

Name:    www.example.co.jp
Addresses:  10.20.5.4, 10.20.5.3, 10.20.5.2, 10.20.5.1
          10.20.5.5 …2回目の問い合わせ結果

…(以下省略)…

 この結果では、5つのIPアドレス・リストが、循環していることが分かる。

「DNS Client」サービスを停止する

 nslookupコマンドではなく、実際のアプリケーションでDNSのラウンドロビン機能が正しく利用できているかどうか確認するには、クライアント側のDNSキャッシュを無効にすればよい。具体的には、DNSキャッシュを実現している「DNS Client(省略名はdnscache)」サービスを一時的に停止すればよい。

C:\>net stop "dns client"  …DNSキャッシュ・サービスの停止(「net stop dnscache」でもよい)
DNS Client サービスを停止中です.
DNS Client サービスは正常に停止されました。


C:\>ping -n 1 www.example.co.jp …1回目のping

Pinging www.example.co.jp [10.20.5.4] with 32 bytes of data:

Reply from 10.20.5.4: bytes=32 time=30ms TTL=127

Ping statistics for 10.20.5.4: …1回目のping先アドレス
    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 30ms, Maximum =  30ms, Average =  30ms

C:\>ping -n 1 www.example.co.jp …2回目のping

Pinging www.example.co.jp [10.20.5.3] with 32 bytes of data:

Reply from 10.20.5.3: bytes=32 time=30ms TTL=127

Ping statistics for 10.20.5.3: …2回目のping先アドレス。1回目とは異なる
    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 30ms, Maximum =  30ms, Average =  30ms

…(以下省略)…

 DNSキャッシュ・サービスの停止後は、pingコマンドを実行するたびに、ラウンドロビンで設定した、異なるIPアドレスに対して実行していることが分かるだろう。テストの終了後は、またサービスを開始するか、システムを再起動すればよい。End of Article

関連記事(Windows Server Insider)
  Windows TIPS:DNSのラウンドロビン機能を利用する
  Windows TIPS:nslookupの基本的な使い方(イントラネット編)
  Windows TIPS:pingでネットワーク・トラブルの原因を調査する
     
「Windows TIPS」


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間