IPv4 トラフィックのポリシーベースルート (PBR)
PBR の設定には次のタスクが含まれます。
- PBR を作成します。
- PBR を適用してください。
- (オプション)PBR を無効または有効にします。
- (オプション)PBR のプライオリティの番号を変更します。
PBR の作成または変更
同じパラメータで 2 つの PBR を作成することはできません。複製を作成しようとすると、エラーメッセージが表示されます。
PBR のプライオリティを設定できます。優先度(整数値)は、NetScalerアプライアンスがPBRを評価する順序を定義します。優先度を指定せずにPBRを作成すると、NetScalerは自動的に10の倍数の優先度を割り当てます。
パケットがPBRで定義された条件と一致すると、NetScalerはアクションを実行します。パケットがPBRで定義された条件と一致しない場合、NetScalerはそのパケットを次に優先順位の高いPBRと比較します。
選択したパケットをネクストホップルータに送信する代わりに、複数のネクストホップをバインドしたリンクロードバランシング仮想サーバにパケットを送信するように PBR を設定できます。この設定は、ネクストホップリンクに障害が発生した場合のバックアップとなります。
次の例を考えてみましょう。2つのPBR(p1とp2)がNetScaler上に構成され、優先順位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 を無効にした後は次の手順を実行する必要があります。
注: NetScalerアプライアンスで作成されたPBRは、適用されるまで機能しません。
CLI を使用して PBR を適用するには:
コマンドプロンプトで入力します。
PBR に適用
GUI を使用して PBR を適用するには、次の手順を実行します。
- [ システム ] > [ ネットワーク ] > [ PBR] に移動します。
- [PBR] タブで PBR を選択し、[アクション] リストで [適用] を選択します。
PBR の有効化または無効化
デフォルトでは、PBR は有効になっています。つまり、PBRが適用されると、NetScalerアプライアンスは受信パケットを構成済みのPBRと自動的に比較します。PBR をルックアップテーブルに含める必要はないが、設定には保持する必要がある場合は、PBR を適用する前に無効にする必要があります。PBRが適用された後、NetScalerは受信パケットと無効になっている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
<!--NeedCopy-->
GUI を使用して PBR を有効または無効にするには:
- [ システム ] > [ ネットワーク ] > [ PBR] に移動します。
- [PBR] タブで PBR を選択し、[アクション] リストで [有効化] または [無効化] を選択します。
PBR の番号変更
PBR の番号を自動的に変更して、優先順位を 10 の倍数に設定できます。
CLI を使用して PBR に番号を付け直すには:
コマンドプロンプトで入力します。
- nspbrs に番号を付け直す
GUI を使用して PBR に番号を付け直すには:
[システム] > [ネットワーク] > [PBR] に移動し、[PBR] タブの [アクションリスト] で [優先順位の再番号付け] を選択します。
使用事例-複数ホップの PBR
NetScalerアプライアンスNS1にPBR1とPBR2の2つのPBRが構成されているシナリオを考えてみましょう。PBR1 は、送信元 IP アドレスが 10.102.29.30 のすべての送信パケットをネクストホップルータ R1 にルーティングします。PBR2 は、送信元 IP アドレスが 10.102.29.90 のすべての送信パケットをネクストホップルータ R2 にルーティングします。R3 は NS1 に接続されたもう 1 つのネクストホップルータです。
ルータ R1 に障害が発生すると、PBR1 と一致したすべての発信パケットがドロップされます。このような状況を回避するには、PBR を作成または変更するときに、ネクストホップフィールドにリンクロードバランシング(LLB)仮想サーバーを指定できます。複数のネクストホップがサービスとして LLB 仮想サーバにバインドされます(R1、R2、R3 など)。これで、R1 に障害が発生すると、PBR1 と一致したすべてのパケットが LLB 仮想サーバに設定された LB 方式によって決定された R2 または R3 にルーティングされます。
次の場合にLLB仮想サーバーをネクストホップとしてPBRを作成しようとすると、NetScalerアプライアンスはエラーをスローします。
- 同じ LLB 仮想サーバで別の PBR を追加します。
- 存在しない LLB 仮想サーバーを指定する。
- バインドされたサービスがネクストホップではない LLB 仮想サーバーを指定する。
- LB 方式が次のいずれかに設定されていない LLB 仮想サーバを指定する。
- ROUNDROBIN
- DESTINATIONIPHASH
- SOURCEIPHASH
- SRCIPDESTIPHASH
- LEASTPACKETS
- LEASTBANDWIDTH
- LTRM
- CALLIDHASH
- CUSTOM LOAD
- LB パーシステンスタイプが次のいずれかに設定されていない LLB 仮想サーバーを指定します。
- DESTIP
- SOURCEIP
- SRCDSTIP
次の表は、NetScalerアプライアンスで構成されているエンティティの名前と値を示しています。
エンティティの種類 | 名前 | 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 を作成し、それにサービス Router1、Router2、Router3 をバインドします。
- PBR 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 を使用してサービスを作成するには、次の手順を実行します。
[ トラフィック管理] > [負荷分散] > [サービス] に移動し、サービスを作成します。
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 を作成するには:
コマンドプロンプトで入力します。
- <nextHopVal>ns pbr <name><action>[-SrCip [\]] [-ネクストホップ\<operator><srcIPVal>] を追加
- 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 を追加します。