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

このセクションでは、NetScaler CPXブリッジモードのアーキテクチャとトラフィックフローについて説明します。NetScaler CPXはホストモードでも展開できます。

DockerホストにNetScaler CPXインスタンスをプロビジョニングすると、DockerエンジンはCPXインスタンス上に仮想インターフェイスeth0を作成します。このeth0インターフェイスは、docker0ブリッジ上の仮想インターフェイス(veth*)に直接接続されます。Dockerエンジンはまた、NetScaler CPXインスタンスに172.17.0.0/16ネットワーク内の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リクエストは、NetScaler CPX IPアドレス (172.17.0.4) を送信元IPアドレスとして、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にマッピングし、クライアントリクエストを転送します。

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