概要

BGPルートフィルタのプレフィクスリストの設定と確認コマンドについて解説します。プレフィクスリストでは、ネットワークアドレスとサブネットマスクによってフィルタするBGPルートを特定します。

プレフィクスリストの設定の流れ

プレフィクスリストでBGPルートをフィルタするための設定の流れは、以下の通りです。

  1. プレフィクスリストでフィルタするルート情報を特定する
  2. 特定のネイバーへプレフィクスリストを適用する
  3. BGPルートを再送受信する

プレフィクスリストの設定コマンド

プレフィクスリストを作成して、BGPネイバーに適用するためのコマンドは以下の通りです。

BGPルートフィルタ プレフィクスリスト

(config)#ip prefix-list <list-name> [<seq num>] {permit | deny} <address/length> [ge <ge-length>] [le <le-length>]
(config)#router bgp <AS>
(config-router)#neighbor <ip-address> prefix-list <list-name> {in|out}

<list-name> : プレフィクスリスト名
<seq-num> : シーケンス番号。デフォルトで5単位
<address/length> : ネットワークアドレスのビットパターン
<ge-length> : サブネットマスクの長さ
<le-length> : サブネットマスクの長さ
<AS> : AS番号
<ip-address> : ネイバーのIPアドレス

プレフィクスリストによって、ルート情報のネットワークアドレスとサブネットマスクを参照してBGPルートを特定します。そして、permitまたはdenyで特定したルート情報をどのように扱うかを決めます。

permitはルート情報を許可します。すなわち、outで適用しているときは該当のBGPルートをアドバタイズします。inで適用すればBGPルートを受信します。denyは、ルート情報を破棄します。つまり、outで適用していると該当のBGPルートをアドバタイズしません。inで適用していると該当のBGPルートを受信しません。また、プレフィクスリストの最後には「暗黙のdeny」があることも忘れないでください。

プレフィクスリストにおける「any」の設定方法にも注意が必要です。プレフィクリストでの「any(すべて)」は、以下のような設定です。

0.0.0.0/0 le 32

この設定は、ネットワークアドレスのビットパターンは何でもOKでサブネットマスクが/32以下という意味です。すなわち、すべてのネットワークアドレスとサブネットマスクの組み合わせを表しています。

図 BGP プレフィクスリストの設定
図 BGP プレフィクスリストの設定

BGPルートの再送受信

プレフィクスリストをネイバーに適用するだけでは、ルートフィルタは反映されません。BGPルートの再送受信が必要です。プレフィクスリストを適用している方向によって、再送または再受信してください。特権EXECモードで次のコマンドを利用します。

BGPルートの再送受信

#clear ip bgp <ip-address> {in|out}

<ip-address> : ネイバーのIPアドレス

プレフィクスリストの確認コマンド

プレフィクスリストによるBGPルートフィルタを確認するための主なshowコマンドを以下の表にまとめています。

コマンド概要
#show ip prefix-listBGPルートを特定するためのプレフィクスリストを確認します。
#show ip neighborBGPネイバーに適用されているプレフィクスリストを確認します。
#show ip bgpBGPテーブルを確認します。
#show ip bgp neighbor advertised-routes指定したBGPネイバーへアドバタイズするBGPルートを確認します。
#show ip bgp neighbor routes指定したBGPネイバーから受信したBGPルートを確認します。
表 プレフィクスリストの確認コマンド

show ip prefix-list

show ip prefix-listコマンドでBGPルートを特定するためのプレフィクスリストを確認します。

show ip prefix-list

R1#show ip prefix-list
ip prefix-list FROM_R2: 2 entries
   seq 5 deny 172.16.1.0/24 ge 28
   seq 10 permit 0.0.0.0/0 le 32
ip prefix-list TO_R2: 1 entries
   seq 5 permit 192.168.1.0/24

show ip bgp neighbor

BGPネイバーに適用されているプレフィクスリストを確認するには、show ip bgp neighborコマンドを利用します。とても長い表示になるので、include prefix filterでフィルタをかけるとわかりやすくなります。

show ip bgp neighbor

R1#show ip bgp neighbors 10.0.0.2 | include prefix filter
  Incoming update prefix filter list is FROM_R2
  Outgoing update prefix filter list is TO_R2

show ip bgp

show ip bgpコマンドでBGPテーブルを表示して、意図したフィルタがかかっているかを確認します。ただ、BGPテーブル全体を表示するとわかりづらいので、BGPテーブルの表示をフィルタしてください。

show ip bgp

R1#show ip bgp
BGP table version is 18, local router ID is 192.168.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>  172.16.1.0/25    10.0.0.2                 0             0 2 i
 *>  172.16.1.128/26  10.0.0.2                 0             0 2 i
 *>  192.168.1.0      0.0.0.0                  0         32768 i
 *>  192.168.2.0      0.0.0.0                  0         32768 i
 *>  192.168.3.0      0.0.0.0                  0         32768 i

show ip bgp neighbor advertised-routes

show ip bgp neighbor advertised-routesコマンドで、指定したネイバーへアドバタイズするBGPルートを表示します。

shwo ip bgp neighbor advertised-routes

R1#show ip bgp neighbors 10.0.0.2 advertised-routes
BGP table version is 18, local router ID is 192.168.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>  192.168.1.0      0.0.0.0                  0         32768 i

Total number of prefixes 1

show ip bgp neighbor routes

show ip bgp neighbor routesコマンドで、指定したネイバーから受信したBGPルートを表示します。

show ip bgp neighbor routes

R1#show ip bgp neighbors 10.0.0.2 routes
BGP table version is 18, local router ID is 192.168.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>  172.16.1.0/25    10.0.0.2                 0             0 2 i
 *>  172.16.1.128/26  10.0.0.2                 0             0 2 i

Total number of prefixes 2

まとめ

ポイント

  • プレフィクスリストによるBGPルートフィルタの設定の流れは以下の通りです。
    • プレフィクスリストでフィルタするルート情報を特定する
    • 特定のネイバーへディストリビュートリストを適用する
  • プレフィクスリストは、ネットワークアドレスとサブネットマスクを参照してフィルタするルートを特定します。

BGPの仕組み