長いパケットが送れない

 星川さんは,「ping -?」を実行して,pingコマンドのパラメータを調べた。-lオプションでパケットの長さ,-nオプションで回数を指定できることがわかった。星川さんは,目黒課長のパソコンを借りて,パラメータを指定したうえでpingコマンドを実行した。


図4 パケット・サイズを大きく回数も多くしてpingを実行した
10個の1400バイト長パケットのうち,応答が返ってきたのは三つだけ。ネットワークに問題があるのかもしれない。

[画像のクリックで拡大表示]

表1 pingのおもなパラメータ
[画像のクリックで拡大表示]

図5 原因は,LANスイッチとレイヤー3スイッチの間でパソコンから送信するパケットが壊れていたためだった
電源ケーブルからのノイズによるエラーは,営業部のパソコンから全社サーバーやインターネットにアクセスするときにはいつも発生していた。しかし,短いパケットでは再送制御が働いたため,実際にトラブルになったのは添付ファイル付きのメール送信時だけだった。

[画像のクリックで拡大表示]

 結果は驚くべきものだった(図4[拡大表示])。10回分送ったpingパケットのうち,応答が帰って来たのは3回分だけ。残り7回は「Request timed Out(リクエストタイムドアウト」というメッセージが表示される。

 次に星川さんは,全社サーバーや部門サーバー,レイヤー3スイッチのIPアドレスを調べて,pingコマンドを実行した。すると,メール・サーバーと同様,大半はpingの応答が返って来なかった。それに対して,部門サーバーに対するpingの応答は正常だった。

 メール・サーバーや全社サーバーに対するpingパケットは,レイヤー3スイッチまで同じ経路をたどる。その経路上に問題がある可能性が高い。一方,部門サーバーに対するpingは,部門のLANスイッチまではほかの経路と同じだが,応答は正常だ。原因は営業部の部門LANスイッチとレイヤー3スイッチの間にありそうだ。

 pingコマンドは,通信相手との間でIPの通信が通っていることを確認するためのコマンドである。相手にping用のパケット*を送り,その応答の有無や応答までの時間をチェックする。Windowsでは通常,32バイトのダミー・データを持つ*pingパケットを4回送信して,その応答を表示する。

 ただし,短いpingパケットを数回送っただけではネットワークの状態を判別できないことがある。そのようなときは,オプションでパケットのサイズを大きくしたり回数を増やしたりしてpingコマンドを実行すれば,より厳密にチェックできる。

 pingでは,パラメータで連続実行,ホスト名に対するIPアドレスの表示,パケットの分割禁止,タイムアウト時間なども指定できる(表1[拡大表示])。

ケーブル交換でエラーがなくなる

 部門LANスイッチとレイヤー3スイッチの間に問題があるのなら,その間のスイッチやケーブルを一つずつ取り替えていけばいい。そこで星川さんは,まず最初にLANスイッチとレイヤー3スイッチ間のケーブルを予備のケーブルに切り換えた。そのうえで,目黒課長のパソコンから先ほどと同じオプションでpingコマンドを実行した。

 すると今度は,応答がきちんと返ってくる。営業部のほかのパソコンからも試した結果,問題は解消していた。

 星川さんは復旧したことを営業部に報告して,システム部に戻った。

原因は電源ケーブルからのノイズ

 復旧はしたものの,星川さんには疑問が残った。「LANケーブルって突然使えなくなるものなのかしら」。また,添付ファイル付きのメール送信だけができなかったのも腑に落ちない。

 その疑問は,星川さんが前日の電気工事を思い出したのをきっかけに解消した。星川さんが工事内容を調べたら,LANスイッチとレイヤー3スイッチに平行する区間で電源ケーブルを新たに配線したことがわかった。星川さんは,新規に敷設した電源ケーブルを確認した。すると,レイヤー3スイッチの近くで,問題のLANケーブルが電源ケーブルと束ねられていた。

 星川さんは,テスト用のパソコンとLANスイッチを電源ケーブルの両端につないでpingコマンドを実行してみた。電源ケーブルと一緒に束ねた状態だとエラーが多発するが,LANケーブルから離すとエラーはなくなくなる。LANケーブルが電源ケーブルのノイズ*の影響を受けていたわけだ(図5[拡大表示])。

エラーが片方向だけだったのはなぜ?

 残った疑問は,なぜ添付ファイル付きのメールを送信するときだけ通信できなくなったのかということだ。

星川:なぜ,添付ファイル付きのメールだけ送れなかったのでしょうか?

大塚:パソコンからサーバーに送るパケットにだけエラーが多発していたんじゃないかな。

星川:ノイズの影響とパケットの向きは関係ないですよね?

大塚:いや,それが関係する場合があるんだ。ケーブルで送られる電気信号は,距離とともに減衰する。減衰した信号はノイズの影響を受けやすい。つまり,レイヤー3スイッチの近くで混入するノイズは,レイヤー3スイッチの送信側よりも受信側に影響を与えやすいんだ。

星川:じゃあ,テキストだけのメールやWebアクセスが影響を受けなかったのはどうしてでしょうか?

大塚:パソコンから送り出すパケットのサイズが小さかったからだろうね。ビット当たりのエラー率が同じなら,長いパケットの方がビット・エラーが含まれる確率は高くなる。逆に短いパケットはエラーが起こりにくい。

星川:ちょっと待ってください。パケットが途中でエラーになっても,上位プロトコルで再送するはずですよ。

大塚:確かに,エラーのパケットがスイッチで捨てられても,サーバーとパソコンの間でTCP*の再送制御が働く。でも,再送も繰り返し失敗すると,最後にはTCPコネクションが切れてしまうんだ。短いパケットでは再送機能が働いたが,長いパケットではうまくいかなかったんだろう。

 星川さんは,工事業者に配線の総点検を依頼した。その結果,ほかにも1カ所,電源ケーブルとLANケーブルが束ねられているところが見つかった。星川さんは,今後の工事ではLANケーブルと電源ケーブルはなるべく離して敷設するようお願いした。

第4話のポイント
(1)トラブルは,発生した場所だけでなく,発生した状況にも注目する
(2)pingコマンドでパラメータを指定すればネットワークの状態を細かくチェックできる
(3)範囲を区切って正常なものと取り替えて,問題個所をはっきりさせる

ネットワークエンジニア集団 みずおか組

●筆者:水岡 祥二(みずおか しょうじ)
NPOアイタック代表理事
●筆者:出口 雄一(でぐち ゆういち)
インフォメーションテクノロジーライター
●筆者:久保 幸夫(くぼ ゆきお)
情報・通信エンジニア