ネットワークコマンドで管理が変わる!
第13回 netshでDHCPサーバーを管理しよう (その2)
今月のコマンド
set detectconflictretry
show detectconflictretry
set dnsconfig
show dnsconfig
show mibinfo
今回紹介するnetshサブコマンドはdhcp serverコンテキストで利用できるコマンドだ。いずれのコマンドもWindows 2000 ServerおよびWindows Server 2003 (R2を含む) でのみ利用できる。Windows 2000 ProfessinalおよびWindows XP Professional/Home Editionでは利用できない。
---------------------------------------------------------------------------
IPアドレスの競合検出を設定/表示する
set detectconflictretry/
show detectconflictretry
---------------------------------------------------------------------------
>pingでIPアドレスを確認してからIPアドレスをリース
ネットワークに複数のDHCPサーバーがある場合はもとより、DHCPサーバーが1台しかない場合でも、IPアドレスの競合が起こることがある。例えば、固定IPアドレスを設定しているクライアントPCがネットワーク中に混じっている場合に、DHCPサーバーがそれを知らないと同じIPアドレスをリースしてしまうことがある。またクライアントの何らかの不具合でリースされた正しいIPアドレスが狂ってしまったり、DHCPサーバーのデータベースが壊れた場合にも、既に存在するIPアドレスをDHCPサーバーがリースしてしまう可能性がある。IPアドレスの競合が起きると、ネットワークが正しく動作しない。
「set detectconflictretry」サブコマンドは、IPアドレスの競合を避けるために、DHCPサーバーがIPアドレスをリースする際に、そのIPアドレスに対してpingコマンドを発行して、そのIPアドレスが使われていないかを確認し、使われていないならばそのIPアドレスをリースするように設定する。もしpingに応答があれば、そのIPアドレスに「BAD_ADDRESS」という印を付けて、DHCPサーバーはそのIPアドレスをリースしないようになる。
set detectconflictretryコマンドの構文は次のとおり。
set detectconflictretry RetryNumber
パラメータのRetryNumberにはpingを実行する回数を指定する。0を指定した場合は競合検出を行わない。指定できる最大数は5回だが、通常この回数は1回ないし2回で十分だろう。回数を増やすと、pingの応答をタイムアウトまで待つので時間がかかり、その間IPアドレスのリースが行われないことになるので、かえって問題が起きる。
例えば、ping回数を2回にする場合は次のように指定する。
例:set detectconflictretry 2
現在設定されている競合検出の回数を知りたい場合は「show detectconflictretry」コマンドを使う。パラメータはない。
show detectconflictretry
画面1● set detectconflictretryコマンドでping回数を設定し、show detectconflictretryコマンドで確認
---------------------------------------------------------------------------
DHCPサーバーによるDNS動的更新を設定/表示する
set dnsconfig/show dnsconfig
---------------------------------------------------------------------------
>クライアントの代わりにDHCPサーバーがDNSを動的に更新する
クライアントPCがIPアドレスをDHCPサーバーからリースされる場合は、クライアントPCのIPアドレスがいつも同じとは限らないので、別のPCからクライアントPCを参照するためには、DNSサーバーまたはWINSサーバーによる名前解決が必要になる。
DNSによる名前解決の方法として、クライアントPC自身がDNSサーバーに対してAレコードとPTRレコードを動的に登録することができるが、クライアントPCが多数あるネットワーク環境では、それぞれのクライアントPCがDNSサーバーに対して動的更新を送信するとネットワークのトラフィックが問題になる。またセキュリティ上でも問題になる場合がある。
そこで、クライアントPCには動的更新をさせずに、その代わりにDHCPサーバーがDNSサーバーに対しクライアントPCのIPアドレスを動的に更新するようにできる。その場合はDHCPサーバーとDNSサーバーの通信だけですむので、ネットワークトラフィックが抑制できる。このようにDHCPサーバーからのDNS動的更新を設定するコマンドが「set dnsconfig」コマンドだ。
set dnsconfigコマンドの構文は次のとおり。
set dnsconfig Enable Update Lookup NonDym
パラメータは4つあるが、いずれも「0」または「1」で指定する。
Enableは、DHCPサーバーによるDNS動的更新を無効にする (0) か、有効にする (1) かを指定する。
Updateは、クライアントの要求にしたがってDNS動的更新を有効にする (0) か、クライアントの要求の有無に関わらずDNS動的更新を常に有効にする (1) かを指定する。
Lookupは、IPアドレスのリースの期限が切れたときにDNSサーバーのAレコードとPTRレコードを削除しない (0) か、削除する (1) かを指定する。
NonDymは、Windows NTやWindows 9xなどのDNSの動的な更新をサポートしていないレガシークライアントがある場合に、DHCPサーバーによるDNSの動的な更新を無効にする (0) か、有効にする (1) かを指定する。
例えば、DHCP サーバーによるDNS動的更新を有効にし、クライアントの要求に関わらず常に有効にし、リースが切れたクライアントのレコードを削除し、レガシークライアントの動的更新を無効にする場合は次のように指定する。
例:set dnsconfig 1 1 1 0
なお、GUIで設定する場合は、スコープごとにDNSの動的更新を設定することができるが、残念ながらnetshコマンドではスコープごとの設定ができない。つまりnetshコマンドで設定した内容はすべてのスコープに適用される。
現在のDNS動的更新の設定を確認する場合は「show dns config」コマンドを使う。パラメータはない。
show dnsconfig
画面2● set dnsconfigコマンドでDHCPサーバーによる動的更新を設定し、show dnsconfigコマンドで確認
---------------------------------------------------------------------------
DHCP使用統計を表示する
show mibinfo
---------------------------------------------------------------------------
>DHCPサーバーで処理されたDHCPリクエストおよびリースの統計を表示する
DHCPサーバーのボトルネックを調べたりするために、DHCPサーバーにどれだけのリース要求があるか、どれだけのリースを提供しているか、などのDHCP使用統計を知りたい場合があるだろう。その場合に利用できるコマンドが「show mibinfo」コマンドだ。このコマンドはDHCpサーバーの管理データベース (MIB) 情報を表示する。パラメータはない。
show mibinfo
このコマンドを実行すると、画面3のように、DHCPサーバーが発見したクライアントの数、IPアドレスをリースしたクライアントの数、IPアドレスを要求されたクライアントの数、IPアドレスのリースを拒否したクライアントの数、リースを開放したクライアントの数、現在使用/未使用のIPアドレスの数、保留中のリースの数などの情報を表示できる。ACKは、DHCPサーバーが1秒間に送信したDHCP ACKメッセージの数を、NACKは、DHCPサーバーが1秒間に送信したDHCP NACKメッセージの数を示している。
画面3● show mibinfoコマンドでDHCP使用統計を表示する
netshサブコマンドリファレンス
netshサブコマンドは、実行できるコンテキストが異なる。そのため、ダイレクトコマンドモードの場合、-cオプションによって実行可能なコンテキストを指定する必要がある。シェルモードの場合は、実行できるコンテキストに移動してからコマンドを実行するか、コンテキスト名をコマンドといっしょに指定して実行する必要がある。
set detectconflictretry
DHCPサーバーがIPアドレスの競合を検出するためにpingを実行する回数を指定する。
[構文]
set detectconflictretry RetryNumber
[パラメータ]
RetryNumber
IPアドレスの競合を検出するためにDHCPサーバーがpingを実行する回数を指定する (必須)。0を指定した場合は競合の検出を行わない。指定できる最大数は5。
[実行できるコンテキスト] dhcp server
show detectconflictretry
DHCPサーバーがIPアドレスの競合を検出するためにpingを実行する回数を表示する。
[構文]
show detectconflictretry
[パラメータ]
なし
[実行できるコンテキスト] dhcp server
set dnsconfig
DHCPサーバーによるDNS動的更新を設定する。
[構文]
set dnsconfig Enable Update Lookup NonDym
[パラメータ]
以下の4つのパラメータは0または1で指定する (いずれも必須)。
Enable
0 : DHCPサーバーによるDNS動的更新を無効にする。
1 : DHCPサーバーによるDNS動的更新を有効にする。
Update
0 : クライアントの要求にしたがってDNS動的更新を有効にする。
1 : クライアントの要求に関わらず常にDNS動的更新を有効にする。
Lookup
0 : IPアドレスのリース期限が切れてもDNSのAレコードとPTRレコードを削除しない。
1 : IPアドレスのリース期限が切れたときにDNSのAレコードとPTRレコードを削除する。
NonDym
0 : DNS動的更新をサポートしていないレガシークライアントがある場合に、DHCPサーバーによるDNS動的更新を無効にする。
1 : DNS動的更新をサポートしていないレガシークライアントがある場合でも、DHCPサーバーによるDNS動的更新を有効にする。
[実行できるコンテキスト] dhcp server
show dnsconfig
DHCPサーバーによるDNS動的更新の設定を表示する。
[構文]
show dnsconfig
[パラメータ]
なし
[実行できるコンテキスト] dhcp server
show mibinfo
DHCPサーバーのMIB情報を表示する。
[構文]
show mibinfo
[パラメータ]
なし
[実行できるコンテキスト] dhcp server