マルチホストネットワークでの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. 補助IPアドレスを使用して、NetScaler CPXコンテナ上にVIPを構成します。
  2. Dockerホストに補助IPアドレスを構成します。
  3. Dockerホストの補助IPアドレスで受信したすべてのトラフィックをVIPの補助IPアドレスに転送するようにNATルールを構成します。
  4. 2つのサーバーをNetScaler CPXインスタンス上のサービスとして構成します。
  5. 最後に、サービスをVIPにバインドします。
この構成例では、10.x.x.xネットワークはパブリックネットワークを示していることに注意してください。
このシナリオ例を構成するには、NetScaler ConsoleのJobs機能を使用するか、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機能を使用するか、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インスタンスと1つのサーバー (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. NetScaler CPXインスタンス上で5つのサーバーをサービスとして構成します。これらのサービスを設定するには、それぞれの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のJobs機能を使用するか、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