アーキテクチャとトラフィックフロー

Dockerホスト上にNetScaler CPXインスタンスをプロビジョニングすると、DockerエンジンはCPXインスタンス上に仮想インターフェイスeth0を作成します。このeth0インターフェイスは、docker0ブリッジ上の仮想インターフェイス (veth*) に直接接続されています。Dockerエンジンはまた、ネットワーク172.17.0.0/16内のNetScaler CPXインスタンスにIPアドレスを割り当てます。

CPXインスタンスのデフォルトゲートウェイはdocker0ブリッジのIPアドレスです。これは、NetScaler CPXインスタンスとのすべての通信がDockerネットワークを介して行われることを意味します。docker0ブリッジから受信したすべての着信トラフィックは、NetScaler CPXインスタンス上のeth0インターフェイスによって受信され、NetScaler CPXパケットエンジンによって処理されます。

次の図は、Dockerホスト上のNetScaler CPXインスタンスのアーキテクチャを示しています。

ローカライズされた画像

NetScaler CPXにおける単一IPアドレスの仕組み

通常のNetScaler MPX™またはVPXアプライアンスは、機能するために少なくとも3つのIPアドレスを必要とします。

  • NetScaler® IP (NSIP)アドレスと呼ばれる管理IPアドレス
  • サーバーファームとの通信用のサブネットIP (SNIP)アドレス
  • クライアント要求を受け入れるための仮想サーバーIP (VIP)アドレス

NetScaler CPXインスタンスは、管理とデータトラフィックの両方に使用される単一のIPアドレスで動作します。

プロビジョニング中に、DockerエンジンによってNetScaler CPXインスタンスに割り当てられるのは、1つのプライベートIPアドレス(単一IPアドレス)のみです。NetScalerインスタンスの3つのIP機能は、1つのIPアドレスに多重化されます。この単一IPアドレスは、異なるポート番号を使用して、NSIP、SNIP、およびVIPとして機能します。

次の図は、単一のIPアドレスがNSIP、SNIP、およびVIPの機能を実行するためにどのように使用されるかを示しています。

ローカライズされた画像

NetScaler CPXインスタンスから発信される要求のトラフィックフロー

Docker は、NetScaler CPX インスタンスから発信されるトラフィックを docker0 IP アドレスに転送するように、IP テーブルと NAT ルールを暗黙的に構成します。

次の図は、NetScaler CPX インスタンスから発信された ping リクエストが宛先に到達する仕組みを示しています。

ローカライズされた画像

この例では、ping リクエストは、送信元 IP アドレスを NetScaler CPX IP アドレス (172.17.0.4) として、eth0 インターフェイス上のパケットエンジンによって送信されます。その後、Docker ホストはネットワークアドレス変換 (NAT) を実行して、ホスト IP アドレス (192.68.x.x) を送信元 IP アドレスとして追加し、リクエストを宛先 (216.58.x.x) に送信します。宛先 IP アドレスからの応答は、逆の同じパスをたどります。Docker ホストは応答に対して NAT を実行し、eth0 インターフェイス上の NetScaler CPX インスタンスに応答を転送します。

外部ネットワークから発信されるリクエストのトラフィックフロー

外部通信を有効にするには、NetScaler CPX のプロビジョニング中に、Docker が 80、22、およびその他の必要なポートなどの特定のポートを公開するようにパラメーターを設定する必要があります。プロビジョニング中に公開するポートを設定しなかった場合は、これらのポートを使用できるように Docker ホストで NAT ルールを構成する必要があります。

インターネットから発信されたクライアントリクエストは Docker ホストによって受信され、Docker ホストはポートアドレス変換 (PAT) を実行して、パブリック IP アドレスとポートを NetScaler CPX インスタンスの単一の IP アドレスとポートにマッピングし、トラフィックをインスタンスに転送します。

次の図は、Docker ホストがポートアドレス変換を実行して、NetScaler CPX の単一の IP アドレスとポートにトラフィックを転送する仕組みを示しています。

ローカライズされた画像

この例では、Docker ホストの IP アドレスは 192.68.x.x で、NetScaler CPX インスタンスの単一 IP アドレスは 172.17.0.4 です。NetScaler CPX インスタンスの SSH ポート 22 は、Docker ホストのポート 1100 にマッピングされています。クライアントからの SSH リクエストは、IP アドレス 192.68.x.x のポート 1100 で受信されます。Docker ホストはポートアドレス変換を実行して、このアドレスとポートをポート 22 の単一 IP アドレス 172.17.0.4 にマッピングし、クライアントリクエストを転送します。

アーキテクチャとトラフィックフロー