Citrix ADC

IPv4 トラフィック用のポリシーベースルート(PBR)

PBR の設定には、次の作業が含まれます。

  • PBR を作成します。
  • PBR を適用します。
  • (任意)PBR を無効または有効にします。
  • (任意)PBR のプライオリティを再番号付けします。

PBR の作成または変更

同じパラメータで 2 つの PBR を作成することはできません。複製を作成しようとすると、エラーメッセージが表示されます。

PBR のプライオリティを設定できます。優先度(整数)は、Citrix ADCアプライアンスがPBRを評価する順序を定義します。優先順位を指定せずにPBRを作成すると、Citrix ADCは10の倍数の優先順位を自動的に割り当てます。

パケットがPBRで定義された条件と一致する場合、Citrix ADCはアクションを実行します。パケットがPBRで定義された条件と一致しない場合、Citrix ADCは次に高い優先順位を持つPBRとパケットを比較します。

選択したパケットをネクストホップルータに送信する代わりに、複数のネクストホップをバインドしたリンクロードバランシング仮想サーバに送信するように PBR を設定できます。この設定は、ネクストホップリンクに障害が発生した場合にバックアップを提供できます。

次の例を考えてみましょう。2つのPBR(p1とp2)がCitrix ADC上で構成され、優先順位20と30が自動的に割り当てられます。最初の PBR p1 の直後に評価される 3 番目の PBR p3 を追加する必要があります。新しい PBR p3 のプライオリティは 20 ~ 30 である必要があります。この場合、プライオリティを 25 に指定できます。

CLI のプロシージャ

CLI を使用して PBR を作成するには、次の手順を実行します。

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

  • add ns pbr <name> <action> [-srcIP [<operator>] <srcIPVal>] [-srcPort [<operator>] <srcPortVal>] [-destIP [<operator>] <destIPVal>] [-destPort [<operator>] <destPortVal>] [-nextHop <nextHopVal>] [-srcMac <mac_addr>] [-protocol <protocol> |-protocolNumber <positive_integer>] [-vlan <positive_integer>] [-interface <interface_name>] [-priority <positive_integer>]][-msr ( ENABLED | DISABLED ) [-monitor <string>] [-state ( ENABLED | DISABLED )]
  • show ns pbr

例:

> add ns pbr pbr1  allow -srcip 10.102.37.252 -destip 10.10.10.2 -nexthop 10.102.29.77
 Done

CLI を使用して PBR のプライオリティを変更するには、次の手順を実行します。

コマンドプロンプトで次のコマンドを入力して、優先度を変更し、構成を確認します。

  • set ns pbr <name> [-action ( ALLOW | DENY )] [-srcIP [<operator>] <srcIPVal>] [-srcPort [<operator>] <srcPortVal>] [-destIP [<operator>] <destIPVal>] [-destPort [<operator>] <destPortVal>] [-nextHop <nextHopVal>] [-srcMac <mac_addr>] [-protocol <protocol> | -protocolNumber <positive_integer>] [-vlan <positive_integer>] [-interface <interface_name>] [-priority <positive_integer>]][-msr ( ENABLED | DISABLED ) [-monitor <string>] [-state ( ENABLED | DISABLED )]
  • show ns pbr [<name>]

例:

> set ns pbr pbr1 -priority 23
 Done

CLI を使用して 1 つまたはすべての PBR を削除するには、次の手順を実行します。

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

  • rm ns pbr <name>
  • clear ns pbrs

例:

> rm ns pbr pbr1
 Done

> clear ns PBRs
 Done

GUIのプロシージャ

GUI を使用して PBR を作成するには、次の手順を実行します。

[システム] > [ネットワーク] > [PBR] に移動し、[PBR] タブで、新しい PBR を追加するか、既存の PBR を編集します。

GUI を使用して 1 つまたはすべての PBR を削除するには、次の手順を実行します。

[システム] > [ネットワーク] > [PBR] に移動し、[PBR] タブで PBR を削除します。

PBR の適用

PBR をアクティブにするには、PBR を適用する必要があります。次の手順では、無効にしていないすべての PBR を再適用します。PBR は、メモリツリー(ルックアップテーブル)を構成します。たとえば、10 個の PBR (p1-p10) を作成し、別の PBR (p11) を作成して適用すると、すべての PBR (p1-p11) が新しく適用され、新しいルックアップテーブルが作成されます。セッションに DENY PBR が関連付けられている場合、セッションは破棄されます。

PBR に変更を加えるたびに、この手順を適用する必要があります。たとえば、PBR を無効にした後でこの手順を実行する必要があります。

注: Citrix ADCアプライアンスで作成されたPBRは、適用されるまで機能しません。

CLI を使用して PBR を適用するには、次の手順を実行します。

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

PBR の適用

GUI を使用して PBR を適用するには、次の手順を実行します。

  1. [システム] > [ネットワーク] > [PBR] に移動します。
  2. [PBR] タブで PBR を選択し、[アクション] リストで [適用] を選択します。

PBR の有効化または無効化

デフォルトでは、PBR は有効になっています。つまり、PBRが適用されると、Citrix ADCアプライアンスは着信パケットと構成済みのPBRを自動的に比較します。PBR がルックアップテーブルで必要ないが、構成内に保持する必要がある場合は、PBR を適用する前に無効にする必要があります。PBR が適用されると、Citrix ADC は着信パケットを無効にした PBR と比較しません。

CLI を使用して PBR を有効または無効にするには、次の手順を実行します。

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

  • enable ns pbr <name>
  • disable ns pbr <name>

例:

> enable ns PBR pbr1
 Done
> show ns PBR pbr1
1)      Name: pbr1
        Action: ALLOW                          Hits: 0
        srcIP = 10.102.37.252
        destIP = 10.10.10.2
        srcMac:                                Protocol:
        Vlan:                                  Interface:
        Active Status: ENABLED                 Applied Status: APPLIED
        Priority: 10
        NextHop: 10.102.29.77

 Done

> disable ns PBR pbr1
Warning: PBR modified, use 'apply pbrs' to commit this operation

> apply pbrs
 Done

> show ns PBR pbr1
1)      Name: pbr1
        Action: ALLOW                          Hits: 0
        srcIP = 10.102.37.252
        destIP = 10.10.10.2
        srcMac:                                Protocol:
        Vlan:                                  Interface:
        Active Status: DISABLED                Applied Status: NOTAPPLIED
        Priority: 10
        NextHop: 10.102.29.77
Done

GUI を使用して PBR を有効または無効にするには、次の手順を実行します。

  1. [システム] > [ネットワーク] > [PBR] に移動します。
  2. [PBR] タブで PBR を選択し、[アクション] リストで [有効] または [無効] を選択します。

PBR の再番号付け

PBR の番号を自動的に変更して、優先順位を 10 の倍数に設定できます。

CLI を使用して PBR の番号を変更するには、次の手順を実行します。

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

  • renumber ns pbrs

GUI を使用して PBR の番号を変更するには、次の手順を実行します。

[システム] > [ネットワーク] > [PBR] に移動し、[PBR] タブの [アクション] リストで [優先順位の再番号付け] を選択します。

ユースケース-複数のホップを持つ PBR

2つのPBR(PBR1とPBR2)がCitrix ADCアプライアンスNS1上で構成されているシナリオを考えてみましょう。PBR1 は、送信元 IP アドレスが 10.102.29.30 であるすべての発信パケットをネクストホップルータ R1 にルーティングします。PBR2 は、送信元 IP アドレスが 10.102.29.90 であるすべての発信パケットをネクストホップルータ R2 にルーティングします。R3 は、NS1 に接続されたもう 1 つのネクストホップルータです。

ルータ R1 に障害が発生すると、PBR1 と照合されたすべての発信パケットがドロップされます。このような状況を回避するには、PBR の作成または変更中に、ネクストホップフィールドで Link Load Balancing(LLB; リンクロードバランシング)仮想サーバを指定します。複数のネクストホップは、サービスとして LLB 仮想サーバにバインドされます(たとえば、R1、R2、R3)。これで、R1 が失敗した場合、PBR1 と照合されたすべてのパケットが、LLB 仮想サーバに設定された LB 方式によって決定された R2 または R3 にルーティングされます。

次の場合にLLB仮想サーバーをネクストホップとして持つPBRを作成しようとすると、Citrix ADCアプライアンスがエラーをスローします。

  • 同じ LLB 仮想サーバで別の PBR を追加する。
  • 存在しない LLB 仮想サーバを指定する。
  • バインドされたサービスがネクストホップではない LLB 仮想サーバの指定。
  • LB 方式が次のいずれかに設定されていない LLB 仮想サーバを指定する。
    • LEASTPACKETS
    • LEASTBANDWIDTH
    • DESTIPHASH
    • SOURCEIPHASH
    • WEIGHTDRR
    • SRCIPDESTIP_HASH
    • LTRM
    • CUSTOM LOAD
  • LB パーシステンスタイプが次のいずれかに設定されていない LLB 仮想サーバーの指定。
    • DESTIP
    • SOURCEIP
    • SRCDSTIP

次の表に、Citrix ADCアプライアンス上で構成されているエンティティの名前と値を示します。

エンティティの種類 名前 IPアドレス
リンク・ロード・バランシング仮想サーバ LLB1 -
サービス(ネクストホップ) Router1 1.1.1.254
  Router2 2.2.2.254
  Router3 3.3.3.254
PBR PBR1 -
  PBR2 -

表1. エンティティ作成のサンプル値

上記の設定を実装するには、以下を行う必要があります。

  1. ネクストホップルータ R1、R2、および R3 を表すサービスルータ 1、ルータ 2、およびルータ 3 を作成します。
  2. リンクロードバランシング仮想サーバ LLB1 を作成し、サービスルータ 1、ルータ 2、およびルータ 3 をバインドします。
  3. PBR1 および PBR2 を作成し、ネクストホップフィールドを LLB1 および 2.2.254(ルータ R2 の IP アドレス)に設定します。

CLI を使用してサービスを作成するには、次の手順を実行します。

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

  • add service <name> <IP> <serviceType> <port>
  • show service <name>

例:

> add service Router1 1.1.1.254 ANY *
 Done
> add service Router2 2.2.2.254 ANY *
 Done
> add service Router3 3.3.3.254 ANY *
 Done

GUIを使用してサービスを作成するには、次のステップを実行します。

[トラフィック管理] > [負荷分散] > [サービス] に移動し、サービスを作成します。

CLI を使用してリンクロードバランシング仮想サーバを作成し、サービスをバインドするには、次の手順を実行します。

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

  • add lb vserver <name> <serviceType>
  • bind lb vserver < name> <serviceName>
  • show lb vserver < name>

例:

> add lb vserver LLB1 ANY
 Done
> bind lb vserver LLB1 Router1 Router2 Router3
 Done

リンク・ロード・バランシング仮想サーバーを作成し、GUIを使用してサービスをバインドするには、次の手順を実行します。

  1. [トラフィック管理] > [負荷分散] > [仮想サーバー] に移動し、リンク負荷分散用の仮想サーバーを作成します。[プロトコル] フィールドに ANY を指定します。 注:[ 直接アドレス可能] がオフになっていることを確認します。
  2. [サービス] タブの [アクティブ] 列で、仮想サーバーにバインドするサービスのチェックボックスをオンにします。

CLI を使用して PBR を作成するには、次の手順を実行します。

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

  • add ns pbr <name> <action> [-srcIP [<operator>] <srcIPVal>] [-nextHop <nextHopVal>]
  • show ns pbr

例:

> add pbr PBR1 ALLOW -srcIP 10.102.29.30 -nextHop LLB1
 Done
> add pbr PBR2 ALLOW -srcIP 10.102.29.90 -nextHop 2.2.2.254
 Done

GUI を使用して PBR を作成するには、次の手順を実行します。

[システム] > [ネットワーク] > [PBR] に移動し、[PBR] タブで新しい PBR を追加します。

IPv4 トラフィック用のポリシーベースルート(PBR)