Home > お知らせ | まめ知識 > 透過型プロキシとは

透過型プロキシとは

iptablesを利用して、透過型プロキシなるものを使って、DSR構成を組んでみました。

その前に、プロキシとかDSRとかって何?みたいなことを簡単にまとめました。

プロキシ・リバースプロキシ・透過型プロキシとは

 プロキシ(代理応答)は、例えばインターネットにアクセスする際に、クライアントPCから直接リクエストを投げるのではなく、一旦別のサーバーにリクエストを投げ、リクエストを受け取ったサーバーが代理でインターネット上のホストにアクセスするといった行動のことです。良く使われる例としては、「グローバルIPが一個しかないけれど、複数のPCからインターネットに接続したい」といったとき、プロキシサーバーを立てて、代理応答させる等に使います。(natでも同様のことを実現できますが、プロキシを使うと、プロキシサーバーにキャッシュさせて応答を高速化したり、プロキシサーバーでアクセス制限とかもできます。natはレイヤ4でアドレス変換するだけなのに対し、プロキシはレイヤ7での行動ができるという感じでしょうか。)

 また、リバースプロキシは、例えばHTTPサーバーを立てている際に使います。(クライアント側でなく、サーバー側。)サーバーあてに来たリクエストを、そのURLとかによってバックエンドサーバーに分配する役目をします。同一URLに来たアクセスをバックエンドに分配するといったもの(この場合、どういった理由で分配するというものが不明確なので、リバースプロキシの役目とは異なります。)はロードバランサで実現します。

 透過型プロキシとは、上記ふたつとは少々異なっていて(これまではレイヤ7での動作が主。)、レイヤ4での動作が主になります。具体的には、IPアドレス自体は自分あてで無いものを、自分宛に書き換えて動作させるといったことを行います。

 「クライアント(192.168.0.10)」 →(リクエスト:123.1.2.3:80あて)→ 「透過型プロキシサーバー(192.168.0.1)のレイヤ4(IP書き換え)」→「透過型プロキシサーバーのレイヤ7(192.168.0.1:80)」

みたいな感じの動作をします。もちろん、戻りパケットは

 「クライアント(192.168.0.10)」 ←(リクエスト:123.1.2.3:80から)← 「透過型プロキシサーバー(192.168.0.1)のレイヤ4(IP書き換え)」←「透過型プロキシサーバーのレイヤ7(192.168.0.1:80)」

と動きます。注意しなければならないのは、

 ・パケットが正しく透過型プロキシに届くようになっているかどうか(よって、普通はゲートウェイ等にします。)

 ・アプリケーションの設定だけでは、動かない。(Linuxでは、iptablesとかの助けが必要。)

となります。

透過型プロキシを使った例としては、

1.クライアントPCのプロキシ設定をせずに、プロキシサーバーがグローバルIPを全部受け取れる(IP書き換えできる)状態にしておけば、クライアントからは、グローバルIPに直接接続しているように見えるが、実際はプロキシサーバーを通っている。

とか、

2.自分とは異なるIPアドレスあてのパケットを取得して、処理し、他のIPのマシンになりすましてパケットを返信する。

といったことがあります。

つぎはNATについてです。

間違いや誤植がありましたら、お教えください。

Comments:0

Comment Form

Trackbacks:0

Trackback URL for this entry
http://dev.tapweb.co.jp/2010/08/234/trackback
Listed below are links to weblogs that reference
透過型プロキシとは from tap dev blog

Home > お知らせ | まめ知識 > 透過型プロキシとは

Search
Feeds

Return to page top