Q 質問 同じネットワークに接続したある1台のクライアントだけ,ルーターを越えた場所にあるサーバーにだけ接続できません。プロトコルはTCP/IPを利用しています

A 回答 動作しないクライアントのネットワーク設定が原因の可能性が高いです
図1●トラブルの状況
あるクライアントだけ,ルーターを越えたネットワークにあるサーバー2に接続できない。ただし,ルーターを越えないサーバーには接続できる。プロトコルはTCP/IPを利用している

 ネットワーク絡みのトラブルは,システムを構成する要素や設定パラメータが多く,原因の追及に時間がかかりがちです。このような場合に重要なのは,トラブルの現象と状況を正確に把握し,そこから原因を推測することです。まずはトラブルの状況を確認しておきましょう(図1[拡大表示])。

 クライアント1だけ,ルーターを越えたネットワークに接続されたサーバー2に接続できない,というトラブルです。同じネットワークにあるサーバー1には接続できます。また,同じネットワークに接続したクライアント2は,2つのサーバーに接続できます。

原因を切り分けする

 ここまで分かれば,「問題はクライアント1にありそうだ」ということが推測できます。もしサーバー2やネットワークに問題があるのなら,クライアント2からサーバー2へ通信できないはずだからです。

 クライアント1がサーバー1に接続できることから,LANケーブルの接続やNIC(Network Interface Card)のインストールには問題がないことが分かります。原因はクライアント1のネットワーク設定にありそうです。

 クライアント1とクライアント2の設定をそれぞれ順番に見比べていけば,誤りを見つけることができるでしょう。しかしネットワークの仕組みを知っていれば,もっと原因を絞り込めます。具体的には,(1)名前解決の設定,(2)サブネット・マスクの設定,(3)ゲートウエイの設定――です。なぜこのような推測ができるのかを仕組みを解説しながら順に見ていきましょう。


図2●サブネット・マスクとゲートウエイ
サブネットはネットワークを区切る単位。TCP/IPのネットワークは複数のサブネットからなる。サブネット・マスクは,サブネットの大きさを決めるための値。サブネットの接続部分はルーターである。サブネットに属するクライアントから見て,ルーターは,違うサブネットへパケットを送信するための出口になる。このルーターのアドレスがゲートウエイになる

クライアントの動作をイメージする

 ユーザーは通常,サーバーのコンピュータ名を指定して,クライアントをサーバーに接続させます。クライアントはまず,このサーバー名をIPアドレスに変換します。この動作を名前解決と呼びます。

 Windows OSの名前解決は複雑で,(1)名前解決専用のサーバーを利用するWINS(Windows Internet Name Service)とDNS(Domain Name System),(2)ブロードキャストを利用する方法,(3)ファイル(LMHOSTS,HOSTS)を利用する方法――の3つに分類できます。Windowsは,これらの方法を組み合わせて利用します。

 本来(1)や(3)を利用するべき環境で,名前解決に関連する設定に誤りがあった場合,(2)のブロードキャストによる名前解決のみを実行することになります。ブロードキャストによる名前解決では,ルーターを越えたコンピュータ名を解決できません。したがって,図1[拡大表示]のようにルーターを越えない範囲でしか接続できないトラブルの原因として,名前解決に関連する設定を疑う必要があります。

ルーターに関連する設定を疑う

 名前解決に問題がない場合,クライアントは,サーバーのIPアドレスが,ルーターの内側か外側かの判断をします。そもそもルーターとは,サブネットとサブネットをつなぐ役割を担う通信機器です。サブネットは,TCP/IPのネットワークを構成するためのネットワークの単位です。


図3●パケットを送信するときの動作
送信先のIPアドレスが分かったら,まず,自分のIPアドレスと,設定したサブネット・マスクを利用して,送り先のコンピュータが自身と同じサブネットに属しているかを判断する。同じ場合は直接送信する。違う場合は,設定したゲートウエイに送信する

 このサブネットの大きさを決める値を「サブネット・マスク」,サブネット内にあるルーターのIPアドレスを「ゲートウエイ」といいます(図2[拡大表示])。

 これら2つのパラメータを利用して,クライアントはサーバー2へ接続します(図3[拡大表示])。クライアントは,自身のIPアドレスとサブネット・マスクから,自身と同じサブネットに含まれるIPアドレスの範囲を知ることができます。もしパケットの送信先が同じサブネットの場合は,送信先のコンピュータへ直接送信します。そうでない場合はゲートウエイへ送信します。

 サブネット・マスクの設定を間違えると,本来ルーターへ送信すべきパケットを直接送信しようとするなどの不具合が出ます。ゲートウエイの設定を誤ると,ルーターへ送信すべきパケットを送信できません。いずれも,同じサブネット内のコンピュータとだけ通信できます。

(本誌)