Route Policy Manager の設定

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

Route Policy Manager について

Route Policy Manager は、ルート マップおよび IP プレフィックス リストをサポートしています。この機能は、ルート再配布に使用されます。プレフィックス リストには、1 つまたは複数の IPv4 または IPv6 ネットワーク プレフィックスおよび関連付けられたプレフィックス長の値を指定します。プレフィックス リストは、ボーダー ゲートウェイ プロトコル(BGP)テンプレート、ルート フィルタリング、またはルーティング ドメイン間で交換されるルートの再配布などの機能で、単独で使用できます。

ルート マップは、ルートおよび IP パケットの両方に適用できます。ルート フィルタリングおよび再配布は、ルート マップを使用してルートを渡します。

プレフィックス リスト

プレフィックス リストを使用すると、アドレスまたはアドレス範囲を許可または拒否することができます。プレフィックス リストによるフィルタリングでは、ルートまたはパケットのプレフィックスと、プレフィックス リストに指定されているプレフィックスの照合が行われます。特定のプレフィックスがプレフィックス リストのどのエントリとも一致しなかった場合、実質的に拒否されたものと見なされます。

プレフィックス リストに複数のエントリを設定し、エントリと一致したプレフィックスを許可または拒否できます。各エントリにはシーケンス番号が関連付けられています。この番号はユーザが設定できます。シーケンス番号が設定されていない場合は、Cisco NX-OS によって自動的にシーケンス番号が設定されます。Cisco NX-OS はシーケンス番号が最も小さいエントリから順番にプレフィックス リストを評価します。Cisco NX-OS は、所定のプレフィックスと最初に一致したエントリを処理します。一致すると、Cisco NX-OS は permit 文または deny 文を処理し、プレフィックス リストの残りのエントリは評価しません。


(注)  


プレフィックス リストが空の場合は、すべてのルートが許可されます。


プレフィックス リストのマスク

Cisco NX-OS は、IPv4 および IPv6 プレフィックス リストのマスクをサポートします。マスクでは、数値 1 と数値 0 を使用して、対応する IP アドレス ビットをどのように扱うかを指定します。

  • マスク ビット 0 は、対応するビット値を無視することを示します。

  • マスク ビット 1 は、対応するビット値が正確に一致しているかどうかを確認することを示します。

プレフィックス リストを使用してルート マップの IP アドレスを照合できます。この IP アドレスは再配布時にルーティング プロトコルで使用されます。IP アドレスは、マスク ビット 1 に対応するビットがプレフィックス リストで指定されたサブネットと同じであるプレフィックス リストと照合されます。

マスクを慎重に設定することにより、許可または拒否のテストに 1 つまたは複数の IP アドレスを選択できます。

プレフィックス リストのマスクを使用すると、マスクに非連続ビットを指定し、偶数または奇数の IP アドレスの範囲を定義できます。

ルート マップ

ルート マップは、ルートの再配布に使用できます。ルート マップ エントリは、一致基準および設定基準のリストからなります。一致基準では、着信ルートまたはパケットの一致条件を指定します。設定基準では、一致基準を満たした場合のアクションを指定します。

同じルート マップに複数のエントリを設定できます。これらのエントリには、同じルート マップ名を指定し、シーケンス番号で区別します。

一意のルート マップ名の下に 1 つまたは複数のルート マップ エントリをシーケンス番号に従って並べ、ルート マップを作成します。ルート マップ エントリのパラメータは、次のとおりです。

  • シーケンス番号

  • アクセス権:許可または拒否

  • 一致基準

  • 設定変更

ルート マップではデフォルトで、最小のシーケンス番号から順にルートまたは IP パケットが処理されます。continue 文を使用すると、次に処理するルート マップ エントリを決定できるので、別の順序で処理するようにルート マップを設定できます。

ルートマップのシーケンスのデフォルトアクション

ルート マップ内の任意のシーケンスのデフォルト アクションはpermit. です。許可アクションは次の状況で適用されます。

  • permit またはdeny. を明示的に指定せずにルート マップに新しいシーケンスを設定する場合

  • ルート マップで設定されたシーケンスを編集し、アクションを指定しない場合。この状況では、編集されたルートマップに元々 deny. が設定されていた場合でも、permit アクションが適用されます。たとえば、シーケンス 10 が deny で設定されていると仮定します。後ほど、deny を再度指定せずにシーケンス 10 を編集すると、そのシーケンスのアクションは permit. に設定されます。

ルートマップのシーケンスを設定または編集する場合は、常に正しいアクションを設定してください。そうしないと、デフォルトのアクションである permit が適用されます。

一致基準

さまざまな基準を使用して、ルート マップでルートや IP パケットを照合できます。BGP コミュニティ リストのように、特定のルーティング プロトコルだけに適用できる基準もありますが、IP 送信元または宛先アドレスなど、その他の基準はあらゆるルートまたは IP パケットに使用できます。

ルート マップに従ってルートまたはパケットを処理する場合、Cisco NX-OS は設定されている個々の match 文とルートまたはパケットを比較します。ルートまたはパケットが設定されている基準と一致した場合、Cisco NX-OS はルート マップ内で一致するエントリに対する許可または拒否設定、および設定されている設定基準に基づいて、このルートやパケットを処理します。

一致のカテゴリおよびパラメータは、次のとおりです。

  • BGP パラメータ:AS 番号、AS パス、コミュニティ属性、または拡張コミュニティ属性に基づく一致

  • プレフィックス リスト:アドレスまたはアドレス範囲に基づく一致

  • マルチキャスト パラメータ:ランデブー ポイント、グループ、または送信元に基づく一致

  • その他のパラメータ:IP ネクストホップ アドレスまたはパケット長に基づく一致

設定変更

ルートまたはパケットがルート マップのエントリと一致したら、設定済みの 1 つ以上の set 文に基づいて、そのルートまたはパケットを変更できます。

設定変更は次のとおりです。

  • BGP パラメータ:AS パス、タグ、コミュニティ、拡張コミュニティ、ダンプニング、ローカル プリファレンス、オリジン、または重み値属性の変更

  • メトリック:ルート メトリックまたはルート タイプの変更

  • その他のパラメータ:フォワーディング アドレスまたは IP ネクストホップ アドレスの変更

アクセス リスト

IP アクセス リストでは、次のような IP パケット フィールドとパケットを照合できます。

  • 送信元または宛先 IPv4 または IPv6 アドレス

  • プロトコル

  • Precedence

  • ToS

  • ルート マップで ACL(アクセス コントロール リスト)を使用できるのは、ポリシーベース ルーティングの場合に限られます。

BGP の AS 番号

BGP ピアとの照合に使用する AS 番号のリストを設定できます。BGP ピアがリスト内の AS 番号と一致し、さらに他の BGP ピア設定と一致する場合、BGP はセッションを作成します。BGP ピアがリスト内の AS 番号と一致しない場合は、BGP はピアを無視します。AS 番号は AS 番号の範囲のリストとして設定できます。また、AS パス リストを使用して AS 番号を正規表現と比較することもできます。

BGP の AS パス リスト

AS パス リストを設定すると、着信または発信 BGP ルートのアップデートをフィルタリングできます。ルート アップデートに AS パス リストのエントリと一致する AS パス属性が含まれている場合、ルータは設定されている許可または拒否条件に基づいてルートを処理します。ルート マップの中で AS パス リストを設定できます。

同じ AS パス リスト名を使用することによって、AS パス リストで複数の AS パス エントリを設定できます。ルータは最初に一致したエントリを処理します。

BGP のコミュニティ リスト

ルート マップのコミュニティ リストを使用すると、BGP コミュニティに基づいて BGP ルート アップデートをフィルタリングできます。コミュニティ属性はコミュニティ リストに基づいて照合できます。また、コミュニティ属性はルート マップを使用して設定できます。

コミュニティ リストには、1 つまたは複数のコミュニティ属性を指定します。同じコミュニティ リスト エントリに複数のコミュニティ属性を設定した場合、BGP ルートが一致と見なされるには、指定されたすべてのコミュニティ属性と一致しなければなりません。

同じコミュニティ リスト名を使用することによって、コミュニティ リストのそれぞれ個別のエントリとして、複数のコミュニティ属性を設定することもできます。この場合、ルータは最初に BGP ルートと一致したコミュニティ属性を、そのエントリの許可または拒否設定に基づいて処理します。

コミュニティ リストのコミュニティ属性は、次の形式のいずれか 1 つで設定できます。

  • 名前付きコミュニティ属性(internet no-export など)。

  • aa:nn 形式(最初の 2 バイトは 2 バイトの自律システム番号、最後の 2 バイトはユーザが定義するネットワーク番号を表します)。

  • 正規表現。

BGP の拡張コミュニティ リスト

拡張コミュニティ リストでは 4 バイトの AS 番号がサポートされています。拡張コミュニティ リストのコミュニティ属性は、次のいずれかの形式で設定できます。

  • aa4:nn 形式(最初の 4 バイトは 4 バイトの AS 番号、最後の 2 バイトはユーザが定義するネットワーク番号を表します)。

  • 正規表現。

Cisco NX-OS は汎用の特定拡張コミュニティ リストをサポートしています。このリストを使用すると、4 バイトの AS 番号に対して通常のコミュニティ リストと同様の機能を使用できます。汎用の特定拡張コミュニティ リストには次のプロパティを設定できます。

  • Transitive:BGP はコミュニティ属性を自律システム間に伝達します。

  • Nontransitive:BGP はコミュニティ属性を削除してからルートを他の自律システムに伝達します。

ルートの再配布およびルート マップ

ルート マップを使用すると、ルーティング ドメイン間でのルートの再配布を制御できます。ルート マップではルートの属性を照合し、一致基準を満たすルートだけを再配布します。設定変更を使用することによって、再配布時に、ルート マップでルート属性を変更することもできます。

ルータは再配布されたルートを各ルート マップ シーケンスと照合します。ルートマップ シーケンスで match 文が複数ある場合は、ルートマップ シーケンスでルートがすべての一致基準を満たしている必要があります。ルートがルート マップ シーケンスで定義されている一致基準を満たす場合は、そのシーケンスで拒否されたセットアクションが実行されます。ルートマップ シーケンスでルートが基準と一致しなかった場合、ルータは後続のルート マップ シーケンスとルートを比較します。ルートマップに対するこのルート評価は、一致するか、ルート マップ内のすべてのシーケンスによってルートが評価されるまで継続されます。最後に、ルートがルートマップシーケンスのいずれとも一致しない場合、ルータはルートの受け入れを拒否するか(インバウンド ルートマップの場合)、ルートの転送を拒否します(アウトバウンド ルートマップの場合)。


(注)  


BGP をIGP に再配布するとき、iBGP も再配布されます。この動作を無効にするには、ルート マップに追加 deny 文を挿入します。


Route Policy Manager の注意事項と制約事項

Route Policy Manager 設定時の注意事項および制約事項は、次のとおりです。

  • プレフィックス リスト内の名前は、大文字と小文字が区別されません。一意の名前を使用することを推奨します。大文字と小文字を変更しただけの同じ名前を使用しないでください。たとえば、CTCPrimaryNetworks と CtcPrimaryNetworks は 2 つの異なるエントリではありません。

  • ルートマップが存在しない場合、すべてのルートが拒否されます。

  • プレフィックス リストが存在しない場合は、すべてのルートが許可されます。

  • ルート マップ エントリで 2 つの無関係なエンティティを照合する場合、ルート マップ エントリのアクセス権(許可または拒否)によって、すべてのルートまたはパケットの処理結果が決まります。また、ルート マップ エントリの設定基準も適用されます。

  • ルート マップ エントリに match 文がない場合、ルート マップ エントリのアクセス権(許可または拒否)によって、すべてのルートまたはパケットの処理結果が決まります。

  • ルート マップ エントリの match 文の中で参照されたポリシー(プレフィックス リストなど)から no-match または deny-match が戻った場合、 は match 文を Cisco NX-OS 失敗として、次のルート マップ エントリを処理します。

  • ルート マップを変更しても、ルート マップ コンフィギュレーション サブモードを終了するまでは、Cisco NX-OS によりすべての変更が保留されます。その後、Cisco NX-OS がすべての変更をプロトコル クライアントに送信すると、変更が有効になります。

  • 同じルートマップシーケンスに IPv4 と IPv6 の両方の match ステートメントを含めないことを推奨します。両方が必要な場合は、同じルートマップの異なるシーケンスで指定する必要があります。

  • ルート マップは定義する前に使用できるので、設定変更を終えるときには、すべてのルート マップが存在していることを確認してください。

  • 再配布およびフィルタリングを行う場合、ルート マップの使用状況を確認できます。各ルーティング プロトコルには、これらの統計情報を表示する機能があります。

  • BGP をIGP に再配布するとき、iBGP も再配布されます。この動作を無効にするには、ルート マップに追加 deny 文を挿入します。

  • Route Policy Manager は MAC リストをサポートしていません。

  • ip access-list name コマンドの ACL 名の最大文字数は 64 です。ただし、RPM コマンドに関連付けられている ACL 名(ip prefix-list や match ip address など)は、最大 63 文字しか使用できません。

  • BGP は特定の match コマンドのみをサポートします。詳細については、「ルート マップの設定」の match コマンドの表を参照してください。

  • 「prefix-list」という名前の ACL を作成する場合、match ip address コマンドを使用して作成されたルート マップに関連付けることはできません。RPM コマンドの match ip address prefix-list は、前のコマンド(「prefix-list」ACL 名)をあいまいにします。

  • match ip address コマンドを使用する場合、設定できる ACL は 1 つだけです。

  • config-profile の複数の行で standard ip community-listip large-community-list を構成すると、そのシーケンスの最後に構成された行のみが保持されます。これら 2 つのコマンドを実行するには、すべてのコミュニティ値を構成し、config-profile で 1 つのコマンドとして実行する必要があります。

Route Policy Manager パラメータのデフォルト設定

次の表に、Route Policy Manager のデフォルト設定を示します。

表 1. デフォルトの Route Policy Manager パラメータ

パラメータ

デフォルト

Route Policy Manager

有効(Enabled)

アドミニストレーティブ ディスタンス

115

Route Policy Manager の設定


(注)  


Cisco IOS の CLI に慣れている場合、この機能に対応する Cisco NX-OS コマンドは通常使用する Cisco IOS コマンドと異なる場合があるので注意してください。


IP プレフィックス リストの設定

IP プレフィックス リストでは、プレフィックスおよびプレフィックス長のリストに対して IP パケットまたはルートを照合します。IPv4 には IP プレフィックス リスト、IPv6 には IPv6 プレフィックス リストを作成できます。

指定したプレフィックス長と完全に一致するプレフィックス リスト エントリのみを対象とするよう設定できます。また、指定したプレフィックス長の範囲に該当するすべてのプレフィックスを対象とすることもできます。

Cisco NX-OS リリース 9.3(9) 以降、NDFC/config-profile/dual-stage 構成モードの prefix-list を構成するとき、シーケンス番号が追加されていることを確認してください。また、シーケンスを変更するか、新しいものを挿入するとき、シーケンス番号を割り当てる代わりに、できれば 5 または 10 刻みで、シーケンス番号にずれが生じるようにします。

次に例を示します。
ip prefix-list allowprefix seq 10 permit 192.0.2.0/23 eq 24
ip prefix-list allowprefix seq 20 permit 209.165.201.0/27 eq 28

(注)  


Cisco NX-OS リリース 9.3.9 以降、prefix-list に config-profile にシーケンス番号がない場合は、 本リリース以降にアップグレードする前にシーケンス番号を追加してください。


ge キーワードと lt キーワードを使用すると、プレフィックス長の範囲を指定できます。着信パケットまたはルートがプレフィックス リストと一致すると判定されるのは、プレフィックスが一致し、プレフィックス長が ge キーワードの値(設定されている場合)以上かつ lt キーワードの値(設定されている場合)以下の場合です。キーワード eq を使用する場合、設定する値はプレフィックスのマスク長より大きくする必要があります。

プレフィックス アドレスとの比較に使用できる連続または非連続ルートの範囲を定義するには、 mask キーワードを使用します。

手順

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

ステップ 1

configure terminal

例:

switch# configure terminal
switch(config)#

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

ステップ 2

{ ip | ipv6 } prefix-list name description string

例:

switch(config)# ip prefix-list
AllowPrefix description allows
engineering server

プレフィックス リストについての情報ストリングを追加します。

ステップ 3

{ip | ipv6} prefix-list name [ seq number ] [{ permit | deny } prefix {[ eq prefix-length ] | [ ge prefix-length ] [ le prefix-length ]}] [ mask mask ]

例:

switch(config)# ip prefix-list
AllowPrefix seq 10 permit 192.0.2.0/23 eq 24
switch(config)# ipv6 prefix-list
AllowIPv6Prefix seq 10 permit 2001:0DB8:: le 32
switch(config)# ip prefix-list
even permit 0.0.0.0/32 mask 0.0.0.1
switch(config)# ipv6 prefix-list
even permit 2001:0DB8::/64 mask ffff:1::

IPv4 または IPv6 プレフィックス リストを作成するか、または既存のプレフィックス リストにプレフィックスを追加します。prefix-length は次のように照合されます。

  • eq :正確な プレフィックス長 を照合します。この値は、マスク長より大きくする必要があります。

  • ge :設定されている prefix length 以上のプレフィックス長が対象。

  • le :設定されている prefix length 以下のプレフィックス長が対象。

  • mask :ルーティング プロトコルで使用されるプレフィックス アドレスのビットと比較する、プレフィックス リストのプレフィックス アドレスのビットを指定します。このオプションは、Cisco Nexus 9200、9300-EX、および9300-FXプラットフォームスイッチと9700-EXおよび9700-FXラインカードのCisco NX-OSリリース9.3(3)以降で使用できます。

ステップ 4

(任意) show { ip | ipv6 } prefix-list name

例:

switch(config)# show ip prefix-list
AllowPrefix
(任意)

プレフィックス リストについての情報を表示します。

ステップ 5

(任意) copy running-config startup-config

例:

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

この設定変更を保存します。

次に、2 つのエントリからなる IPv4 プレフィックス リストを作成し、BGP ネイバーにプレフィックス リストを適用する例を示します。

switch# configure terminal
switch(config)# ip prefix-list allowprefix seq 10 permit 192.0.2.0/23 eq 24
switch(config)# ip prefix-list allowprefix seq 20 permit 209.165.201.0/27 eq 28
switch(config)# router bgp 65535
switch(config-router)# neighbor 192.0.2.1/16 remote-as 65534
switch(config-router-neighbor)# address-family ipv4 unicast
switch(config-router-neighbor-af)# prefix-list allowprefix in

次に、すべての/ 24奇数IPアドレスの一致マスクを使用してIPv4プレフィックスリストを作成する例を示します。

switch# configure terminal
switch(config)# ip prefix-list list1 seq 7 permit 22.1.1.0/24 mask 255.255.1.0
switch(config)# show route-map test
route-map test, permit, sequence 7
Match clauses:
ip address prefix-lists: list1
Set clauses:
extcommunity COST:igp:10:20
switch(config)# show ip prefix-list list1
ip prefix-list list1: 1 entries
seq 7 permit 22.1.1.0/24 mask 255.255.1.0

次に、サブネットプレフィックスが17以上の21.1.0.0/16のすべてのサブネットに一致するIPv4プレフィックスリストを作成する例を示します。maskオプションにより、3番目のオクテットの最初のビットが設定されていない(偶数)着信プレフィックスだけが照合されます。

switch# configure terminal
switch(config)# ip prefix-list list1 seq 10 permit 21.1.0.0/16 ge 17 mask 255.255.1.0

AS パス リストの設定

発信と着信の両方の BGP ルートに AS パス リスト フィルタを指定できます。各フィルタは、正規表現を使用するアクセス リストです。正規表現が ASCII ストリングとして表されたルートの AS パス属性と一致した場合は、許可または拒否条件が適用されます。

手順

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

ステップ 1

configure terminal

例:

switch# configure terminal
switch(config)#

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

ステップ 2

ip as-path access-list name {deny | permit } expression

例:

switch(config)# ip as-path access-list
Allow40 permit 40

正規表現を使用して BGP AS パス リストを作成します。

ステップ 3

(任意) show {ip | ipv6 } as-path-access-list name

例:

switch(config)# show ip
as-path-access-list Allow40
(任意)

as-path アクセス リストの情報を表示します。

ステップ 4

(任意) copy running-config startup-config

例:

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

この設定変更を保存します。

次に、2 つのエントリからなる AS パス リストを作成し、BGP ネイバーに AS パス リストを適用する例を示します。

switch# configure terminal
switch(config)# ip as-path access-list AllowAS permit 64510
switch(config)# ip as-path access-list AllowAS permit 64496
switch(config)# copy running-config startup-config
switch(config)# router bgp 65535:20
switch(config-router)# neighbor 192.0.2.1/16 remote-as 65535:20
switch(config-router-neighbor)# address-family ipv4 unicast
switch(config-router-neighbor-af)# filter-list AllowAS in

BGP AS-path 属性の置き換え

次の手順では、着信および発信ルート マップの BGP as-path 属性を変更することにより、BGP ルーティング ポリシーを操作できます。

BGP as-path 属性を置き換えるときは、次のガイドラインを考慮してください。

  • この機能は、アドレス ファミリ識別子 (AFI) ごとに eBGP ネイバーにのみ適用されます。iBGP ネイバーで機能を設定しようとしても、構成は無視されます。

  • この機能を備えたルート マップは、BGP ネイバーのインバウンド側とアウトバウンド側の両方に適用できます。

  • この機能は、AS_SET、AS_SEQUENCE、CONFED_SET、および CONFED_SEQUENCE の任意の組み合わせをサポートします。

  • 2 バイト AS のみをサポートする BGP スピーカーと対話する場合、4 バイト AS 番号は予約済みの 2 バイト AS 番号 23456 に置き換えられます。

  • コンフェデレーション識別子が設定されている場合は、コンフェデレーションの外部にあるピアと対話するときに、CLI でローカル ASN としてコンフェデレーション識別子を使用することを検討してください。同じコンフェデレーションに属するピアと対話する場合は、router bgp asn コマンドでプロセス ASN を使用することを検討してください。

  • BGP local-as 機能が設定されている場合、設定された local-as は CLI でローカル ASN と見なされます。

  • アウトバウンド ルート マップの場合、ローカル ASN は常に CLI からの結果の as_path に付加されます。

  • set as-path または set as-path replace コマンドでは、最大 32 個の AS 番号を設定できます。

  • 1 つのルート マップ シーケンスの下では、set as-path set as-path prepend 、および set as-path replace のオプションのうち 1 つだけを設定できます。

  • remove-private-as が設定されている場合、アウトバウンド側で新しいルート マップ コマンドを適用する前に適用されます。

  • as-override が設定されている場合、アウトバウンド側で新しいルート マップ コマンドを適用した後に適用されます。

  • AS_PATH ループ チェックは、新しいルート マップ コマンドが着信側と発信側の両方に適用される前に、元の AS_PATH で実行されます。これらのチェックは、インバウンド側で allow-as in とアウトバウンド側でdisable-peer-as-check を使用することで緩和できます。

完全な AS パスの置き換え

この手順を使用して、着信または発信 BGP アップデートの AS パスをカスタム AS パスに変更します。AS パスを完全に削除することもできます。

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

ステップ 1

configure terminal

例:
switch# configure terminal
switch(config)#

グローバル設定モードを開始します。

ステップ 2

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

例:
switch(config)# route-map Testmap permit 10
switch(config-route-map)#

ルート マップを作成するか、または既存のルート マップに対応するルート マップ設定モードを開始します。ルート マップのエントリを順序付けるには、seq を使用します。

ステップ 3

[no] set as-path { none | {as-number | remote-as | local-as}+ ] }

例:
switch(config-route-map)# set as-path 11 local-as remote-as 13

AS_PATH をカスタム ASN のリストに置き換えるか、AS_PATH をクリアします。コマンド オプションは次のとおりです。

  • as-number : 指定された AS 番号。

  • remote-as : BGP ピアの AS 番号。

  • local-as : ローカル AS 番号。

none キーワードは、AS パスを完全に削除します。

次の例では、これらの値が想定されています。

  • 元の AS_PATH は 10 20 30 40 50 60 です。

  • local-as は 100 です。

  • remote-as は 200 です。

この例は、カスタム AS パスを指定する方法を示しています。このコマンドは、AS パスを 11 100 200 13 200 10.10 65535 に変更します。


switch# configure terminal
switch(config)# route-map Testmap permit 10
switch(config-route-map)# set as-path 11 local-as remote-as 13 remote-as 10.10 65535

この例は、AS パスをクリアする方法を示しています。このコマンドにより、AS パスが空になります。


switch# configure terminal
switch(config)# route-map Testmap permit 10
switch(config-route-map)# set as-path none

AS パスでの選択した AS 番号の置き換え

この手順を使用して、AS パス内の特定の AS 番号を置き換え、着信または発信 BGP 更新でそれらをカスタム AS 番号に置き換えます。private-as をマッチ キーワードとして指定することもできます。この場合、private-as の任意のインスタンスが一致し、置換または削除できます。

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

ステップ 1

configure terminal

例:
switch# configure terminal
switch(config)#

グローバル設定モードを開始します。

ステップ 2

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

例:
switch(config)# route-map Testmap permit 10
switch(config-route-map)#

ルート マップを作成するか、または既存のルート マップに対応するルート マップ設定モードを開始します。ルート マップのエントリを順序付けるには、seq を使用します。

ステップ 3

[no] set as-path replace {asn_list | private-as} [with {as-number | remote-as | none}]

例:
switch(config-route-map)# set as-path replace 1, 2, private-as with remote-as

with キーワードが指定されていない場合は、コンマで区切られた asn_list で示されている ASN のインスタンスを local-as に置き換えます。private-as キーワードが指定されている場合は、private-as を置き換えます。

with キーワードが指定されている場合は、一致した ASN の with キーワードの後の値、または private-as キーワードが指定されている場合は private-as を置き換えます。

with キーワードに続くコマンド オプションは次のとおりです。

  • as-number : 一致した値は、指定された AS 番号に置き換えられます。

  • remote-as : 一致した値は、BGP ピアの AS 番号に置き換えられます。

  • none : 一致した値は AS-path から削除されます。

次の例では、これらの値が想定されます。

  • 元の AS_PATH は 1 5 2 10.10 65534 20 です。

  • local-as は 100 です。

  • remote-as は 200 です。

この例は、2 つの特定の ASN と、private-as を local-as に置き換える方法を示しています。このコマンドは、AS パスを 100 5 100 10.10 100 20 に変更します。


switch# configure terminal
switch(config)# route-map Testmap permit 10
switch(config-route-map)# set as-path replace 1, 2, private-as

この例は、2 つの特定の ASN と、private-as をネイバーの ASN (remote-as) に置き換える方法を示しています。このコマンドは、AS パスを 200 5 200 10.10 200 20 に変更します。


switch# configure terminal
switch(config)# route-map Testmap permit 10
switch(config-route-map)# set as-path replace 1, 2, private-as with remote-as

この例は、2 つの特定の ASN と private-as を削除する方法を示しています。このコマンドは、AS パスを 5 10.10 20 に変更します。


switch# configure terminal
switch(config)# route-map Testmap permit 10
switch(config-route-map)# set as-path replace 1, 2, private-as with none

コミュニティ リストの設定

コミュニティ リストを使用すると、コミュニティ属性に基づいて BGP ルートをフィルタリングできます。コミュニティ番号は aa:nn 形式の 4 バイト値です。最初の 2 バイトは自律システム番号を表し、最後の 2 バイトはユーザ定義のネットワーク番号です。

同じコミュニティ リスト文で複数の値を設定した場合、コミュニティ リスト フィルタを満足させるには、すべてのコミュニティ値が一致しなければなりません。複数の値をそれぞれ個別のコミュニティ リスト文で設定した場合は、最初に条件が一致したリストが処理されます。

コミュニティ リストを match 文で使用すると、コミュニティ属性に基づいて BGP ルートをフィルタリングできます。

手順

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

ステップ 1

configure terminal

例:

switch# configure terminal
switch(config)#

グローバル設定モードを開始します。

ステップ 2

次のいずれか 1 つを入力します。

  • ip community-list standard list-name {deny | permit } [community-list ] [internet ] [local-AS ] [no-advertise ] [no-export ]

    または

  • ip community-list expanded list-name {deny | permit } expression

例:

switch(config)# ip community-list
standard BGPCommunity permit
no-advertise 65535:20

または

switch(config)# ip community-list
expanded BGPComplex deny
50000:[0-9][0-9]

最初のオプションでは、標準 BGP 拡張コミュニティ リストを作成します。list-名 には最大 63 文字の英数字を使用できます。大文字と小文字は区別されます。community-list には、1 つ以上のコミュニティを aa:nn 形式で指定できます。

二番目のオプションでは、正規表現を使用して BGP 拡張コミュニティ リストを作成します。

ステップ 3

(任意) show ip community list name

例:

switch(config)# show ip community-list
BGPCommunity
(任意)

コミュニティ リストの情報を表示します。

ステップ 4

(任意) copy running-config startup-config

例:

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

この設定変更を保存します。

次に、2 つのエントリからなるコミュニティ リストの作成例を示します。

switch# configure terminal
switch(config)# ip community-list standard BGPCommunity permit no-advertise 65535:20
switch(config)# ip community-list standard BGPCommunity permit local-AS no-export
switch(config)# copy running-config startup-config

拡張コミュニティ リストの設定

拡張コミュニティ リストを使用すると、コミュニティ属性に基づいて BGP ルートをフィルタリングできます。コミュニティ番号は aa4:nn 形式の 6 バイト値です。最初の 4 バイトは自律システム番号を表し、最後の 2 バイトはユーザ定義のネットワーク番号です。

同じ拡張コミュニティ リスト文で複数の値を設定した場合、拡張コミュニティ リスト フィルタの条件を満たすには、すべての拡張コミュニティ値が一致しなければなりません。複数の値をそれぞれ個別の拡張コミュニティ リスト文で設定した場合は、最初に条件が一致したリストが処理されます。

拡張コミュニティ リストを match 文で使用すると、拡張コミュニティ属性に基づいて BGP ルートをフィルタリングできます。


(注)  


extcommunity を AS2:NN または AS4:NN(as-plain)形式で常に設定します。


手順

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

ステップ 1

configure terminal

例:

switch# configure terminal
switch(config)#

グローバル設定モードを開始します。

ステップ 2

次のいずれか 1 つを入力します。

  • ip extcommunity-list standard list-name {deny | permit } 4byteas-generic {transitive | nontransitive } community1 [community2... ]

    または

  • ip extcommunity-list expanded list-name {deny | permit } expression

例:

switch(config)# ip extcommunity-list
standard BGPExtCommunity permit
4byteas-generic transitive 65535:20

または

switch(config)# ip extcommunity-list
expanded BGPExtComplex seq 5 deny
1.5:[0-9][0-9]

最初のオプションでは、標準 BGP 拡張コミュニティ リストを作成します。community には、1 つ以上の拡張コミュニティを aa4:nn 形式で指定できます。

二番目のオプションでは、正規表現を使用して拡張 BGP 拡張コミュニティ リストを作成します。

ステップ 3

(任意) show ip community-list name

例:

switch(config)# show ip community-list
BGPCommunity
(任意)

拡張コミュニティ リストの情報を表示します。

ステップ 4

(任意) copy running-config startup-config

例:

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

この設定変更を保存します。

次に、汎用の特定拡張コミュニティ リストを作成する例を示します。

switch# configure terminal
switch(config)# ip extcommunity-list standard test1 seq 5 permit 4byteas-generic transitive
65535:40 65535:60
switch(config)# copy running-config startup-config

ルート マップの設定

ルート マップを使用して、ルートの再配布やルート フィルタリングを行うことができます。ルート マップには、複数の一致基準と複数の設定基準を含めることができます。

BGP にルート マップを設定すると、BGP ネイバー セッションの自動ソフト クリアまたはリフレッシュのトリガーになります。

手順

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

ステップ 1

configure terminal

例:

switch# configure terminal
switch(config)#

グローバル設定モードを開始します。

ステップ 2

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

例:

switch(config)# route-map Testmap permit 10
switch(config-route-map)#

ルート マップを作成するか、または既存のルート マップに対応するルート マップ設定モードを開始します。seq を使用して、ルート マップ エントリを順序付けます。

ステップ 3

(任意) continue seq

例:

switch(config-route-map)# continue 10
(任意)

ルート マップで次を処理するシーケンス文を決定します。使用するのは、フィルタリングおよび再配布の場合だけです。

ステップ 4

(任意) exit

例:

switch(config-route-map)# exit
(任意)

ルート マップ コンフィギュレーション モードを終了します。

ステップ 5

(任意) copy running-config startup-config

例:

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

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

ルート マップ コンフィギュレーション モードで、ルート マップに対して次のオプションの match パラメータを設定できます。


(注)  


default-information originate コマンドでは、オプションのルート マップの match 文は無視されます。


コマンド

目的

match as-path name [ name... ]

例:

switch(config-route-map)# match as-path Allow40

1 つまたは複数の AS パス リストと照合。AS パス リストは、ip as-path access-list コマンドで作成します。

match as-number { number [,number... ] | as-path-list name [ name... ]}

例:

switch(config-route-map)# match as-number 33,50-60

1 つまたは複数の AS 番号または AS パス リストと照合。AS パス リストは、ip as-path access-list コマンドで作成します。指定できる範囲は 1 ~ 65535 です。AS パス リスト名には最大 63 文字の英数字を使用できます。大文字と小文字は区別されます。

match community name [name... ][ exact-match ]

例:

switch(config-route-map)# match community BGPCommunity

1 つまたは複数のコミュニティ リストと照合。コミュニティ リストは、ip community-list コマンドで作成します。

match extcommunity name [name... ][ exact-match ]

例:

switch(config-route-map)# match extcommunity BGPextCommunity

1 つまたは複数の拡張コミュニティ リストと照合。コミュニティ リストは、ip extcommunity-list コマンドで作成します。

match interface interface-type number [ interface-type number... ]

例:

switch(config-route-map)# match interface e 1/2

設定済みのインターフェイスのいずれかからのネクスト ホップと照合。? を使用すると、サポートされているインターフェイス タイプのリストを検索できます。

(注)  

 

BGP はこのコマンドをサポートしていません。

match ip address prefix-list name [ name... ]

例:

switch(config-route-map)# match ip address prefix-list AllowPrefix

1 つまたは複数の IPv4 プレフィックス リストと照合。プレフィックス リストは ip prefix-list コマンドを使用して作成します。

match ipv6 address prefix-list name [ name... ]

例:

switch(config-route-map)# match ip address prefix-list AllowIPv6Prefix

1 つまたは複数の IPv6 プレフィックス リストと照合。プレフィックス リストは ipv6 prefix-list コマンドを使用して作成します。

match ip multicast [ source ipsource ] [[ group ipgroup] [ rp iprp ]]

例:

switch(config-route-map)# match ip multicast rp 192.0.2.1

マルチキャスト送信元、グループ、またはランデブー ポイントに基づいて IPv4 マルチキャスト パケットを照合。

(注)  

 

BGP はこのコマンドをサポートしていません。

match ipv6 multicast [source ipsource ][[ group ipgroup ] [ rp iprp ]]

例:

switch(config-route-map)# match ip multicast source 2001:0DB8::1

マルチキャスト送信元、グループ、またはランデブー ポイントに基づいて IPv6 マルチキャスト パケットを照合。

(注)  

 

BGP はこのコマンドをサポートしていません。

match ip next-hop prefix-list name [ name ... ]

例:

switch(config-route-map)# match ip next-hop prefix-list AllowPrefix

1 つまたは複数の IP プレフィックス リストに対して、ルートの IPv4 ネクストホップ アドレスを照合。プレフィックス リストは ip prefix-list コマンドを使用して作成します。

match ipv6 next-hop prefix-list name [ name ... ]

例:

switch(config-route-map)# match ipv6 next-hop prefix-list AllowIPv6Prefix

1 つまたは複数の IP プレフィックス リストに対して、ルートの IPv6 ネクストホップ アドレスを照合。プレフィックス リストは ipv6 prefix-list コマンドを使用して作成します。

match ip route-source prefix-list name [ name ... ]

例:

switch(config-route-map)# match ip route-source prefix-list AllowPrefix

1 つまたは複数の IP プレフィックス リストに対して、ルートの IPv4 ルート送信元アドレスを照合。プレフィックス リストは ip prefix-list コマンドを使用して作成します。

match ipv6 route-source prefix-list name [ name ...]

例:

switch(config-route-map)# match ipv6 route-source prefix-list AllowIPv6Prefix
1 つまたは複数の IP プレフィックス リストに対して、ルートの IPv6 ルート送信元アドレスを照合。プレフィックス リストは ipv6 prefix-list コマンドを使用して作成します。

match metric value [ +- deviation. ] [ value.. ]

例:

switch(config-route-map)# match metric 50 + 10

ルート メトリック値を 1 つまたは複数のメトリック値または値の範囲と照合。メトリック範囲は +- deviation 引数を使用して設定します。ルート マップは次の範囲に該当するすべてのルート メトリックと照合されます。

value - deviationvalue + deviation.

match ospf-area area-id

例:

switch(config-route-map)# match ospf-area 1

OSPFv2またはOSPFv3エリアIDと一致します。

エリア ID の範囲は 0 ~ 4294967295 です。

(注)  

 

BGP はこのコマンドをサポートしていません。

match route-type route-type

例:

switch(config-route-map)# match route-type level 1 level 2

ルート タイプと照合。route-type は、次のうちの 1 つまたは複数にできます。

  • external:外部ルート(BGP、EIGRP、OSPF タイプ 1 または 2)

  • エリア間:OSPF エリア間ルート

  • internal:内部ルート(OSPF エリア内またはエリア間ルートを含む)

  • エリア内:OSPF のエリア内ルート

  • レベル 1:IS-IS レベル 1 ルート

  • レベル 2:IS-IS レベル 2 ルート

  • ローカル:ローカルで生成されたルート

  • nssa-external:NSSA 外部ルート(OSPF タイプ 1 または 2)

  • type-1:OSPF 外部タイプ 1 ルート

  • type-2:OSPF 外部タイプ 2 ルート

(注)  

 

BGP はこのコマンドをサポートしていません。

match vlan vlan-id [ vlan-range ]

例:

switch(config-route-map)# match vlan 3, 5-10

VLAN と照合。

(注)  

 

BGP はこのコマンドをサポートしていません。

ルート マップ設定モードで、オプションとして、ルート マップに次の set パラメータを設定できます。

コマンド

目的

set as-path { tag | prepend { last-as number | as-1 [as-2. .. ]}}

例:

switch(config-route-map)# set as-path prepend 10 100 110

BGP ルートの AS パス属性を変更します。最後の AS 番号として設定された number または特定の AS パス値としてのストリング(as-1 as-2...as-n)をプリペンドできます。

set comm-list name delete

例:

switch(config-route-map)# set comm-list BGPCommunity delete

着信または発信 BGP ルート アップデートのコミュニティ属性から、コミュニティを削除します。コミュニティ リストは ip community-list コマンドを使用して作成します。

set community { none | additive | local-AS | no-advertise | no-export | community-1 [community-2... ]}

例:

switch(config-route-map)# set community local-AS

BGP ルート アップデートのコミュニティ属性を設定します。

(注)  

 

ルート マップ属性の同じシーケンスで、set community コマンドと set comm-list delete コマンドを両方使用すると、設定処理より先に削除処理が実行されます。

(注)  

 

send-community コマンドを BGP ネイバー アドレス ファミリ コンフィギュレーション モードで使用して、BGP コミュニティ属性を BGP ピアにプロパゲートします。

set dampening half life reuse suppress duration

例:

switch(config-route-map)# set dampening 30 1500 10000 120

BGP ルート ダンプニング パラメータを設定します。

  • halflife:指定できる範囲は 1 ~ 45 分です。デフォルトは 15 です。

  • reuse:指定できる範囲は 1 ~ 20000 秒です。デフォルトは 750 です。

  • suppress:指定できる範囲は 1 ~ 20000 です。デフォルトは 2000 です。

  • duration:指定できる範囲は 1 ~ 255 分です。デフォルトは 60 です。

set distance value

例:

switch(config-route-map)# set distance 150

OSPFv2 または OSPFv3 のルートのアドミニストレーティブ ディスタンスを設定します。範囲は 1 ~ 255 です。

set extcomm-list name delete

例:

switch(config-route-map)# set extcomm-list BGPextCommunity delete

着信または発信 BGP ルート アップデートの拡張コミュニティ属性から、コミュニティを削除します。拡張コミュニティ リストは ip extcommunity-list コマンドを使用して作成します。

set extcommunity 4byteas-generic { transitive | nontransitive }{ none | additive ] community-1 [community-2... ]}

例:

switch(config-route-map)# set extcommunity generic transitive 1.0:30

BGP ルート アップデートの拡張コミュニティ属性を設定します。

(注)  

 

ルート マップ属性の同じシーケンスで、set extcommunity コマンドと set extcomm-list delete コマンドを両方使用すると、設定処理より先に削除処理が実行されます。

send-community コマンドを BGP ネイバー アドレス ファミリ コンフィギュレーション モードで使用して、BGP コミュニティ属性を BGP ピアにプロパゲートします。

set extcommunity cost community-id1 cost [ igp | pre-bestpath ] [community-id2... ]}

例:

switch(config-route-map)# set extcommunity cost 33 1.0:30

BGP ルート アップデートのコスト コミュニティ属性を設定します。この属性は、ローカルの自律システムまたは自律連合の BGP 最良パス選択プロセスをカスタマイズすることができます。community-id の範囲は 0 ~ 255 です。cost の範囲は 0 ~ 4294967295 です。最も低いコストを持つパスが優先されます。コストが同じ場合は、最も低いコスト コミュニティ番号を持つパスが優先されます。

igp キーワードは IGP コスト比較の後にコストを比較します。pre-bestpath キーワードは、ベストパス アルゴリズムの他のすべてのステップの前に比較します。

set extcommunity rt community-1 [ additive ] [community-2.. .]}

例:

switch(config-route-map)# set extcommunity rt 1.0:30

BGP ルート更新の拡張コミュニティ ルート ターゲット属性を設定します。community の値は、2 バイトの AS 番号: 4 バイトのネットワーク番号、4 バイトの AS 番号: 2 バイトのネットワーク番号、または IP アドレス: 2 バイトのネットワーク番号で指定します。

additive キーワードは、ルート ターゲットを既存の拡張コミュニティ ルート ターゲット属性に追加するために使用します。

set forwarding-address

例:

switch(config-route-map)# set forwarding-address

OSPF のフォワーディング アドレスを設定します。

set ip next-hop unchanged

例:

switch(config-route-map)# set ip next-hop unchanged

不変のネクスト ホップ IP アドレスを指定します。このコマンドは、BGP IPv6-over-IPv4 ピアリングに必要です。

(注)  

 

IPv4 ネクスト ホップを使用した BGP IPv6 ユニキャスト ルートの場合、NX-OS は、BGP ネイバーに向けて構成されたアウトバウンド ルート マップ内で構成された set IPv6 next-hop unchanged コマンドをサポートしません。

set level { backbone | level-1 | level-1-2 | level-2 }

例:

switch(config-route-map)# set level backbone

IS-IS 用にルートをインポートするエリアを設定します。IS-IS のオプションは level-1、level-1-2、または level-2 です。デフォルトは level-1 です。

set local-preference value

例:

switch(config-route-map)# set local-preference 4000

BGP ローカル プリファレンス値を設定します。範囲は 0 ~ 4294967295 です。

set metric [ + | - ] bandwidth-metric

例:

switch(config-route-map)# set metric +100

既存のメトリック値を増減します。メトリックは Kb/s 単位です。範囲は 0 ~ 4294967295 です。

set metric bandwidth [ delay reliability load mtu ]

switch(config-route-map)# set metric 33 44 100 200 1500

ルート メトリック値を設定します。

メトリックは次のとおりです。

  • metric0:帯域幅(Kb/s)。範囲は 0 ~ 4294967295 です。

  • metric1:遅延(10 マイクロ秒単位)。

  • metric2:信頼性。指定できる範囲は 0 ~ 255(100% の信頼性)です。

  • metric3:ロード中。指定できる範囲は 1 ~ 255(100% のロード)です。

  • metric4:パスの MTU。有効な範囲は 1 ~ 16777215 です。

set metric-type { external | internal | type-1 | type-2 }

例:

switch(config-route-map)# set metric-type internal

宛先ルーティング プロトコルのメトリック タイプを設定します。オプションは次のとおりです。

external:IS-IS 外部メトリック

internal:BGP の MED として IGP メトリックを使用

type-1:OSPF 外部タイプ 1 メトリック

type-2:OSPF 外部タイプ 2 メトリック

set nssa-only

例:

switch(config-route-map)# set nssa-only

P ビット セットを持たない ASBR で生成されたタイプ 7 LSA を設定します。これにより、OSPF で、タイプ 7 からタイプ 5 への LSA 変換が行われなくなります。

set origin { egp as-number | igp | incomplete }

例:

switch(config-route-map)# set origin incomplete

BGP オリジン属性を設定します。EGP as-number の範囲は 0 ~ 65535 です。

set weight count

例:

switch(config-route-map)# set weight 33

BGP ルートの重み値を設定します。範囲は 0 ~ 65535 です。

set metric-type internal コマンドは、発信ポリシーと eBGP ネイバーにのみ作用します。同じ BGP ピア発信ポリシーに metric コマンドと metric-type internal コマンドを両方設定した場合、Cisco NX-OS は metric-type internal コマンドを無視します。

Route Policy Manager の設定の確認

ポリシー マネージャ設定情報を表示するには、次の作業のいずれかを行います。

コマンド 目的

show ip community-list [name ]

コミュニティ リストの情報を表示します。

show ip ext community-list [name ]

拡張コミュニティ リストの情報を表示します。

show [ip | ipv6 ] prefix-list [name ]

IPv4 または IPv6 プレフィックス リストの情報を表示します。

show route-map [name ]

ルート マップの情報を表示します。

Route Policy Manager の設定例

次の例では、アドレス ファミリを使用して Route Policy Manager を設定し、ネイバー 209.0.2.1 からのユニキャスト ルートやマルチキャスト ルートが AllowPrefix プレフィックス リストと一致した場合に、それらのルートが承認されるようにします。


router bgp 64496
 
neighbor 172.16.0.1 remote-as 64497
  address-family ipv4 unicast
    route-map filterBGP in

route-map filterBGP
 match ip address prefix-list AllowPrefix

ip prefix-list AllowPrefix 10 permit 192.0.2.0/24
ip prefix-list AllowPrefix 20 permit 172.16.201.0/27

関連項目

Route Policy Manager の詳細については、次の項目を参照してください。