| [Network] | ||||||||||||||||||
LMHOSTSファイルの更新を即座に反映させる方法
|
||||||||||||||||||
|
||||||||||||||||||
| 解説 |
通常、TCP/IPを使用する通信で名前解決を行うには、DNS(Domain Name System)、あるいはWINS(Windows Internet Name Service)といったサーバを設置して、名前解決を担当させる。DNSはActive Directoryドメインやインターネットで用いられている名前解決のシステムであり、WINSはWindows 9x/Me/NTといった、NetBIOS対応のオペレーティング・システムで用いられる名前解決のシステムである。
しかし、小規模なネットワークでは、PCの台数などの関係で、常時稼働するWINSサーバを設置するのが困難な場合がある。実際には、NetBIOSでは、WINSサーバを使用できない場合にはブロードキャストによる名前解決を試みるようになっているので、単一のサブネットで構成されたLANなら支障はないともいえるが、ブロードキャストが多発するとネットワークの性能に影響するので、あまり好ましい方法とはいえない。
また通常、ブロードキャスト・パケットはルータを越えられないので、ルータで分割された別のサブネットに対する名前解決をブロードキャスト方式で行うことはできない。
こうした場合の対処方法として、個々のコンピュータに固定IPアドレスを割り当てた上で、LMHOSTSファイルを作成する方法がある。LMHOSTSファイルはテキスト・ファイルで、IPアドレスとコンピュータ名の対応が記述されている。
LMHOSTSファイルの保存場所は、Windows 2000/XPでは%SystemRoot%\SYSTEM32\Drivers\etcフォルダ、Windows 9x/MeではWindowsのインストール・フォルダ(デフォルトではC:\Windows)となっている。ファイル名は「LMHOSTS」で、拡張子が付かない点に注意したい(同じフォルダに、LMHOSTS.SAMというサンプル・ファイルがあるので、これを参考にLMHOSTSファイルを作成するとよい)。
以下に、実際に使用されているLMHOSTSファイルの内容例を示す。
|
|||||||
| 実際に、筆者宅で使用されているLMHOSTSファイルの例 | |||||||
| 左端から順に、IPアドレス、コンピュータ名、そのほかのオプション指定、といった順で項目が並び、それぞれの項目はスペースかタブで区切られる。 |
これらのうち、必ず記述しなければならないのは、IPアドレスとコンピュータ名の指定だけだ。「#PRE」は、LMHOSTSファイルの内容をメモリ上にキャッシュすることで名前解決を迅速に行うためのもの(PREは、事前にロードしておくという意味のpreloadの略)、「#DOM」は、NTドメイン、あるいはActive DirectoryドメインのNetBIOS名を指定するものであり、これらは必要に応じて記述すればよい(例にあるとおり、ドメイン名は「#DOM:」に続けて、空白を入れずに指定する)。
筆者の自宅のようにコンピュータの台数が少ない環境では、IPアドレスを重複しないように手作業で管理するのは容易なので、LMHOSTSファイルを用いた名前解決にも、それなりの有用性はある。もしコンピュータ名やIPアドレスの割り当てに変更があった場合でも、すべてのコンピュータにLMHOSTSファイルを再配布すれば済む。
LMHOSTSファイルを使った名前解決は、ブロードキャストによる名前解決と異なり、ルータをまたいだ別のサブネットに存在するコンピュータに対しても名前解決を行える。この点が、ネットワーク構成によっては便利と感じられるかもしれない。一般的には、ルータとWANを介した別の拠点にしかWINSサーバが存在しない場合のように、手元のLANにWINSサーバがなく、かつLANが小規模で専用のWINSサーバを設置するのが困難な場合などに、LMHOSTSファイルが使用されることが多い。
なお、Windows NT/2000/XPでは、TCP/IPのプロパティ設定として、LMHOSTSファイルの参照を明示的に指定できる(必ず参照したり、参照しないようにしたり指定できる)。TCP/IPのプロパティ設定画面で[詳細設定]をクリックすると表示されるダイアログのうち、[WINS]タブに、NBT(NetBIOS over TCP/IP)関連の設定と併せて、LMHOSTSファイルに関する設定項目が存在する。
一方、Windows 9x/Meでは、LMHOSTSファイルを自動的に参照するので、明示的に参照を無効にすることはできない。
![]() |
|||||||||
| TCP/IPプロパティの[詳細設定]ダイアログにある[WINS]タブ(Windows XPの例) | |||||||||
| ここでは、NBT(NetBIOS over TCP/IP)関連の設定に加えて、LMHOSTSファイルに関連する設定もできる。既定値では、LMHOSTSファイルの内容を参照して名前解決を行うようになっている。 | |||||||||
|
なお、NBTクライアントが使用する名前解決手段の優先順位は、次のようになっている(上の方から順番に試行される)。
- NetBIOS名前キャッシュの検索
- WINSサーバに対してクエリ
- NetBIOSブロードキャストでクエリ
- LMHOSTSファイルを参照
- hostsファイルを参照
- DNSサーバに対してクエリ
| ※注 これは、NetBIOSの名前解決順序を示す「ノード・タイプ」が「H(Hybrid)」の場合の優先順位。ノード・タイプには、このほかに、P(Peer)、M(Mixed)、B(Broadcast)がある。各タイプに応じて、2と3の順序が入れ替わったり、どちらかが省略されたりする。ノード・タイプについては、サポート技術情報の「Microsoft クライアントのデフォルトのノード タイプ」などを参照。Windows NT/2000/XPでは、デフォルトではHybridノード・タイプか(WINSサーバが指定されている場合)、Broadcastノード・タイプ(WNSサーバが指定されていない場合)が利用される。 |
1度解決された名前はNetBIOS名前キャッシュに入れられ、一定時間キャッシュ中に保持される。そのため、次回からは高速に検索できることになる。またLMHOSTSファイルで「#PRE」指定を行ったエントリは、システムの起動時にあらかじめキャッシュにロードされるので、やはり高速に検索することができる(現在のNetBIOS名前キャッシュの状態は「nbtstat -c」コマンドで確認できる)。
つまり、LMHOSTSファイルで「#PRE」指定を行う場合と行わない場合とで、名前解決手段の優先順位が異なる。「#PRE」指定がある場合はLMHOSTSファイルが最優先されるが、ない場合はWINSサーバ、それが利用できなければブロードキャストが使用される。
このため、LMHOSTSファイルの内容によっては、せっかくLMHOSTSファイルで指定しても、その情報による名前解決が行われず、ブロードキャストによって処理されてしまうなどの可能性がある。また、LMHOSTSファイルの内容とWINSサーバの内容に矛盾が生じた場合、間違った名前解決が行われ、トラブルが発生する可能性もある。
LMHOSTSファイルを使用する場合の問題は、LMHOSTSファイルの内容がWindowsの起動時に読み込まれた状態のままになるため、コンピュータの動作中にLMHOSTSファイルを更新しても、リアルタイムに変更が反映されない点にある。もちろん、コンピュータを再起動すれば設定は反映されるが、作業中のファイルがあった場合には、その場で再起動を要求するのは難しい、ということもあり得るだろう。
そこで、nbtstatコマンドを使用する。
本来、このコマンドはNBTの状態チェックに使われるツールだが、引数に「-R」と指定すると、その場でLMHOSTSファイルの再読み込みを実行してくれる。これにより、コンピュータの再起動なしに、最新状態のLMHOSTSファイルを反映させた名前解決が可能になる。
| 操作方法 |
以下の手順により、コンピュータの再起動なしにLMHOSTSファイルの変更結果を反映させることができる。
- まず、IPアドレスとコンピュータ名の状態に合わせてLMHOSTSファイルを修正、あるいは作成し、それぞれのコンピュータの適切なフォルダにコピーする。コピー先のフォルダは、すでに説明したように、Windows NT/2000/XPとWindows 9x/Meで異なる点に注意されたい。
- 次に、コンピュータ名やIPアドレスの設定を、新しい状態に変更する。設定変更を後回しにしているのは、LMHOSTSファイルをLAN経由で配布する場合を考慮したためである。もし、先にコンピュータ名やIPアドレスを変更してしまうと、場合によっては通信不可能なコンピュータが出現し、LAN経由の配布ができなくなるからだ。
- 最後に、コマンドプロンプトを起動して「nbtstat -R」と入力すると、更新されたLMHOSTSファイルの内容が読み込まれ、名前解決に使われるようになる。このとき、「Successful purge and preload of the NBT Remote Cache Name Table.」というメッセージが表示される。

| 関連リンク | ||
| Windows 2000 Serverドキュメント「Lmhosts ファイル」(マイクロソフト) | ||
|
||||||||||||||||||||||||||||
| 「Windows TIPS」 |
ホワイトペーパー(TechTargetジャパン)
- 第207話 究極の人事システム (2010/2/9)
部長、わが人事部が開発した究極の人事評価システムがついに完成しました! これで不要な社員が一発で分かります! - WindowsTIPS (2010/2/5)
− netshコマンドでTCP/IPのパラメータを設定する
− Virtual PC 2007の共有NATで利用可能なアドレス範囲
− スタンバイ復帰でパスワード入力を要求されないように - 仮想環境でActive Directoryを利用する (2010/2/4)
仮想環境にADをインストールすれば、自由にActive Directoryドメイン・ネットワークを構築して実験できる - 第206話 バナー広告案 (2010/2/2)
いまどきWebマーケティングが不可欠なのは分かるが、強烈な競合に並べてバナーなんか出して、勝ち目はあるのか?
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | 企業の仮想化に足りない“発想”とは? 仮想化運用管理のキモは意外なところに! New! |
| ◆ | 操作もマニュアルも分かりやすい! ユーザー視点で開発されたPC管理ツール New! |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |

| ◆ | セキュリティを知り尽くす上野氏が登壇! @ITメールソリューションLive! in Tokyo |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
| ◆ | 世界に通用するストレージの作り方とは? 製品に込めた思いを富士通の開発者に聞く |

| ◆ | OSSで手間も時間も、障害も減った―― 「マピオンの事例」オープンソース活用法 |
| ◆ | 「ノートPCの持ち出し禁止」で大丈夫? 情報漏えいを防ぐ管理手法とインフラは? |
| ◆ | 1日の処理を1秒に――MySQLの達人が語る 「コスト削減」できるチューニング |

| ◆ | ドキュメント作成を自動化して、SEの作業 効率を大幅アップ! Visio 2007の魅力 |
| ◆ | 急速に広がるHyper-Vでのサーバ仮想化 そのベストプラクティスをデルが解説 |
| ◆ | @IT主催セミナーで語られた、「担当者に 求められるセキュリティ対策」をレポート |

| ◆ | @IT「Windows 7」 特設サイトオープン! 最新情報・移行ノウハウを公開しています |








