BGP 標準コミュニティと拡張コミュニティ

標準コミュニティ (Standard Community)

標準コミュニティは、BGPにおいてプレフィックスに対して属性を設定し、ルーティングの決定を制御するために使用されます。標準コミュニティは、32ビットの数値で表され、各ルートがどのコミュニティに属するかを指定します。よく知られた標準コミュニティには以下のものがあります:

  1. internet: すべてのルータに対してルートをアドバタイズします。
  2. no-export: 外部BGP (EBGP) ピアにルートをアドバタイズしません。
  3. no-advertise: 他のピア (内部も外部も) にルートをアドバタイズしません。
  4. local-AS: ローカルASの外のピアにルートをアドバタイズしません。

拡張コミュニティ (Extended Community)

拡張コミュニティは、標準コミュニティよりも詳細な制御を可能にし、特にMPLS VPNや他の高度なネットワーク機能で使用されます。拡張コミュニティは、64ビットまたは96ビットの数値で表され、標準コミュニティでは表現しきれない属性情報を提供します。

拡張コミュニティには、標準コミュニティと同様の属性に加えて、次のような詳細な属性が含まれます:

  1. Route Target (RT): 特定のVPNインスタンス内でのルートのインポートとエクスポートに使用されます。
    おもにMP-BGPで使用されています。
  2. Route Origin (RO): ルートの発信元に関する情報を提供します。
  3. OSPF Domain ID: OSPFエリア間でのルート選択を制御します。

標準コミュニティを使用した設定

基本構文

ルートマップを使用して、特定の条件に一致するルートに対してコミュニティを設定します。
Router(config)#route-map route-map-name permit number
Router(config-route-map)#match ip address {access-list-number | access-list-name | prefix-list prefix-list-name }
Router(config-route-map)#set metric metric

コミュニティ値を送付できるように設定します。
Router2(config-router)#neighbor address send-community

設定例

Router4からRouter1のLoアドレスに疎通が取れる状態となっています。


Router1

hostname Router1

int gi0/0
ip address 192.168.12.1 255.255.255.0
no shutdown

int lo1
ip address 1.1.1.1 255.255.255.255

router bgp 100
neighbor 192.168.12.2 remote-as 200
network 1.1.1.1 mask 255.255.255.255
network 192.168.12.0 mask 255.255.255.0

Router2

hostname Router2

int gi0/1
ip address 192.168.12.2 255.255.255.0
no shutdown

int gi0/0
ip address 192.168.23.2 255.255.255.0
no shutdown

int lo2
ip address 2.2.2.2 255.255.255.255

router bgp 200
neighbor 192.168.23.3 remote-as 200
neighbor 192.168.12.1 remote-as 100
network 2.2.2.2 mask 255.255.255.255
network 192.168.12.0 mask 255.255.255.0
network 192.168.23.0 mask 255.255.255.0

Router3

hostname Router3

int gi0/1
ip address 192.168.23.3 255.255.255.0
no shutdown

int gi0/0
ip address 192.168.34.3 255.255.255.0
no shutdown

int lo3
ip address 3.3.3.3 255.255.255.255

router bgp 200
neighbor 192.168.23.2 remote-as 200
neighbor 192.168.34.4 remote-as 300
network 3.3.3.3 mask 255.255.255.255
network 192.168.23.0 mask 255.255.255.0
network 192.168.34.0 mask 255.255.255.0

Router4

hostname Router4

int gi0/1
ip address 192.168.34.4 255.255.255.0
no shutdown

int lo4
ip address 4.4.4.4 255.255.255.255

router bgp 300
neighbor 192.168.34.3 remote-as 200
network 4.4.4.4 mask 255.255.255.255
network 192.168.34.0 mask 255.255.255.0

no-exportの設定

no-exportコミュニティは、特定のルートが外部BGP (EBGP) ピアにアドバタイズされないようにするために使用されます。これにより、内部ネットワークでルートを保持し、外部ネットワークに対してはアドバタイズしないように制御できます。

Router1で設定します。

Router2,Router3でもCOMMUNITYアトリビュート値を送付するように設定します。

Router1でBGPプロセスをクリアします。

Router2でRouter1から送付された1.1.1.1に関するルート情報をeBGPにエクスポートしないよう設定したためRouter2やiBGPのRouter3では1.1.1.1に疎通を取ることはできますが、eBGPのRouetr4では1.1.1.1に疎通を取ることが出来なくなりました。

no-advertiseの設定

BGP (Border Gateway Protocol) の no-advertise コミュニティは、ルートがどのピア(内部ピアと外部ピアの両方)にもアドバタイズされないようにするための特別なコミュニティ属性です。このコミュニティを使用すると、ルートが特定のBGPスピーカーに到達した後、そのBGPスピーカーから他のいかなるピアにもアドバタイズされないように制御できます。

Router2,Router3でもCOMMUNITYアトリビュート値を送付するように設定が必要です。

Router2でRouter1から送付された1.1.1.1に関するルート情報をiBGP、eBGPにエクスポートしないよう設定したためRouter2では1.1.1.1に疎通を取ることはできますが、iBGPのRouter3やeBGPのRouetr4では1.1.1.1に疎通を取ることが出来なくなりました。

当然、Router3で1.1.1.1に関するBGPのルート情報は消えています。