# IP / 経路制御（フィルタリング）

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

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

ここでのフィルタリングとは、あらかじめ指定した条件にしたがって経路情報を分類・識別し、特定の経路を許可・破棄したり、経路情報の属性を変更したりすることを指します。
本製品には、ダイナミックルーティングプロトコル使用時に経路情報をフィルタリングする方法として、それぞれ次の機能が用意されています。

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

表 2：OSPF用の経路フィルタリング機能
名称 | 対象 | 機能 | 分類・識別方法
エリアフィルターリスト | エリア間経路の送受信時 | ABRにおいて、特定エリアに対して他エリアの経路情報（タイプ3LSA）を通知しないよう設定したり、特定エリアの経路情報（タイプ3LSA）を他のエリアに通知しないよう設定したりする | IPプレフィックスリスト
ディストリビュートリスト | OSPF経路表からIP経路表へのインポート時 | OSPF経路表から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プレフィックスリスト（ip prefix-listコマンド）
- ASパスアクセスリスト（ip as-path access-listコマンド）
- コミュニティーリスト（単独使用は不可。ルートマップのmatch節で使う。次の4種類がある）
  - 番号付き標準コミュニティーリスト（ip community-list(standard)コマンド）
  - 名前付き標準コミュニティーリスト（ip community-list standardコマンド）
  - 番号付き拡張コミュニティーリスト（ip community-list(expanded)コマンド）
  - 名前付き拡張コミュニティーリスト（ip community-list expandedコマンド）
- IPv6プレフィックスリスト（ipv6 prefix-listコマンド）
- ルートマップ（route-mapコマンドほか。ルートマップ中でIPプレフィックスリスト、ASパスアクセスリスト、コミュニティーリスト、IPv6プレフィックスリストを使うこともある）

以下では、まずこれら分類・識別のための機能について説明し、次に各ルーティングプロトコルにおける経路フィルタリングの設定について具体例を挙げながら説明します。
ダイナミックルーティングなどの関連機能については以下のセクションをご覧ください。

- RIP
- OSPF
- BGP
- RIPng
- OSPFv3
- ポリシーベースルーティング

## 経路の分類・識別

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

### IPプレフィックスリスト

IPプレフィックスリストは、経路エントリーの分類・識別に特化した仕組みです。
IPプレフィックスリストではつねに「アドレス/プレフィックス長（サブネットマスクの長さ）」の組に対してマッチングを行います。
IPプレフィックスリストは複数のエントリーから構成されるリストで、検索はエントリー番号の若い順に行われます。検索時には、最初にマッチしたエントリーで処理（permitかdeny）が行われるか結果（permitかdeny）が返され、マッチした時点で検索は終了します。どのエントリーにもマッチしなかった場合はdenyとなります。
IPプレフィックスリストを作成するには、ip prefix-listコマンドを使います。
次にいくつか例を示します。
Note

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

- 宛先プレフィックス（アドレス部分）の先頭オクテットが「10」で、プレフィックス長が8～32ビットの経路エントリーを破棄し、その他は許可する。

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

- 宛先プレフィックス（アドレス部分）の先頭2オクテットが「172.16」で、プレフィックス長が16～32ビットの経路エントリーを破棄し、その他は許可する。

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

- 宛先プレフィックス（アドレス部分）の先頭3オクテットが「192.168.10」で、プレフィックス長が24～32ビットの経路エントリーを破棄し、その他は許可する。

      awplus(config)# ip prefix-list p3 deny 192.168.10.0/24 le 32
      awplus(config)# ip prefix-list p3 permit any

- 宛先プレフィックス（アドレス部分）の先頭25ビットが「192.168.10.128」で、プレフィックス長が25～32ビットの経路エントリーを破棄し、その他は許可する。

      awplus(config)# ip prefix-list p4 deny 192.168.10.128/25 le 32
      awplus(config)# ip prefix-list p4 permit any

- 宛先プレフィックス（アドレス部分）の先頭25ビットが「192.168.10.128」で、プレフィックス長が25ビットの経路エントリーを破棄し、その他は許可する。具体的には「192.168.10.128/25」と完全一致する経路エントリーだけを破棄する。

      awplus(config)# ip prefix-list p5 deny 192.168.10.128/25
      awplus(config)# ip prefix-list p5 permit any

- 宛先プレフィックス（アドレス部分）の先頭3オクテットが「192.168.10」で、プレフィックス長が25～28ビットの経路エントリーを破棄し、その他は許可する。具体的には「192.168.10.0/25」や「192.168.10.128/28」などの経路エントリーにマッチします。

      awplus(config)# ip prefix-list p6 deny 192.168.10.0/24 ge 25 le 28
      awplus(config)# ip prefix-list p6 permit any

### 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する暗黙のエントリーが存在していることにご注意ください。

- 空のASパスを拒否し、その他は許可する。

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

- 空でないASパスを許可し、その他は拒否する（前の例のより簡潔な書き方）。

      awplus(config)# ip as-path access-list as2 permit .+

- 末尾が「65060」のASパスを許可し、その他は拒否する。

      awplus(config)# ip as-path access-list as3 permit 65060$

- 「65020 65030 65040」と完全一致するASパスだけを許可し、その他は拒否する。

      awplus(config)# ip as-path access-list as4 permit ^65020 65030 65040$

- 「65021 65031 65041」を含むASパスだけを許可し、その他は拒否する。

      awplus(config)# ip as-path access-list as5 permit 65021 65031 65041

### コミュニティーリスト

コミュニティーリストは、BGP経路エントリーの分類・識別に特化した仕組みです。COMMUNITIES属性の値に基づいてBGP経路をフィルタリングしたり、各種属性を変更するときに使います。
コミュニティーリストは複数のエントリーから構成されるリストで、検索はエントリーの追加順に行われます。検索時には、最初にマッチしたエントリーで結果（permitかdeny）が返され、マッチした時点で検索は終了します。どのエントリーにもマッチしなかった場合はdenyとなります。
コミュニティーリストは単独で使用するのではなく、必ずルートマップのmatch節やset節で使用します（match communityコマンド、set comm-list deleteコマンド）。
コミュニティーリストには、照合条件の指定方法の違いによって「標準」と「拡張」の2種類があり、さらにリストを番号で識別するタイプと名前で識別するタイプがあるため、全部で4つの種類があります。それぞれ、以下のコマンドで設定を行います。

- 番号付き「標準」コミュニティーリスト：ip community-list(standard)コマンド
- 名前付き「標準」コミュニティーリスト：ip community-list standardコマンド
- 番号付き「拡張」コミュニティーリスト：ip community-list(expanded)コマンド
- 名前付き「拡張」コミュニティーリスト：ip community-list expandedコマンド

「標準」と「拡張」は、照合条件の指定にコミュニティー値のリスト（値の順序は意味を持たない）を使うか、正規表現（値の順序が意味を持つ）を使うが異なります。
「番号付き」と「名前付き」は、識別子が番号であるか文字列であるかの違いだけで、機能的な差異はありません。
以下では、コミュニティーリストを用いて経路エントリーを分類・識別する方法について解説します。

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

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

- COMMUNITIES属性にWell-knownコミュニティーNO_ADVERTISE（65535:65282）を含む経路だけを許可する。番号付き標準コミュニティーリスト（ip community-list(standard)コマンド）の例。

      awplus(config)# ip community-list 1 permit no-advertise

- COMMUNITIES属性にコミュニティー値65010:10と65010:20を含む経路だけを許可する。名前付き標準コミュニティーリスト（ip community-list standardコマンド）の例。

      awplus(config)# ip community-list standard sc1 permit 65010:10 65010:20

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」欄の表記仕様は次のとおりです。

- 該当経路の所属コミュニティーが、番号の小さい順にスペース区切りで記述される
- コミュニティーは、「AA:NN」（AA、NNとも1～65535）の形式で表示される（カギかっこは表示に含まれない。以下同じ）。ただし、次の4つは例外。
  - コミュニティー「0:0」は、「internet」と表示される
  - コミュニティー「65535:65281」は、「no-export」と表示される
  - コミュニティー「65535:65282」は、「no-advertise」と表示される
  - コミュニティー「65535:65283」は、「local-AS」と表示される

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

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

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

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

- COMMUNITIES属性に65010:10か65010:20のいずれかを含む経路だけを許可する。番号付き拡張コミュニティーリスト（ip community-list(expanded)コマンド）の例。

      awplus(config)# ip community-list 100 permit 65010:10
      awplus(config)# ip community-list 100 permit 65010:20

- COMMUNITIES属性にWell-knownコミュニティーNO_EXPORT（65535:65281）と65010:65281の両方を含む経路だけを許可する。番号付き拡張コミュニティーリスト（ip community-list(expanded)コマンド）の例。

      awplus(config)# ip community-list 101 permit 65010:65281 no-export

  Note

  コミュニティー値の順序を「no-export 65010:65281」のようにするとマッチしません。また、「no-export」を「NO-EXPORT」と記述したり、「65535:65281」のように数字に展開して記述したりした場合もマッチしないのでご注意ください。

- COMMUNITIES属性が付加されていない経路だけを許可する。名前付き拡張コミュニティーリスト（ip community-list expandedコマンド）の例。

      awplus(config)# ip community-list expanded ec1 permit ^$

- COMMUNITIES属性が付加されている経路だけを許可する。名前付き拡張コミュニティーリスト（ip community-list expandedコマンド）の例。

      awplus(config)# ip community-list expanded ec2 permit .+

### IPv6プレフィックスリスト

IPv6プレフィックスリストは、経路エントリーの分類・識別に特化した仕組みです。
IPプレフィックスリストではつねに「アドレス/プレフィックス長」の組に対してマッチングを行います。
IPプレフィックスリストは複数のエントリーから構成されるリストで、検索はエントリー番号の若い順に行われます。検索時には、最初にマッチしたエントリーで処理（permitかdeny）が行われるか結果（permitかdeny）が返され、マッチした時点で検索は終了します。どのエントリーにもマッチしなかった場合はdenyとなります。
IPv6プレフィックスリストを作成するには、ipv6 prefix-listコマンドを使います。
次にいくつか例を示します。
Note

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

- 宛先プレフィックス（アドレス部分）の先頭32ビットが「2001:db8」で、プレフィックス長が32～128ビットの経路エントリーを破棄し、その他は許可する。

      awplus(config)# ipv6 prefix-list p1 deny 2001:db8::/32 le 128
      awplus(config)# ipv6 prefix-list p1 permit any

- 宛先プレフィックス（アドレス部分）の先頭48ビットが「2001:db8:10」で、プレフィックス長が48～128ビットの経路エントリーを破棄し、その他は許可する。

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

- 宛先プレフィックス（アドレス部分）の先頭48ビットが「2001:db8:10」で、プレフィックス長が48ビットの経路エントリーを破棄し、その他は許可する。具体的には「2001:db8:10::/48」と完全一致する経路エントリーだけを破棄する。

      awplus(config)# ipv6 prefix-list p3 deny 2001:db8:10::/48
      awplus(config)# ipv6 prefix-list p3 permit any

- 宛先プレフィックス（アドレス部分）の先頭32ビットが「2001:db8」で、プレフィックス長が48～64ビットの経路エントリーを破棄し、その他は許可する。具体的には「2001:db8:10::/48」や「2001:db8:abcd:10::/64」などの経路エントリーにマッチします。

      awplus(config)# ipv6 prefix-list p4 deny 2001:db8::/32 ge 48 le 64
      awplus(config)# ipv6 prefix-list p4 permit any

### ルートマップ

ルートマップは、宛先プレフィックスだけでなく、ネクストホップやメトリックなどのさまざまな基準に基づいて経路エントリーを分類・識別し、分類した経路を破棄したり、経路属性を書き換えたりするための機能です。
ルートマップは複数のエントリーで構成されるリストで、検索はエントリー番号の若い順に行われます。検索時には、最初にマッチしたエントリーで以下に示す処理が行われ、マッチした時点で検索は終了します。どのエントリーにもマッチしなかった場合はdenyとなります。

- マッチしたエントリーのアクションがpermitなら、該当経路は許可され、set節があればそれも実行される
- マッチしたエントリーのアクションがdenyなら、該当経路は破棄され、set節は実行されない

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

- match節は、経路エントリーと照合するための条件。match節のないエントリーはすべてにマッチする
- アクションは、マッチした経路を許可（permit）するか破棄（deny）するかの指定。許可された経路には引き続きset節が適用される
- set節は、許可（permit）された経路の属性を変更するための指定。1つのエントリーにおいて、複数種の属性を変更することができる

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

- 宛先プレフィックス（match ip addressコマンド、match ipv6 addressコマンド）
- ネクストホップインターフェース（match interfaceコマンド）
- ネクストホップアドレス（match ip next-hopコマンド）
- メトリック（match metricコマンド）
- OSPF外部経路のメトリックタイプ（match route-typeコマンド）
- OSPF外部経路のタグ（match tagコマンド）
- BGP経路のAS_PATH属性（match as-pathコマンド）
- BGP経路のCOMMUNITIES属性（match communityコマンド）
- BGP経路のORIGIN属性（match originコマンド）

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

- ネクストホップアドレス（set ip next-hopコマンド）
- メトリック（set metricコマンド）
- OSPF外部経路のメトリックタイプ（set metric-typeコマンド）
- OSPF外部経路のタグ（set tagコマンド）
- BGP経路のAGGREGATOR属性（set aggregator asコマンド）
- BGP経路のAS_PATH属性（set as-path prependコマンド）
- BGP経路のATOMIC_AGGREGATE属性（set atomic-aggregateコマンド）
- BGP経路のCOMMUNITIES属性（set comm-list deleteコマンド、set communityコマンド）
- BGP経路のLOCAL_PREF属性（set local-preferenceコマンド）
- BGP経路のORIGIN属性（set originコマンド）
- BGP経路のORIGINATOR_ID属性（set originator-idコマンド）
- BGP経路のウェイト（set weightコマンド）

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

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の意味が通常とは逆転しているので注意してください。

- 192.168.0.0/24と完全一致する宛先プレフィックスを持つ経路エントリーを破棄し、その他は許可する。

      awplus(config)# ip prefix-list p0 permit 192.168.0.0/24
      awplus(config)# route-map r1 deny 10
      awplus(config-route-map)# match ip address prefix-list p0
      awplus(config-route-map)# exit
      awplus(config)# route-map r1 permit 20
      awplus(config-route-map)# exit

- 宛先プレフィックス（アドレス部分）の先頭2オクテットが「172.31」の経路エントリーに対し、OSPF外部経路タグ値「31」をセットする。その他の経路エントリーは変更しない。

      awplus(config)# ip prefix-list p1 permit 172.31.0.0/16 le 32
      awplus(config)# route-map r3 permit 10
      awplus(config-route-map)# match ip address prefix-list p1
      awplus(config-route-map)# set tag 31
      awplus(config-route-map)# exit
      awplus(config)# route-map r3 permit 20
      awplus(config-route-map)# exit

- 「2001:db8:10::/48」に内包されるすべての経路エントリーを破棄した上で、経路エントリー「2001:db8:20:aaaa::/64」と「2001:db8:30:aaaa::/64」のメトリックに1を加算する。その他の経路エントリーは変更しない。

      awplus(config)# ipv6 prefix-list no_redist permit 2001:db8:10::/48 le 128
      awplus(config)# ipv6 prefix-list redist_addmet permit 2001:db8:20:aaaa::/64
      awplus(config)# ipv6 prefix-list redist_addmet permit 2001:db8:30:aaaa::/64
      awplus(config)# route-map r4 deny 10
      awplus(config-route-map)# match ipv6 address prefix-list no_redist
      awplus(config-route-map)# exit
      awplus(config)# route-map r4 permit 20
      awplus(config-route-map)# match ipv6 address prefix-list redist_addmet
      awplus(config-route-map)# set metric +1
      awplus(config-route-map)# exit
      awplus(config)# route-map r4 permit 30
      awplus(config-route-map)# exit

## 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）

ディストリビュートリストは、OSPF経路表からIP経路表に経路情報を取り込むときに特定の経路をフィルタリングするための機能です。
ディストリビュートリストは、OSPFモードのdistribute-listコマンドで設定します。経路エントリーの分類条件は、ルートマップで定義します。
OSPF経路表からIP経路表に経路情報を取り込むときに特定の経路を受け入れないようにするには、distribute-listコマンドを「in」方向で設定します。
たとえば、vlan10経由の10.10.0.0/16宛て経路を受け入れないようにするには、次のようにします。

1. 「10.10.0.0/16」に合致するIPプレフィックスリストplを作成します。

       awplus(config)# ip prefix-list pl permit 10.10.0.0/16

2. vlan10経由の10.10.0.0/16宛て経路のみを破棄し、その他の経路は受け入れるルートマップrmを作成します。

       awplus(config)# route-map rm deny 1
       awplus(config-route-map)# match ip address prefix-list pl
       awplus(config-route-map)# match interface vlan10
       awplus(config-route-map)# exit
       awplus(config)# route-map rm permit 20
       awplus(config-route-map)# exit

3. OSPFモードに移行して、ルートマップrmにもとづくディストリビュートリスト（in）を設定します。

       awplus(config)# router ospf
       awplus(config-router)# distribute-list route-map rm in

### 再通知用ルートマップ（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箇所で行います。

- ピアに経路情報を送信するとき
  - ASパスフィルターリストの方向「out」
    - IPv4：neighbor filter-listコマンド（BGPモード）
    - IPv6：neighbor filter-listコマンド（BGP IPv6アドレスファミリーモード）
  - プレフィックスリストの方向「out」
    - IPv4：neighbor prefix-listコマンド（BGPモード）
    - IPv6：neighbor prefix-listコマンド（BGP IPv6アドレスファミリーモード）
  - ピア用ルートマップの方向「out」
    - IPv4：neighbor route-mapコマンド（BGPモード）
    - IPv6：neighbor route-mapコマンド（BGP IPv6アドレスファミリーモード）
- ピアから経路情報を受信したとき
  - ASパスフィルターリストの方向「in」
    - IPv4：neighbor filter-listコマンド（BGPモード）
    - IPv6：neighbor filter-listコマンド（BGP IPv6アドレスファミリーモード）
  - プレフィックスリストの方向「in」
    - IPv4：neighbor prefix-listコマンド（BGPモード）
    - IPv6：neighbor prefix-listコマンド（BGP IPv6アドレスファミリーモード）
  - ピア用ルートマップの方向「in」
    - IPv4：neighbor route-mapコマンド（BGPモード）
    - IPv6：neighbor route-mapコマンド（BGP IPv6アドレスファミリーモード）
- BGP経路表に経路情報をインポートするとき
  - 再通知用ルートマップ
    - IPv4：redistributeコマンド（BGPモード）
    - IPv6：redistributeコマンド（BGP IPv6アドレスファミリーモード）

各フィルタリング機能の処理の流れは次のとおりです（経路表は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 ipv6 ospf
       awplus(config-router)# redistribute rip route-map rht