レイヤー3クラスタリングの構成
L3 クラスターについて
高可用性導入を拡張し、さまざまなネットワークにわたるクライアントトラフィックのスケーラビリティを高める必要性から、L3 クラスタの確立につながりました。L3クラスターでは、NetScalerアプライアンスを個々のサブネット(L2クラスタ)にグループ化できます。
L3 クラスタは「独立ネットワーク構成 (INC) モードのクラスタ」とも呼ばれます。L3 クラスタ導入では、同じネットワーク内のクラスタノードがグループ化されてノードグループを形成します。L3 クラスタは GRE トンネリングを使用してネットワーク間でパケットを誘導します。L3 クラスタ全体のハートビートメッセージはルーティングされます。
アーキテクチャ
L3 クラスタアーキテクチャは、次のコンポーネントで構成されています:
-
ノードグループ -次の図に示すように、各ネットワーク (n1, n2) と (n3, n4) のクラスターノードがグループ化されてノードグループを形成します。これらのノードグループは、ネットワークの両側のレイヤ3スイッチに終端されます。
- クラスタは、 クラスタノードとクライアント側の接続デバイスとの間の物理接続を介してクライアントと通信します。これらの物理接続を論理的にグループ化したものをクライアントデータプレーンと呼びます。
- クラスタは、クラスタノードとサーバ側の接続デバイス間の物理接続を介してサーバと通信します。これらの物理接続の論理的なグループ化は、 サーバーデータプレーンと呼ばれます。
- バックプレーンスイッチ -同じネットワーク内のクラスタノードは、クラスタバックプレーンを使用して相互に通信します。バックプレーンは、各ノードの 1 つのインターフェイスがクラスタバックプレーンスイッチと呼ばれる共通のスイッチに接続されているインターフェイスのセットです。
-
トンネル -デフォルトでは、L3クラスター内のノード間のパケットは、送信元ノードと宛先ノードのNSIPアドレスを使用してルーティングする暗号化されていないGREトンネルを介して交換されます。異なるネットワークに属するノードでは、ステアリングメカニズムが変わります。パケットは、MAC を書き換える代わりに、GRE トンネルを経由して他のサブネット上のノードに送られます。
注:
新規導入では、UDPトンネルを使用してネットワーク間でパケットを誘導することをお勧めします。UDP トンネルを使用する利点は次のとおりです。
- パケットエンジン間のステアリングは 4 タプルに基づいているため、分散がしやすくなります。
- CPU 使用率の偏りを回避できます。
次の表を参照して、さまざまなトンネルモードでパケットがどのように操作されるかを理解してください。
トンネルモード 同じネットワーク 異なるネットワーク なし バックプレーンはパケットの操作に使用されます。 GRE トンネルはトラフィックの誘導に使用されます。 GRE GRE トンネルはパケットの操作に使用されます。 GRE トンネルはパケットの操作に使用されます。 UDP UDPトンネルはパケットの操作に使用されます。 UDPトンネルはパケットの操作に使用されます。
例
以下で構成される L3 クラスタ展開の例を考えてみましょう。
- 3つのNetScalerアプライアンス(n1、n2、n3)ノードがノードグループ1にグループ化されています。
- 同様に、ノード n4 と n5 はノードグループ 2 にグループ化されます。3 番目のネットワークには、2 つのノードグループがあります。ノードグループ3にはn6とn7が含まれ、ノードグループ4にはn8とn9が含まれます。
- 同じネットワークに属するNetScalerアプライアンスは組み合わされてノードグループを形成します。
L3 クラスタを設定する前に考慮すべきポイント
NetScalerアプライアンスでL3クラスターを構成する前に、次の点を考慮してください。
- L3 サブネットを設定する場合、バックプレーンは必須ではありません。バックプレーンが指定されていない場合、ノードはバックプレーン障害状態にはなりません。
注:
同じ L2 ネットワークに複数のノードがある場合は、バックプレーンインターフェイスを定義する必要があります。バックプレーンインターフェイスが指定されていない場合、ノードはバックプレーン障害状態になります。
-
L2 機能とストライプ SNIP は L3 クラスタではサポートされていません。
- L3 クラスターの外部トラフィック分散は、等価コストマルチパス (ECMP) のみをサポートします。
- L3 クラスタ展開でステアリングが無効になっていると、ICMP エラーとフラグメンテーションは処理されません。
- ネットワークエンティティ (
route, route6, pbr
、およびpbr6
) は構成ノードグループにバインドする必要があります。 - VLAN、RNAT、および IP トンネルを設定ノードグループにバインドすることはできません。
- 設定ノードグループには必ず STRICT「YES」というプロパティが必要です。
- クラスタノードは、「add cluster node」コマンドを使用して構成ノードグループに追加しないでください。
-
add cluster instance -INC enabled
コマンドは、ネットワークエンティティ (ルート、ルート 6、PBR、pb6、RNAT、IP トンネル、ip6 トンネル) をクリアします。 -
clear config extended+
コマンドは、L3クラスター内のエンティティ(route、route6、PBR、pb6、RNAT、IPトンネル、ip6tunnel)をクリアしません。
L3 クラスターの設定
L3クラスター構成では、clusterコマンドには、ノードおよびノードグループに基づいて構成するさまざまな属性があります。L3 クラスタ構成には、IPv4 プロファイルとは別に IPv6 プロファイルも含まれます。
NetScalerアプライアンスでのL3クラスターの構成は、次のタスクで構成されます。
- クラスターインスタンスの作成
- L3 クラスタにノードグループを作成する
- NetScaler アプライアンスをクラスタとノードグループでグループに追加します
- クラスタ IP アドレスをノードに追加します
- クラスターインスタンスを有効にする
- 構成を保存します
- 既存のノードグループにノードを追加
- L3 クラスタにノードグループを作成する
- 新しいノードを新しく作成したノードグループにグループ化します
- ノードをクラスターに参加させる
CLI を使用して以下を設定します
-
クラスターインスタンスを作成するには
add cluster instance <clid> -inc <ENABLED|DISABLED> -processLocal <ENABLED|DISABLED>
注:
L3 クラスターでは「inc」パラメーターが有効になっている必要があります。
-
L3 クラスターでノードグループを作成するには
add cluster nodegroup <name>
-
NetScaler アプライアンスをクラスタに追加し、ノードグループに関連付けるには
add cluster node <nodeid> <nodeip> -backplane <interface_name> nodegroup <ng> –tunnelmode UDP
-
このノードにクラスタ IP アドレスを追加するには
add ns ip <IPAddress> <netmask> -type clip
-
クラスターインスタンスを有効にする
enable cluster instance <clId>
-
構成を保存します
save ns config
-
アプライアンスのウォームリブート
reboot -warm
-
既存のノードグループに新しいノードを追加するには
add cluster node <nodeid> <nodeip> -nodegroup <ng> –tunnelmode UDP
-
L3 クラスタで新しいノードグループを作成するには
add cluster nodegroup <ng>
-
新しいノードを新しく作成したノードグループにグループ化するには
add cluster node <nodeid> <nodeip> -nodegroup <ng> –tunnelmode UDP
-
ノードをクラスターに参加させるには
join cluster –clip <ip_addr> -password <password>
Example: The following is an example configuration for nodegroup1 and nodegroup2.
> add cluster instance 1 –inc ENABLED –processLocal ENABLED
Done
> add cluster nodegroup ng1
Done
> add cluster node 0 1.1.1.1 –state ACTIVE -backplane 0/1/1 –nodegroup ng1 –tunnelmode UDP
Done
> add ns ip 1.1.1.100 255.255.255.255 –type clip
Done
> enable cluster instance 1
Done
> save ns config
Done
> add cluster node 1 1.1.1.2 –state ACTIVE –nodegroup ng1 –tunnelmode UDP
Done
> add cluster nodegroup ng2
Done
> add cluster node 4 2.2.2.1 –state ACTIVE –nodegroup ng2 –tunnelmode UDP
Done
> add cluster node 5 2.2.2.2 –state ACTIVE –nodegroup ng2 –tunnelmode UDP
Done
> join cluster -clip 1.1.1.100 -password nsroot
<!--NeedCopy-->
L3 クラスタのアドバタイジングクラスタ IP アドレス
アップストリームルータにアドバタイズするクラスタ IP アドレスを設定して、どのサブネットからでもクラスタ設定にアクセスできるようにします。クラスタ IP アドレスは、ノードに設定された動的ルーティングプロトコルによってカーネルルートとしてアドバタイズされます。
クラスタ IP アドレスのアドバタイズには、次のタスクが含まれます。
- クラスタ IP アドレスのホストルートオプションを有効にします。ホストルートオプションはクラスタIPアドレスをZeBOSルーティングテーブルにプッシュし、動的ルーティングプロトコルを介してカーネルルートを再配布します。
- ノードでの動的ルーティングプロトコルの設定。 ダイナミックルーティングプロトコルは、クラスタ IP アドレスをアップストリームルータにアドバタイズします。ダイナミックルーティングプロトコルの設定の詳細については、ダイナミックルートの設定を参照してください。
CLIを使用してクラスターIPアドレスのホストルートオプションを有効にするには
コマンドプロンプトで、次のように入力します:
add nsip <IPAddress> <netmask> -hostRoute ENABLED
show nsip <IPAddress>
> add ns ip 10.102.29.60 255.255.255.255 -hostRoute ENABLED
> Done
<!--NeedCopy-->
L3 クラスタのスポット付き、部分的にストライプ化された構成
L3 クラスタのスポット構成と部分的にストライプ構成は、L2 クラスタとは少し異なります。ノードは異なるサブネットにあるため、構成はノードごとに異なる場合があります。ネットワーク構成はL3クラスタのノード固有にすることができるため、以下のパラメータに基づいてスポット構成または部分的にストライプ構成を構成する必要があります。
L3クラスタ上のNetScalerアプライアンスで、スポット状の部分ストライプ構成を構成するには、次のタスクを実行します。
- クラスター所有者グループを IPv4 静的ルーティングテーブルに追加する
- クラスター所有者グループを IPv6 静的ルーティングテーブルに追加する
- クラスター所有者グループを IPv4 ポリシーベースルーティング (PBR) に追加する
- クラスター所有者グループを IPv6 PBR に追加する
- VLAN を追加してください
- VLANを特定の所有者グループまたはクラスタノードグループにバインドします
CLI を使用して以下を設定します
-
NetScalerアプライアンスのIPv4静的ルートテーブルにクラスター所有者グループを追加するには
add route <network> <netmask> <gateway> -owner group <ng>
-
Citrix ADCアプライアンスのIPv6静的ルートテーブルにクラスター所有者グループを追加するには
add route6 <network> -owner group <ng>
-
クラスター所有者グループを IPv4 PBR に追加するには
add pbr <name> <action> -owner group <ng>
-
クラスター所有者グループを IPv6 PBR に追加するには
add pbr6 <name> <action> -owner group <ng>
-
VLAN を追加するには
add vlan <id>
-
VLAN をクラスタノードグループの特定の所有者/グループにバインドするには
bind vlan <id> -ifnum – [IPAddress <ipv4_addr | ipv6_addr> [-owner group <ng>]
次のコマンドは、CLIを使用して設定できるスポット構成と部分ストライプ構成の例です。
> add route 10.102.29.0 255.255.255.0 10.102.29.2 –ownergroup ng2
Done
> add route6 fe80::9404:60ff:fedd:a464/64 –ownergroup ng1
Done
> add pbr pbr1 allow –ownergroup ng1
Done
> add pbr6 pbr2 allow –ownergroup ng2
Done
> add vlan 2
Done
> bind vlan 2 –ifnum 1/2 –[IPAddress 10.102.29.80 | fe80::9404:60ff:fedd:a464/64-ownergroup ng1
Done
<!--NeedCopy-->
ノードグループを設定
L3 クラスターでは、同じ構成セットを複数のノードグループに複製するには、次のコマンドを使用します:
CLI を使用して以下を設定します
-
NetScalerアプライアンスのルーティングテーブルにIPv4静的ルートを追加するには
add route <network> <netmask> <gateway> -ownerGroup <ng>
サンプル構成:
add route 0 0 10.102.53.1 –ownerGroup ng1
add route 0 0 10.102.53.1 –ownerGroup ng2
<!--NeedCopy-->
前述の構成をサポートするために新しいノードグループ「all」を定義し、次のコマンドを設定する必要があります。
CLI を使用して以下を設定します
-
厳密なパラメーターを使用してクラスターに新しいノードグループを追加するには
add cluster node group <name> -strict <YES | NO>
-
クラスターノードまたはエンティティを特定のノードグループにバインドするには
bind cluster nodegroup <name> -node <nodeid>
-
IPv4静的ルートをすべてのオーナーグループに追加するには
add route <network> <netmask> <gateway> -ownerGroup <ng>
サンプル構成:
add cluster nodegroup all –strict YES
bind cluster nodegroup all –node 1
bind cluster nodegroup all –node 2
add route 0 0 10.102.53.1 –ownerGroup all
<!--NeedCopy-->
L3 クラスタ内のトラフィック分散
クラスター設定では、外部ネットワークはNetScalerアプライアンスのコレクションを単一のエンティティとして表示します。したがって、クラスターは、トラフィックを受信する必要がある単一のノードを選択する必要があります。L3 クラスタでは、この選択は ECMP を使用して行われます。選択されたノードをフロー受信機と呼びます。
注
L3 クラスター (異なるネットワークにまたがるノード) では、ECMP トラフィック分散のみを使用できます。
フローレシーバがトラフィックを取得し、内部クラスタロジックを使用してトラフィックを処理する必要があるノードを決定します。このノードはフロープロセッサと呼ばれます。フローレシーバとフロープロセッサが同じネットワーク上にある場合、フローレシーバはバックプレーンを介してフロープロセッサにトラフィックを誘導します。フローレシーバとフロープロセッサが異なるネットワーク上にある場合、トラフィックはトンネルを通過します。
注
フローレシーバとフロープロセッサは、トラフィックを処理できるノードでなければなりません。
NetScaler 11以降では、クラスタバックプレーンでステアリングを無効にできます。詳細については、 クラスタバックプレーンでのステアリングの無効化を参照してください。
前の図は、クラスターを流れるクライアント要求を示しています。クライアントは、仮想 IP (VIP) アドレスにリクエストを送信します。クライアントデータプレーンに設定されたトラフィック分散メカニズムは、クラスターノードの 1 つをフローレシーバーとして選択します。フローレシーバは、トラフィックを受信し、トラフィックを処理する必要があるノードを決定し、そのノードに要求を操縦します(フローレシーバが自身をフロープロセッサとして選択しない限り)。フロープロセッサとフローレシーバが同じノードグループにある場合、パケットはバックプレーン上でステアリングされます。また、フロープロセッサとフローレシーバが異なるノードグループに属している場合、パケットはルーテッドパスを介してトンネルを通過します。
フロープロセッサは、サーバとの接続を確立します。サーバは要求を処理し、要求をサーバに送信したサブネット IP(SNIP)アドレスに応答を送信します。L3 クラスタでは SNIP は常にスポッティングされた SNIP であるため、SNIP アドレスを所有するノードはサーバからの応答を受信します。