マルチホストネットワークにNetScaler CPXを展開する

最終公開日 : Sep 25, 2026
マルチホストネットワーク内のNetScaler CPXインスタンスは、ロードバランシング機能を提供するデータセンターの運用環境で構成される場合があります。さらに、監視機能と分析データを提供することもできます。
マルチホストネットワークでは、NetScaler CPXインスタンス、バックエンドサーバー、およびクライアントは異なるホストにデプロイされます。運用環境では、NetScaler CPXインスタンスがコンテナベースのアプリケーションとサーバー、あるいは物理サーバーのセットをロードバランシングするマルチホストトポロジを使用できます。

トポロジ 1: NetScaler CPXとバックエンドサーバーが同じホスト上にある場合; クライアントが異なるネットワーク上にある場合

このトポロジでは、NetScaler CPXインスタンスとデータベースサーバーは同じDockerホスト上にプロビジョニングされますが、クライアントトラフィックはネットワーク上の別の場所から発生します。このトポロジは、NetScaler CPXインスタンスがコンテナベースのアプリケーションまたはサーバーのセットをロードバランシングする運用環境で使用される可能性があります。
次の図は、このトポロジを示しています。
ローカライズされた画像
この例では、NetScaler CPXインスタンス (172.17.0.4) と2つのサーバー、DB1 (172.17.0.10) およびDB2 (172.17.0.11) は、IPアドレス10.102.29.100を持つ同じDockerホスト上にプロビジョニングされています。クライアントはネットワーク上の別の場所にあります。
インターネットから発信されたクライアント要求は、NetScaler CPXインスタンスに構成されたVIPで受信され、その後、その要求を2つのサーバーに分散します。
このトポロジを構成するには、次の2つの方法があります。
方法 1: VIPに別のIPアドレスと標準ポートを使用する
  1. NetScaler CPXコンテナ上に、別のIPアドレスを使用してVIPを構成します。
  2. Dockerホストに別のIPアドレスを構成します。
  3. NATルールを構成して、Dockerホストの追加IPアドレスで受信したすべてのトラフィックをVIPの追加IPアドレスに転送します。
  4. NetScaler CPXインスタンス上で、2つのサーバーをサービスとして構成します。
  5. 最後に、サービスをVIPにバインドします。
この構成例では、10.x.x.x ネットワークはパブリックネットワークを示していることに注意してください。
このシナリオ例を構成するには、NetScaler Console の Jobs feature を使用するか、NITRO API を使用して、次のコマンドを実行します。
add service s1 172.17.0.10 HTTP 80
add service s2 172.17.0.11 HTTP 80
add lb vserver cpx-vip HTTP 172.17.4.100 80
bind lb vserver cpx-vip s1
bind lb vserver cpx-vip s2
Docker ホスト用の追加のパブリック IP アドレスと NAT ルールを構成するには、Linux シェルプロンプトで次のコマンドを実行します。
ip addr add 10.102.29.103/24 dev eth0
iptables -t nat -A PREROUTING -p ip  -d 10.102.29.103 -j DNAT --to-destination 172.17.4.100
方法 2: VIP に NetScaler CPX IP アドレスを使用し、ポートマッピングを構成する:
  1. NetScaler CPX インスタンスで VIP と 2 つのサービスを構成します。VIP には非標準ポート 81 を使用します。
  2. サービスを VIP にバインドします。
  3. Docker ホストのポート 50000 で受信したすべてのトラフィックを VIP とポート 81 に転送する NAT ルールを構成します。
このシナリオ例を構成するには、3 つすべての Docker ホストで NetScaler CPX コンテナを作成する際に、Linux シェルプロンプトで次のコマンドを実行します。
    docker run -dt -p 22 -p 80 -p 161/udp -p 50000:81 --ulimit core=-1 --privileged=true cpx:6.2
NetScaler CPX インスタンスがプロビジョニングされたら、NetScaler Console の Jobs feature を使用するか、NITRO API を使用して、次のコマンドを実行します。
add service s1 172.17.0.10 http 80
add service s2 172.17.0.11 http 80
add lb vserver cpx-vip HTTP 172.17.0.4 81
bind lb vserver cpx-vip s1
bind lb vserver cpx-vip s2
注:
NetScaler CPX インスタンスのプロビジョニング中にポートマッピングを構成していない場合は、Linux シェルプロンプトで次のコマンドを実行して NAT ルールを構成します。
iptables -t nat -A PREROUTING -p tcp -m addrtype --dst-type LOCAL -m tcp --dport 50000 -j DNAT --to-destination 172.17.0.4:81

トポロジ 2: 物理サーバーとクライアントを備えた NetScaler CPX

このトポロジでは、NetScaler CPX インスタンスのみが Docker ホストにプロビジョニングされます。クライアントとサーバーはコンテナベースではなく、ネットワーク上の別の場所に存在します。
この環境では、NetScaler CPXインスタンスを構成して、物理サーバー間でトラフィックを負荷分散できます。
次の図は、このトポロジを示しています。
ローカライズされた画像
この例では、NetScaler CPXコンテナ(172.17.0.4)がクライアントと物理サーバーの間にプロキシとして配置されています。サーバーDB1(10.102.29.105)とDB2(10.102.29.110)は、ネットワーク上のDockerホストの外部にあります。クライアントからのリクエストはインターネットから発信され、NetScaler CPXで受信され、2つのサーバーに分散されます。
クライアントとサーバー間のNetScaler CPXを介したこの通信を有効にするには、まずNetScaler CPXコンテナの作成時にポートマッピングを構成する必要があります。次に、2つのサーバーを表すようにNetScaler CPXコンテナ上で2つのサービスを構成します。最後に、NetScaler CPXのIPアドレスと非標準のマッピングされたHTTPポート8080を使用して仮想サーバーを構成します。
例の構成では、10.x.x.xネットワークはパブリックネットワークを示していることに注意してください。
この例のシナリオを構成するには、NetScaler CPXコンテナの作成時にLinuxシェルプロンプトで次のコマンドを実行します。
docker run -dt -p 22 -p 80 -p 161/udp -p 8080:8080 --ulimit core=-1 --privileged=true cpx:6.2
次に、NetScaler Consoleのジョブ機能を使用するか、NITRO APIを使用して、次のコマンドを実行します。
add service s1 HTTP 10.102.29.105 80
add service s2 HTTP 10.102.29.110 80
add lb vserver cpx-vip HTTP 172.17.0.4 8080
bind lb vserver cpx-vip s1
bind lb vserver cpx-vip s2

トポロジ3:異なるホストにプロビジョニングされたNetScaler CPXとサーバー

このトポロジでは、NetScaler CPXインスタンスとデータベースサーバーは異なるDockerホストにプロビジョニングされ、クライアントトラフィックはインターネットから発信されます。このトポロジは、NetScaler CPXインスタンスがコンテナベースのアプリケーションまたはサーバーのセットを負荷分散する本番環境の展開で使用される可能性があります。
次の図は、このトポロジを示しています。
ローカライズされた画像
この例では、NetScaler CPXインスタンスとサーバー(DB1)は、IPアドレス10.102.29.100を持つ同じDockerホストにプロビジョニングされています。他の4つのサーバー(DB2、DB3、DB4、DB5)は、10.102.29.105と10.102.29.110の2つの異なるDockerホストにプロビジョニングされています。
インターネットから発信されたクライアントリクエストはNetScaler CPXインスタンスで受信され、その後、5つのサーバーにリクエストを分散します。この通信を有効にするには、以下を構成する必要があります。
  1. NetScaler CPXコンテナの作成時にポートマッピングを設定します。この例では、コンテナのポート8080をホストのポート8080に転送する必要があることを意味します。クライアントリクエストがホストのポート8080に到着すると、CPXコンテナのポート8080にマッピングされます。
  2. 5つのサーバーをNetScaler CPXインスタンス上のサービスとして構成します。これらのサービスを設定するには、それぞれのDockerホストのIPアドレスとマッピングされたポートの組み合わせを使用する必要があります。
  3. クライアント要求を受信するために、NetScaler CPXインスタンス上にVIPを構成します。このVIPは、NetScaler CPXのIPアドレスと、ホストのポート8080にマッピングされたポート8080で表される必要があります。
  4. 最後に、サービスをVIPにバインドします。
なお、構成例では、10.x.x.xネットワークはパブリックネットワークを示します。
このシナリオ例を構成するには、NetScaler CPXコンテナを作成する際に、Linuxシェルプロンプトで次のコマンドを実行します。
docker run -dt -p 22 -p 80 -p 161/udp -p 8080:8080 --ulimit core=-1 --privileged=true cpx:6.2
NetScaler Consoleのジョブ機能を使用するか、またはNITRO APIを使用して、次のコマンドを実行します。
add service s1 10.102.29.100 HTTP 8081
add service s2 10.102.29.105 HTTP 8081
add service s3 10.102.29.105 HTTP 8082
add service s4 10.102.29.110 HTTP 8081
add service s5 10.102.29.110 HTTP 8082
add lb vserver cpx-vip HTTP 172.17.0.2 8080
bind lb vserver cpx-vip s1
bind lb vserver cpx-vip s2
bind lb vserver cpx-vip s3
bind lb vserver cpx-vip s4
bind lb vserver cpx-vip s5