ADC

ユースケース11:リッスンポリシーを使用してネットワークトラフィックを分離する

注:

シャドウ仮想サーバーを使用してマルチテナント分離をシミュレートするトラフィック分離ソリューションは推奨されなくなりました。または、このような展開にはCitrix ADC AdminPartitioning機能を使用することをお勧めします。詳細については、「 管理者のパーティショニング」を参照してください。

データセンターの一般的なセキュリティ要件は、さまざまなアプリケーションまたはテナントのトラフィック間のネットワークパスの分離を維持することです。あるアプリケーションまたはテナントのトラフィックは、他のアプリケーションまたはテナントのトラフィックから分離する必要があります。たとえば、ある金融サービス会社は、保険部門のアプリケーションのトラフィックと金融サービスアプリケーションのトラフィックを分離したいと思うでしょう。これまでは、ファイアウォール、ロードバランサー、IdPなどのネットワークサービスデバイスを物理的に分離し、スイッチングファブリックでネットワークを監視して論理的に分離することで簡単に実現できました。

データセンターのアーキテクチャがマルチテナントの仮想化データセンターへと進化するにつれて、データセンターの集約レイヤーにおけるネットワークサービスが統合されつつあります。この開発により、ネットワーク・パス・アイソレーションはネットワーク・サービス・デバイスにとって重要なコンポーネントとなり、ADCはL4からL7のレベルでトラフィックを分離できる必要性が高まっています。さらに、特定のテナントのすべてのトラフィックは、サービスレイヤに到達する前にファイアウォールを通過する必要があります。

ネットワークパスを分離する要件に対処するために、Citrix ADCアプライアンスはネットワークドメインを識別し、ドメイン間のトラフィックを制御します。Citrix ADCソリューションには、リッスンポリシーとシャドウ仮想サーバーの2つの主要コンポーネントがあります。

隔離される各ネットワークパスには仮想サーバーが割り当てられ、その仮想サーバーは指定されたネットワークドメインからのトラフィックのみを受信するようにリッスンポリシーが定義されます。

トラフィックを分離するために、リッスンポリシーを複数のクライアントパラメータまたはそれらの組み合わせに基づいて設定し、ポリシーに優先順位を割り当てることができます。次の表は、トラフィックを識別するためのリッスンポリシーで使用できるパラメータを示しています。

カテゴリ パラメーター
イーサネットプロトコル 送信元 MAC アドレス、宛先 MAC アドレス
ネットワークインターフェイス ネットワーク ID、受信スループット、送信スループット、送信スループット
IPプロトコル 送信元 IP アドレス、宛先 IP アドレス
IPv6 プロトコル 送信元IPv6アドレス、宛先IPv6アドレス
TCP プロトコル 送信元ポート、宛先ポート、最大セグメントサイズ、ペイロード、およびその他のオプション
UDP プロトコル 送信元ポート、宛先ポート
VLAN ID

表1. リッスンポリシーの定義に使用されるクライアントパラメータ

NetScalerアプライアンスでは、仮想サーバーがドメインごとに構成され、仮想サーバーがそのドメインのトラフィックのみを受信するように指定するリッスンポリシーが設定されます。また、各ドメインには、任意のドメイン宛てのトラフィックを受信するシャドウ負荷分散仮想サーバーが構成されています。各シャドウロードバランシング仮想サーバーにはワイルドカード (*) IPアドレスとポートがあり、そのサービスタイプはANYに設定されています。

各ドメインでは、ドメインのファイアウォールがサービスとしてシャドウロードバランシング仮想サーバーにバインドされ、シャドウロードバランシング仮想サーバーはすべてのトラフィックをファイアウォール経由で転送します。ローカルトラフィックは宛先に転送され、別のドメイン宛てのトラフィックはそのドメインのファイアウォールに転送されます。シャドウロードバランシング仮想サーバーは MAC モードリダイレクト用に設定されています。

ネットワークパスの分離方法

次の図は、ドメイン全体の一般的なトラフィックフローを示しています。ネットワークドメイン 1 内、およびネットワークドメイン 1 とネットワークドメイン 2 の間のトラフィックフローを考えてみましょう。

図1:ネットワークパスの分離

トラフィックドメイン-ネットワークパス分離

ネットワークドメイン 1 内のトラフィック

ネットワークドメイン 1 には、VLAN 11、VLAN110、VLAN120 の 3 つの VLAN があります。次の手順では、トラフィックフローについて説明します。

  • VLAN 11 のクライアントは、VLAN 120 のサービスプールから利用可能なサービスに対する要求を送信します。
  • VLAN 11 からのトラフィックを受信するように設定された負荷分散仮想サーバー LB-VIP1 は、要求を受信し、要求を VLAN 110 に転送します。VLAN110の仮想サーバは、要求をシャドウロードバランシング仮想サーバFW-VIP-1に転送します。
  • VLAN 110 からのトラフィックを受信するように設定された FW-VIP-1 は、要求を受信して VLAN 120 に転送します。
  • VLAN 120の負荷分散仮想サーバーは、App11、App12、またはApp13のいずれかの物理サーバーに要求を負荷分散します。
  • 物理サーバから送信された応答は、同じパスで VLAN 11 のクライアントに返されます。

この構成により、クライアントから送信されるすべてのトラフィックについて、トラフィックが常にNetScaler内で分離されます。

ネットワークドメイン 1 とネットワークドメイン 2 の間のトラフィック

ネットワークドメイン 1 には、VLAN 11、VLAN110、VLAN120 の 3 つの VLAN があります。ネットワークドメイン 2 には、VLAN 22、VLAN 210、VLAN 220 の 3 つの VLAN もあります。次の手順では、VALN 11 から VLAN 22 へのトラフィックフローについて説明します。

  • ネットワークドメイン 1 に属する VLAN 11 のクライアントが、ネットワークドメイン 2 に属する VLAN 220 のサービスプールから利用可能なサービスに対する要求を送信します。
  • ネットワークドメイン1では、VLAN 11からのトラフィックを受信するように構成された負荷分散仮想サーバーLB-VIP1が要求を受信し、その要求をVLAN110に転送します。
  • 他のドメイン宛てのVLAN 110トラフィックを受信するように構成されたシャドウロードバランシング仮想サーバーFW-VIP-1は、要求を受信してファイアウォール仮想サーバーFW-VIP-2に転送します。これは、要求の宛先がネットワークドメイン2の物理サーバーであるためです。
  • ネットワークドメイン 2 では、FW-VIP-2 は VLAN 220 に要求を転送します。
  • VLAN 220の負荷分散仮想サーバーは、App21、App22、またはApp23のいずれかの物理サーバーに要求を負荷分散します。
  • 物理サーバーから送信された応答は、同じパスでネットワークドメイン 2 のファイアウォールを経由して返され、次にネットワークドメイン 1 に戻って VLAN 11 のクライアントに到達します。

構成の手順

リッスンポリシーを使用してネットワークパスアイソレーションを設定するには、以下を実行してください。

  • リッスンポリシー表現を追加します。各式は、トラフィックの宛先となるドメインを指定します。VLAN ID またはその他のパラメータを使用してトラフィックを識別できます。
  • ネットワークドメインごとに、次のように 2 つの仮想サーバーを構成します。
    • このドメイン宛てのトラフィックを識別するリッスンポリシーを指定する、負荷分散仮想サーバーを作成します。前に作成した式の名前を指定することも、仮想サーバーの作成中に式を作成することもできます。

    • シャドウ仮想サーバーと呼ばれる別の負荷分散仮想サーバーを作成します。このサーバーには、任意のドメイン宛てのトラフィックに適用されるリッスンポリシー式を指定します。この仮想サーバーでは、サービスタイプを ANY に、IP アドレスとポートをアスタリスク (*) に設定します。この仮想サーバーでMACベースの転送を有効にします。

    • 両方の仮想サーバーで L2 接続オプションを有効にします。

      一般に、Citrix ADCアプライアンスは、接続を識別するために、クライアントIPアドレス、クライアントポート、宛先IPアドレス、宛先ポートの4タプルを使用します。[L2 接続] オプションを有効にすると、通常の 4 タプルに加えて、接続のレイヤ 2 パラメータ(チャネル番号、MAC アドレス、VLAN ID)が使用されます。

  • ドメイン内のサーバプールを表すサービスを追加し、仮想サーバにバインドします。
  • 各ドメインのファイアウォールをサービスとして構成し、すべてのファイアウォールサービスをシャドウ仮想サーバーにバインドします。

コマンドラインインターフェイスを使用してネットワークトラフィックを分離するには

コマンドプロンプトで、次のコマンドを入力します。

add policy expression <expressionName> <listenPolicyExpression>

add lb vserver <name> <serviceType> <ip> <port> -l2conn ON -listenPolicy <expressionName>
<!--NeedCopy-->

ドメインごとに負荷分散仮想サーバーを追加します。この仮想サーバーは、同じドメインのトラフィック用です。

add lb vserver <name> ANY * * -l2conn ON -m MAC -listenPolicy <expressionName>
<!--NeedCopy-->

ドメインごとにシャドウ負荷分散仮想サーバーを追加します。この仮想サーバーは、他のドメインのトラフィック用です。

例:

add policy expression e110 client.vlan.id==110
add policy expression e210 client.vlan.id==210
add policy expression e310 client.vlan.id==310
add policy expression e11 client.vlan.id==11
add policy expression e22 client.vlan.id==22
add policy expression e33 client.vlan.id==33

add lb vserver LB-VIP1 HTTP 10.1.1.254 80 -persistenceType NONE -listenPolicy e11
-cltTimeout 180 -l2Conn ON

add lb vserver LB-VIP2 HTTP 10.2.2.254 80 -persistenceType NONE - listenPolicy e22
-cltTimeout 180 -l2Conn ON

add lb vserver LB-VIP3 HTTP 10.3.3.254 80 -persistenceType NONE - listenPolicy e33
-cltTimeout 180 -l2Conn ON


add lb vserver FW-VIP-1 ANY * * -persistenceType NONE -lbMethod ROUNDROBIN - listenPolicy e110 -Listenpriority 1 -m MAC -cltTimeout 120

add lb vserver FW-VIP-2 ANY * * -persistenceType NONE -lbMethod ROUNDROBIN - listenPolicy e210 -Listenpriority 2 -m MAC -cltTimeout 120

add lb vserver FW-VIP-3 ANY * * -persistenceType NONE -lbMethod ROUNDROBIN - listenPolicy e310 -Listenpriority 3 -m MAC -cltTimeout 120


add service RD-1 10.1.1.1 ANY * -gslb NONE -maxClient 0 -maxReq 0 -cip DISABLED
-usip NO -useproxyport NO -sp ON -cltTimeout 120 -svrTimeout 120 -CKA NO -TCPB NO -CMP NO

add service RD-2 10.2.2.1 ANY * -gslb NONE -maxClient 0 -maxReq 0 -cip DISABLED
-usip NO -useproxyport NO -sp ON -cltTimeout 120 -svrTimeout 120 -CKA NO -TCPB NO -CMP NO

add service RD-3 10.3.3.1 ANY * -gslb NONE -maxClient 0 -maxReq 0 -cip DISABLED
-usip NO -useproxyport NO -sp ON -cltTimeout 120 -svrTimeout 120 -CKA NO -TCPB NO -CMP NO


bind lb vserver FW-VIP-1 RD-1

bind lb vserver FW-VIP-2 RD-2

bind lb vserver FW-VIP-3 RD-3
<!--NeedCopy-->

構成ユーティリティを使用してネットワークトラフィックを分離するには

  1. サービスの作成の説明に従って、サーバを表すサービスを追加します
  2. 各ファイアウォールをサービスとして追加します。
    1. [Traffic Management]>[Load Balancing]>[Services] の順に移動します。
    2. プロトコルを ANY、サーバをファイアウォールの IP アドレス、ポートを 80 に指定して、サービスを作成します。
  3. 負荷分散仮想サーバーを構成します。
  4. シャドウロードバランシング仮想サーバーを設定します。
  5. ネットワークドメインごとに、手順 3 と 4 を繰り返します。
  6. [負荷分散仮想サーバー] ウィンドウで、作成した仮想サーバーを開き、設定を確認します。
ユースケース11:リッスンポリシーを使用してネットワークトラフィックを分離する