COMMUNITY値は32ビットの数値であり、以下のいずれかのパターンで扱えます。今回は 3 を紹介します。
パターン |
内容 |
説明 |
1 |
32ビットの任意の整数 |
10進数で表示されるデフォルトの表示 |
2 |
AS番号(16ビット)+ 識別子(16ビット) |
AA:NNの形式で前半がAS番号、後半は2バイトの番号の表示 |
3 |
32ビットのWell-knownコミュニティ値 |
no-export、no-advertise、local-as の表示 |
◆ COMMUNITYアトリビュート - 設定
BGPネイバーにCOMMUNITYアトリビュートの値を伝達するために、そのCOMMUNITYアトリビュートの
値を通知させたい全てのBGPルータで以下の「 neighbor send-community 」の設定が必要となります。
◆ COMMUNITYアトリビュート値を通知させるための設定( BGPルートの送信側、受信側の共通設定 )
(config)# router bgp as-number
(config-router)# neighbor ip-address send-community
BGPルートの送信側でCOMMUNITYアトリビュートを付加させて、BGPネイバーにアドバタイズします。
◆ COMMUNITYアトリビュートを付加する設定( BGPルートの送信側の設定 )
(config)# route-map map-tag permit | deny [ seq-number ]
(config-route-map)# match condition
(config-route-map)# set community [ no-export | no-advertise | local-as | community-number ]
◆ COMMUNITYアトリビュートを付加したBGPルートを通知する設定( BGPルートの送信側の設定 )
(config)# router bgp as-number
(config-router)# neighbor ip-address route-map map-tag out
BGPルートの受信側でCOMMUNITYアトリビュートを参照して、ルートフィルタリングや制御を行います。
COMMUNITYアトリビュートがWell-Knownの場合、自動的に処理されるので以下の設定は必要ありません。
◆ COMMUNITYアトリビュートを付加する設定( BGPルートの受信側の設定 )
(config)# route-map map-tag permit | deny [ seq-number ]
(config-route-map)# match community community-list
(config-route-map)# set action
◆ COMMUNITYアトリビュート - 設定例( Well-known COMMUNITYの使用 )
下図の動作を実現するための設定例を紹介します。
COMMUNITYアトリビュート値を伝えるために、上図では、AS10とAS20の全てのBGPルータにおいて
neighbor send-communityを設定する必要があります(AS10とAS20とが制御を取り決めるという前提)
つまり、R1だけでなく、R2とR3にも「neighbor send-community」コマンドの設定は必要となります。
R1(config)# access-list 1 permit 1.0.0.0
R1(config)# route-map R-COMMUNITY permit 10
R1(config-route-map)#match ip address 1
R1(config-route-map)#set community no-export
R1(config)# route-map R-COMMUNITY permit 20
R1(config)# router bgp 10
R1(config-router)# network 1.0.0.0
R1(config-router)# neighbor 2.0.0.2 remote-as 20
R1(config-router)# neighbor 2.0.0.2 send-community
R1(config-router)# neighbor 2.0.0.2 route-map R-COMMUNITY out
|
以上の通り、Well-knownコミュニティ値を使用した場合は、コンフィグ設定が非常にシンプルとなります。
これはWell-knownコミュニティ値にはデフォルトの動作があり、それを自動的に処理してくれるからです。
|