BGP コミュニティリストを使用したフィルタリング

BGPコミュニティとは

BGPコミュニティ(Community)は、BGPルートに付加されるメタデータ(属性)の一種で、ネットワーク管理者がルートをグループ化して扱うためのツールです。コミュニティは、32ビットの値で表現され、通常はAS番号:値 の形式で書かれます。これにより、特定のルートに一意のタグを付けて、ルートの扱いを制御することができます。

BGPにはすでにベンダー側で用意されているWell-known コミュニティと個人で設定ができる標準コミュニティ、拡張コミュニティに分かれています。

Cisco機器で使用できるWell-knownコミュニティは以下となります。

Well-knownコミュニティ内容
NO_EXPORTこのコミュニティを持つルートは、他のAS(外部BGPピア)にはアドバタイズされませんが、iBGPピアにはアドバタイズされます。
NO_ADVERTISEのコミュニティを持つルートは、どのBGPピアにもアドバタイズされません。iBGPピアeBGPピアを問わず、すべてのピアにアドバタイズが行われません
INTERNETこのコミュニティを持つルートは、すべてのBGPピアにアドバタイズされます。
LOCAL-ASこのコミュニティを持つルートは、他のAS(外部BGPピア)に加えてサブASのネイバーにもアドバタイズしません。
GRACEFUL_SHUTDOWNBGPセッションを終了する際に使用するコミュニティで、ネットワーク全体に影響を最小限に抑えつつ、BGPのシャットダウンをサポートするために使用されます。

BGP Well-knowコミュニティを使用したフィルタリングの設定

Router1

hostname Router1

int g0/2
ip address 192.168.12.1 255.255.255.0
no shut

int lo1
ip address 1.1.1.1 255.255.255.255

int lo2
ip address 2.2.2.2 255.255.255.255

router bgp 65001
neighbor 192.168.12.2 remote-as 65002
netw 1.1.1.1 mask 255.255.255.255
netw 2.2.2.2 mask 255.255.255.255

Router2

hostname Router2

int g0/1
ip address 192.168.12.2 255.255.255.0
no shut

int g0/3
ip address 192.168.23.2 255.255.255.0
no shut

int g0/4
ip address 192.168.24.2 255.255.255.0
no shut

router bgp 65002
neighbor 192.168.12.1 remote-as 65001
neighbor 192.168.23.3 remote-as 65003
neighbor 192.168.24.4 remote-as 65002
netw 192.168.12.0 mask 255.255.255.0
netw 192.168.23.0 mask 255.255.255.0
netw 192.168.24.0 mask 255.255.255.0

Router3

hostname Router3

int g0/2
ip address 192.168.23.3 255.255.255.0
no shut

router bgp 65003
neighbor 192.168.23.2 remote-as 65002
netw 192.168.23.0 mask 255.255.255.0

Router4

hostname Router4

int g0/2
ip address 192.168.24.4 255.255.255.0
no shut

router bgp 65002
neighbor 192.168.24.2 remote-as 65002
netw 192.168.24.0 mask 255.255.255.0

no-exportコミュニティを使用して、ルートフィルタリングを実施します。

■送信側の設定

1.コミュニティ値の設定

アクセスリストとルートマップを使用して、フィルタリングをする対象にコミュニティ値を付与します。


2.コミュニティ値の送付

send-communityコマンドを使用してコミュニティ値をネイバーへアドバタイズします。

3.動作確認

設定を反映させるためにBGPセッションをクリアします。

Router3のRouter4のルート情報を確認すると、Router2とiBGP関係であるRouter4ではルート情報の受信が出来ていますが、eBGP関係であるRouter3では1.1.1.1と2.2.2.2のルート情報の受信が出来なくなっています。

BGP コミュニティ値を使用したフィルタリングの設定

Router1

hostname Router1

int g0/2
ip address 192.168.12.1 255.255.255.0
no shut

int lo1
ip address 1.1.1.1 255.255.255.255

int lo2
ip address 2.2.2.2 255.255.255.255

router bgp 65001
neighbor 192.168.12.2 remote-as 65002
netw 1.1.1.1 mask 255.255.255.255
netw 2.2.2.2 mask 255.255.255.255

Router2

hostname Router2

int g0/1
ip address 192.168.12.2 255.255.255.0
no shut

int g0/3
ip address 192.168.23.2 255.255.255.0
no shut

int g0/4
ip address 192.168.24.2 255.255.255.0
no shut

router bgp 65002
neighbor 192.168.12.1 remote-as 65001
neighbor 192.168.23.3 remote-as 65003
neighbor 192.168.24.4 remote-as 65002
netw 192.168.12.0 mask 255.255.255.0
netw 192.168.23.0 mask 255.255.255.0
netw 192.168.24.0 mask 255.255.255.0

Router3

hostname Router3

int g0/2
ip address 192.168.23.3 255.255.255.0
no shut

router bgp 65003
neighbor 192.168.23.2 remote-as 65002
netw 192.168.23.0 mask 255.255.255.0

Router4

hostname Router4

int g0/2
ip address 192.168.24.4 255.255.255.0
no shut

router bgp 65002
neighbor 192.168.24.2 remote-as 65002
netw 192.168.24.0 mask 255.255.255.0

現在、Router3,Router4ではRouter1のLoopbackIPアドレスの1.1.1.1と2.2.2.2を受信していますが、これをコミュニティ値を付与してフィルタリングします。

■送信側の設定

1.コミュニティの形式変更

従来のコミュニティ値は1つの32ビットの数値として表示されていましたが、以下のコマンドを実行することで、AS番号:値といったような形式に変換されます。

2.コミュニティ値の設定

アクセスリストとルートマップを使用して、フィルタリングをする対象にコミュニティ値を付与します。
Lo1:1.1.1.1に65001:100、Lo2に65001:200を付与します。

3.コミュニティ値の送付

send-communityコマンドを使用してコミュニティ値をネイバーへアドバタイズします。

4.BGPセッションのクリアとコミュニティ値確認

設定を反映させるためにBGPセッションをクリアします。

Router2でRouter1から受信したルート情報を確認するとコミュニティ値が付与されていることが確認できます。

Router2ではip bgp-community new-formatコマンドを使用していないので32ビット形式のフォーマットでコミュニティ値が表示されています。

■受信側の設定

動作があらかじめ決められているウェルノウンコミュニティと違い、独自に設定したコミュニティ値は受信側でも動作の設定が必要になります。

1.コミュニティの形式変更

受信側でも同じくコミュニティ値の形式を変更します。

2.コミュニティリストの作成

Router1から送信されたコミュニティ値に対してコミュニティリストを対応付けます。

3.ルートマップの作成

作成したコミュニティリストの動作を設定します。
コミュニティ値65001はR3向けのルートマップではアドバタイズしないようにして、コミュニティ値65002はR4向けのルートマップではアドバタイズしないようにしています。

4.BGPピアにルートマップを適用

作成したルートマップをBGPピアに適用します。

5.動作確認

Router2でBGPセッションをクリアします。

Router3で1.1.1.1、Router4で2.2.2.2に関するルート情報を受信しなくなっています。

オプション設定

(オプション)ルート マップによって指定された標準または拡張コミュニティ リストに一致する着信または発信アップデートのコミュニティ属性からコミュニティを削除します。
Router(config-router)#set comm-list list-num delete