BGPコミュニティ

最終更新:(UTC)

BGP対応ルータの主な目的は、プレフィックスを他のルータにアドバタイズすることです。 これらのプレフィックスは、Ipv4やVpnv4など、いくつかの異なるアドレスファミリのものにすることができます。 接頭辞を宣伝するとき、BGPは属性と呼ばれる追加情報を添付します。 BGPはこれらの属性を使用して最適なパスを選択します。

BGPは、コミュニティ文字列の形式で、各接頭辞を持つより多くの情報を含めることができます。 コミュニティ文字列は、ピアがタグのように使用する数値です。

コミュニティはピア間のルーティングポリシーを作成します。 接頭辞にコミュニティをタグ付けすることで、接頭辞を特別な方法で処理するようにピアに指示します。

例として、接頭辞の特定のグループは、ピアルーターによって重みを10に設定する必要があるとしましょう。 使用するコミュニティ番号を選択し、接頭辞にタグを付けることができます。 このコミュニティでタグ付けされたusからの接頭辞が表示された場合、重みは10に設定されます。

私たちは、どのコミュニティを使用するかについて、私たちの仲間に同意する必要があります。 技術的な観点からは、コミュニティの文字列をどのように処理するかは、彼ら次第です。 彼らは彼らがしたい場合は、それらを完全に無視することを選択することができます。

プロバイダーは、使用する事前定義されたコミュニティと、実行するアクションのリストを持つことができます。 お客様として、私たちはコミュニティをポリシーに合わせて設定し、プレフィックスの処理方法を調整することができます。

コミュニティは任意で推移的です。 それらは推移的であるため、あるピアが次のピアにそれらを渡すことができます。

各標準コミュニティは32ビット値です。 これらは、読みやすくするために、多くの場合、2つの16ビット値に分割されています。 たとえば、コミュニティ4259840100は65000:100と同じです。 多くの場合、最初の16ビットはASを表し、2番目の16ビットはカスタム値です。

MPLS VPNのような特別な目的のための拡張コミュニティもあります。これらは64ビット値です。 これらは、16ビットのタイプ値、16ビットのASまたはIP値、およびカスタムコミュニティ値の32ビットで構成されます。

一部のコミュニティは予約されています:

  • 0:0 – 0:65535
  • 65535:0 – 65535:63335

設定

それがどのように動作するかを確認するためにこれを研究室で見てみましょう。 これは現実世界のシナリオではないことに注意してください。

この研究室では、異なるASNを持つ二つのルータを使用します。R1はR2にアドバタイズしたいいくつかのネットワークを持っています。

r2は、接続されたコミュニティに応じて、接頭辞に重みを割り当てます:

  • コミュニティが10:100に設定されている場合、コミュニティが10に設定されている場合、重みは100
  • に設定されます:200のそれは重量をに置きます10

BGP Communities Labのダウンロード

R1–Assign Communities

プレフィックスリストは、コミュニティを割り当てるルートを識別します。 この場合、172.16.0.0と172.16.10.0はGroup1にあり、172.16.20.0はGroup2にあります。

Route-mapsはプレフィックスリストと一致し、ルート上にコミュニティを設定します。 グループ1にはコミュニティ100が割り当てられ、グループ2にはコミュニティ200が割り当てられます。

デフォルトでは、コミュニティは一つの大きな数であり、読みにくいです。 Ip bgp-community new-formatコマンドは、この値をASN:Community形式に変更します。 これにより、後で検証が容易になります。

デフォルトでは、Ciscoルータはコミュニティを送信しません。 Send-communityおよびsend-community拡張コマンドを使用して、これをネイバーごとに有効にします。

最後に、ルートマップが近隣のアウトバウンドに適用されます。 近隣にルートを送信するときは、コミュニティが接続されています。

R1–コミュニティの割り当て
! Identify networks with prefix listsip prefix-list Group1 seq 5 permit 172.16.0.0/24ip prefix-list Group1 seq 10 permit 172.16.10.0/24ip prefix-list Group2 seq 5 permit 172.16.20.0/24! Match networks, and set community valuesroute-map R2_Peer permit 10 match ip address prefix-list Group1 set community 10:100route-map R2_Peer permit 20 match ip address prefix-list Group2 set community 10:200! Enable the new community formatip bgp-community new-formatrouter bgp 10 ! Enable sending communities neighbor 10.10.10.2 send-community neighbor 10.10.10.2 send-community extended ! Apply the route map to this neighbour neighbor 10.10.10.2 route-map R2_Peer out

コミュニティの確認

ここでは、コミュニティがR2が受信するルートに設定されていることがわかります。

R2検証
! Enable the new community formatip bgp-community new-format! Verify that the community is setR2#show ip bgp 172.16.0.0BGP routing table entry for 172.16.0.0/24, version 2Paths: (1 available, best #1, table default) Not advertised to any peer Refresh Epoch 1 10 10.10.10.1 from 10.10.10.1 (172.16.20.1) Origin IGP, metric 0, localpref 100, valid, external, best Community: 10:100 rx pathid: 0, tx pathid: 0x0R2#show ip bgp 172.16.20.0BGP routing table entry for 172.16.20.0/24, version 4Paths: (1 available, best #1, table default) Not advertised to any peer Refresh Epoch 1 10 10.10.10.1 from 10.10.10.1 (172.16.20.1) Origin IGP, metric 0, localpref 100, valid, external, best Community: 10:200 rx pathid: 0, tx pathid: 0x0

ポリシーの設定

R2はコミュニティとのルートを受信しているので、それらにポリシーを適用できます。

まず、特定のコミュニティを識別するためのコミュニティリストを作成します。 これは、Ipアドレスを識別するためにAclまたは接頭辞リストを使用するようなものです。 この例では、名前付きコミュニティリストを使用します。 番号付きコミュニティリストとは異なり、正規表現をサポートし、無制限のエントリを持つことができます。 番号付きリストには、100エントリの制限があります。

ルートマップはコミュニティと一致し、重みを設定します。

ルートマップは、着信プレフィックスのネイバーに適用されます。

! Create a named community list to identify the communitiesip community-list expanded High_Weight permit 10:100ip community-list expanded Low_Weight permit 10:200! Create a route-map to match the communities, and set the weightroute-map R1_Peer permit 10 match community High_Weight set weight 100route-map R1_Peer permit 20 match community Low_Weight set weight 10 ! Apply the route map to the neighbourrouter bgp 20 neighbor 10.10.10.1 route-map R1_Peer in

これらの変更は、すでにルーティングテーブルにあるルートには適用されません。 これを強制的に適用する最も簡単な方法は、隣人の関係をリセットすることです。 これは破壊的なものなので、本番ネットワークでは行わないでください。R2のBGPテーブルを見ると、重みが期待どおりに設定されていることがわかります。

R2–Verification
! Verify that the weights are setR2#show ip bgpBGP table version is 4, local router ID is 10.10.10.2Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incompleteRPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *> 172.16.0.0/24 10.10.10.1 0 100 10 i *> 172.16.10.0/24 10.10.10.1 0 100 10 i *> 172.16.20.0/24 10.10.10.1 0 10 10 i

Well Known Communities

Well Known Communitiesと呼ばれるいくつかの定義済みのコミュニティがあります。 これらのコミュニティには、すべてのBGPスピーカーがサポートする特別な事前定義された意味があります。

より一般的なものは次のとおりです。

インターネット–シスコ独自のコミュニティ。 これはルータがすべての隣人に接頭辞をアドバタイズすることを可能にします。 これは、コミュニティリストの最後にある”キャッチオール”コミュニティです。 すべてのベンダーがそれをサポートするわけではないので、これは例外です。

No-Export–任意のeBGPネイバーへのプレフィックスの広告を防止します。 これにより、ASに接頭辞が保持されます。

No-Advertise–これは、接頭辞を近隣の人にまったく宣伝しないようにします。

Local-AS–接頭辞をローカルAS内に保持するためにコンフェデレーションで使用されます。 コンフェデレーション内のeBGPネイバーとのプレフィックス共有を許可します。

コミュニティのためのデザイン

コミュニティを設計するときは、次の基本的な手順を検討してください:

  1. ルーティング管理ポリシーの定義
    • フィルタリングするものとフィルタリングする場所を決定
    • トラフィックフローに影響を与えるために変更す
  2. コミュニティスキーム
    • を設計し、ポリシーに基づいて使用する値を決定します
  3. ルートマップを使用したスキームの展開
  4. ドキュメントの作成

外部ソースからルートを受信する場合は、受信したサイトに基づいてタグ付けを検討してく 同様に、ルートを発信するときは、ルートを発信したサイトのIDでタグ付けすることを検討してください。

コメントを残す

メールアドレスが公開されることはありません。