IPルーティング / 経路制御(フィルタリング)


経路の分類・識別
IPプレフィックスリスト
ASパスアクセスリスト
コミュニティーリスト
標準コミュニティーリスト
拡張コミュニティーリスト
IPv6プレフィックスリスト
ルートマップ
RIPにおける経路フィルタリング
ディストリビュートリスト(RIP)
再通知用ルートマップ(RIP)
OSPFにおける経路フィルタリング
エリアフィルターリスト
再通知用ルートマップ(OSPF)
BGPにおける経路フィルタリング
ASパスフィルターリスト
プレフィックスリスト
ピア用ルートマップ
再通知用ルートマップ(BGP)
RIPngにおける経路フィルタリング
ディストリビュートリスト(RIPng)
再通知用ルートマップ(RIPng)
OSPFv3における経路フィルタリング
再通知用ルートマップ(OSPFv3)


経路情報のフィルタリング機能について説明します。

Note - 本解説編は「IPルーティング」の章ですが、共通のコマンドが多いため、ここではIPv6の経路フィルタリングについても触れています。

ここでのフィルタリングとは、あらかじめ指定した条件にしたがって経路情報を分類・識別し、特定の経路を許可・破棄したり、経路情報の属性を変更したりすることを指します。

本製品には、ダイナミックルーティングプロトコル(RIP、OSPF、BGP、RIPng、OSPFv3)使用時に経路情報をフィルタリングする方法として、それぞれ次の機能が用意されています。

表 1:RIP用の経路フィルタリング機能
名称
対象
機能
分類・識別方法
ディストリビュートリスト RIP経路の送受信時 RIPパケットの受信時に特定の経路を受け入れないよう設定したり、RIPパケットの送信時に特定の経路を通知しないよう設定したりする IPプレフィックスリスト
再通知用ルートマップ 非RIP経路のインポート時 再通知のため非RIP経路をインポートするときに、特定の経路を除外したり、特定の経路の属性を変更した上でインポートしたりする ルートマップ


表 2:OSPF用の経路フィルタリング機能
名称
対象
機能
分類・識別方法
エリアフィルターリスト エリア間経路の送受信時 ABRにおいて、特定エリアに対して他エリアの経路情報(タイプ3LSA)を通知しないよう設定したり、特定エリアの経路情報(タイプ3LSA)を他のエリアに通知しないよう設定したりする IPプレフィックスリスト
再通知用ルートマップ 非OSPF経路のインポート時 ASBRにおいて、再通知のため非OSPF経路をインポートするときに、特定の経路を除外したり、特定の経路の属性を変更した上でインポートしたりする ルートマップ


表 3:BGP用の経路フィルタリング機能
名称
対象
機能
分類・識別方法
プレフィックスリスト BGP経路の送受信時 UPDATEメッセージの受信時に特定プレフィックスへの経路を受け入れないよう設定したり、UPDATEメッセージの送信時に特定プレフィックスへの経路を通知しないように設定したりする。機能的にはディストリビュートリストとほぼ同じ(同一ピアに対してはどちらか一方を選んで使う) IPプレフィックスリスト
ASパスフィルターリスト BGP経路の送受信時 UPDATEメッセージの受信時に特定のASパスを持つ経路を受け入れないよう設定したり、UPDATEメッセージの送信時に特定のASパスを持つ経路を通知しないように設定したりする(UPDATEメッセージ単位でフィルタリングを行う) ASパスアクセスリスト
ピア用ルートマップ BGP経路の送受信時 UPDATEメッセージの受信時に特定の経路を受け入れないよう設定したり、UPDATEメッセージの送信時に特定の経路を通知しないように設定したりする。また、受信した経路の属性を変更してから受け入れたり、経路の属性を変更してから送信したりすることもできる ルートマップ
再通知用ルートマップ 非BGP経路のインポート時 再通知のため非BGP経路をインポートするときに、特定の経路を除外したり、特定の経路の属性を変更した上でインポートしたりする ルートマップ


表 4:RIPng用の経路フィルタリング機能
名称
対象
機能
分類・識別方法
ディストリビュートリスト RIPng経路の送受信時 RIPngパケットの受信時に特定の経路を受け入れないよう設定したり、RIPngパケットの送信時に特定の経路を通知しないよう設定したりする IPv6プレフィックスリスト
再通知用ルートマップ 非RIPng経路のインポート時 再通知のため非RIPng経路をインポートするときに、特定の経路を除外したり、特定の経路の属性を変更した上でインポートしたりする ルートマップ


表 5:OSPFv3用の経路フィルタリング機能
名称
対象
機能
分類・識別方法
再通知用ルートマップ 非OSPFv3経路のインポート時 ASBRにおいて、再通知のため非OSPFv3経路をインポートするときに、特定の経路を除外したり、特定の経路の属性を変更した上でインポートしたりする ルートマップ


経路情報をフィルタリングするためには、何らかの条件にしたがって経路情報を分類・識別したり、分類した経路情報に対する処理を指定したりする必要がありますが、そのための機能としては、次のものがあります。


以下では、まずこれら分類・識別のための機能について説明し、次に各ルーティングプロトコルにおける経路フィルタリングの設定について具体例を挙げながら説明します。

なお、ダイナミックルーティングの設定については、「IPルーティング」の「経路制御(RIP)」「IPルーティング」の「経路制御(OSPF)」「IPルーティング」の「経路制御(BGP)」「IPv6ルーティング」の「経路制御(RIPng)」「IPv6ルーティング」の「経路制御(OSPFv3)」をご覧ください。

経路の分類・識別

ここでは、経路情報を分類・識別するための各機能について解説します。

IPプレフィックスリスト

IPプレフィックスリストは、経路エントリーの分類・識別に特化した仕組みです。

IPプレフィックスリストではつねに「アドレス/プレフィックス長(サブネットマスクの長さ)」の組に対してマッチングを行います。

IPプレフィックスリストは複数のエントリーから構成されるリストで、検索はエントリー番号の若い順に行われます。検索時には、最初にマッチしたエントリーで処理(permitかdeny)が行われるか結果(permitかdeny)が返され、マッチした時点で検索は終了します。どのエントリーにもマッチしなかった場合はdenyとなります。

IPプレフィックスリストを作成するには、ip prefix-listコマンドを使います。
次にいくつか例を示します。

Note - IPプレフィックスリストの末尾には「deny any」、すなわち、すべてをdenyする暗黙のエントリーが存在していることにご注意ください。


ASパスアクセスリスト

ASパスアクセスリストは、BGP経路エントリーの分類・識別に特化した仕組みです。AS_PATH属性の内容に基づいてBGP経路をフィルタリングしたり、各種属性を変更するときに使います。

ASパスアクセスリストは複数のエントリーから構成されるリストで、検索はエントリーの追加順に行われます。検索時には、最初にマッチしたエントリーで処理(permitかdeny)が行われるか結果(permitかdeny)が返され、マッチした時点で検索は終了します。どのエントリーにもマッチしなかった場合はdenyとなります。

ASパスアクセスリストを作成するには、ip as-path access-listコマンドを使います。

ip as-path access-listコマンドでは、AS_PATH属性との照合条件に「正規表現」(Regular Expression)を使用します。正規表現とは、特殊文字(メタ文字)を使って文字列を一定の「パターン」として表すための表記法で、ファイル名指定に使う「ワイルドカード」といくらか似ています。

ASパスアクセスリストで指定可能な正規表現の構成要素は次のとおりです。

構成要素
意味
^ ASパスを表す文字列の先頭にマッチ
$ ASパスを表す文字列の末尾にマッチ
. スペースを含む任意の1文字にマッチ
* 直前のパターンが0個以上続く場合に最長マッチ
+ 直前のパターンが1個以上続く場合に最長マッチ
? 直前のパターンが0個または1個ある場合にマッチ
_ AS番号の区切りにマッチ。具体的にはスペース、カンマ、丸カッコ( )、波カッコ{ }、文字列の先頭と末尾にマッチする
[012] 角カッコ[ ]で囲まれた文字のどれか1つと一致すればマッチ
[^012] 角カッコ[ ]で囲まれた文字のどれとも一致しなければマッチ
- 角カッコ[ ]内で使った場合のみ、ASCII文字の範囲を示す。たとえば、[0-2]は[012]と、[^6-9]は[^6789]と同じ意味になる


ASパスアクセスリストにおいて、正規表現の照合対象となるのは、AS_PATH属性の内容を表す文字列です。これは、show ip bgpコマンドで表示される「Path」欄の文字列です(下の例における赤字部分)。同欄では、該当経路のAS_PATH属性がスペースで区切られたAS番号の並びとして記述されています。ASパスアクセスリストを作成するときは、この文字列に対する正規表現を記述してください。

awplus> show ip bgp
..
   Network          Next Hop            Metric LocPrf Weight Path
..
*> 172.23.0.0       10.10.10.8               0    100      0 65020 65080 i
..


次にASパスアクセスリストの具体的な例をいくつか示します。

Note - ASパスアクセスリストの末尾には「deny .*」、すなわち、すべてをdenyする暗黙のエントリーが存在していることにご注意ください。


コミュニティーリスト

コミュニティーリストは、BGP経路エントリーの分類・識別に特化した仕組みです。COMMUNITIES属性の値に基づいてBGP経路をフィルタリングしたり、各種属性を変更するときに使います。

コミュニティーリストは複数のエントリーから構成されるリストで、検索はエントリーの追加順に行われます。検索時には、最初にマッチしたエントリーで結果(permitかdeny)が返され、マッチした時点で検索は終了します。どのエントリーにもマッチしなかった場合はdenyとなります。

コミュニティーリストは単独で使用するのではなく、必ずルートマップのmatch節やset節で使用します(match communityコマンド、set comm-list deleteコマンド)。

コミュニティーリストには、照合条件の指定方法の違いによって「標準」と「拡張」の2種類があり、さらにリストを番号で識別するタイプと名前で識別するタイプがあるため、全部で4つの種類があります。それぞれ、以下のコマンドで設定を行います。


「標準」と「拡張」は、照合条件の指定にコミュニティー値のリスト(値の順序は意味を持たない)を使うか、正規表現(値の順序が意味を持つ)を使うが異なります。

「番号付き」と「名前付き」は、識別子が番号であるか文字列であるかの違いだけで、機能的な差異はありません。

以下では、コミュニティーリストを用いて経路エントリーを分類・識別する方法について解説します。

標準コミュニティーリスト

標準コミュニティーリストでは、COMMUNITIES属性との照合にコミュニティー値のリストを使用します。このリストでは値の順序は意味を持たず、照合対象経路のCOMMUNITIES属性にリストで指定した値がすべて含まれていればマッチ、そうでなければ非マッチとなります。次にいくつか例を示します。


Note - 標準コミュニティーリストの末尾には、すべてをdenyする暗黙のエントリーが存在していることにご注意ください。なお、コミュニティーリストはルートマップのmatch節やset節で使うものなので、基本的にはpermitする経路だけを列挙します。

拡張コミュニティーリスト

拡張コミュニティーリストでは、COMMUNITIES属性との照合に「正規表現」(Regular Expression)を使用します。正規表現とは、特殊文字(メタ文字)を使って文字列を一定の「パターン」として表すための表記法で、ファイル名指定に使う「ワイルドカード」といくらか似ています。

拡張コミュニティーリストで指定可能な正規表現の構成要素は次のとおりです。

構成要素
意味
^ 所属コミュニティーを表す文字列の先頭にマッチ
$ 所属コミュニティーを表す文字列の末尾にマッチ
. スペースを含む任意の1文字にマッチ
* 直前のパターンが0個以上続く場合に最長マッチ
+ 直前のパターンが1個以上続く場合に最長マッチ
? 直前のパターンが0個または1個ある場合にマッチ
_ コミュニティーの区切りにマッチ。具体的にはスペース、カンマ、丸カッコ( )、波カッコ{ }、文字列の先頭と末尾にマッチする
[012] 角カッコ[ ]で囲まれた文字のどれか1つと一致すればマッチ
[^012] 角カッコ[ ]で囲まれた文字のどれとも一致しなければマッチ
- 角カッコ[ ]内で使った場合のみ、ASCII文字の範囲を示す。たとえば、[0-2]は[012]と、[^6-9]は[^6789]と同じ意味になる
internet コミュニティー0:0にマッチ
no-export コミュニティー65535:65281(NO_EXPORT)にマッチ
no-advertise コミュニティー65535:65282(NO_ADVERTISE)にマッチ
local-AS コミュニティー65535:65283(NO_EXPORT_SUBCONFED)にマッチ。「AS」が大文字であることに注意


拡張コミュニティーリストにおいて、正規表現の照合対象となるのは、COMMUNITIES属性の内容を表す文字列です。これは、show ip bgpコマンドで特定の経路エントリーを指定したときに表示される「Community」欄の文字列です(下の例における赤字部分)。

awplus> show ip bgp 172.20.10.0/24
BGP routing table entry for 172.20.10.0/24
Paths: (1 available, best #1, table Default-IP-Routing-Table, not advertised to
EBGP peer, Advertisements suppressed by an aggregate.)
  Not advertised to any peer
  Local
    0.0.0.0 from 0.0.0.0 (10.10.10.5)
      Origin incomplete, localpref 100, weight 32768, valid, sourced, best
      Community: 65010:10 65010:20 65010:1234 no-export
      Last update: Wed Mar 11 10:32:06 2009


「Community」欄の表記仕様は次のとおりです。
拡張コミュニティーリストを作成するときは、この「Community」欄の文字列に対する正規表現を記述してください。

Note - 正規表現では大文字小文字を区別するため、「internet」、「local-AS」などのキーワードを指定するときは注意してください。特に「local-AS」の「AS」が大文字であることには注意が必要です。

次に拡張コミュニティーリストの具体的な例をいくつか示します。

Note - 拡張コミュニティーリストの末尾には「deny .*」、すなわち、すべてをdenyする暗黙のエントリーが存在していることにご注意ください。なお、コミュニティーリストはルートマップのmatch節やset節で使うものなので、基本的にはpermitする経路だけを列挙します。


IPv6プレフィックスリスト

IPv6プレフィックスリストは、経路エントリーの分類・識別に特化した仕組みです。

IPプレフィックスリストではつねに「アドレス/プレフィックス長」の組に対してマッチングを行います。

IPプレフィックスリストは複数のエントリーから構成されるリストで、検索はエントリー番号の若い順に行われます。検索時には、最初にマッチしたエントリーで処理(permitかdeny)が行われるか結果(permitかdeny)が返され、マッチした時点で検索は終了します。どのエントリーにもマッチしなかった場合はdenyとなります。

IPv6プレフィックスリストを作成するには、ipv6 prefix-listコマンドを使います。
次にいくつか例を示します。

Note - IPv6プレフィックスリストの末尾には「deny any」、すなわち、すべてをdenyする暗黙のエントリーが存在していることにご注意ください。


ルートマップ

ルートマップは、宛先プレフィックスだけでなく、ネクストホップやメトリックなどのさまざまな基準に基づいて経路エントリーを分類・識別し、分類した経路を破棄したり、経路属性を書き換えたりするための機能です。

ルートマップは複数のエントリーで構成されるリストで、検索はエントリー番号の若い順に行われます。検索時には、最初にマッチしたエントリーで以下に示す処理が行われ、マッチした時点で検索は終了します。どのエントリーにもマッチしなかった場合はdenyとなります。


ルートマップ内の各エントリーは、0〜複数個のmatch節、1個のアクション(denyかpermit)、0〜複数個のset節によって構成されます。match節、アクション、set節は、それぞれ次の役割を持ちます。


なお、match節では、以下の情報を条件として使用できます。


宛先プレフィックス、ネクストホップアドレスのマッチングには、前述したIPプレフィックスリスト、IPv6プレフィックスリストを利用します。また、BGPにおけるAS_PATH属性のマッチングにはASパスアクセスリストを、COMMUNITIES属性のマッチングにはコミュニティーリストを利用します。なお、ルートマップエントリーでIPプレフィックスリスト、IPv6プレフィックスリスト、ASパスアクセスリストを使用する場合は、これらのリストを単独で使用する場合とdeny、permitの意味が異なるため注意してください。

また、set節では以下の情報を変更できます。


ルートマップの設定は次の流れで行います。

  1. 必要に応じて、宛先プレフィックスやネクストホップアドレス、AS_PATH属性、COMMUNITIES属性などのマッチングを行うためのIPプレフィックスリスト、IPv6プレフィックスリスト、ASパスアクセスリスト、コミュニティーリストを作成します。
    このとき、リスト中のdeny、permitは経路エントリーを破棄するかどうかの指定でなく、該当経路エントリーをルートマップエントリーにマッチさせるかどうかの指定である点に注意してください。経路エントリーを破棄するかどうかは、リストのアクションではなく、ルートマップエントリーのアクションで指定します。

  2. route-mapコマンドでルートマップエントリーを作成し、アクションを指定します。同コマンドを実行すると、ルートマップエントリーの内容を編集するためのルートマップモードに移行します。

  3. ルートマップエントリーにmatch節を追加して分類条件を指定します。このとき、必要に応じてIPプレフィックスリストなどを指定します。なお、match節のないルートマップエントリーは、すべての経路エントリーにマッチします。

  4. 手順2で指定したルートマップエントリーのアクションがpermitの場合は、必要に応じてset節を追加し、経路属性を変更するための設定を追加します。属性変更をしない場合、set節は不要です。

以下、ルートマップの作成例をいくつか示します。

Note - ルートマップの末尾には、すべてをdenyする暗黙のエントリーが存在していることにご注意ください。

Note - 前にも述べたとおり、ルートマップのmatch節で使用するIPプレフィックスリスト、IPv6プレフィックスリスト、ASパスアクセスリストでは、deny、permitの意味が通常とは逆転しているので注意してください。


RIPにおける経路フィルタリング

ここでは、RIPを使用してダイナミックルーティングを行う場合の経路フィルタリングの方法について解説します。

ディストリビュートリスト(RIP)

ディストリビュートリストは、RIPパケットの受信時に特定の経路を受け入れないよう設定したり、RIPパケットの送信時に特定の経路を通知しないよう設定したりするための機能です。

ディストリビュートリストは、RIPモードのdistribute-listコマンドで設定します。経路エントリーの分類条件は、IPプレフィックスリストで定義します。

■ RIPパケットの受信時に特定の経路を受け入れないようにするには、distribute-listコマンドを「in」方向で設定します。

たとえば、RIPインターフェースvlan20において、10.0.0.0/8に包含される経路エントリーを受け入れないようにするには、次のようにします。
  1. 宛先プレフィックスの先頭オクテットが「10」の経路エントリーを破棄し、その他は許可するIPプレフィックスリストp1を作成します。

    awplus(config)# ip prefix-list p1 deny 10.0.0.0/8 le 32
    awplus(config)# ip prefix-list p1 permit any
    


  2. RIPモードに移行して、受信用のディストリビュートリストをvlan20に設定します。このとき、分類条件としてIPプレフィックスリストp1を指定します。

    awplus(config)# router rip
    awplus(config-router)# distribute-list prefix p1 in vlan20
    


■ RIPパケットの送信時に特定の経路を通知しないようにするには、distribute-listコマンドを「out」方向で設定します。

たとえば、RIPインターフェースvlan10において、192.168.0.0/16に包含される経路エントリーを通知しないようにするには、次のようにします。
  1. 宛先プレフィックスの先頭2オクテットが「192.168」の経路エントリーを破棄し、その他は許可するIPプレフィックスリストp2を作成します。

    awplus(config)# ip prefix-list p2 deny 192.168.0.0/16 le 32
    awplus(config)# ip prefix-list p2 permit any
    


  2. RIPモードに移行して、送信用のディストリビュートリストをvlan10に設定します。このとき、分類条件としてIPプレフィックスリストp2を指定します。

    awplus(config)# router rip
    awplus(config-router)# distribute-list prefix p2 out vlan10
    


再通知用ルートマップ(RIP)

再通知用ルートマップは、再通知のため非RIP経路をインポートするときに、特定の経路を除外したり特定の経路の属性を変更した上でインポートしたりするための機能です。

再通知用ルートマップは、RIPモードのredistributeコマンドで再通知の設定を行うときに、route-mapパラメーターで指定します。

■ 非RIP経路のインポート時に、特定の経路をインポートしないよう設定したり、特定の経路の属性を変更した上でインポートするよう設定したりするには、redistributeコマンドのroute-mapパラメーターでルートマップを指定します。

たとえば、OSPF経路をRIPにインポートするとき、経路エントリー172.24.0.0/16をインポート対象から除外するには、次のようにします。
  1. 経路エントリー172.24.0.0/16を破棄し、その他を許可するルートマップr24を作成します。

    awplus(config)# ip prefix-list p24 permit 172.24.0.0/16
    awplus(config)# route-map r24 deny 10
    awplus(config-route-map)# match ip address prefix-list p24
    awplus(config-route-map)# exit
    awplus(config)# route-map r24 permit 20
    awplus(config-route-map)# exit
    


  2. RIPモードのredistributeコマンドでOSPF経路再通知の設定をするときに、route-mapパラメーターでルートマップ名を指定します。

    awplus(config)# router rip
    awplus(config-router)# redistribute ospf route-map r24
    


OSPFにおける経路フィルタリング

ここでは、OSPFを使用してダイナミックルーティングを行う場合の経路フィルタリングの方法について解説します。

エリアフィルターリスト

エリアフィルターリストは、ABRにおいて、特定エリアに対して他エリアの経路情報(タイプ3LSA)を通知しないよう設定したり、特定エリアの経路情報(タイプ3LSA)を他のエリアに通知しないよう設定したりするための機能です。

エリアフィルターリストは、OSPFモードのarea filter-listコマンドで設定します。経路エントリーの分類条件は、IPプレフィックスリストで定義します。

■ ABRにおいて、あるエリアに対して他エリアの経路情報(タイプ3LSA)を通知しないよう設定するには、area filter-listコマンドを方向「in」で設定します。

たとえば、エリア1のABRに対し、エリア1には172.23.0.0/16の範囲におさまるタイプ3LSA(他エリアの経路情報)を通知しないよう設定するには、次のようにします。
  1. 172.23.0.0/16に包含される宛先プレフィックスを持つ経路エントリーを破棄し、その他は許可するIPプレフィックスリストdpS23を作成します。

    awplus(config)# ip prefix-list dpS23 deny 172.23.0.0/16 le 32
    awplus(config)# ip prefix-list dpS23 permit any
    


  2. OSPFモードに移行して、エリア1に対する方向「in」のエリアフィルターリストを設定します。このとき、分類条件としてIPプレフィックスリストdpS23を指定します。

    awplus(config)# router ospf
    awplus(config-router)# area 1 filter-list prefix dpS23 in
    


■ ABRにおいて、あるエリアの経路情報(タイプ3LSA)を他のエリアに通知しないよう設定するには、area filter-listコマンドを方向「out」で設定します。

たとえば、エリア2のABRに対し、エリア2内部の経路172.22.254.0/24を他エリアにタイプ3LSAで通知しないよう設定するには、次のようにします。
  1. 172.22.254.0/16に包含される宛先プレフィックスを持つ経路エントリーを破棄し、その他は許可するIPプレフィックスリストdp254を作成します。

    awplus(config)# ip prefix-list dp254 deny 172.22.254.0/24
    awplus(config)# ip prefix-list dp254 permit any
    


  2. OSPFモードに移行して、エリア2に対する方向「out」のエリアフィルターリストを設定します。このとき、分類条件としてIPプレフィックスリストdp254を指定します。

    awplus(config)# router ospf
    awplus(config-router)# area 2 filter-list prefix dp254 out
    


再通知用ルートマップ(OSPF)

再通知用ルートマップは、ASBRにおいて再通知のため非OSPF経路をインポートするときに、特定の経路を除外したり、特定の経路の属性を変更した上でインポートしたりするための機能です。

再通知用ルートマップは、OSPFモードのredistributeコマンドで再通知の設定を行うときに、route-mapパラメーターで指定します。

■ ASBRにおいて非OSPF経路をインポートするときに、特定の経路をインポートしないよう設定したり、特定の経路の属性を変更した上でインポートするよう設定したりするには、redistributeコマンドのroute-mapパラメーターでルートマップを指定します。

たとえば、ASBRにおいてRIP経路をOSPFにインポートするとき、経路エントリー10.100.10.0/24をインポート対象から除外するには、次のようにします。
  1. 経路エントリー10.100.10.0/24を破棄し、その他を許可するルートマップrhtを作成します。

    awplus(config)# ip prefix-list pht permit 10.100.10.0/24
    awplus(config)# route-map rht deny 10
    awplus(config-route-map)# match ip address prefix-list pht
    awplus(config-route-map)# exit
    awplus(config)# route-map rht permit 20
    awplus(config-route-map)# exit
    


  2. OSPFモードのredistributeコマンドでRIP経路再通知の設定をするときに、route-mapパラメーターでルートマップ名を指定します。

    awplus(config)# router ospf
    awplus(config-router)# redistribute rip route-map rht
    


■ ASBRにおいて、デフォルト経路をAS内に再通知するときに、特定の条件を満たしたときだけデフォルト経路を再通知したり、デフォルト経路の属性を変更した上で再通知するよう設定したりするには、default-information originateコマンドのroute-mapパラメーターでルートマップを指定します。基本的な設定方法は、redistributeコマンドと同じです。

BGPにおける経路フィルタリング

ここでは、BGPを使用してダイナミックルーティングを行う場合の経路フィルタリングの方法について解説します。

BGPにおける経路フィルタリングは、次の3箇所で行います。

各フィルタリング機能の処理の流れは次のとおりです(経路表はIPv4とIPv6とで別ですが、下記の流れは共通です)。


ASパスフィルターリスト

ASパスフィルターリストは、UPDATEメッセージの受信時に特定のASパス(AS_PATH属性値)を持つ経路を受け入れないよう設定したり、UPDATEメッセージの送信時に特定のASパスを持つ経路を通知しないよう設定したりするための機能です。

ASパスフィルターリストは、ピアまたはピアグループごとにBGPモードのneighbor filter-listコマンド、BGP IPv6アドレスファミリーモードのneighbor filter-listコマンドで設定します。ASパスの分類条件は、ASパスアクセスリストで定義します。

■ ピアからUPDATEメッセージを受信したときに、特定のASパスを持つ経路を受け入れない(該当UPDATEを破棄する)ようにするには、neighbor filter-listコマンド(BGPモード)、neighbor filter-listコマンド(BGP IPv6アドレスファミリーモード)を「in」方向で設定します。

たとえば、BGPピア10.10.10.5からは、AS 65100を起源とする経路を受け入れないようにするには、次のようにします。以下の例では、BGPピアの設定までは完了しているものと仮定しています。
  1. 末尾が「65100」のASパスを拒否し、その他は許可するASパスアクセスリストaspath5_inを作成します。

    awplus(config)# ip as-path access-list aspath5_in deny 65100$
    awplus(config)# ip as-path access-list aspath5_in permit .*
    


  2. BGPモードに移行して、BGPピア10.10.10.5に対する受信用のASパスフィルターリストを設定します。このとき、分類条件としてASパスアクセスリストaspath5_inを指定します。

    awplus(config)# router bgp 65010
    awplus(config-router)# neighbor 10.10.10.5 filter-list aspath5_in in
    


■ ピアにUPDATEメッセージを送信するときに、特定のASパスを持つ経路を通知しないようにするには、neighbor filter-listコマンド(BGPモード)、neighbor filter-listコマンド(BGP IPv6アドレスファミリーモード)を「out」方向で設定します。

たとえば、BGPピア10.10.10.5には、自AS起源の経路(ローカル経路)だけを通知し、その他の経路を通知しないようにするには、次のようにします。以下の例では、BGPピアの設定までは完了しているものと仮定しています。
  1. 空のASパスを許可し、その他は拒否するASパスアクセスリストaspath5_outを作成します。

    awplus(config)# ip as-path access-list aspath5_out permit ^$
    


  2. BGPモードに移行して、BGPピア10.10.10.5に対する送信用のASパスフィルターリストを設定します。このとき、分類条件としてASパスアクセスリストaspath5_outを指定します。

    awplus(config)# router bgp 65010
    awplus(config-router)# neighbor 10.10.10.5 filter-list aspath5_out out
    


プレフィックスリスト

プレフィックスリストは、UPDATEメッセージの受信時に特定プレフィックスへの経路を受け入れないよう設定したり、UPDATEメッセージの送信時に特定プレフィックスへの経路を通知しないように設定したりするための機能です。

プレフィックスリストは、ピアまたはピアグループごとにBGPモードのneighbor prefix-listコマンド、BGP IPv6アドレスファミリーモードのneighbor prefix-listコマンドで設定します。経路エントリーの分類条件は、IPプレフィックスリスト(IPv4の場合)、IPv6プレフィックスリスト(IPv6の場合)で定義します。

■ ピアからUPDATEメッセージを受信したときに、特定プレフィックスへの経路を受け入れないようにするには、neighbor prefix-listコマンド(BGPモード)、neighbor prefix-listコマンド(BGP IPv6アドレスファミリーモード)を「in」方向で設定します。

たとえば、BGPピア10.10.10.4からは、172.28.0.0/16に包含されるプレフィックスへの経路を受け入れないようにするには、次のようにします。以下の例では、BGPピアの設定までは完了しているものと仮定しています。
  1. 宛先プレフィックス(アドレス部分)の先頭2オクテットが「172.28」で、プレフィックス長が16〜32ビットの経路エントリーを破棄し、その他は許可するIPプレフィックスリストplist4_inを作成します。

    awplus(config)# ip prefix-list plist4_in deny 172.28.0.0/16 le 32
    awplus(config)# ip prefix-list plist4_in permit any
    


  2. BGPモードに移行して、BGPピア10.10.10.4に対する受信用のプレフィックスリストを設定します。このとき、分類条件としてIPプレフィックスリストplist4_inを指定します。

    awplus(config)# router bgp 65010
    awplus(config-router)# neighbor 10.10.10.4 prefix-list plist4_in in
    


■ ピアにUPDATEメッセージを送信するときに、特定プレフィックスへの経路を通知しないようにするには、neighbor prefix-listコマンド(BGPモード)、neighbor prefix-listコマンド(BGP IPv6アドレスファミリーモード)を「out」方向で設定します。

たとえば、BGPピア10.10.10.4には、192.168.0.0/16に包含されるプレフィックスへの経路を通知しないようにするには、次のようにします。以下の例では、BGPピアの設定までは完了しているものと仮定しています。
  1. 宛先プレフィックス(アドレス部分)の先頭2オクテットが「192.168」で、プレフィックス長が16〜32ビットの経路エントリーを破棄し、その他は許可するIPプレフィックスリストplist4_outを作成します。

    awplus(config)# ip prefix-list plist4_out deny 192.168.0.0/16 le 32
    awplus(config)# ip prefix-list plist4_out permit any
    


  2. BGPモードに移行して、BGPピア10.10.10.4に対する送信用のプレフィックスリストを設定します。このとき、分類条件としてIPプレフィックスリストplist4_outを指定します。

    awplus(config)# router bgp 65010
    awplus(config-router)# neighbor 10.10.10.4 prefix-list plist4_out out
    


ピア用ルートマップ

ピア用ルートマップは、UPDATEメッセージの送受信時に経路をフィルタリング(破棄・除去)したり、経路の属性を変更したりするための機能です。

ASパスフィルターリストなどと同じように、UPDATEメッセージの受信時に特定の経路を受け入れないよう設定したり、UPDATEメッセージの送信時に特定の経路を通知しないように設定したりできるほか、受信した経路の属性を変更してから受け入れたり、経路の属性を変更してから送信したりすることもできます。

ピア用ルートマップは、ピアまたはピアグループごとにBGPモードのneighbor route-mapコマンド、BGP IPv6アドレスファミリーモードのneighbor route-mapコマンドで設定します。

■ ピアからUPDATEメッセージを受信したときに、特定の経路を受け入れないようにしたり、特定の経路の属性を変更してから受け入れるようにするには、neighbor route-mapコマンド(BGPモード)、neighbor route-mapコマンド(BGP IPv6アドレスファミリーモード)を「in」方向で設定します。

たとえば、BGPピア10.10.10.3からは、172.31.0.0/16に包含されるプレフィックスへの経路を受け入れず、また、その他の経路のうちコミュニティー「65030:1110」に所属する経路にはLOCAL_PREF属性値「100000」を設定してから受け入れるには、次のようにします。以下の例では、BGPピアの設定までは完了しているものと仮定しています。
  1. 宛先プレフィックス(アドレス部分)の先頭2オクテットが「172.31」で、プレフィックス長が16〜32ビットの経路エントリーをpermitし、その他はdenyするIPプレフィックスリストnet172_31を作成します。これは、ルートマップのmatch節において、「172.31.0.0/16に包含されるプレフィックスへの経路」を識別するためのものです。

    awplus(config)# ip prefix-list net172_31 permit 172.31.0.0/16 le 32
    


  2. COMMUNITIES属性にコミュニティー値「65030:1110」を含む経路をpermitし、その他はdenyする名前付き標準コミュニティーリストcom30_goodを作成します。これは、ルートマップのmatch節において、「コミュニティー65030:1110に所属する経路」を識別するためのものです。

    awplus(config)# ip community-list standard com30_good permit 65030:1110
    


  3. 「172.31.0.0/16に包含されるプレフィックスへの経路」を破棄し、「コミュニティー65030:1110に所属する経路」にLOCAL_PREF値「100000」を設定し、その他の経路は変更せずに受け入れるルートマップrmap3_inを作成します。

    awplus(config)# route-map rmap3_in deny 10
    awplus(config-route-map)# match ip address prefix-list net172_31
    awplus(config-route-map)# exit
    awplus(config)# route-map rmap3_in permit 20
    awplus(config-route-map)# match community com30_good
    awplus(config-route-map)# set local-preference 100000
    awplus(config-route-map)# exit
    awplus(config)# route-map rmap3_in permit 30
    awplus(config-route-map)# exit
    


  4. BGPモードに移行して、BGPピア10.10.10.3に対する受信用のルートマップを設定します。このとき、ルートマップrmap3_inを指定します。

    awplus(config)# router bgp 65010
    awplus(config-router)# neighbor 10.10.10.3 route-map rmap3_in in
    


■ ピアにUPDATEメッセージを送信するときに、特定の経路を通知しないようにしたり、特定の経路の属性を変更してから通知するには、neighbor route-mapコマンド(BGPモード)、neighbor route-mapコマンド(BGP IPv6アドレスファミリーモード)を「out」方向で設定します。

たとえば、BGPピア10.10.10.3には、AS 65001起源の経路を通知せず、また、プレフィックス192.168.10.0/24への経路にはMULTI_EXIT_DISC(MED)属性値「300」、プレフィックス192.168.20.0/24への経路にはMED属性値「700」を設定してから通知するには、次のようにします。以下の例では、BGPピアの設定までは完了しているものと仮定しています。
  1. 末尾が「65001」のASパスをpermitし、その他はdenyするASパスアクセスリストas65001_originを作成します。これは、ルートマップのmatch節において、「AS 65001起源の経路」を識別するためのものです。

    awplus(config)# ip as-path access-list as65001_origin permit 65001$
    


  2. 宛先プレフィックスが「192.168.10.0/24」と完全に一致する経路エントリーをpermitし、その他はdenyするIPプレフィックスリストprivC_10を作成します。これは、ルートマップのmatch節において、「プレフィックス192.168.10.0/24への経路」を識別するためのものです。

    awplus(config)# ip prefix-list privC_10 permit 192.168.10.0/24
    


  3. 宛先プレフィックスが「192.168.20.0/24」と完全に一致する経路エントリーをpermitし、その他はdenyするIPプレフィックスリストprivC_20を作成します。これは、ルートマップのmatch節において、「プレフィックス192.168.20.0/24への経路」を識別するためのものです。

    awplus(config)# ip prefix-list privC_20 permit 192.168.20.0/24
    


  4. 「AS 65001起源の経路」を破棄し、「プレフィックス192.168.10.0/24への経路」にMED値「300」を、「プレフィックス192.168.20.0/24への経路」にMED値「700」を設定し、その他の経路は変更せずに通知するルートマップrmap3_outを作成します。

    awplus(config)# route-map rmap3_out deny 10
    awplus(config-route-map)# match as-path as65001_origin
    awplus(config-route-map)# exit
    awplus(config)# route-map rmap3_out permit 20
    awplus(config-route-map)# match ip address prefix-list privC_10
    awplus(config-route-map)# set metric 300
    awplus(config-route-map)# exit
    awplus(config)# route-map rmap3_out permit 30
    awplus(config-route-map)# match ip address prefix-list privC_20
    awplus(config-route-map)# set metric 700
    awplus(config-route-map)# exit
    awplus(config)# route-map rmap3_out permit 40
    awplus(config-route-map)# exit
    


  5. BGPモードに移行して、BGPピア10.10.10.3に対する送信用のルートマップを設定します。このとき、ルートマップrmap3_outを指定します。

    awplus(config)# router bgp 65010
    awplus(config-router)# neighbor 10.10.10.3 route-map rmap3_out out
    


再通知用ルートマップ(BGP)

再通知用ルートマップは、再通知のため非BGP経路をインポートするときに、特定の経路を除外したり、特定の経路の属性を変更した上でインポートしたりするための機能です。

再通知用ルートマップは、BGPモードのredistributeコマンド、BGP IPv6アドレスファミリーモードのredistributeコマンドで再通知の設定を行うときに、route-mapパラメーターで指定します。

■ 非BGP経路のインポート時に、特定の経路をインポートしないよう設定したり、特定の経路の属性を変更した上でインポートするよう設定したりするには、redistributeコマンド(BGPモード)、redistributeコマンド(BGP IPv6アドレスファミリーモード)のroute-mapパラメーターでルートマップを指定します。

たとえば、直結経路をBGPにインポートするとき、「10.0.0.0/8」に包含される経路エントリーにWell-knownコミュニティー「NO_ADVERTISE」(65535:65282)をセットしてからインポートするには、次のようにします。
  1. 宛先プレフィックス(アドレス部分)の先頭オクテットが「10」で、プレフィックス長が8〜32ビットの経路エントリーをpermitし、その他はdenyするIPプレフィックスリストnet10を作成します。これは、ルートマップのmatch節において、「10.0.0.0/8に包含されるプレフィックスへの経路」を識別するためのものです。

    awplus(config)# ip prefix-list net10 permit 10.0.0.0/8 le 32
    


  2. 「10.0.0.0/8に包含されるプレフィックスへの経路」にWell-knownコミュニティー「NO_ADVERTISE」をセットし、その他の経路は変更しないルートマップdont_adv_10を作成します。

    awplus(config)# route-map dont_adv_10 permit 10
    awplus(config-route-map)# match ip address prefix-list net10
    awplus(config-route-map)# set community no-advertise
    awplus(config-route-map)# exit
    awplus(config)# route-map dont_adv_10 permit 20
    awplus(config-route-map)# exit
    


  3. redistributeコマンド(BGPモード)、redistributeコマンド(BGP IPv6アドレスファミリーモード)で直結経路再通知の設定をするときに、route-mapパラメーターでルートマップ名を指定します。

    awplus(config)# router bgp 65010
    awplus(config-router)# redistribute connected route-map dont_adv_10
    


RIPngにおける経路フィルタリング

ここでは、RIPngを使用してダイナミックルーティングを行う場合の経路フィルタリングの方法について解説します。考え方はIPv4のRIPと同じです。

ディストリビュートリスト(RIPng)

ディストリビュートリストは、RIPngパケットの受信時に特定の経路を受け入れないよう設定したり、RIPngパケットの送信時に特定の経路を通知しないよう設定したりするための機能です。

ディストリビュートリストは、RIPngモードのdistribute-listコマンドで設定します。経路エントリーの分類条件は、IPv6プレフィックスリストで定義します。

■ RIPngパケットの受信時に特定の経路を受け入れないようにするには、distribute-listコマンドを「in」方向で設定します。

たとえば、RIPngインターフェースvlan20において、2001:db8:10cc::/48に包含される経路エントリーを受け入れないようにするには、次のようにします。
  1. 宛先プレフィックスの先頭48ビットが「2001:db8:10cc」でプレフィックス長が48〜128ビットの経路エントリーを破棄し、その他は許可するIPv6プレフィックスリストdist20_inを作成します。

    awplus(config)# ipv6 prefix-list dist20_in deny 2001:db8:10cc::/48 le 128
    awplus(config)# ipv6 prefix-list dist20_in permit any
    


  2. RIPngモードに移行して、受信用のディストリビュートリストをvlan20に設定します。このとき、分類条件としてIPv6プレフィックスリストdist20_inを指定します。

    awplus(config)# router ipv6 rip
    awplus(config-router)# distribute-list prefix dist20_in in vlan20
    


■ RIPngパケットの送信時に特定の経路を通知しないようにするには、distribute-listコマンドを「out」方向で設定します。

たとえば、RIPngインターフェースvlan10において、2001:db8:3c::/48に包含される経路エントリーを通知しないようにするには、次のようにします。
  1. 宛先プレフィックスの先頭48ビットが「2001:db8:3c」でプレフィックス長が48〜128ビットの経路エントリーを破棄し、その他は許可するIPv6プレフィックスdist10_outを作成します。

    awplus(config)# ipv6 prefix-list dist10_out deny 2001:db8:3c::/48 le 128
    awplus(config)# ipv6 prefix-list dist10_out permit any
    


  2. RIPngモードに移行して、送信用のディストリビュートリストをvlan10に設定します。このとき、分類条件としてIPv6プレフィックスリストdist10_outを指定します。

    awplus(config)# router ipv6 rip
    awplus(config-router)# distribute-list prefix dist10_out out vlan10
    


再通知用ルートマップ(RIPng)

再通知用ルートマップは、再通知のため非RIPng経路をインポートするときに、特定の経路を除外したり、特定の経路の属性を変更した上でインポートしたりするための機能です。

再通知用ルートマップは、RIPngモードのredistributeコマンドで再通知の設定を行うときに、route-mapパラメーターで指定します。

■ 非RIPng経路のインポート時に、特定の経路をインポートしないよう設定したり、特定の経路の属性を変更した上でインポートするよう設定したりするには、redistributeコマンドのroute-mapパラメーターでルートマップを指定します。

たとえば、スタティック経路をRIPngにインポートするとき、「2001:db8:1234::/48」に包含される経路エントリーをインポート対象から除外するには、次のようにします。
  1. 宛先プレフィックスの先頭48ビットが「2001:db8:1234」でプレフィックス長が48〜128ビットの経路エントリーを破棄し、その他を許可するルートマップr_staticを作成します。

    awplus(config)# ipv6 prefix-list p1234 permit 2001:db8:1234::/48 le 128
    awplus(config)# route-map r_static deny 10
    awplus(config-route-map)# match ipv6 address prefix-list p1234
    awplus(config-route-map)# exit
    awplus(config)# route-map r_static permit 20
    awplus(config-route-map)# exit
    


  2. RIPngモードのredistributeコマンドでスタティック経路再通知の設定をするときに、route-mapパラメーターでルートマップ名を指定します。

    awplus(config)# router ipv6 rip
    awplus(config-router)# redistribute static route-map r_static
    


OSPFv3における経路フィルタリング

ここでは、OSPFv3を使用してダイナミックルーティングを行う場合の経路フィルタリングの方法について解説します。サポートするフィルタリング機能には差分がありますが、考え方はIPv4のOSPFと同じです。

再通知用ルートマップ(OSPFv3)

再通知用ルートマップは、ASBRにおいて再通知のため非OSPFv3経路をインポートするときに、特定の経路を除外したり、特定の経路の属性を変更した上でインポートしたりするための機能です。

再通知用ルートマップは、OSPFv3モードのredistributeコマンドで再通知の設定を行うときに、route-mapパラメーターで指定します。

■ ASBRにおいて非OSPFv3経路をインポートするときに、特定の経路をインポートしないよう設定したり、特定の経路の属性を変更した上でインポートするよう設定したりするには、redistributeコマンドのroute-mapパラメーターでルートマップを指定します。

たとえば、ASBRにおいてRIPng経路をOSPFv3にインポートするとき、経路エントリー2001:db8:100:10::/64をインポート対象から除外するには、次のようにします。
  1. 経路エントリー2001:db8:100:10::/64を破棄し、その他を許可するルートマップrhtを作成します。

    awplus(config)# ipv6 prefix-list pht permit 2001:db8:100:10::/64
    awplus(config)# route-map rht deny 10
    awplus(config-route-map)# match ipv6 address prefix-list pht
    awplus(config-route-map)# exit
    awplus(config)# route-map rht permit 20
    awplus(config-route-map)# exit
    


  2. OSPFv3モードのredistributeコマンドでRIPng経路再通知の設定をするときに、route-mapパラメーターでルートマップ名を指定します。

    awplus(config)# router ivp6 ospf
    awplus(config-router)# redistribute rip route-map rht
    



(C) 2015 アライドテレシスホールディングス株式会社

PN: 613-002107 Rev.F