前回、CISCO(IOS)でBGPの設定を紹介しましたが、今回はもう少し深く入り込んで、“community”を使用した設定を紹介します。
BGPcommunityとはなんぞや?ということですが、これはBGPのトラフィックを制御する際、大きく役立つ技術です。
このコミュニティ属性を経路情報に付与することで、思うがままに経路を操作することが可能になるんです。
今回は【local-as】です。
同じコンフェデレーション(AS内)に属する他のサブASに経路情報をアドバタイズし、外部のサブASに、アドバタイズしません。
使えば便利!BGPcommunityはトラフィックを自由自在に動かします。
作り方はそれぞれだが、ざっとメモります。
コミュニティーを付与することで経路制御しやすくなり、応用が利きます。
例えばある経路から来るトラフィックを、こちらの思うがままに経路を変更して動かす事も可能となります。
私的な見解ですが、このcommunityと言う物は経路情報に名札を付けてそれぞれの経路に対して道案内をさせるような技術でしょうか。
community local-asの使い方
communityにはいろいろ種類がありますが、今回はlocal-asって技術を使います。
・local-as
ネイバールータに対象経路を通知しないように指示。
community(local-as)の条件
BGP confederation用
※サブAS(64,512~65,535)
それぞれのネイバー向け(OUT方向)の経路情報に以下コミュニティーを付与
- IPv4 TEST-community
- IPv6 TESTv6-community
設定条件
- BGPnetworkコマンドでアドバタイズする経路を作成
- プレフィックスリストで該当のアドレスを作成
- route-mapにマッチさせてコミュニティーを経路情報に付与する
設定コンフィグ
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | router bgp 65535 bgp router-id 1.1.1.1 no bgp default ipv4-unicast bgp log-neighbor-changes bgp confederation identifier 3 bgp confederation peers 65001 neighbor 2002:c0a8:FF00:1::2 remote-as 65001 neighbor 192.168.1.2 remote-as 65001 ! address-family ipv4 no neighbor 2002:c0a8:FF00:1::2 activate neighbor 192.168.1.2 activate neighbor 192.168.1.2 send-community neighbor 192.168.1.2 route-map COMM out network 1.1.1.1/32 exit-address-family ! address-family ipv6 neighbor 2002:c0a8:FF00:1::2 activate neighbor 2002:c0a8:FF00:1::2 send-community neighbor 2002:c0a8:FF00:1::2 route-map COMMv6 out network 2002:c0a8:FF00:FFFF::1/128 exit-address-family ip prefix-list SET-PRE seq 5 permit 1.1.1.1/32 route-map COMM permit 10 match ip address prefix-list SET-PRE set community local-as ! route-map set-com permit 20 →暗黙のdeny ipv6 prefix-list SET-PREv6 seq 5 permit 2002:c0a8:FF00:FFFF::1/128 route-map COMMv6 permit 10 match ip address prefix-list SET-PREv6 set community local-as ! route-map set-com permit 20 →暗黙のdeny ぱーと2 |
BGPコミュニティ属性に関するメモ
community属性を 「1000:100」のように10進数表記にするには、下記コマンドを使用します。
1 | #ip bgp-community new-format |
コマンドはあくまでCiscoなのでJuniperに関してはCiscoのようなコマンドは必要無しです。
また、community属性は以下のような定義があります。
- local-as
同じconfederationに属する他SubASにadvertiseする。
外部のSubASにはadvertiseしない。 - no-export
eBGPピアにadvertiseしない。他ASに経路情報を広報しない。 - no-advertise
eBGP、iBGP共にadvertiseしない。他のRouterに経路情報を広報しない。 - no-export-subconfed
confederationにおいて、他メンバーASに経路情報を広報しない。 - internet
全てのBGPスピーカーがdefaultで所属。経路filterはしない。
まとめ
BGPは、設定すると大したことはないですが、コミュニティ属性などを使用すると、今まで以上に難しい、非常に奥の深いプロトコルではないでしょうか。
まずは設定して、動作確認をしてみてください。もっと細かく設定して見たい方は専門書をお勧めします。
それでは!

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。
コメント