解説書 Vol.1
インポート・フィルタは指定プロトコルで受信したルーティング・パケットの経路情報をルーティングテーブルに取り込むかどうかをフィルタリング条件に従って制御します。インポート・フィルタを指定していない場合は,すべての経路情報を取り込みます。
- <この項の構成>
- (1) プリファレンス値
- (2) フィルタリング条件
- (3) 拡張正規表現
- (4) ASパス正規表現
- (5) MED属性値
(1) プリファレンス値
取り込む経路情報にはフィルタリング条件ごとにその経路情報のプリファレンス値を指定できます。プリファレンス値を指定していない場合は,そのプロトコルのデフォルトのプリファレンス値になります。
同一宛先アドレスの経路情報が複数存在する場合,プリファレンス値によって優先度の高い経路情報が有効となります。プリファレンス値の詳細は,「12.3.3 スタティックルーティングとダイナミックルーティング(RIP/OSPF)の同時動作 (1) プリファレンス値」を参照ください。
(2) フィルタリング条件
取り込む経路情報はフィルタリング条件で指定できます。指定できるインポート・フィルタのフィルタリング条件を次に示します。
- 送信元ピアアドレス
- 送信元AS番号
- 送信元ポリシーグループ番号
- 経路情報のAS_PATH属性
- 経路情報のORIGIN属性
- 経路情報のCommunity属性
- 経路情報の宛先ネットワーク
また,取り込まれた経路情報はフィルタリング条件ごとにその経路情報のBGP属性を変更できます。変更できるBGP属性を次に示します。
- LOCAL_PREF属性
- AS_PATH属性(追加AS数を指定する)
- ORIGIN属性
- MED属性
- Community属性(削除または追加Communityを指定する)
(3) 拡張正規表現
フィルタリング条件であるAS_PATH属性やCOMMUNITY属性は,拡張正規表現(Extended Regular Expression)によって,1文字単位に複数の意味を持つ文字列で指定できます。
拡張正規表現には,数字,小文字アルファベット,大文字アルファベット,記号(ただし,ダブルクォーテーション(")は除く)などの通常文字と,次に示す特殊文字が使用可能です。
- . :空白を含むすべての単一文字を意味します。
- * :文字や文字集合の0回以上の繰り返しを意味します。
- + :文字や文字集合の1回以上の繰り返しを意味します。
- ? :文字や文字集合の0回もしくは1回を意味します(コマンド入力時には[Ctrl]+[V]を入力後[?]を入力してください)。
- ^ :文字列の先頭を意味します。文字範囲を示す[ ]の中の先頭に置いた場合,パターンの否定を意味します。
- $ :文字列の末尾を意味します。
- _ :文字列の先頭,文字列の末尾,「 」(空白),「_」,「,」,「(」(通常文字),「)」(通常文字),「{」,「}」,「<」,「>」のどれかを意味します。
- [ ] :[ ]内の文字範囲のうち単一文字を意味します。[ ]内で特殊文字を使用した場合には通常文字として扱います(特殊文字としても意味は持ちません)。
- - :[ ]の中で範囲のうち開始と終了を示すために使用します。-の前の文字は-の後の文字よりも文字コードが小さくなるように指定してください。文字コードについては「コンフィグレーションコマンドレファレンス Vol.1 パラメータに指定できる値」を参照してください。
例:[6-8] は678のどれか1文字を意味します。[^6-8] は678以外のいずれか1文字を意味します。
- ( ) :複数文字の集合を意味します。最大で9集合までネスト可能です。
- | :OR条件を意味します。
- \ :上記の特殊文字の前に置いた場合,通常文字として扱います。
コンフィグレーションコマンドや運用コマンドで拡張正規表現を指定する際には,拡張正規表現の前後をダブルクォーテーション(")で括って指定してください。
例:# show ip bgp aspath-regexp "^$" (config)# attribute-list attribute-filter 1 aspath-regexp "_100_"拡張正規表現で使用する文字同士の結合の優先順位は次の表に示す様になります。
表13-19 拡張正規表現使用文字の結合の優先順位
優先順位 文字 高
↑
↓
低( ) *,+,? 通常文字,.,[ ],^,$ | (a) AS_PATH属性
AS_PATH属性は,10進数表記したAS番号を空白文字で接続して表現します。
なお,フィルタ条件としてAS_PATH属性のパスタイプを指定できません。フィルタ条件として指定するAS番号は,AS_PATH属性に含まれるすべてのパスタイプがフィルタの評価対象となります。次に示すAS_PATH属性を持つ経路をフィルタする場合を例として説明します。
- [AS_PATH属性の内容]
AS_SEQ: 100 200 300, AS_SET: 1000 2000 3000, AS_CONFED_SET: 65001 65002
- [運用コマンドでのAS_PATH属性の表示形式]
100 200 300 {1000 2000 3000} (65001 65002)このようなAS_PATH属性の場合,次に示すどのAS番号を指定してもフィルタに一致します。
- “100 200 300”
- “1000 2000 3000”
- “65001 65002”
- “300 1000”
運用コマンドのパスタイプ表記である{}や()は,正規表現の特殊文字のため,パスタイプを表すための文字としては指定できないことに注意してください。
また,AS_SETについては経路受信時に昇順にソートするため,ソートした結果がフィルタの評価対象となります。
拡張正規表現を用いたASパスの指定例を次の図に示します。
図13-34 拡張正規表現を用いたASパス指定例
(b) Community属性
- Community属性は,次の様に表現します。
- <AS番号> : <値>
- no-export : 0xFFFFFF01(16進数)を示します。
- no-advertise : 0xFFFFFF02(16進数)を示します。
- no-export-sub : 0xFFFFFF03(16進数)を示します。
- 注 <AS番号>や<値>は10進数で表します。
拡張正規表現を用いたCommunityの指定例を次の図に示します。
図13-35 拡張正規表現を用いたCommunity指定例
フィルタリング条件であるAS_PATH属性はASパス正規表現(ASPath-Regular-Expression)によって複数のAS_PATHに一致するような表現で指定できます。ASパス正規表現は次の形式で指定します。
<Aspath> := {<Aspath_Term>...|^$} <Aspath_Term> := <Aspath_Symbol>[{ {m,n} | {m} | {m,} | * | + | ? }] <Aspath_Symbol> := { <As> | .}
- ^$ :空のASパスを意味します。
- {m,n}:Aspath_Symbolをm回からn回,繰り返すことを意味します。
(m,nの設定範囲:0〜255)
- {m} :Aspath_Symbolをm回,繰り返すことを意味します。
(mの設定範囲:0〜255)
- {m,} :Aspath_Symbolをm回以上,繰り返すことを意味します。
(mの設定範囲:0〜255)
- * :Aspath_Symbolを0回以上,繰り返すことを意味します。
- + :Aspath_Symbolを1回以上,繰り返すことを意味します。
- ? :Aspath_Symbolを0回または1回,繰り返すことを意味します。
- <As>:指定したAS番号を意味します。
- . :任意のAS番号を意味します。
ASパス正規表現の例を次の図に示します。
(5) MED属性値
インポート・フィルタと次に示すパラメータの組み合わせによって,学習したBGP4経路情報のMED属性値を変更できます。
- コンフィグレーションコマンドattribute-listのmedサブコマンド
- コンフィグレーションコマンドroute-filterのmedパラメータ
medサブコマンド(パラメータ)の指定値は,数値指定とオフセット指定があります。
インポート・フィルタと組み合わせたmedサブコマンド(パラメータ)でオフセット指定(±指定)した場合に,学習経路情報に設定されるMED属性値を次の表に示します。
表13-20 オフセット指定した場合に取り込む経路情報のMED属性値
学習元プロトコル MED属性値 BGP4
- 経路情報にMED属性値が含まれている場合,経路情報のMED属性値にオフセット値を±した値を使用します。
- 経路情報にMED属性値が含まれていない場合,0を基準にオフセット値を±した値を使用します。
注 オフセット値を±した結果がマイナスになった場合は0に,4294967295を超えた場合は4294967295に値が補正されます。
Copyright (c)2005, 2011, ALAXALA Networks Corporation. All rights reserved.