次に、ルート マップ シーケンスでの continue 句設定の例を示します。
(注) |
アウトバウンド ルート マップの continue 句は、Cisco IOS Release 12.0(31)S、12.2(33)SB、12.2(33)SRB、12.2(33)SXI、12.4(4)T、およびそれ以降のリリースだけでサポートされています。
|
ルート マップ エントリ 10 にある 1 番目の continue 句は、一致が出現した場合にルート マップがエントリ 30 に移動することを示します。一致が出現しなければ、ルート マップは「失敗」してエントリ 20 へ移動します。ルート マップ
エントリ 20 で一致が出現すると、set アクションが実行され、ルート マップはそれ以上どのルート マップ エントリも評価しません。最初に一致した match ip address 句だけをサポートします。
ルート マップ エントリ 20 で一致が出現しない場合、ルート マップはマッチングに失敗してルート マップ エントリ 30 へ移動します。このシーケンスには match 句が含まれていないため、set 句は自動的に実行され、continue 句にはシーケンス番号が指定されていないため、その次のルート マップ エントリへ移動することになります。
一致が出現しない場合、ルート マップはマッチングに失敗してエントリ 30 へ移動し、set 句を実行します。continue 句にはシーケンス番号が指定されていないため、ルート マップ エントリ 40 が評価されることになります。
後続の continue 句エントリで、同じ set コマンドが繰り返される場合、2 種類の動作が考えられます。値の加算や累積を設定する set コマンド(set community additive 、set extended community additive 、set as-path prepend など)では、後続のエントリによって後続の値が加算されます。次に、この動作の例を示します。match 句の各セットの後に、as-path に自律システム番号を追加するため set as-path prepend コマンドが設定されています。一致が出現すると、ルート マップは match 句の評価を停止し、設定された順序で set 句の実行を開始します。一致が何度出現するかに応じて、as-path には 1 つ、2 つ、または 3 つの自律システム番号がプリペンドされます。
route-map ROUTE-MAP-NAME permit 10
match ip address 1
match metric 10
set as-path prepend 10
continue 30
!
route-map ROUTE-MAP-NAME permit 20
match ip address 2
match metric 20
set as-path prepend 10 10
!
route-map ROUTE-MAP-NAME permit 30
set as-path prepend 10 10 10
continue
!
route-map ROUTE-MAP-NAME permit 40
match community 10:1
set local-preference 104
この例では、同じ set コマンドが後続の continue 句エントリで繰り返されますが、動作は 1 番目の例と異なります。絶対値を設定する set コマンドの場合、最後のインスタンスの値がそれ以前の値を上書きします。次に、この動作の例を示します。シーケンス 20 の set 句の値が、シーケンス 10 の set 句の値を上書きします。ネットワーク 172.16/16 からのプレフィックスのネクスト
ホップは 10.2.2.2 に設定され、10.1.1.1 にはなりません。
ip prefix-list 1 permit 172.16.0.0/16
ip prefix-list 2 permit 192.168.1.0/24
route-map RED permit 10
match ip address prefix-list 1
set ip next hop 10.1.1.1
continue 20
exit
route-map RED permit 20
match ip address prefix-list 2
set ip next hop 10.2.2.2
end
(注) |
ルート マップはリニア動作であり、入れ子動作ではありません。あるルートがいったん continue コマンド句を伴ったルート マップ許可エントリで一致すると、ルート マップ末尾の黙示的拒否により処理されません。次に、この場合の例を示します。
|
次の例では、ルートの as-path が 10、20、または 30 に一致する場合、ルートは許可され、continue 句は明示的 deny 句をジャンプして IP アドレス プレフィックス リストのマッチング処理へ移動します。一致が出現すると、ルート
メトリックが 100 に設定されます。as-path が 10、20、または 30 に一致せず、かつコミュニティ番号が 30 に一致するルートだけが拒否されます。他のルータを拒否するには、明示的 deny 文を設定する必要があります。
route-map test permit 10
match as-path 10 20 30
continue 30
exit
route-map test deny 20
match community 30
exit
route-map test permit 30
match ip address prefix-list 1
set metric 100
exit