目次
概要
ディストリビュートリストのBGPルートフィルタの設定例です。標準ACLと拡張ACLの両方を利用して、フィルタするBGPルートを特定する設定例です。
関連記事
この記事の前に、ディストリビュートリストの設定と確認コマンドを読んでいただくことをオススメします。
以下の記事は、この記事と同じ条件をプレフィクスリストで設定する設定例です。
ネットワーク構成
設定条件
- R1は192.168.1.0/24のBGPルートのみをR2へアドバタイズします。
- R1は、R2からアドバタイズされたBGPルートのうち、ネットワークアドレス「172.16.1」ではじまり、サブネットマスクが「/28」以上のBGPルートを破棄します。
初期設定
R1/R2のBGPに関する設定は以下の通りです。
R1 初期設定(Click)
hostname R1 ! interface Loopback0 ip address 192.168.2.1 255.255.255.0 secondary ip address 192.168.3.1 255.255.255.0 secondary ip address 192.168.1.1 255.255.255.0 ! interface Ethernet0/0 ip address 10.0.0.1 255.255.255.0 ! router bgp 1 bgp router-id 1.1.1.1 bgp log-neighbor-changes network 192.168.1.0 network 192.168.2.0 network 192.168.3.0 neighbor 10.0.0.2 remote-as 2
R2 初期設定(Click)
hostname R2 ! interface Loopback0 ip address 172.16.1.130 255.255.255.192 secondary ip address 172.16.1.194 255.255.255.240 secondary ip address 172.16.1.225 255.255.255.252 secondary ip address 172.16.1.2 255.255.255.128 ! interface Ethernet0/0 ip address 10.0.0.2 255.255.255.0 ! router bgp 2 bgp router-id 2.2.2.2 bgp log-neighbor-changes network 172.16.1.0 mask 255.255.255.128 network 172.16.1.128 mask 255.255.255.192 network 172.16.1.192 mask 255.255.255.240 network 172.16.1.224 mask 255.255.255.252 neighbor 10.0.0.1 remote-as 1
設定と確認
Step1: ディストリビュートリスト適用前のBGPルートの送受信の確認
R1でディストリビュートリストを適用する前のBGPルート送受信を確認します。
show ip bgp neighbor 10.0.0.2 advertised-routes | R2へアドバタイズするBGPルートを表示します。 |
show ip bgp neighbor 10.0.0.2 routes | R2から受信するBGPルートを表示します。 |
R1 BGPルートの送受信
R1#show ip bgp neighbors 10.0.0.2 advertised-routes BGP table version is 10, local router ID is 1.1.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 *> 192.168.2.0 0.0.0.0 0 32768 i *> 192.168.3.0 0.0.0.0 0 32768 i Total number of prefixes 3 R1#show ip bgp neighbors 10.0.0.2 routes BGP table version is 12, local router ID is 1.1.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 *> 172.16.1.192/28 10.0.0.2 0 0 2 i *> 172.16.1.224/30 10.0.0.2 0 0 2 i Total number of prefixes 4
Step2: R1 ディストリビュートリスト out の設定
R1からR2へ「192.168.1.0/24」のみをアドバタイズするディストリビュートリストの設定を行います。
R1 ディストリビュートリスト out の設定
access-list 1 permit 192.168.1.0 ! router bgp 1 neighbor 10.0.0.2 distribute-list 1 out
標準ACL1でネットワークアドレスをチェックしています。ワイルドカードマスクを省略しているのでワイルドカードマスクは「0.0.0.0」です。つまり、ネットワークアドレス「192.168.1.0」のBGPルートがpermitされます。他のBGPルートは暗黙のdenyによってdenyです。
そして、標準ACL1をネイバーR2(10.0.0.2)のoutで適用します。
また、ディストリビュートリストを適用したあとは、BGPルートを再送する必要があります。
R1 BGPルートの再送
R1#clear ip bgp 10.0.0.2 out
Step3: R1 ディストリビュートリスト out の確認
R1からR2へアドバタイズするBGPルートを確認します。show ip bgp neighbor 10.0.0.2 advertised-routesコマンドは次のような表示です。
R1 ディストリビュートリスト out の確認
R1#show ip bgp neighbors 10.0.0.2 advertised-routes BGP table version is 12, local router ID is 1.1.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
R1からR2へ「192.168.1.0/24」のBGPルートのみをアドバタイズしていることがわかります。
Step4: R1 ディストリビュートリスト in の設定
R1でR2から受信するBGPルートのフィルタを行います。以下のBGPルートを破棄します。
- ネットワークアドレス「172.16.1.」ではじまる
- サブネットマスク「/28」以上
R1でのディストリビュートリストの設定コマンドは次の通りです。
R1 ディストリビュートリスト in の設定
access-list 100 deny ip 172.16.1.0 0.0.0.255 255.255.255.240 0.0.0.15 access-list 100 permit ip any any ! router bgp 1 neighbor 10.0.0.2 distribute-list 100 in
BGPルートのネットワークアドレスとサブネットマスクを参照するために拡張ACL100を設定します。「172.16.1」ではじまるので拡張ACLのネットワークアドレス部分(本来の拡張ACLの送信元IPアドレス部分)は、次の通りです。
172.16.1.0 0.0.0.255
そして、サブネットマスク/28は10進数表記では255.255.255.240です。サブネットマスク/28以上なので、拡張ACLのサブネットマスク部分(本来の拡張ACLの宛先IPアドレス部分)は、次のように設定します。
255.255.255.240 0.0.0.15
これは、サブネットマスクの範囲として「255.255.255.240」から「255.255.255.255」を表します。
拡張ACL100について、denyだけの条件では、結局は暗黙のdenyですべてのBGPルートがdenyされてしまいます。その他のBGPルートをpermitする条件を忘れないでください。
そして、拡張ACLをネイバーR2(10.0.0.2)に対してinで適用します。
また、ディストリビュートリストを適用したあとは、R2からBGPルートを再度受信します。
R1 BGPルートの再受信
R1#clear ip bgp 10.0.0.2 in
Step5: R1 ディストリビュートリスト in の確認
R1でR2から受信するBGPルートを確認します。show ip bgp neighbor 10.0.0.2 routesコマンドを利用します。
R1 ディストリビュートリスト in の確認
R1#show ip bgp neighbors 10.0.0.2 routes BGP table version is 14, local router ID is 1.1.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
R2から受信するBGPルートのうち「172.16.1.192/28」「192.16.1.224/30」が破棄されていることがわかります。
設定のまとめ
初期設定の状態から設定したR1のディストリビュートリストに関するコマンドは次の通りです。
R1 ディストリビュートリスト設定コマンドのまとめ
access-list 1 permit 192.168.1.0 access-list 100 deny ip 172.16.1.0 0.0.0.255 255.255.255.240 0.0.0.15 access-list 100 permit ip any any ! router bgp 1 neighbor 10.0.0.2 distribute-list 1 out neighbor 10.0.0.2 distribute-list 100 in
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プレフィックスの交換