令和4年春期午後問5の設問1(1)
広告
Tanakaさん
(No.1)
「宛先IPアドレス」について、不明点があります。
外出先及び社内のNPCからMサービス及びインターネットへのアクセスは,プロキシサーバ経由で行うため、宛先IPアドレスは「プロキシサーバ」となるとの解説がありますが、プロキシサーバはMサービスへのアクセスかインターネットへのアクセスかをどのように判断しているのでしょうか。
IPアドレスのヘッダではなく別?のパケット?に設定されているのかと思うのですが、
IPアドレスのヘッダに設定しない理由、また、別パケットに設定されているのであれば、その理由を教えて頂きたいです。
外出先及び社内のNPCからMサービス及びインターネットへのアクセスは,プロキシサーバ経由で行うため、宛先IPアドレスは「プロキシサーバ」となるとの解説がありますが、プロキシサーバはMサービスへのアクセスかインターネットへのアクセスかをどのように判断しているのでしょうか。
IPアドレスのヘッダではなく別?のパケット?に設定されているのかと思うのですが、
IPアドレスのヘッダに設定しない理由、また、別パケットに設定されているのであれば、その理由を教えて頂きたいです。
2023.02.19 15:08
pixさん
★AP シルバーマイスター
(No.2)
プロキシサーバの挙動は複雑なため、長文になり失礼いたします。
プロキシサーバ経由で別のWebシステムへアクセスする際は、
IPアドレスとポート番号:プロキシサーバ
HTTPリクエスト(GETやPOST):アクセス先となるWebシステムのFQDNはここに
書かれている
となります。
格納される場所ですが、HTTPリクエストなのでTCPのデータ部分に該当します。
以上のようにIPアドレス、ポート番号はプロキシサーバを指しています。
もし、IPアドレス、ポート番号がWebシステムを指していたら、Webシステムに
アクセスにいってしまいます。それはプロキシサーバを利用したいという
目的から考えると意味をなしていないことになります。
そのため、通信先のIPアドレス、ポート番号としてプロキシサーバを指定し、
プロキシサーバが本来クライアントPCが投げるべきHTTPリクエストを代理で
投げることになります。
基本は以上のようになります。しかし、この説明はWebシステムへのアクセスに
使用するスキームがHTTPの時のものです。HTTPSの場合、プロキシサーバの挙動は
暗号化通信のため異なるものになります。
■HTTPの場合
HTTPリクエストが暗号化されていないため、プロキシサーバがHTTPリクエストを
クライアントPCの代理としてWebサーバに投げます。
・クライアントPCはプロキシサーバへアクセスする
・プロキシサーバはクライアントPCからのHTTPリクエストを代理でWebシステムに
投げる
・WebシステムからプロキシサーバへHTTPレスポンスが返ってくる
・プロキシサーバは受け取ったHTTPレスポンスをクライアントPCへ返す
■HTTPSの場合
HTTPSで通信する場合、HTTPリクエストは暗号化されます。
そのため、プロキシサーバは代理でHTTPリクエストをWebシステムに投げることは
できません。
クライアントPCはHTTPSでプロキシサーバと通信する時、CONNECTメソッドという
特殊なメソッドを用いて、クライアントPC - Webシステム間に通信を中継する
トンネルを張ります。
・クライアントPCはプロキシサーバへアクセス先Webシステムに対してトンネルを
張るようにCONNECTメソッドを送る
・プロキシサーバはWebシステムとの間に通信を中継するためのトンネルを張る
・以降はクライアントPCとWebシステムの間に通信を中継するためのトンネルが
できたので、そのトンネルを利用してTLSハンドシェイクを行ってWebシステムと
暗号化通信を行い、そのトンネルの中にHTTPリクエストを流す
要点をまとめたつもりですが、長くなってしまいました。
プロキシサーバについては概念を押さえておけばよろしいかと思います。
プロキシサーバ経由で別のWebシステムへアクセスする際は、
IPアドレスとポート番号:プロキシサーバ
HTTPリクエスト(GETやPOST):アクセス先となるWebシステムのFQDNはここに
書かれている
となります。
格納される場所ですが、HTTPリクエストなのでTCPのデータ部分に該当します。
>IPアドレスのヘッダに設定しない理由、また、別パケットに設定されている
>のであれば、その理由を教えて頂きたいです
以上のようにIPアドレス、ポート番号はプロキシサーバを指しています。
もし、IPアドレス、ポート番号がWebシステムを指していたら、Webシステムに
アクセスにいってしまいます。それはプロキシサーバを利用したいという
目的から考えると意味をなしていないことになります。
そのため、通信先のIPアドレス、ポート番号としてプロキシサーバを指定し、
プロキシサーバが本来クライアントPCが投げるべきHTTPリクエストを代理で
投げることになります。
基本は以上のようになります。しかし、この説明はWebシステムへのアクセスに
使用するスキームがHTTPの時のものです。HTTPSの場合、プロキシサーバの挙動は
暗号化通信のため異なるものになります。
■HTTPの場合
HTTPリクエストが暗号化されていないため、プロキシサーバがHTTPリクエストを
クライアントPCの代理としてWebサーバに投げます。
・クライアントPCはプロキシサーバへアクセスする
・プロキシサーバはクライアントPCからのHTTPリクエストを代理でWebシステムに
投げる
・WebシステムからプロキシサーバへHTTPレスポンスが返ってくる
・プロキシサーバは受け取ったHTTPレスポンスをクライアントPCへ返す
■HTTPSの場合
HTTPSで通信する場合、HTTPリクエストは暗号化されます。
そのため、プロキシサーバは代理でHTTPリクエストをWebシステムに投げることは
できません。
クライアントPCはHTTPSでプロキシサーバと通信する時、CONNECTメソッドという
特殊なメソッドを用いて、クライアントPC - Webシステム間に通信を中継する
トンネルを張ります。
・クライアントPCはプロキシサーバへアクセス先Webシステムに対してトンネルを
張るようにCONNECTメソッドを送る
・プロキシサーバはWebシステムとの間に通信を中継するためのトンネルを張る
・以降はクライアントPCとWebシステムの間に通信を中継するためのトンネルが
できたので、そのトンネルを利用してTLSハンドシェイクを行ってWebシステムと
暗号化通信を行い、そのトンネルの中にHTTPリクエストを流す
要点をまとめたつもりですが、長くなってしまいました。
プロキシサーバについては概念を押さえておけばよろしいかと思います。
2023.02.19 20:19
返信投稿用フォーム
スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。