ポリシーベース ルーティングの設定

この章は、次の項で構成されています。

ポリシーベース ルーティングについて

ポリシーベース ルーティングを使用すると、IPv4 および IPv6 トラフィック フローに定義済みのポリシーを設定し、ルーティング プロトコルから派生したルートへの依存を弱めることができます。ポリシーベース ルーティングがイネーブルのインターフェイスで受信するすべてのパケットは、拡張パケット フィルタまたはルート マップを経由して渡されます。ルート マップでは、パケットの転送先を決定するポリシーを記述します。

ポリシーベース ルーティングには、次の機能が含まれます。

  • 送信元ベース ルーティング:異なるユーザ セットを起点とするトラフィックをポリシー ルータ上のそれぞれ異なる接続を使用してルーティングします。

  • QoS(Quality of Service):ネットワークの周辺で IP パケット ヘッダーに優先または ToS(タイプ オブ サービス)値を設定することによって、またはキューイング メカニズムを利用して、ネットワークのコアまたはバックボーンでトラフィックにプライオリティを設定することによって、トラフィックを差別化します(『Cisco Nexus 9000 Series NX-OS Quality of Service Configuration Guide』を参照)。

  • ロード シェアリング:トラフィックの特性に基づいて、複数のパスにトラフィックを分散します。

ポリシー ルート マップ

ルート マップのエントリごとに、match 文と set 文の組み合わせが 1 つずつ含まれています。match 文では、該当するパケットが特定のポリシーを満たす基準(つまり、満たすべき条件)を定義します。set 文節で、match 基準を満たしたパケットをどのようにルーティングするかを説明します。

ルート マップ文を許可または拒否として指定できます。文の解釈は次のとおりです。

  • 文に許可が指定されていて、なおかつパケットが一致基準を満たしている場合は、の set 文節が適用されます。そのアクションの 1 つに、ネクスト ホップの選択が含まれます。

  • 文に拒否が指定されている場合、一致基準を満たすパケットは標準のフォワーディング チャネルを通じて送り返され、宛先ベース ルーティングが実行されます。

  • 文が permit とマークされ、パケットがいずれのルート -マップ文にも一致しない場合、そのパケットは通常の転送チャネルを介して返送され、宛先ベースのルーティングが実行されます。


(注)  


ポリシー ルーティングは、パケットの送信元となるインターフェイスではなく、パケットを受信するインターフェイス上で指定します。


ポリシーベース ルーティングの set 基準

Cisco Nexus 9000 シリーズ スイッチは、ポリシーベース ルーティングで使用されるルートマップに対して次の set コマンドをサポートしています。

  • set {ip | ipv6} next-hop

  • set interface null0

これらの set コマンドは、ルートマップ シーケンス内では相互に排他的です。

最初のコマンドで、IP アドレスでは、パケットの転送先である宛先へのパス上の隣接ネクスト ホップ ルータを指定します。その時点でアップの接続インターフェイスに関連付けられた最初の IP アドレスがパケットのルーティングに使用されます。


(注)  


任意に、最大 32 の IP アドレスにバランシング トラフィックをロードするように、ネクスト ホップ アドレスのこのコマンドを設定できます。この場合、Cisco NX-OS は各 IP フローのすべてのトラフィックを特定の IP ネクスト ホップ アドレスに送信します。


パケットが定義された一致基準のいずれにも一致しない場合、そのパケットは標準の宛先ベース ルーティング プロセスを使用してルーティングされます。

ルート マップ処理ロジック

ルート マップを持つインターフェイスがパケットを受信すると、転送ロジックはシーケンス番号に従い各ルートマップ ステートメントを処理します。

ルート マップ文が route-map...permit 文の場合、パケットは match コマンドの基準と照合されます。このコマンドは、1つ以上のアクセスコントロールエントリ(ACE)を持つACLを参照する場合があります。パケットが ACL の許可 ACE に一致すると、ポリシーベース ルーティング ロジックは set コマンドがパケットで指定しているアクションを実行します。

ルート マップ文に route-map... 拒否文がある場合、パケットは一致コマンドの基準と照合されます。このコマンドは、1つ以上のACEを持つACLを参照する場合があります。パケットが ACL の許可 ACE に一致すると、ポリシーベース ルーティング プロセスが停止し、パケットはデフォルト IP ルーティング テーブルを使用してルーティングされます。


(注)  


set コマンドは、route-map... deny 文内部に影響しません。


  • ルート マップ設定に match 文が含まれていない場合、ポリシーベース ルーティング ロジックは set コマンドで指定されているアクションをパケットに対して実行します。すべてのパケットは、ポリシーベースルーティングを使用してルーティングされます。

  • ルートマップコンフィギュレーションがmatchステートメントを参照し、matchステートメントがアクセスコントロールエントリ(ACE)のない既存のACLまたは既存のACLを参照する場合、パケットはデフォルトルーティングテーブルを使用してルーティングされます。

  • set { ip | ipv6} next-hop コマンドで指定されているネクスト ホップがダウンしているか、アクセス不能であるか、削除されている場合、パケットはデフォルト ルーティング テーブルを使用してルーティングされます。

Cisco NX-OS リリース 9.2(3)以降では、next-hop ip-address load-share コマンドを使用して、ECMPパス上でネクスト ホップが再帰的である場合、ポリシーベース ルーティング トラフィックのバランスをとることができます。この状況は、次のスイッチ、ライン カード、およびモジュールでサポートされます。
  • N9K-C9372TX

  • N9K-X9564TX

  • N9K-X9732C-EX

すべてのネクスト ホップ ルーティング要求について、ルーティング プロファイル マネージャ(RPM)はユニキャスト ルーティング情報ベース(uRIB)を使用してそれらを解決します。また、RPM はすべての ECMP パスをプログラムするため、すべての ECMP パスを均等にロード バランシングできます。PMP over ECMP は IPv4 でのみサポートされます。

ポリシーベース ルーティングの前提条件

ポリシーベース ルーティングの前提条件は、次のとおりです。

  • インターフェイスに IP アドレスを割り当て、インターフェイスをアップにしてから、ポリシーベース ルーティング用のルート マップをインターフェイス上で適用します。

ポリシーベース ルーティングに関する注意事項と制約事項

ポリシーベース ルーティングに関する注意事項および制約事項は、次のとおりです。

  • 9700-EX/FX ライン カードを搭載した Cisco Nexus 9500 プラットフォーム スイッチは、IPv4 ポリシーベース ルーティングのみをサポートします。

  • 次のスイッチは、IPv4 および IPv6 のポリシーベース ルーティングをサポートします。

    • Cisco Nexus 9200 プラットフォーム スイッチ

    • Cisco Nexus 9300-EX/FX/FX2 プラットフォーム スイッチ

    • 9636C-R、9636C-RX、および 9636Q-R ライン カードを搭載した Cisco Nexus 9508 スイッチプロトコル ネイバーが直接接続されている場合は、明示的なホワイトリストが必要になることがあります)。

  • ポリシーベース ルーティングのルート マップでは、1 つのルート マップ文に match 文を 1 つだけ指定できます。

  • ポリシーベース ルーティングのルート マップでは、1 つのルート マップ文に match 文を 1 つだけ指定できます。IP SLA ポリシーベース ルーティングの詳細については、「Cisco Nexus 9000 シリーズ NX-OS IP SLA 設定ガイド」を参照してください。


    (注)  


    9636C-R、9636C-RX、および 9636Q-R ライン カードを搭載した Cisco Nexus 9508 スイッチは、IP SLA をサポートしていません。


  • match コマンドで、ポリシーベース ルーティング用ルート マップの複数の ACL を参照できません。

  • インターフェイスが同じ仮想ルーティング/転送(VRF)インスタンスに所属している場合は、ポリシーベース ルーティング対応のさまざまなインターフェイス間で、同じルート マップを共有できます。

  • 一致基準としてのプレフィックス リストの使用はサポートされていません。ポリシーベース ルーティングのルート マップでプレフィックス リストを使用しないでください。

  • ポリシーベース ルーティングは、ユニキャスト トラフィックのみをサポートしています。マルチキャスト トラフィックはサポートされていません。

  • ポリシーベース ルーティングは、FEX ポートの着信トラフィックでサポートされていません。

  • ポリシーベース ルーティングは、Cisco Nexus 9300-EX プラットフォーム スイッチの FEX ポートではサポートされません。

  • 9636C-R、9636C-RX、および 9636Q-R ライン カードを搭載した Cisco Nexus 9508 スイッチのみが、レイヤ 3 ポートチャネル サブインターフェイスを使用したポリシーベース ルーティングをサポートします。

  • ポリシーベース ルーティングのルート マップで使用される ACL には、拒否アクセス コントロール エントリ(ACE)を含めることができません。

  • ポリシーベース ルーティングは、デフォルト システム ルーティング モードのみでサポートされます。

  • Cisco Nexus 9000 シリーズおよび Cisco Nexus 3164Q スイッチは、 set vrf および set default next-hop コマンドをサポートしていません。

  • インターフェイス上に複数の機能(PBR や入力 ACL など)を設定すると、それらの機能の ACL は TCAM 最適化のためにマージされます。その結果、統計情報はサポートされません。

  • VXLAN を使用する PBR の場合、load-share キーワードは必要ありません。


    (注)  


    9700-EX/FX ライン カードを搭載した Cisco Nexus 9500 プラットフォーム スイッチは、VXLAN 経由の IPv4/IPv6 ポリシーベースルーティングをサポートします。9636C-R、9636C-RX、および 9636Q-R ライン カードを搭載した Cisco Nexus 9508 スイッチは、VXLAN を介したポリシーベース ルーティングをサポートしません。


  • Cisco Nexus 9000 シリーズ スイッチはポリシーベース ACL(PBACL)をサポートしています(オブジェクト グループ ACL とも呼びます)。詳細については、『Cisco Nexus 9000 Series NX-OS Security Configuration Guide』を参照してください。


    (注)  


    9636C-R、9636C-RX、および 9636Q-R ライン カードを搭載した Cisco Nexus 9508 スイッチは、PBACL をサポートしません。


  • PBR over VXLAN EVPN には、次の注意事項と制限事項が適用されます。

    • PBR over VXLAN EVPN は、Cisco Nexus 9300-EX FXプラットフォーム スイッチでのみサポートされます。

    • PBR over VXLAN は、IP SLA、VTEP ECMP、および set {ip | ipv6} next-hop ip-address コマンドの load-share キーワードをサポートしていません。

ポリシーベース ルーティングのデフォルト設定

表 1. デフォルトのポリシーベース ルーティング パラメータ

パラメータ

デフォルト

ポリシーベース ルーティング

ディセーブル

ポリシーベース ルーティングの設定

ポリシーベース ルーティング機能のイネーブル化

ルート ポリシーを設定する前に、ポリシーベース ルーティング機能をイネーブルにしておく必要があります。

手順

  コマンドまたはアクション 目的

ステップ 1

configure terminal

例:

switch# configure terminal
switch(config)#

グローバル コンフィギュレーション モードを開始します。

ステップ 2

[no] feature pbr

例:

switch(config)# feature pbr

ポリシーベース ルーティング機能をイネーブルにします。

ポリシーベース ルーティング機能を無効にするには、このコマンドの no 形式を使用します。

(注)  

 

no feature pbr コマンドは、インターフェイスに適用されているポリシーを削除します。ACL またはルートマップ設定は削除されず、システムチェックポイントも作成されません。

ステップ 3

(任意) show feature

例:

switch(config)# show feature
(任意)

有効および無効にされた機能を表示します。

ステップ 4

(任意) copy running-config startup-config

例:

switch(config)# copy running-config startup-config
(任意)

実行コンフィギュレーションを、スタートアップ コンフィギュレーションにコピーします。

ECMP 上のポリシーベース ルーティングの有効化

ECMP を介した PBR は、デフォルトでは有効になっていません。ルート ポリシーを設定する前に、ポリシーベース ルーティング機能をイネーブルにしておく必要があります。

手順

  コマンドまたはアクション 目的

ステップ 1

configure terminal

例:

switch# configure terminal
switch(config)#

グローバル コンフィギュレーション モードを開始します。

ステップ 2

[no] feature pbr

例:

switch(config)# feature pbr

ポリシーベース ルーティング機能をイネーブルにします。

ポリシーベース ルーティング機能を無効にするには、このコマンドの no 形式を使用します。

(注)  

 

no feature pbr コマンドは、インターフェイスに適用されているポリシーを削除します。ACL またはルートマップ設定は削除されず、システムチェックポイントも作成されません。

ステップ 3

(任意) show feature

例:

switch(config)# show feature
(任意)

有効および無効にされた機能を表示します。

ステップ 4

[no] hardware profile pbr ecmp paths max-paths

例:

switch(config)# hardware profile pbr ecmp paths max-paths 12
Warning!!: The pbr ecmp path limits have been changed. 
Please reload the switch now for the change to take effect.
switch(config)# 
switch(config)# no hardware profile pbr ecmp paths max-paths 12
Warning!!: The pbr ecmp path limits have been changed. 
Please reload the switch now for the change to take effect.
switch(config)# 

IP ネクスト ホップの ECMP パスの数を設定します。ただし、設定された IP ネクスト ホップでロード シェアを明示的に設定しない限り、トラフィックはすべてのパスを通過しない可能性があります。PBR ECMP パスを削除または変更すると、その変更は次のリロード後にのみ有効になります。範囲は 1 ~ 64 です。

ステップ 5

show system internal rpm state

PBR ECMP パスの現在設定されている値と動作値を表示します。

ルート ポリシーの設定

ポリシーベース ルーティングでルート マップを使用すると、着信インターフェイスにルーティング ポリシーを割り当てることができます。Cisco NX-OS はネクスト ホップおよびインターフェイスを検出するときに、パケットをルーティングします。

始める前に

9636C-R、9636C-RX、および 9636Q-R ライン カードを搭載した Cisco Nexus 9508 以外のスイッチの場合、IPv6 トラフィックに対してポリシーベース ルーティング ポリシーを適用する前に、IPv6 RACL TCAM リージョンを(TCAM カービングを使用して)設定する必要があります。この手順については、『Cisco Nexus 9000 Series NX-OS Security Configuration Guide』の「Configuring ACL TCAM Region Sizes」および「Configuring TCAM Carving - For Cisco NX-OS Release 6.1(2)I2(1) and Later Releases」を参照してください。


(注)  


スイッチには、IPv4 用の IPv4 RACL TCAM リージョンがデフォルトで用意されています。


手順

  コマンドまたはアクション 目的

ステップ 1

configure terminal

例:

switch# configure terminal
switch(config)#

グローバル コンフィギュレーション モードを開始します。

ステップ 2

interface type slot/port

例:

switch(config)# interface ethernet 1/2
switch(config-if)#

インターフェイス コンフィギュレーション モードを開始します。

ステップ 3

(任意) hardware profile pbr ecmp paths paths_limit

例:

switch(config-if)# hardware profile pbr ecmp paths 64
(任意)

Cisco NX-OS リリース 9.2(3) 以降では、すべての PBR IP ネクストホップの出力パスの数を最大64パスに制限する場合に、hardware profile pbr ecmp paths コマンドを指定できます。範囲は、1 ~ 64 パスです。たとえば、2 つの PBR ネクスト ホップ IP アドレスが set ip next-hopaddress1 address2 として設定されている場合、IP1 は 32 以上のネクスト ホップで解決でき、IP2 も 32 以上のネクスト ホップで解決できます。有効メンバー数は 64 メンバーを超えることがあり、ECMP グループあたり 64 メンバーのハードウェア制限を超えます。

ステップ 4

{ip | ipv6} policy route-map map-name

例:

switch(config-if)# ip policy route-map Testmap
switch(config-route-map)#

IPv4 または IPv6 ポリシーベース ルーティング用のルート マップをインターフェイスに割り当てます。

ステップ 5

route-map map-name [permit | deny] [seq]

例:

switch(config-if)# route-map Testmap
switch(config-route-map)#

ルート マップを作成するか、または既存のルート マップに対応するルート マップ コンフィギュレーション モードを開始します。seq を使用して、ルート マップ エントリを順序付けます。

ステップ 6

match {ip | ipv6} address access-list-name name [name... ]

例:

switch(config-route-map)# match ip address access-list-name ACL1

1 つまたは複数の IP アクセス コントロール リスト(ACL)に対して IPv4 または IPv6 アドレスを照合します。このコマンドはポリシーベース ルーティング用であり、ルート フィルタリングまたは再配布では無視されます。

ステップ 7

(任意) set ip next-hop address1 [address2... ] [load-share] [drop-on-fail]

例:

switch(config-route-map)# set ip next-hop 192.0.2.1
(任意)

ポリシーベース ルーティング用の IPv4 ネクストホップ アドレスを設定します。このコマンドでは、複数のアドレスが設定されている場合に、最初の有効なネクストホップ アドレスが使用されます。

任意の load-share キーワードを使用して、最大 32 のネクストホップ アドレスにトラフィックのロード バランシングを行います。

Cisco NX-OSリリース9.2(2) 以降では、設定されたネクスト ホップが到達不能になったときに、デフォルト ルーティングを使用する代わりに、オプションの drop-on-fail キーワードを使用してパケットをドロップできます。Cisco Nexus 9200、9300-EX、9300-FX、9300-FX2 プラットフォーム スイッチ、および 9364C スイッチ、および -EX および -FX ライン カードを備えた Cisco Nexus 9500 プラットフォーム スイッチがサポートされています。

ステップ 8

(任意) set ipv6 next-hop address1 [address2... ][load-share] [drop-on-fail]

例:

switch(config-route-map)# set ipv6 next-hop 2001:0DB8::1
(任意)

ポリシーベース ルーティング用の IPv6 ネクストホップ アドレスを設定します。このコマンドでは、複数のアドレスが設定されている場合に、最初の有効なネクストホップ アドレスが使用されます。

任意の load-share キーワードを使用して、最大 32 のネクスト ホップ アドレスにトラフィックのロード バランシングを行います。

Cisco NX-OSリリース9.2(2) 以降では、設定されたネクスト ホップが到達不能になったときに、デフォルト ルーティングを使用する代わりに、オプションの drop-on-fail キーワードを使用してパケットをドロップできます。Cisco Nexus 9200、9300-EX/FX/FX2 および 9364C プラットフォーム スイッチ、および -EX および -FX ライン カードを備えた Cisco Nexus 9500 プラットフォーム スイッチがサポートされています。

ステップ 9

(任意) set interface null0

例:

switch(config-route-map)# set interface null0
(任意)

ルーティングに使用するインターフェイスを設定します。パケットをドロップするには null0 インターフェイスを使用します。

ステップ 10

(任意) copy running-config startup-config

例:

switch(config)# copy running-config startup-config
(任意)

実行コンフィギュレーションを、スタートアップ コンフィギュレーションにコピーします。

ポリシーベース ルーティングの設定の確認

ポリシーベース ルーティングの設定情報を表示するには、次のいずれかのタスクを実行します。

コマンド 目的
show [ip | ipv6] policy [name]

IPv4 または IPv6 ポリシーに関する情報を表示します。

show route-map [name] pbr-statistics

ポリシー統計情報を表示します。

ポリシー統計を有効にするには、route-map map-name pbr-statistics を使用します。ポリシー統計を消去するためには、clear route-map map-name pbr-statisticsコマンドを使用します。

ポリシーベース ルーティングの設定例

インターフェイス上で単純なルート ポリシーを設定する例を示します。

feature pbr
ip access-list pbr-sample_1
  permit tcp host 10.1.1.1 host 192.168.2.1 eq 80
ip access-list pbr-sample_2
  permit tcp host 10.1.1.2 host 192.168.2.2 eq 80
! 
route-map pbr-sample permit 10
match ip address pbr-sample_1
set ip next-hop 192.168.1.1
route-map pbr-sample permit 20
match ip address pbr-sample_2
set ip next-hop 192.168.1.2
!
route-map pbr-sample pbr-statistics

interface ethernet 1/2 
  ip policy route-map pbr-sample

次の出力で、この設定を確認します。

switch# show route-map pbr-sample

route-map pbr-sample, permit, sequence 10 
 Match clauses:
   ip address (access-lists): pbr-sample_1
Set clauses:
   ip next-hop 192.168.1.1 
route-map pbr-sample, permit, sequence 20 
 Match clauses:
   ip address (access-lists): pbr-sample_2 
 Set clauses:
   ip next-hop 192.168.1.2 

switch# show route-map pbr-sample pbr-statistics

route-map pbr-sample, permit, sequence 10
Policy routing matches: 84 packets

route-map pbr-sample, permit, sequence 20
Policy routing matches: 94 packets

Default routing: 233 packets

(注)  


すべてのルートマップ シーケンスに対して表示されるポリシー ルーティング マッチ数には、ルートマップ内のシーケンスとマッチする着信データトラフィックのパケット数が含まれます。このカウンタは、PBR リダイレクション(そのシーケンスの「set」コマンド)が解決されたかどうかに関係なく増加します。同様に、上記の例では、show route-map pbr-statistics pbr-sample の出力の 2 つのルートマップ シーケンス(シーケンス 10 と 20)に対するポリシー ルーティング マッチ数が示されています。



(注)  


デフォルト ルーティングには、ルートマップ内のどのシーケンスともマッチしない着信データ トラフィックのパケット数が含まれます。同様に上記の例では、デフォルト ルーティングは、show route-map pbr-statistics pbr-sample 出力の最後に 1 回だけ表示されます。


この例は、ECMP パスと非 ECMP パス間のロード シェアリングを示しています。

switch# show run rpm
!Command: show running-config rpm
!Running configuration last done at: Sun Dec 23 16:02:32 2018
!Time: Sun Dec 23 16:06:13 2018

version 9.2(3) Bios:version 08.35
feature pbr

route-map policy1 pbr-statistics
route-map policy1 permit 10
  match ip address acl2
  set ip next-hop 131.1.1.2 load-share
route-map policy2 pbr-statistics
route-map policy2 permit 10
  match ip address acl2
  set ip next-hop verify-availability 131.1.1.2 track 1
  set ip next-hop verify-availability 30.1.1.2 track 2 load-share


interface Ethernet1/31
  ip policy route-map policy2


この例は、ネクスト ホップ ルーティング要求に関する情報を表示しています。

switch# show system internal rpm pbr ip nexthop
PBR IPv4 nexthop table for vrf default

30.1.1.2 Usable
  via 28.1.1.2 Ethernet1/18 a46c.2ae3.02a7

131.1.1.2 Usable
  via 111.1.1.2 Vlan81 8478.ac58.afc1
Usable
  via 112.1.1.2 Vlan82 8478.ac58.afc1
Usable
  via 113.1.1.2 Vlan83 8478.ac58.afc1
Usable
  via 114.1.1.2 Vlan84 8478.ac58.afc1
Usable
  via 115.1.1.2 Vlan85 8478.ac58.afc1
Usable
  via 116.1.1.2 Vlan86 8478.ac58.afc1
Usable
  via 117.1.1.2 Vlan87 8478.ac58.afc1
Usable
  via 118.1.1.2 Vlan88 8478.ac58.afc1

この例は、ユニキャスト RIB から受け取ったルートを表示しています。

switch# show ip route 130.1.1.2
IP Route Table for VRF "default"
'*' denotes best ucast next-hop
'**' denotes best mcast next-hop
'[x/y]' denotes [preference/metric]
'%<string>' in via output denotes VRF <string>

130.1.1.0/24, ubest/mbest: 8/0
    *via 111.1.1.2, Vlan81, [110/120], 00:07:57, ospf-1, inter
    *via 112.1.1.2, Vlan82, [110/120], 00:07:57, ospf-1, inter
    *via 113.1.1.2, Vlan83, [110/120], 00:07:57, ospf-1, inter
    *via 114.1.1.2, Vlan84, [110/120], 00:07:57, ospf-1, inter
    *via 115.1.1.2, Vlan85, [110/120], 00:07:57, ospf-1, inter
    *via 116.1.1.2, Vlan86, [110/120], 00:07:57, ospf-1, inter
    *via 117.1.1.2, Vlan87, [110/120], 00:07:57, ospf-1, inter
    *via 118.1.1.2, Vlan88, [110/120], 00:07:57, ospf-1, inter

switch# show ip route 30.1.1.2
IP Route Table for VRF "default"
'*' denotes best ucast next-hop
'**' denotes best mcast next-hop
'[x/y]' denotes [preference/metric]
'%<string>' in via output denotes VRF <string>

30.1.1.0/24, ubest/mbest: 1/0
    *via 28.1.1.2, [1/0], 00:38:36, static