アーキテクチャとトラフィックフロー
このセクションでは、NetScaler CPXブリッジモードのアーキテクチャとトラフィックフローについて説明します。NetScaler CPXはホストモードでも展開できます。
NetScaler CPXインスタンスをDockerホストにプロビジョニングすると、Dockerエンジンによって仮想インターフェイスeth0がCPXインスタンスに作成されます。この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インスタンスのアーキテクチャを示しています。
単一IPアドレスがNetScaler CPXで機能するしくみ
通常のNetScaler MPXまたはVPXアプライアンスでは、少なくとも以下に示す3つのIPアドレスが機能している必要があります:
- NetScaler IP(NSIP)アドレスと呼ばれる管理IPアドレス
- サーバーファームとやり取りするためのサブネットIP(SNIP)アドレス
- クライアント要求を受け付ける仮想サーバーIP(VIP)アドレス
NetScaler CPXインスタンスは、管理とデータトラフィック用に使用される、単一IPアドレスで動作します。
プロビジョニング中は、Dockerエンジンによって、1つのプライベートIPアドレス(単一IPアドレス)のみがNetScaler CPXインスタンスに割り当てられます。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ホストは、インターネットからのクライアント要求を受信し、次にポートアドレス変換(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にマップし、クライアント要求を転送します。