目次
概要
BGPルートフィルタのディストリビュートリストの設定と確認コマンドについて解説します。ディストリビュートリストは、ACLで許可または拒否するBGPルート情報を特定します。
ディストリビュートリストの設定の流れ
ディストリビュートリストでBGPルートをフィルタするための設定の流れは、以下の通りです。
- ACLでフィルタするルート情報を特定する
- 特定のネイバーへディストリビュートリストを適用する
- BGPルートを再送受信する
ルート情報を特定するために標準ACLと拡張ACLを利用します。パケットフィルタで利用するときの標準/拡張ACLとは意味が異なることに注意してください。
ディストリビュートリストの設定コマンド
ディストリビュートリスト(標準ACL)の設定コマンド
標準ACLで許可または拒否するBGPルート情報を特定します。グローバルコンフィグレーションモードで標準ACLを作成します。そして、BGPネイバーへ適用します。
ディストリビュートリスト(標準ACL)の設定
(config)#access-list <ACL-num> {permit|deny} <network-address> <wildcard-mask>
(config)#router bgp <AS>
(config-router)#neighbor <ip-address> distribute-list <ACL-num> {in|out}
<ACL-num>:標準アクセスリスト番号。1-99
<network-address>:ネットワークアドレス
<wildcard-mask>:ワイルドカードマスク
<AS>:AS番号
<ip-address>:ネイバーのIPアドレス
<ACL-num>:ルートフィルタに用いるアクセスリスト番号
ACLのパラメータ名は、ルートフィルタで利用する場合を反映したものにしています。
標準ACLの<network-address> <wildcard-mask>でBGPルート情報のネットワークアドレスのビットパターンを指定します。勘違いしやすいのですが、「192.168.1.0 0.0.0.255」という設定は「192.168.1.0/24」を表しているわけではありません。標準ACLでは、ネットワークアドレスのビットパターンを示しているだけなので、「192.168.1.0 0.0.0.255」という設定は、ネットワークアドレスが「192.168.1」ではじまるBGPルートという意味です。
筆者は、思いっきり勘違いしていました。このページをご覧になっているあなたは勘違いしないでください。
そして、permitまたはdenyで該当したルート情報をどのように扱うかを決めます。permitはルート情報を許可します。すなわち、outで適用しているときは該当のBGPルートをアドバタイズします。inで適用すればBGPルートを受信します。denyは、ルート情報を拒否します。つまり、outで適用していると該当のBGPルートをアドバタイズしません。inで適用していると該当のBGPルートを受信しません。
また、ACLの最後には「暗黙のdeny」があることも忘れないでください。
ディストリビュートリスト(拡張ACL)の設定コマンド
拡張ACLによって、ネットワークアドレスだけでなくサブネットマスクもチェックしてフィルタするルート情報を特定できます。
ディストリビュートリスト(拡張ACL)の設定
(config)#access-list <ACL-num> {permit|deny} ip <network-address> <wildcard-mask> <subnet-address> <wildcard-mask>
(config)#router bgp <AS>
(config-router)#neighbor <ip-address> distribute-list <ACL-num> {in|out}
<ACL-num>:拡張アクセスリスト番号。100-199
<network-address>:ネットワークアドレス
<subnet-mask>:サブネットマスク
<wildcard-mask>:ワイルドカードマスク
<AS>:AS番号
<ip-address>:ネイバーのIPアドレス
<ACL-num>:ルートフィルタに用いるアクセスリスト番号
ACLのパラメータ名は、ルートフィルタで利用する場合を反映したものにしています。
拡張ACLのプロトコルは「ip」でOKです。本来の拡張ACLの送信元IPアドレスの部分でネットワークアドレスのビットパターンを設定します。そして、宛先IPアドレスの部分でサブネットマスクのビットパターンを設定します。
そして、permitまたはdenyで該当したルート情報をどのように扱うかを決めます。標準ACLのときとまったく同じです。
BGPルートの再送受信
ディストリビュートリストをネイバーに適用するだけでは、ルートフィルタは反映されません。BGPルートの再送受信が必要です。ディストリビュートリストを適用している方向によって、再送または再受信してください。特権EXECモードで次のコマンドを利用します。
BGPルートの再送受信
#clear ip bgp <ip-address> {in|out}
<ip-address> : ネイバーのIPアドレス
ディストリビュートリストの適用方向がinならclear ip bgp inで、ネイバーからのBGPルートを再受信します。適用方向がoutならclear ip bgp outで、ネイバーへBGPルートを再送信します。
ディストリビュートリストの確認コマンド
ディストリビュートリストによるBGPルートフィルタを確認するための主なshowコマンドを以下の表にまとめています。
コマンド | 概要 |
---|---|
#show ip access-list | BGPルートを特定するためのACLを確認します。 |
#show ip protocols | BGPネイバーに適用されているディストリビュートリストを確認します。 |
#show ip bgp | BGPテーブルを確認します。 |
#show ip bgp neighbor advertised-routes | 指定したBGPネイバーへアドバタイズするBGPルートを確認します。 |
#show ip bgp neighbor routes | 指定したBGPネイバーから受信したBGPルートを確認します。 |
show ip access-list
show ip access-listコマンドでBGPルートを特定するためのACLを確認します。
show ip access-list
R1#show access-lists Standard IP access list 1 10 permit 192.168.1.0 (2 matches) Extended IP access list 100 10 deny ip 172.16.1.0 0.0.0.255 255.255.255.240 0.0.0.15 (2 matches) 20 permit ip any any (2 matches)
show ip protocols
BGPネイバーに適用されているディストリビュートリストを確認するには、show ip protocolsコマンドがわかりやすいです。
show ip protocols
R1#show ip protocols *** IP Routing is NSF aware *** -- omitted -- Routing Protocol is "bgp 1" Outgoing update filter list for all interfaces is not set Incoming update filter list for all interfaces is not set IGP synchronization is disabled Automatic route summarization is disabled Neighbor(s): Address FiltIn FiltOut DistIn DistOut Weight RouteMap 10.0.0.2 100 1 Maximum path: 1 Routing Information Sources: Gateway Distance Last Update 10.0.0.2 20 00:04:21 Distance: external 20 internal 200 local 200
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ルートを表示します。
show 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ルートフィルタの設定の流れは以下の通りです。
- ACLでフィルタするルート情報を特定する
- 特定のネイバーへディストリビュートリストを適用する
- BGPルートを再送受信する
- BGPルートを特定するためのACLは、パケットフィルタで利用するACLとは意味が異なることに注意してください。
関連記事
BGPの仕組み
- BGPの概要 ~AS間でルート情報を交換~
- BGPの動作
- BGPの基本設定と確認コマンド
- BGPピアグループ(Peer Group) ~ネイバーの設定をまとめよう~
- BGPネイバーの状態
- BGPコンフェデレーションの設定
- BGPコンフェデレーションの設定例
- BGPネイバー認証
- BGP Well Known Mandatory アトリビュート -ORIGIN/AS_PATH/NEXT_HOP-
- 図解!BGPベストパス選択アルゴリズム
- BGP 基本的な設定についての演習[Cisco]
- BGPの基本的な設定についての演習 ~トラブルシュート~
- BGP KEEPALIVEタイマ/ホールドタイムの設定
- BGPルート 最小送信間隔の設定
- BGPルートダンプニング
- マルチホーム – インターネット接続の冗長化 –
- マルチホームAS BGPルートフィルタのポイント
- マルチホームAS ベストパス選択のポイント
- マルチホームAS IGPとBGPの連携のポイント
- マルチホームAS BGPの設定例
- IP-VPNでのBGPの利用 設定例
- BGPルートフィルタの種類
- BGPルートフィルタ -ディストリビュートリスト-
- BGPルートフィルタ -ディストリビュートリスト設定例-
- BGPルートフィルタ -プレフィクスリスト-
- BGPルートフィルタ -プレフィクスリスト設定例-
- BGPルートフィルタ -フィルタリスト(AS_PATH ACL)-
- BGPルートフィルタ -フィルタリスト(AS_PATH ACL)設定例-
- BGPルートフィルタ -ルートマップ(route-map)-
- BGPルートフィルタ -ルートマップ(route-map)設定例-
- BGP neighbor allowas-inコマンド
- BGP neighbor as-overrideコマンド
- BGPルート RIB Failure
- BGPルート アドミニストレイティブディスタンスの制御
- BGPルートの負荷分散
- BGPルート 条件付き生成
- BGPルート 条件付きアドバタイズ
- BGP ルート集約 自動集約
- BGPルート集約 networkコマンドによる集約
- BGPルート集約 networkコマンドによる集約 設定例
- BGP ルート集約 aggregate-addressコマンドによる集約
- aggregate-addressコマンドのオプション summary-only
- aggregate-addressコマンドのオプション attribute-map
- aggregate-addressコマンドのオプション as-set
- aggregate-addressコマンドのオプション advertise-map
- aggregate-addressコマンド as-set/attribute-map/advertise-map 設定例
- BGP選択型集約の概要
- BGP選択型集約 suppress-map
- BGP選択型集約 unsuppress-map
- BGP 選択型集約 suppress-map/unsuppress-map 設定例
- BGP local-as ~ネイバーに他のASのように見せる~
- BGP neighbor remove-private-ASコマンド
- bgp fast external-fallover
- BGP プレフィクス数の制限
- BGP COMMUNITYアトリビュートの使い方
- BGP Well-known COMMUNITYのルートフィルタ設定例
- BGP プライベートCOMMUNITYによるルート制御の設定例
- [演習]BGP応用 Part1:BGP基本設定
- [演習]BGP応用 Part2:ルート集約
- [演習]BGP応用 Part3:ポリシーベースルーティング
- [演習]BGP応用 Part4:トラブルシューティング
- BGP 設定ミスの切り分けと修正 Part1
- BGP 設定ミスの切り分けと修正 Part2
- BGP 設定ミスの切り分けと修正 Part3
- BGP 設定ミスの切り分けと修正 Part4
- BGP 設定ミスの切り分けと修正 Part5
- BGP 設定ミスの切り分けと修正 Part6
- BGP 設定ミスの切り分けと修正 Part7
- IPv6 BGPの設定例 Part1
- IPv6 BGPの設定例 Part2
- 2021年10月4日 Facebookに何が起こったか?
- IPv4 BGPネイバーでのIPv6プレフィックスの交換