CiscoBGPcommunity(local-as)デュアルスタック設定メモ

前回、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にマッチさせてコミュニティーを経路情報に付与する

設定コンフィグ

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進数表記にするには、下記コマンドを使用します。

#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エンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。

おすすめオンライン教材
自宅で学習ができるオンラインスクール

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



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUT US
げんき☆ひろき
インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!