概要

ディストリビュートリストのBGPルートフィルタの設定例です。標準ACLと拡張ACLの両方を利用して、フィルタするBGPルートを特定する設定例です。

ネットワーク構成

図 BGP ディストリビュートリスト設定例 ネットワーク構成
図 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-routesR2へアドバタイズするBGPルートを表示します。
show ip bgp neighbor 10.0.0.2 routesR2から受信する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ルートのみをアドバタイズしていることがわかります。

図 R1 ディストリビュートリスト out
図 R1 ディストリビュートリスト out

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」が破棄されていることがわかります。

図 ディストリビュートリスト in
図 ディストリビュートリスト in

設定のまとめ

初期設定の状態から設定した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の仕組み