BGPのNo-Exportコミュニティとは?Ciscoでの設定手順と動作確認

BGP (Border Gateway Protocol) のNo-Exportコミュニティは、他のAS(自律システム)へプレフィックスを広告しないために使用します。例えば、サービスプロバイダー間のトラフィック制御や、特定のプレフィックスを内部のみで使用したい場合に活用されます。

この記事では、No-ExportコミュニティをCiscoルータで設定し、動作を確認する手順を紹介します。

スポンサーリンク

構成概要

以下の構成を使用して、ルータR1からNo-Exportコミュニティを付与したプレフィックスが、どのルータまで広告されるかを確認します。

目的は、内部BGP(iBGP)の範囲内でのみプレフィックスを共有し、外部BGP(eBGP)には広がらないことを確認することです。

スポンサーリンク

BGPの基本設定

まず、各ルータで基本的なBGP設定を行います。AS番号、ネイバー、および広告するプレフィックスを設定します。R1が自AS(AS1)の内部ルータに対してプレフィックス1.1.1.1/32を広告する構成です。

R1の設定

R1(config)# router bgp 1
R1(config-router)# network 1.1.1.1 mask 255.255.255.255
R1(config-router)# neighbor 192.168.12.2 remote-as 25

R2の設定

R2(config)# router bgp 25
R2(config-router)# neighbor 192.168.12.1 remote-as 1
R2(config-router)# neighbor 192.168.25.5 remote-as 25
R2(config-router)# neighbor 192.168.23.3 remote-as 3

R3の設定

R3(config)# router bgp 3
R3(config-router)# neighbor 192.168.23.2 remote-as 25

R5の設定

R5(config) #router bgp 25
R5(config-router)# neighbor 192.168.25.2 remote-as 25
スポンサーリンク

広告確認

この段階で、R1のプレフィックス1.1.1.1/32が各ルータにどのように広告されているか確認します。

まず、R2、R3、R5のBGPテーブルを確認します。

R2のBGPテーブル

R2# show ip bgp 
BGP table version is 4, local router ID is 2.2.2.2
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
 *>  1.1.1.1/32       192.168.12.1             0             0 1 I

R3のBGPテーブル

R3# show ip bgp
BGP table version is 2, local router ID is 3.3.3.3
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
 *>  1.1.1.1/32       192.168.23.2                           0 25 1 i

R5のBGPテーブル

R5# show ip bgp
BGP table version is 2, local router ID is 5.5.5.5
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
 * i 1.1.1.1/32       192.168.12.1             0    100      0 1 i
スポンサーリンク

No-Exportコミュニティ設定

次に、R1のプレフィックス1.1.1.1/32にNo-Exportコミュニティを付与します。No-Exportは、プレフィックスがAS外に広告されないようにするためのBGPコミュニティです。

プレフィックスリストの定義

まず、対象のプレフィックスをプレフィックスリストで定義します。

R1(config)# ip prefix-list LOOPBACK0 permit 1.1.1.1/32

ルートマップでコミュニティを付与

次に、route-mapコマンドを使用して、設定したプレフィックスリストにNo-Exportコミュニティを付与します。

R1(config)# route-map NO-EXPORT permit 10 
R1(config-route-map)# match ip address prefix-list LOOPBACK0
R1(config-route-map)# set community no-export
R1(config-route-map)# route-map NO-EXPORT permit 1000

ルートマップのシーケンス1000による暗黙のDenyを回避するため、明示的な許可のエントリを追加しておくことが重要です。

ネイバーにルートマップを適用

最後に、このルートマップをR1のネイバーR2に適用し、No-Exportコミュニティが確実に送信されるようにsend-communityコマンドを追加します。

コミュニティ値を広告するには、ネイバー設定でsend-communityコマンドの追加も必要です。

R1(config)# router bgp 1 
R1(config-router)# neighbor 192.168.12.2 route-map NO-EXPORT out
R1(config-router)# neighbor 192.168.12.2 send-community

BGPプロセスをクリアして、設定を反映させます。

R1# clear ip bgp *
R1#
%BGP-5-ADJCHANGE: neighbor 192.168.12.2 Down User reset
%BGP_SESSION-5-ADJCHANGE: neighbor 192.168.12.2 IPv4 Unicast topology base removed
 from session  User reset
%BGP-5-ADJCHANGE: neighbor 192.168.12.2 Up
スポンサーリンク

広告確認 (No-Export後)

再度、各ルータのBGPテーブルを確認します。今回はR3でプレフィックスが広告されていないことが確認できるはずです。

R2のBGPテーブル

R2#show ip bgp 
BGP table version is 4, local router ID is 2.2.2.2
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
 *>  1.1.1.1/32       192.168.12.1             0             0 1 i

R3のBGPテーブル

R3#show ip bgp
R3#

R5のBGPテーブル

R5#show ip bgp
BGP table version is 2, local router ID is 5.5.5.5
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
 * i 1.1.1.1/32       192.168.12.1             0    100      0 1 i

R3で1.1.1.1/32のプレフィックスを受信していないことが確認できます。

R3ではプレフィックスが受信されていないことが確認できます。これは、No-Exportコミュニティが適用された結果、R2がAS外のR3にはこのプレフィックスを広告しないためです。

スポンサーリンク

まとめ

No-Exportコミュニティは、BGPで特定のプレフィックスをAS内部のみで広告したい場合に非常に有効です。この設定を通じて、No-ExportコミュニティがR2で受信され、内部BGPのみでプレフィックスが共有されることが確認できました。ネットワーク設計において、トラフィック制御やポリシー適用に利用する場面が多いので、ぜひ、ご確認ください。

その他 BGP関連記事は   >>  ルーティングプロトコル(BGP)まとめ << より参照できます。

コメント