透過的なプロキシー

透過的なプロキシーとは (ATS のような) プロキシーが目に見えることなくクライアントとサーバーの接続を中継できる能力です。

このドキュメントで使用される概略のネットワーク構造を下図に示します。

ATS の透過的なプロキシーのトラフィックの基本的な流れ

ATS の透過的なプロキシーのトラフィックの基本的な流れ

クライアントからインターネット (もしくは外部のクラウド) へ通過する全てのネットワークトラフィックが通過するゲートウェイ装置が存在しなければなりません。ゲートウェイはそのトラフィックの選択されたストリームに ATS を実質的に挿入する責任があります。それぞれのトラッフィックストリームは 2 つに分割され、両側が ATS で終端処理されます。つまり、ストリーム 緑-1 と 赤-2 は緑の接続と赤の接続に分割されます。 ATS はゲートウェイシステム上に存在するかもしれないし存在しないかもしれないこと、リダイレクトされたトラフィックが他のネットワーク設備を流れるかもしれないことに注意してください。

ATS は 2 つの接続を使うので、透過性はクライアントとオリジンサーバー (インターネットもしくは外部クラウド) に個別に設定可能です。我々は一般的に "透過的プロキシー" と呼ばれるものを 2 つの観点、 内向き透過性外向き透過性 で定義していきます。

内向き透過性はプロキシーに内向きである接続に透過的なプロキシーです。つまりプロキシーに接続するクライアントによって開始される接続 (緑-1) です。同様に、外向き透過性はプロキシーから外向きである接続に透過的なプロキシーです。つまり、プロキシーによって開始されるオリジンサーバーへの接続 (赤-2) です。

多くの場合はこれら 2 つの透過性は組み合わせて使われますが、そうすることは必須ではありません。 Traffic Server は両側の透過性を独立にサポートしています。

重要

透過性には特殊なルーティングが必要であり ATS を設定するだけでは実現できないことに注意することが決定的に重要です。 ATS の透過性には Linux カーネルからのサポートも要求します。そのため現時点では以下の機能をサポートする最近の Linux カーネル上でしか十分に機能しません。

  • TPROXY

  • POSIX ケーパビリティ

これに加えて特殊なルーティングのために iptables そしていくつかの場合では ebtables が必要になるでしょう。

標準的なビルド手順で透過性のサポートが機能するはずですが、機能しない場合はこれらの より詳細な手順 を参照してください。

Transparency is configured per server port, not globally. This is done via the configuration values proxy.config.http.server_ports, specifically tr-in, tr-full, and tr-out.

外向きの透過性のケースでは、明示的なプロキシーの仕組みを使うか、 ATS サーバーの IP アドレスをオリジンサーバーのアドレスであると DNS で公表することにより、クライアントが直接 ATS に接続しなければなりません。

The proxy.config.http.use_client_target_addr should also be reviewed when setting up an outbound transparent scenario. If Traffic Server has the same DNS as the client, options 1 and 2 can be used. Otherwise, option 2 must be used.

いくつかのテスト済みのシナリオ --