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
<!--NeedCopy-->
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
<!--NeedCopy-->
CLI を使用して 1 つまたはすべての PBR を削除するには、次の手順を実行します。
コマンドプロンプトで、次のコマンドのいずれかを入力します。
- rm ns pbr <name>
- clear ns pbrs
例:
> rm ns pbr pbr1
Done
> clear ns PBRs
Done
<!--NeedCopy-->
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 を適用するには、次の手順を実行します。
- System > Network > PBRsに移動します。
- [PBR] タブで PBR を選択し、[アクション] リストで [適用] を選択します。
PBR の有効化または無効化
デフォルトでは、PBR は有効になっています。つまり、PBRが適用されると、Citrix ADCアプライアンスは着信パケットと構成済みのPBRを自動的に比較します。PBR がルックアップテーブルで必要ないが、構成内に保持する必要がある場合は、PBR を適用する前に無効にする必要があります。PBR が適用されると、Citrix ADC は着信パケットを無効にした PBR と比較しません。
CLI を使用して PBR を有効または無効にするには、次の手順を実行します。
コマンドプロンプトで、次のコマンドのいずれかを入力します。
- enable ns pbr <name>
- nspbrを無効にする < 名前>
例:
> 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
<!--NeedCopy-->
GUI を使用して PBR を有効または無効にするには、次の手順を実行します。
- System > Network > PBRsに移動します。
- [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 仮想サーバを指定する。
- ROUNDROBIN
- DESTINATIONIPHASH
- SOURCEIPHASH
- SRCIPDESTIPHASH
- LEASTPACKETS
- LEASTBANDWIDTH
- LTRM
- CALLIDHASH
- 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. エンティティ作成のサンプル値
上記の設定を実装するには、以下を行う必要があります。
- ネクストホップルータ R1、R2、および R3 を表すサービスルータ 1、ルータ 2、およびルータ 3 を作成します。
- リンクロードバランシング仮想サーバ LLB1 を作成し、サービスルータ 1、ルータ 2、およびルータ 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
<!--NeedCopy-->
GUIを使用してサービスを作成するには、次のステップを実行します。
Traffic Management > Load Balancing > Servicesに移動してサービスを作成します。
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
<!--NeedCopy-->
リンク・ロード・バランシング仮想サーバーを作成し、GUIを使用してサービスをバインドするには、次の手順を実行します。
- トラフィック管理に移動します > 負荷分散 > 仮想サーバー、およびリンク負荷分散用の仮想サーバーを作成します。[プロトコル] フィールドに ANY を指定します。 注:[ 直接アドレス可能] がオフになっていることを確認します。
- [サービス] タブの [アクティブ] 列で、仮想サーバーにバインドするサービスのチェックボックスをオンにします。
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
<!--NeedCopy-->
GUI を使用して PBR を作成するには、次の手順を実行します。
[システム] > [ネットワーク] > [PBR] に移動し、[PBR] タブで新しい PBR を追加します。