フォワードプロキシについてご教示ください。

貴著「ネットワークはなぜつながるのか 第1版」第5章
フォワードプロキシについてご教示ください。

P276~277には、フォワードプロキシの転送先の調べ方として
以下が挙げられています。
 (1)ブラウザにプロキシ設定をした場合
 (2)ブラウザにプロキシ設定をしない場合
①「トランスペアレント・プロキシ」による方法
②「HTTPヘッダーのHostフィールド」から調べる方法

以下、それぞれの場合についての質問事項です。

【(1)について】
  <質問1>
  クライアント→プロキシ→サーバのパケットの流れについて
  以下の理解で正しいかご教示ください。

  ---<私の理解_ここから>------------------------------------
 クライアントはプロキシとの間にTCPコネクションを張って、
 送信元IPアドレスにクライアントのIPアドレス、
 宛先IPアドレスに(ブラウザで設定した)プロキシのIPアドレスを
 セットしたパケットの送信を行う。

 プロキシサーバはURIから転送先サーバをDNSで調べ、
 転送先サーバとの間にTCPコネクションを張って、
 送信元IPアドレスにプロキシサーバのIPアドレス、
 宛先IPアドレスに調べた転送先サーバのIPアドレスを
 セットしたパケットの送信を行う。
  ---<私の理解_ここまで>------------------------------------

【(2)について】
  <質問2>
  ①②ともにプロキシがアクセス先Webサーバを知る方法については理解しましたが、
  クライアントはプロキシサーバのIPアドレスをどのように知るのでしょうか?
  特に①については、P276の下から5行目にIPヘッダーにはアクセス先の
 Webサーバを指定する旨のの記述がありますが、
  どうやってクライアントはプロキシにパケットを送信するのでしょうか?

  <質問3>
  またIPアドレスにアクセス先のWebサーバがセットされていた場合、
  クライアントはWebサーバーとの間に直接的にTCPコネクションを
張ることになるのでしょうか?

以上です。どうぞよろしくお願いします。

名前: 
bee_yan
日時: 
08/06/25 23:44

コメント

bee_yanさん,こんにちわ。

>  <質問1>
>  クライアント→プロキシ→サーバのパケットの流れについて

この理解でいいと思います。

>  <質問2>
>...
>  クライアントはプロキシサーバのIPアドレスをどのように知るのでしょうか?

ブラウザにプロキシを設定しない場合は,
クライアントはプロキシの存在に気づきませんし,
当然のことながら,プロキシのアドレスも知りません。
この場合,クライアントはWebサーバに向けてパケットを送るわけです。
そして,パケットがWebサーバに向けて流れていく途中にプロキシを設置し,
流れてくるパケットを横取りすれば,プロキシサーバにパケットが届きます。
無理やり,という感じもしますが,これがトランスペアレントプロキシです。

もう一つ,DNSサーバにIPアドレスを登録する際,
Webサーバのアドレスではなく,プロキシサーバのアドレスを登録する方法もあります。
すると,クライアントはプロキシがWebサーバだと思って,
そこにTCPコネクションを張ってパケットを送ってきます。
これがリバースプロキシです。

>  <質問3>
>  またIPアドレスにアクセス先のWebサーバがセットされていた場合、
>  クライアントはWebサーバーとの間に直接的にTCPコネクションを
> 張ることになるのでしょうか?

トランスペアレントプロキシの場合は,上記の説明のように,
クライアントが通信する相手はプロキシです。
リバースプロキシの場合は,DNSサーバから取得したアドレスが,
そもそも,Webサーバではなく,プロキシのアドレスです。