◆ JUNOS - BGPの設定( AS_PATHによるフィルタリング)- 正規表現とは
BGPでは膨大なルート情報を送受信するため、ルート情報そのものに基づいてフィルタリングを行うより、
ASパスの情報に基づいてフィルタリングを行うことが一般的です。そのASパスを指定する際に正規表現を
使用することで柔軟にASパスを指定できます。正規表現とは「入力文字列との照合パターン」のことです。
◆ 正規表現( 以下のシンボルを設定コマンドで利用 )
シンボル |
キャラクタ |
説明 |
. |
ピリオド |
任意の1文字と一致( スペースの一致も含む ) |
^ |
キャレット |
入力文字列の先頭と一致 |
$ |
ドル記号 |
入力文字列の末尾と一致 |
* |
アスタリスク |
0個以上のパターン列と合致 |
+ |
プラス記号 |
1個以上のパターン列と合致 |
? |
疑問符 |
0個か1個のパターンと合致 |
- |
ハイフン |
範囲の両端を示す |
| |
パイプ |
OR条件( | の両端にある文字列のいずれか1つに合致) |
[ ] |
ブラケット |
[ ] 内の任意の1文字の文字列と一致 |
( ) |
カッコ |
( ) で括った文字列をグループ化して1文字として処理 |
{m} |
- |
ちょうどm回に合致 |
{m,} |
- |
m回以上の繰り返しに合致 |
{m,n} |
- |
m回以上、n回以下に合致 |
◆ JUNOS - BGPの設定( AS_PATHによるフィルタリング)- 設定例
以下の設定例では、「AS_PATHアトリビュートにAS30が含まれる」ルート情報をルーティングテーブル
にインストールしないようにフィルタリングしています。AS_PATHアトリビュートに基づいたフィルター
のポリシーを正規表現を使用して作成した後、それをEBGPネイバールータに対して適用しています。
root@R2# set policy-options as-path FILTER01 ".* 30 .* "
root@R2# set policy-options policy-statement AS-FILTER01 term 1 from as-path FILTER01
root@R2# set policy-options policy-statement AS-FILTER01 term 1 then reject
root@R2# set protocols bgp group EXT import AS-FILTER01
|
上記のフィルター適用前のR2のルーティングテーブル( BGPルート )は以下の通りです。
フィルター適用後の上記設定後のR2のルーティングテーブル( BGPルート )は以下の通りです。
ルーティングテーブルにはインストールされていませんが、hiddenルート(隠されたルート)として
R2で確認することができます。以下のとおり「show route hidden」コマンドによって確認できます。
|