WINS や lmhosts を使った名前解決について

やっぱlmhosts書かないとダメぽ?
WINS入れなきゃダメねーとか言われてて
なんだソレ?ってことでまた嵌っているんだがorz

lmhosts 書かないとダメなんじゃなくて、名前解決ができないとダメなんですね。


Windows NT ドメインにおいては、コンピュータを示すために NetBIOS コンピュータ名を使用しています。
昔は NetBIOS プロトコル上で NetBIOS コンピュータ名を使って、ブロードキャストして通信できればハイ OK、だったので、これでも問題が起きませんでした。


しかし、最近は接続される端末の台数も増えて、ブロードキャスト トラフィックが馬鹿にならない、という観点と、ネットワークのマルチベンダ環境に対応するため、NetBIOS プロトコルTCP/IP プロトコルでラッピングする、という考え方が出てきました。


TCP/IP は IP アドレスと UDP/TCP ポートによる通信が大前提なので、NetBIOS コンピュータ名がどう逆立ちしても、IP アドレスは求まりません。
そのため、IP アドレスと NetBIOS コンピュータ名を紐付けるデータベースが必要になりました。


このデータベースを提供するのが、NetBIOS ネームキャッシュ (nbtstat -c で表示されるあのリスト) です。
しかし、NetBIOS ネームキャッシュも、リスト作成はブロードキャストに頼っています。
つまり、ブロードキャストを投げて、応答があったパケットの IP アドレスと、そのプロトコルにラッピングされて記載された NetBIOS コンピュータ名を、そのキャッシュ リストに掲載するだけです。
当然ながらブロードキャストが届かない (= ルーターでブロードキャスト パケットをフィルタリングされている) セグメントのキャッシュ リストは作成できません。


この問題を解決するため、「自前で」データベースを作る方法と、「自動で」データベースを作る仕組みをマイクロソフトは提供しました。
これが、前者は lmhosts、後者は WINS なのです。



・・・で、そっちの規模の環境で WINS 立てるのもしんどいだろうし、あれは問題だらけなので、lmhosts 書けばいいんじゃない? というのが総論。