Windowsマシンには2種類の名前が付けられており,名前をIPアドレスと関連付ける仕組みも複数種類ある。これらは通信の根幹にかかわる重要な技術である。TCP/IPの詳細設定には,DNSサフィックスやNetBIOS over TCP/IPなど,聞いたことはあるがよく知らない設定項目がたくさんある。「名前」に関連したこれらの項目の意味を学び,Windowsネットワークへの理解を深めよう。

 [前編]で紹介したように,Windowsの通信には次のような4つの要素がかかわっていると考えてもらいたい。(1)通信したい相手のコンピュータ名を探し出す「ブラウジング」,(2)ネットワーク上でお互いの場所を示す「IPアドレス」,(3)相手のコンピュータ名からIPアドレスを調べる仕組み,(4)自分のいる場所から相手のいる場所に至るまでの道筋を調べる「ルーティング」――である。

 前回までに,(1)ブラウジング,(2)IPアドレス,(4)ルーティングについては紹介してきた。残るテーマは,(3)相手のコンピュータ名からIPアドレスを調べる仕組み,すなわち「名前解決」と呼ばれる技術である。今回はこの話を取り上げよう(図1)。

図1●通信相手のIPアドレスをどうやって調べればいいか?<br>Windowsのブラウジングを使えばネットワーク上のコンピュータの“名前”は調べられる。しかし,TCP/IPで通信を始めるには相手のIPアドレスが必要だ。Windows OSはどうやって相手のIPアドレスを調べているのだろうか。
図1●通信相手のIPアドレスをどうやって調べればいいか?
Windowsのブラウジングを使えばネットワーク上のコンピュータの“名前”は調べられる。しかし,TCP/IPで通信を始めるには相手のIPアドレスが必要だ。Windows OSはどうやって相手のIPアドレスを調べているのだろうか。
[画像のクリックで拡大表示]

 解説を読み終わる頃には,Windows 2000/XPのTCP/IP詳細設定画面にある項目の意味と設定方法をだいたい理解できるようになるはずだ。例えば「DNSサフィックス」や「NetBIOS over TCP/IP」など,“聞いたことはあるが内容はよく知らない”という設定項目に出会っても,もう臆することはないだろう。

NetBIOS時代は名前解決が不要だった

 名前解決の基本機能は,コンピュータの名前をIPアドレスに変換するという単純なものである。しかし,Windowsネットワークで利用される名前解決は案外複雑だ。「DNS(ドメイン・ネーム・システム)」や「WINS(Windowsインターネット・ネーム・サービス)」「LMHOSTS」など複数の方法が用意され,併用もできるからである。

 それにしても,なぜ何種類も名前解決の仕組みが存在するのだろうか。それは,Windowsネットワークがたどってきた進化の歴史の中に答えがある。若干回り道になるが,名前解決が不要だった頃の話から始めることにする。

 そもそも,Windowsネットワークで使用している「コンピュータ名」という言葉だが,本来の名称は「NetBIOS名」という。NetBIOSとは,ネットワーク・サービスを呼び出すためのAPI(アプリケーション・プログラミング・インターフェース)である。「どのようにすればネットワーク・サービスを利用できるか」というプログラム上のインターフェースを定めており,実際の通信手順はTCP/IPなどの通信プロトコルに依存している。

 Windows OSがTCP/IPを搭載する以前は,「NetBEUI(NetBIOS拡張ユーザー・インターフェース)」という通信プロトコルを採用していた。NetBEUIの特徴は,コンピュータにNetBIOS名を付けるだけでネットワーク上の各コンピュータを識別でき,通信が可能になる点にある。なぜ名前だけで通信が可能なのかというと,NetBEUIが「ブロードキャスト」を前提にした通信プロトコルだからである。

 NetBEUIのブロードキャスト通信は,NetBIOS名のあて先を付けた通信データをネットワーク上のすべてのコンピュータに一斉配信(ブロードキャスト)する。この通信データを検知したネットワーク上のコンピュータはあて先を調べ,自分のNetBIOS名と同じなら受け取り,異なるときは無視する。こうすればNetBIOS名だけでも通信データを相手に届けられる。基本的な振る舞いは[前編]で紹介したイーサネットの通信方法に似ているといえるだろう。

 しかし,NetBEUIプロトコルは現在ほとんど使われていない。Windows XP以降では,標準機能から外されている状態である。そうなった最大の理由は,NetBEUIがブロードキャスト通信で成り立っているため,TCP/IPのようなルーティング機能がなく,ルーターを越えられなかったからである。これは大きな欠点だった。