はじめに
このドキュメントでは、ボーダーゲートウェイプロトコル(BGP)で正規表現(regex)を使用する方法について説明します。
前提条件
要件
次の項目に関する専門知識があることが推奨されます。
使用するコンポーネント
このドキュメントの情報は、Cisco IOS® ソフトウェア リリース 12.0 に基づいています。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
表記法
ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。
背景説明
Border Gateway Protocol(BGP;ボーダーゲートウェイプロトコル)の ip as-path access-list コマンドでは、正規表現を使用できます。正規表現に関する一般情報については、正規表現に関するシスコのドキュメンテーションを参照してください。BGPの基本設定の詳細については、「BGPケーススタディ」および「基本的なBGPネットワークの設定」を参照してください。
ネットワーク シナリオ
このドキュメントで参照するネットワークダイアグラムを次に示します。
AS 4から発信されたネットワークだけがルータ1に入ることを許可する
ルータ1がAS 4から発信されたルートだけを受信し(インターネットルートを受信しない)、ルータ1に着信アクセスリストを適用します。
ip as-path access-list 1 permit ^4$
router bgp 1
neighbor 10.4.4.4 remote-as 4
neighbor 10.4.4.4 route-map foo in
route-map foo permit 10
match as-path 1
これにより、AS 4 から発信されたネットワークだけがルータ 1 に着信できます。
AS 4 を経由したネットワークだけに AS 3 への接続を許可
AS 4を通過したネットワークだけがルータ3からAS 3に入るようにする場合は、ルータ3に着信フィルタを適用します。
ip as-path access-list 1 permit _4_
router bgp 3
neighbor 10.2.2.2 remote-as 1
neighbor 10.2.2.2 route-map foo in
route-map foo permit 10
match as-path 1
ip as-path access-list コマンドでは、入力文字列および出力文字列にアンダースコア(_)を使用できます。
注:この例では、アンカー(たとえば、^がない)は使用されないため、AS 4の前後にどのような自律システム(AS)が来ても関係ありません。
AS 3 を入れるためにAS 4で発生したネットワークを拒否し他のすべてのネットワークを許可する方法
AS 4から発信されたすべてのネットワークを拒否して、他のすべてのルートがルータ3からAS 3に入ることを許可する場合は、ルータ3で着信フィルタを適用できます。
ip as-path access-list 1 deny _4$
ip as-path access-list 1 permit .*
router bgp 3
neighbor 10.2.2.2 remote-as 1
neighbor 10.2.2.2 route-map foo in
route-map foo permit 10
match as-path 1
AS 4 および AS 4 に直接接続された AS から発信したネットワークだけにルータ 1 への接続を許可
AS 4およびAS 4に直接接続されているすべてのASから発信されたネットワークをAS 1で取得するには、ルータ1に次の着信フィルタを適用します。
ip as-path access-list 1 permit ^4_[0-9]*$
router bgp 1
neighbor 10.4.4.4 remote-as 4
neighbor 10.4.4.4 route-map foo in
route-map foo permit 10
match as-path 1
ip as-path access-list コマンドでは、キャラット(^)が入力文字列を開始し、「AS」を指定します。アンダースコア(_)は、AS 4の後の文字列にヌル文字列があることを意味します。[0-9]*は、有効なAS番号を持つすべての接続ASがフィルタを通過できることを指定します。[0-9]*構文の利点は、このコマンド文字列を変更することなく、任意の数のASを柔軟に追加できることです。詳細は、『AS 正規表現』を参照してください。
関連情報