検索
特集/連載

プロキシファイアウォール接続のトラブルシューティング「つながらない!」の原因究明

ファイアウォールの設置で複雑になった接続問題。TCPのハンドシェイクプロセスの知識がヒントになる。

PC用表示 関連情報
Share
Tweet
LINE
Hatena

 クライアントとサーバの間に置かれるプロキシファイアウォールの利用拡大とともに、接続問題のトラブルシューティングは以前より複雑になっている。しかし、TCP(Transmission Control Protocol)の「ハンドシェイク」プロセスの知識が多少あれば、プロキシファイアウォールに関連する接続問題の診断に役立つ。

 ネットワーキングの入門講義を受けてからかなり年数がたっている人のために、まずTCPハンドシェイクの仕組みを復習しておこう。TCPはコネクション指向のプロトコルであり、2つのシステムがTCP通信を行うには、まず双方向の通信路が開設されなければならない。これは、フラグを含む特殊なパケットを使って行われる。そうしたフラグの1つであるSYNフラグが接続要求を伝えるために使われ、ACKフラグが接続が開いていることを知らせる。

 この3ウェイハンドシェイクのパケットのやりとりは、次のようになる。

firewall1

 まず、クライアントがSYNパケットをサーバに送信する。これを受信したサーバは、応答パケットを作成する。その際、クライアントの接続要求を受け取ったことをクライアントに伝えるために、ACKフラグをオンにする。さらに、サーバからクライアントへという逆方向の通信路の開設を要求するために、SYNフラグをオンにする。サーバはこのSYN/ACKパケットをクライアントに送信する。これを受信したクライアントは、ACKパケットを返信することで、サーバからクライアントへの接続要求を受け取ったことをサーバに伝えなければならない。このACKパケットをサーバが受信した時点で、クライアントとサーバ間の双方向通信が可能になる。

 しかし、プロキシファイアウォールは以下の図のように、クライアントとサーバの間に入り、通常のTCPハンドシェイクのパケットのやりとりを仲介する。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る