| [Network] | |||||||||||||
hostsとlmhostsの違い
|
|||||||||||||
|
|||||||||||||
| 解説 |
Windowsネットワークで利用されるプロトコルには、大きく分けてNetBIOS系のプロトコルと、TCP/IP系のプロトコルがあり、その目的に応じて使い分けられている。もともとこれらのプロトコルはまったく別のものであり、Windows OSに附属するコマンドは主にNetBIOS系(SMBやMS-RPCなどを含む)で動作するように作られているものが多かったが(コマンドの操作対象として「\\サーバ名」という形式の指定をするものは、NetBIOS系のことが多い)、現在では両者は巧みに組み合わされ、ユーザーはその違いをほとんど意識することなく利用することができるようになっている。だが、細部ではいくらかの違いがあり、ネットワークの管理をする場合にはその違いを知っておく必要がある。本TIPSでは、静的な名前解決に使われる、hostsファイルとlmhostsファイルの違いについて解説しておく。
Windowsネットワーク環境では、コンピュータ名(ホスト名)と実際のコンピュータを対応付けるために、「名前解決」という機能が使われる。これは、例えばserver1.example.comというコンピュータ名を指定すると、これに対応するコンピュータのIPアドレスやNetBIOSのノード名を求め、通信相手のコンピュータを「特定」するための機能である。
実際の名前解決では、さまざなプロトコルや手法が組み合わされて実現されている。具体的には、NetBIOS名のブロードキャスト、DNSサービス、WINSサービス、NetBIOS名前キャッシュ、DNS名前キャッシュ、hostsファイル、lmhostsファイルなどがあり、あらかじめ決められた優先順位に基づいて、順番に各機能が利用されている(実際の優先順位はOSやネットワークの設定によって変わるので、ここでは触れない)。このうち、DNSやWINSは動的な名前解決機能であり、hostsファイルやlmhostsファイルは静的な名前解決機能に分類できる。初期のネットワークでは、静的な名前解決手段が使われていたが、現在の大規模化・高度化したネットワークでは、ネットワークの構成が絶えず変化するため、動的な名前解決手段が使われるのが普通である。だが、例外的なコンピュータやネットワークを定義したり(例:DNSに正式に登録されていないようなローカルなコンピュータを定義したり、リモートのLANへアクセスするなど)、一時的にしか使用しないものを実験的に登録してみるには、静的ファイルを使うのが簡単でよい。このために利用できるのが、hostsファイルやlmhostsファイルによる、コンピュータ名の定義である。
hostsファイルとは
hostsファイルは、もともとはTCP/IP系のネットワークで利用されていた、IPアドレスとコンピュータ名の対応付けのための定義ファイルである。具体的には以下のような形式のテキストファイルである。Windows NT/Windows 2000/Windows XP/Windows Server 2003系のOSでは、デフォルトでは「%windir%\system32\drivers\etc」フォルダ中に格納することになっている。
※hostsファイルの例 |
各行が1つのIPアドレスとその名前を定義している。左端にIPアドレスを書き、その右側は、ホスト名を記述するが、ホスト名を複数記述することもできる。また、#はコメントを表し、#より右側はすべて無視されることになっている。
lmhostsファイルとは
lmhosts(LMHOSTS)ファイルの「lm」とは「LAN Manager(Windowsネットワークの前身となる製品)」の略であり、hostsファイルと同様の形式で、NetBIOS系のコンピュータ(正確にはNetBIOS over TCP/IPプロトコルを利用するコンピュータ。必ずIPアドレスが割り当てられている)を記述できるようにしたものである。やはりデフォルトでは「%windir%\system32\drivers\etc」フォルダ中に格納することになっている(サンプルとして、同フォルダにはlmhosts.samというファイルが用意されているので、参考にするとよい)。
※lmhostsファイルの例 |
|
hostsファイルと比べると、#PREとか#DOM:<ドメイン名>といった特別なキーワードが追加されている点が異なる。これらは、NetBIOSキャッシュへのプリロードと、ドメイン・コントローラの指定である。詳細についてはWindows TIPS「LMHOSTSファイルのキーワードはすべて大文字で記述する」や「LMHOSTSファイルの更新を即座に反映させる方法」などを参照していただきたい。
hostsファイルでしかできないこと
hostsとlmhostsは似ているが、その目的や出自が異なるため、lmhostsと比べるといくらかの違いがある。ここでは、hostsファイルでのみ利用可能な機能について解説しておく。
■コンピュータ名に対して別名を定義する
TCP/IPでは、通信は最終的にはIPアドレスでのみ行われるため、極端にいうと、どのようなコンピュータ名が付けられていてもよい。そのためサンプルのhostsファイルを見ると分かるように、localhostとかloghostといった、本来のコンピュータ名とは異なる名前を定義付けてもよい(NetBIOSでは、自身のコンピュータ名と異なる名前でアクセスしようとするとエラーとなる場合がある)。ちなみにlocalhostとは、TCP/IPネットワークにおいて自分自身を指す場合に一般的に使われる名前である。
■1つのIPアドレスに対して複数の名前を定義する
上の例から分かるように、1つのIPアドレスに対して、複数のコンピュータ名を定義することができる。ただし手元のWindows XPマシンでは最大9つまで定義することが可能であったが(各名前の間は空白かタブ記号で区切る)、古いTCP/IPの実装では3つまでしか認識しないものもあるので、注意していただきたい。
■FQDN名を定義する
例にあるserver1.example.comのように、hostsファイル中では、FQDN名を定義することもできる。一般的には、ドメイン名を含まないシンプルなコンピュータ名と、FQDN名の両方を記述しておくとよいだろう(部分一致ではなく、完全一致でのみ検索されるため)。
■16文字以上の長いコンピュータ名を定義する
NetBIOS名は最大15文字しか定義できないが、このhostsで定義する場合は、(DNSでの定義と同様に)16文字以上の長いコンピュータ名(もしくはFQDN名)を定義することができる。
lmhostsファイルでしかできないこと
lmhostsは、もともとはNBT(NetBIOS over TCP/IP)名を定義するために(hostsファイルをベースに)作られたものであり、NetBIOS名のブロードキャストによる名前解決を補佐するための機能を持っている。lmhostsでしか利用できない機能としては、次のようなものがある。
■NBT名を定義する
このファイルに記述された名前は、NetBIOS名前解決において利用される。NetBIOSを使ったネットワーク・サービスでのみ利用されるので、例えばリモートのネットワーク上にある(Windows OS+NBTベースの)ファイル・サーバへアクセスするためには、このlmhostsファイルを使って定義しておくとよい(動的な名前解決サービスを利用したければ、lmhostsの代わりにWINSサーバを利用する)。
■NetBIOSの名前タイプを指定する
NetBIOS名には、ドメイン名やユーザー名、コンピュータ名などといった、いくつかの属性が含まれている。この属性は、NetBIOS名の16byte目を使っているが、lmhostsではこの特別な属性も記述することができる。また、#DOMや#INCLUDEなどのキーワードを使って、特別な処理を行わせることもできる。
■NetBIOSキャッシュへのプリロードを行う
定義行の最後に「#PRE」を付けておくと、NetBIOSキャッシュに最初にロードされるため、NetBIOSの名前解決ブロードキャストなどが抑えられ、ネットワーク全体のトラフィックを抑えることができる。
■WINSサーバに静的エントリとして取り込むことができる
WINSサービスは、NetBIOS名前解決を動的/集中的に行うための機能であるが、WINSサーバではlmhostsファイルを取り込んで、静的な定義を素早く行うことができる。![]()
| 関連記事 | ||
| Windows TIPS:LMHOSTSファイルのキーワードはすべて大文字で記述する(Windows Server Insider) | ||
| Windows TIPS:LMHOSTSファイルの更新を即座に反映させる方法(Windows Server Insider) | ||
| Windows TIPS:LMHOSTSのエントリ・キャッシュ・サイズを拡張する(Windows Server Insider) | ||
| Windows TIPS:ホスト名からIPアドレスを見つける方法(Windows Server Insider) | ||
| Windows TIPS:pingでネットワーク・トラブルの原因を調査する(Windows Server Insider) | ||
| Windows TIPS:ポート445(ダイレクト・ホスティングSMBサービス)に注意(Windows Server Insider) | ||
| 連載:基礎から学ぶWindowsネットワーク(Windows Server Insider) | ||
| 関連リンク | ||
| LMHOSTS ファイルの概要と定義済みキーワード(マイクロソフト サポート技術情報) | ||
| Windows 2000 Serverドキュメント「Lmhosts ファイル」(マイクロソフト) | ||
| W95: DNS サービスを使わない場合の名前解決を行なう方法(マイクロソフト サポート技術情報) | ||
|
||||||||||||||||||||||||||||||||
| 「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」 特設サイトオープン! 最新情報・移行ノウハウを公開しています |







