IP アドレスとコンピュータの名前
TCP/IP の世界ではコンピュータ同士が通信を行うにはお互いの IP アドレスを知る必要があります。
IP アドレスは 2進数で 32ビットの長さを持ちます。
10進表記では 192.168.64.32 と表記され、2進数の32ビットを 8ビットづつに区切り
10進数に変換し、区切り文字としてドットを使用しています。
ここで一つ問題があります。
それは IP アドレスは数字の羅列であるので、人が利用するのには向きません。
例えば、1000台くらいのコンピュータがあるネットワークで、すべてのコンピュータの名前が
IP アドレスそのものであった場合を考えてみてください。
会議で使用するファイルが 192.168.100.61 のサーバーにあって、メール サーバーは
192.168.98.45 で・・・。
とても利用しにくい環境であることは想像に難くないでしょう。
そこで IP アドレスと対になる、人に分かり易い名前をコンピュータにつけることにしたのです。
そして、この名前から IP アドレスに変換することを名前解決と言います。
Windows で利用される二つの名前
Windows の世界ではコンピュータに二つの名前をつけます。
DNS ホスト名と NetBIOS名(コンピュータ名)と言われるものです。
DNSホスト名の解決には DNS または HOSTSファイルが利用され、NetBIOS名の解決には
WINS または LMHOSTSファイルが利用されます。
補足
Active Directory 環境では DNS が必須ですが、Active Directory を利用しない環境では主に
NetBIOS名が利用されます。つまり、この場合、DNSホスト名は特に必要ありません。
なぜ、二つの名前を利用するのか?
そもそも Windows では TCP/IP を利用する以前は、NetBEUI というプロトコルが利用されていました。
このプロトコルで利用されていたのが NetBIOS名なのです。
このプロトコルは小規模LAN (200台程度) に非常に適しており高速でしたが、ルーティング機能がありませんでした。
ネットワークの規模が大きくなるに従い、NetBEUI では対処できなくなりました。
また、インターネットの普及に伴い、TCP/IP が注目されるようになり Windows
でもメイン プロトコルとして TCP/IP が利用されるようになりました。
そのため NetBEUI は利用されることが少なくなったのです。
ただし、多くのアプリケーションで NetBIOS名が利用されていたために、TCP/IP
でも NetBIOS名を解決できる機能が必要となりました。
そこで NBT(NetBIOS over TCP/IP)プロトコルを利用することにより、この問題を解決したのです。
このような経緯があるために、現在の Windows ではDNSホスト名と NetBIOS名が利用されているのです。
ローカル ファイルとネーム サーバーの関係
その昔、ホスト名の解決に HOSTS ファイルが利用されていました。
HOSTS ファイルにはホスト名と IP アドレスの一覧が記述されています。
このファイルは各コンピュータに保存され利用されます。
しかし、これにはとても大きな問題がありました。
それは HOSTS ファイルの内容に変更があった場合、すべてのコンピュータに保存されている
HOSTS を変更する必要があることです。
これにはとても膨大な管理コストがかかり、かつ更新がされていないコンピュータでは他のコンピュータに接続できないといったトラブルも起こすのです。
そこで、HOSTS ファイルを各コンピュータに保存するのではなく、専用のサーバーに保存して各コンピュータはこのサーバーを利用するようにしたのが、DNS
の始まりです。
LMHOSTS と WINS もまた、これと同じ関係にあります。
ちなみに HOSTS ファイルは今でも利用されています。例えば小さなネットワークで
DNS を配置する予算がないような場合、HOSTS ファイルで運用されていたりします。
参考情報
HOSTS と LMHOSTS についてより詳しい情報が @IT で 「hosts と lmhosts の違い」 と題して公開されています。