ip as-path access-list
- モード
- グローバルコンフィグモード
- カテゴリー
- IP / 経路制御(フィルタリング)
構文
(config)# [no] ip as-path access-list LISTNAME {deny|permit} REGEXP
コマンド説明
ASパスアクセスリストにエントリーを追加する。no形式で実行した場合は、ASパスアクセスリストから指定したエントリーを削除する。
ASパスアクセスリストは、BGP経路に対するフィルタリング機能の1つ。AS_PATH属性の内容に基づいて経路をフィルタリングしたり、各種属性を変更するときに使う。
ASパスアクセスリストは複数のエントリーから構成されるリストで、検索はエントリーの追加順に行われる。検索時には、最初にマッチしたエントリーで処理(permitかdeny)が行われるか結果(permitかdeny)が返され、マッチした時点で検索は終了する。どのエントリーにもマッチしなかった場合はdenyとなる。
ASパスアクセスリストは、BGPモードのneighbor filter-listコマンド、BGP IPv6アドレスファミリーモードのneighbor filter-listコマンドで特定BGPピアとの通信(受信・送信を個別に設定可能)に適用するか、ルートマップのmatch節で使用する(match as-pathコマンド)。
ASパスアクセスリストを特定BGPピアとの通信に適用する場合、結果が「permit」の経路は許可され、結果が「deny」の経路は破棄される。
一方、ルートマップのmatch節で使う場合、ASパスアクセスリストの検索結果が「permit」ならルートマップの該当エントリーにマッチしたと見なされ、結果が「deny」の場合はマッチしたと見なされない。
パラメーター
LISTNAME- ASパスアクセスリスト名
deny|permit- 条件に合致した場合のアクション。拒否(deny)、許可(permit)のどちらかを指定する
REGEXP- ASパスの正規表現。比較対象は、show ip bgpコマンドで表示される「Path」欄の文字列。同欄では、該当経路のASパスがスペースで区切られたAS番号の並びとして記述されている。本パラメーターでは、このASパス文字列に対する正規表現を指定すること
使用例
以下では、サンプルのASパスアクセスリストlist1の設定を通じて、各種正規表現の使い方を説明する。- 空のASパスを拒否
awplus(config)# ip as-path access-list list1 deny ^$
- 末尾が65060のASパスを許可
awplus(config)# ip as-path access-list list1 permit 65060$
- 先頭が65050のASパスを許可
awplus(config)# ip as-path access-list list1 permit ^65050
- 「65020 65030 65040」と完全一致するASパスだけを許可
awplus(config)# ip as-path access-list list1 permit ^65020 65030 65040$
- 「65021 65031 65041」を含むASパスを許可
awplus(config)# ip as-path access-list list1 permit 65021 65031 65041
- 「20 30 40」を含むASパスを許可
awplus(config)# ip as-path access-list list1 permit _20 30 40_
アンダースコア(_)はスペース、行頭、行末などAS番号の区切りにマッチする特殊文字。この例でアンダースコアを付けずに次のようにすると、「65020 30 4000」や「120 30 405」などにもマッチしてしまうので注意。
awplus(config)# ip as-path access-list list1 permit 20 30 40
- 末尾が651XXのASパスを許可
awplus(config)# ip as-path access-list list1 permit 651..$
- 65210か65220を含むASパスを許可
awplus(config)# ip as-path access-list list1 permit 652[12]0
- 65313~65319のいずれかを含むASパスを許可
awplus(config)# ip as-path access-list list1 permit 6531[3-9]
- 最上位桁が1か2で、最下位桁が1、3以外の5桁のAS番号を含むASパスを許可
awplus(config)# ip as-path access-list list1 permit [12][0-9][0-9][0-9][^13]
- ここまでの正規表現にマッチしなかったASパスは暗黙のエントリーによって拒否される。
注意・補足事項
ASパスアクセスリストの末尾には「deny .*」、すなわち、すべてをdenyする暗黙のエントリーが存在している。ASパスアクセスリストで指定可能な正規表現の構成要素は次のとおり。
| ^ | ASパスを表す文字列の先頭にマッチ |
| $ | ASパスを表す文字列の末尾にマッチ |
| . | スペースを含む任意の1文字にマッチ |
| * | 直前のパターンが0個以上続く場合に最長マッチ |
| + | 直前のパターンが1個以上続く場合に最長マッチ |
| ? | 直前のパターンが0個または1個ある場合にマッチ |
| _ | AS番号の区切りにマッチ。具体的にはスペース、カンマ、丸カッコ( )、波カッコ{ }、文字列の先頭と末尾にマッチする |
| [012] | 角カッコ[ ]で囲まれた文字のどれか1つと一致すればマッチ |
| [^012] | 角カッコ[ ]で囲まれた文字のどれとも一致しなければマッチ |
| - | 角カッコ[ ]内で使った場合のみ、ASCII文字の範囲を示す。たとえば、[0-2]は[012]と、[^6-9]は[^6789]と同じ意味になる |