内容

概要

前提条件

要件

使用するコンポーネント

表記法

背景説明

ルートマップの基本

Open Shortest Path First

再配布に適用されるルートマップで使用するコマンド

サポート対象外の一致を設定し、ルートマップのコマンドを設定する

ルートマップによる再配布の 2 つのプロトコルの特性

コマンド サポート表

表 1 - プロトコルによってルーティング テーブルにインストールされたルートを照合するルートマップ コマンド

表 2 - ターゲット プロトコルへの再配布中にルート属性を変更するコマンド

結論

関連情報

概要

このドキュメントでは、ダイナミックルーティングプロトコルのredistributeコマンドで適用されるルートマップを設定する方法について説明します。

前提条件

要件

このドキュメントに特有の要件はありません。

使用するコンポーネント

このドキュメントの情報は、Cisco IOS® ソフトウェア リリース 12.3 に基づくものです。

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期（デフォルト）設定の状態から起動しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。

表記法

ドキュメント表記の詳細は、「シスコ テクニカル ティップスの表記法」を参照してください。

背景説明

このセクションでは、Cisco IOSソフトウェアで使用されるルートマップの概要を説明します。

ルートマップの基本

ルートマップには、広く知られている Access Control List（ACL; アクセス コントロール リスト）と共通する機能が多数備わっています。両者のメカニズムには共通の特性があります。

- これらは個々の文の順序付けられたシーケンスであり、それぞれが許可または拒否の結果を持ちます。ACL またはルートマップの評価は、事前に定義された順序でのリストのスキャンと、一致する各文の基準の評価で構成されています。最初に一致したステートメントが見つかると、リストスキャンは中止され、一致したステートメントに関連付けられたアクションが実行されます。

- これらは一般的なメカニズムです。基準の一致と一致の解釈は、適用される方法によって決定されます。同じルートマップを異なるタスクに適用すると、解釈が異なる場合があります。

ルートマップとACLの間には、次のような違いがあります。

- ルートマップでは、一致基準としてACLが頻繁に使用されます。

- アクセスリストの評価の主な結果は、「はい」または「いいえ」です。ACLは、入力データを許可または拒否します。再配布に適用されるACLは、特定のルートを再配布できるか（ルートがACLのpermit文に一致するか）、または再配布できないか（deny文に一致するか）を決定します。一般的なルートマップは、再配布されたルートを（ある程度）許可するだけでなく、ルートが別のプロトコルに再配布されるときに、そのルートに関連付けられている情報も変更します。

- ルートマップはACLよりも柔軟性が高く、ACLが検証できない基準に基づいてルートを検証できます。たとえば、ルートマップはルートのタイプが内部であるかどうか、特定のタグがあるかどうかを確認できます。

- 各ACLは、設計上の規則により、暗黙のdenyステートメントで終わります。ルートマップに関する同様の規則はありません。一致試行が行われたときにルートマップの最後に到達した場合、結果はルートマップの特定のアプリケーションによって異なります。幸い、再配布に適用されるルートマップはACLと同じように動作します。ルートがルートマップ内の句に一致しない場合、ルートマップの最後にdeny文が含まれているかのように、ルート再配布が拒否されます。

ダイナミック プロトコルの redistribute 設定コマンドを使用すると、ACL またはルートマップのいずれかを適用できます。このセクションで説明する違いは、再配布プロセスでルートマップを使用する状況を特定するものです。再配布の際にルート情報を変更する場合、またはACLが提供できる機能よりも強力な機能が必要な場合は、ルートマップの使用が推奨されます。反対に、プレフィックスまたはマスクに基づいて一部のルートを選択的に許可することだけが必要な場合は、redistribute コマンドで直接 ACL（または等価のプレフィックス リスト）を使用することをお勧めします。ルートマップを使用して、プレフィックスまたはマスクに基づいて一部のルートを選択的に許可する場合は、通常はこれよりも多くのコンフィギュレーション コマンドを使用して同じ目標を達成します。ルートマップは常に着信トラフィックに適用され、発信トラフィックには何の影響もありません。

Open Shortest Path First

次に、redistributeコマンドを使用して適用される一般的なOpen Shortest Path First(OSPF)からEnhanced Interior Gateway Routing Protocol(EIGRP)へのルートマップを示します。

!

router eigrp 1

redistribute ospf 1 route-map ospf-to-eigrp

default-metric 20000 2000 255 1 1500

!--- Output suppressed.

!

route-map ospf-to-eigrp deny 10

match tag 6

match route-type external type-2

!

route-map ospf-to-eigrp permit 20

match ip address prefix-list pfx

set metric 40000 1000 255 1 1500

!

route-map ospf-to-eigrp permit 30

set tag 8

!

この例の重要な所見を次に示します。

- ルートマップの句には番号が付けられています。この例では、句に 10、20、30 のシーケンス番号が付いています。シーケンス番号を使用することで、次のアクションが可能になります。

- ルートマップの別の部分に影響を与えずに、特定の句だけを容易に削除する。

- 現在の2つの句の間に新しい句を挿入します。

必要に応じて、将来の句の挿入のために番号空間を確保するために、句に10の間隔で番号を付けることを推奨します。

- ルートマップには permit 句と deny 句が使用できます。route-map ospf-to-eigrpには、1つのdeny句（シーケンス番号10）と2つのpermit句があります。deny 句は、一致したルートを再配布から除外します。したがって、次の規則が適用されます。

- ルートマップの permit 句で ACL を使用すると、ACL で許可されるルートが再配布されます。

- ルートマップの deny 句で ACL を使用すると、ACL で許可されるルートは再配布されません。

- ルートマップのpermit句またはdeny句でACLを使用し、そのACLがルートを拒否する場合、ルートマップ句の一致は見つからず、次のルートマップ句が評価されます。

- 個々の route-map 句には次の 2 種類のコマンドがあります。

- match：この句を適用する必要があるルートを選択します。

- set：ターゲットプロトコルに再配布する情報を変更します。

再配布された各ルートについて、ルータは最初にルートマップ内の句のmatchコマンドを評価します。一致する基準が成功すると、permit句またはdeny句の指定に従ってルートが再配布または拒否され、一部の属性がsetコマンドによって変更されます。一致した基準が満たされない場合、この句はルートに適用されず、Cisco IOSソフトウェアはルートマップの次の句に対してルートの評価を続行します。ルートマップのスキャンは、その match コマンドがルートに一致する句が見つかるまで、またはルートマップの終わりに達するまで続行します。

- 次のいずれかの条件が満たされる場合は、各句の match コマンドまたは set コマンドを省略したり、何回か繰り返したりできます。

- 複数の match コマンドが句に含まれる場合に、特定のルートが句に一致するためには、そのルートですべての照合に成功しなければなりません（つまり、複数の match コマンドでは論理 AND アルゴリズムが適用される）。

- matchコマンドが1つのコマンド内の複数のオブジェクトを参照する場合は、match（論理ORアルゴリズムが適用される）のいずれかを実行します。たとえば、match ip address 101 121コマンドでは、アクセスリスト101またはアクセスリスト121で許可されている場合にルートが許可されます。

- match コマンドがない場合は、すべてのルートが句に一致します。前の例では、句30に到達するすべてのルートが一致するため、ルートマップの最後には到達しません。

- ルートマップのpermit句にsetコマンドが含まれていない場合は、現在のアトリビュートを変更せずにルートが再配布されます。

deny句はルートの再配布を禁止するため、setコマンドをdeny route-map句に設定しないでください。変更する情報はありません。

matchsetコマンドのないroute-map句は、アクションを実行します。空のpermit句を使用すると、変更を加えずに残りのルートを再配布できます。空のdeny句は、他のルートの再配布を許可しません（ルートマップが完全にスキャンされ、明示的な一致が見つからない場合のデフォルトのアクションです）。

このセクションの情報に基づき、前述の OSPF-to-EIGRP ルートマップ例では次のことが行われます。

- タグ 6 が設定されたすべての Type-2 外部 OSPF ルートの再配布を禁止します。

- pfxプレフィックスリストに一致するすべてのルートを、5つのメトリック値(40000、1000、255、1、および1500)とともにEIGRPに再配布します。

- 他のすべてのルートのタグを 8（デフォルト）に設定して再配布します。

再配布に適用されるルートマップで使用するコマンド

ここでは、次の内容について説明します。

- サポート対象外の一致を設定し、ルートマップのコマンドを設定する

- ルートマップによる再配布の 2 つのプロトコルの特性

- コマンド サポート表

サポート対象外の一致を設定し、ルートマップのコマンドを設定する

ルートマップは、多くの設定で使用できる一般的なメカニズムです。これには、前述のredistributeコマンドが含まれます。たとえば、PBR のルートマップで match length コマンドを設定して、特定の長さのパケットが転送されたときに特別なアクションが実行されるように指定することができます。ただし、再配布に適用されるルートマップでは match length コマンドを使用しません。

ルートマップが適用されているか、後の段階で適用されるような状況では、サポート対象外の（または効力のない）ルートマップに match コマンドと set コマンドを設定できます。この状況の例としては、再配布に適用されるルートマップで使用される match length コマンドがあります。再配布では、redistribute コマンドで指定されたプロトコルにより、ルートマップがルーティング テーブルにインストールされた各ルートに適用されます。このため、ルータがルートマップを実行する際に解釈するのは、ルートマップが適用されている状況で意味を持つコマンドだけです。この例では、再配布ルートマップに示されているmatch lengthコマンドは再配布に影響を与えません。コマンドはルートマップの設定に残り、ルータの実行コンフィギュレーションで確認できます。ところが、このコマンドがルートマップに存在するかどうかにかかわらず、経路再配布への影響はありません。

そのため、ルータではすべての種類のmatchコマンドとsetコマンドの設定が可能ですが、状況に応じて論理的に適用する必要があります。そうしないと、設定が非常に混乱したり、誤ったタスクを実行したりする可能性があります。

ルートマップで影響を与えないコマンドの使用は、それが無害のように見えてもやめてください。次のような問題があるからです。

- 影響のないコマンドにより、ユーザが達成しようとすることが分かりにくくなってしまう可能性があります。その結果、錯乱が起こることがあります。

- 現在サポートされていないコマンドは、Cisco IOSソフトウェアの将来のリリースでサポートされる可能性があります。将来のソフトウェアアップグレード後に、ルートマップの動作に望ましくない変更が生じる可能性があります。

- すべてのコマンドが完全に無害というわけではありません。たとえば、set metric +/- コマンドは、メトリックの相対的な変更を指定し、BGPルートアドバタイズメントとともに使用されます。ルートの現行メトリックをとり、それを伝達する前に、指定した値により増減できます。

このコマンドの +/- 形式は、現在は再配布ルートマップではサポート対象外で、実際には記号が削除された set metric コマンドと解釈されます。たとえば、次のルートマップについて考えてみましょう。

!--- This redistribution route-map is very dangerous!

route-map ospf-to-ospf permit 10

set metric +2

!

この設定では、1 つの OSPF プロセスから別の OSPF プロセスへすべてのルートを再配布して、すべてのルートのメトリックが 2 増分されるように見えます。ただし、実際には、すべてのルートのメトリックが同じ、2に等しくなるように設定されます。これはルータ設定で予期しない動作です。

このルートマップは、さらにわかりにくい結果になります。

!--- This redistribution route-map is very dangerous!

route-map ospf-to-ospf permit 10

set metric +2

!

この設定では、再配布ルートのメトリックは減少されるのではなく、実際にはメトリックが 367 に設定されます（記号なしで set metric が解釈されると、負のメトリックは不可能なので、正の値になります）。

ルートマップによる再配布の 2 つのプロトコルの特性

再配布に適用されるルートマップは、次の 2 つのルーティング プロトコルで動作します。

- オリジナルのルーティング情報を提供するプロトコル

- ルーティング情報が再配布されるプロトコル

各ルーティング プロトコルはルート属性の独自のセットをサポートできます。

再配布ルートマップ設定の場合は、次のようになります。

- ルートマップの match コマンドでは、再配布のためのオリジナル ルートを提供するプロトコルでサポートされるルートの属性が検証されます。

- ルートマップの set コマンドでは、ルートの再配布先のプロトコルでサポートされるルートの属性が変更されます。

この文書の「コマンド サポート表」セクションに、コマンドのリストがあります。これらはmatchコマンドとsetコマンドによって分類され、再配布ルートマップの2つのプロトコルの性質を強調しています。

コマンド サポート表

このセクションでは、redistribute コマンドに添付されるルートマップでサポートされているコマンドを説明します。ルートを再配布できるルーティングプロトコルは7つありますが、再配布を実行できるルーティングプロトコルは5つだけです。接続済みのスタティック ルートはダイナミック ルーティング プロトコルではなく、他のプロトコルに再配布される情報しか提供できません。

このセクションには、Cisco IOSソフトウェアリリース12.3のルートマップでサポートされているが、再配布のコンテキストでは適用できない matchコマンドとsetコマンドは含まれません。

Intermediate System-to-Intermediate System（IS-IS）および BGP は、Connectionless Network Service（CLNS）ルートと IP ルートに関する情報を伝達します。このセクションの表には、これらのプロトコルの再配布ルートマップに使用可能な CLNS 関連コマンドも含まれています。

Routing Information Protocol（RIP；ルーティング情報プロトコル）、OSPF、IS-IS、およびBGPを使用して、IPv6ルートを伝播できます。これらのプロトコルの再配布ルートマップには、IPv6固有のコマンドを含めることができます。match ipコマンドとset ipコマンドは、IPv4プレフィクスの再配布に固有です。match ipv6コマンドとset ipv6コマンドは、IPv6プレフィックスの再配布に固有です。match clns コマンドと set clns コマンドを使用できるのは、ルートマップを使用してルーティング プロトコルと相互に CLNS ルートを再配布する場合だけです。

表 1 および表 2 では、次の表記法を使用しています。

- サポートされているコマンドはaYesとマークされています。

- サポート対象外コマンドには、ダッシュ（-）マークが付けられています。

- 処理（おそらくは望まれない処理）が実行されることが判明しているサポート対象外コマンドには、不可というマークが付けられています。

表 1 - プロトコルによってルーティング テーブルにインストールされたルートを照合するルートマップ コマンド

コマンド

再配布のサポート

connected

static

RIP

EIGRP

OSPF

IS-IS

BGP

match clns address

-

Yes

-

-

-

Yes

Yes

match clns next-hop

-

Yes

-

-

-

Yes

-

match interface

Yes

Yes

Yes

Yes

Yes

Yes

-

match ip address

Yes

Yes

Yes

Yes

Yes

Yes

Yes

match ip address prefix-list

Yes

Yes

Yes

Yes

Yes

Yes

Yes

match ip next-hop

-

Yes

Yes

Yes

Yes

Yes

Yes

match ip next-hop prefix-list

-

No

No

No

No

No

No

match ip route-source

-

-

Yes

Yes

Yes

-

Yes

match ip route-source prefix-list

-

-

No

No

No

-

No

match ipv6 address [prefix-list]

Yes

Yes

Yes

-

Yes

Yes

Yes

match ipv6 next-hop [prefix-list]

-

Yes

Yes

-

-

-

Yes

match ipv6 route-source [prefix-list]

-

-

Yes

-

-

-

Yes

match metric

-

-

Yes

Yes

Yes

Yes

Yes

match policy-list

Yes

Yes

Yes

Yes

Yes

Yes

Yes

match route-type external

-

-

-

Yes

Yes

Yes

Yes

match route-type internal

-

-

-

Yes

Yes

-

Yes

match route-type local

-

-

-

-

-

-

Yes

match route-type nssa-external

-

-

-

-

Yes

-

-

match route-type {level-1|level-2}

-

-

-

-

-

Yes

-

match tag

-

Yes

Yes

Yes

Yes

Yes

Yes

表 2 - ターゲット プロトコルへの再配布中にルート属性を変更するコマンド

コマンド

再配布のサポート

RIP

EIGRP

OSPF

IS-IS

BGP

set as-path tag

-

-

-

-

Yes

set community

-

-

-

-

Yes

set ip next-hop

-

-

-

-

Yes

set ip next-hop peer-address

-

-

-

-

No

set ipv6 next-hop

-

-

-

-

Yes

set level {backbone|stub-area}

-

-

No

-

-

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

-

-

-

Yes

-

set local-preference

-

-

-

-

Yes

set metric

Yes

-

Yes

Yes

Yes

set metric +/-

No

-

No

No

No

set metric eigrp-metric

-

Yes

-

-

-

set metric +/- eigrp-metric

-

No

-

-

-

set metric-type internal

-

-

-

Yes

-

set metric-type external

-

-

-

Yes

-

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

-

-

Yes

-

-

set nlri

-

-

-

-

Yes

set origin

-

-

-

-

Yes

set tag

Yes

Yes

Yes

-

-

set weight

-

-

-

-

Yes

結論

ルートマップは、ルートの再配布を行う強力なツールですが、同時に複雑なツールでもあります。これらは、プロトコル間で再配布を行う場合には、非常に詳細にルーティング情報を操作できます。ただし、これらは危険なことがあり、ネットワークに「ブラックホール」や最適ではないトラフィック フローが生じる可能性があります。複数のルーティングプロトコル間で複雑な再配布機能を使用する場合は、ネットワークを非常に慎重に設計する必要があります。

関連情報

- ルーティングプロトコルの再配布

- プロトコルサポートページ

- シスコテクニカルサポートおよびダウンロード