BGP コミュニティはアドバタイズされたルートにタグ付けできる追加情報であり、これによってもう一方の側のルーターまたは BGP ピアは、共通プロパティを共有するルートをより適切に分類/処理できます。
コミュニティ値は 32 ビットのフィールドで、2 つのサブフィールドに分割されます。最初の 2 バイトはコミュニティを発信したネットワークの AS 番号をエンコードし、最後の 2 バイトは AS によって割り当てられた一意の番号を送信します。コミュニティは BGP を強化し、ルーティング プロトコルからシグナリングとポリシー適用のためのツールに変更します。
この機能は IPv6 ではサポートされていません。
使用事例
BGP コミュニティは、IP アドレスの範囲またはネットワークに共通の要件がある場合に便利です。
ネットワーク トポロジとルーティング ポリシーの要件の理解を深めることができます。
これにより、ネットワークのスケーラビリティ、運用、トラブルシューティングが容易になります。BGP コミュニティの詳細については、「BGP コミュニティ属性の適用」を参照してください。
動作原理
NSX Advanced Load Balancer では、BGP 構成で新しいオプション ip_community
をサポートします。NSX Advanced Load Balancer サービス エンジンからアドバタイズされた仮想 IP アドレス (VIP) またはバックエンド サーバの IP アドレスを適切なコミュニティで簡単にタグ付けできます。タグ付けにより、BGP ピアは BGP ルートを慎重に処理できます。
構成
NSX Advanced Load Balancer Controller コマンド ライン インターフェイス (CLI) にログインし、次の手順に従って、BGP ピアにアドバタイズされるすべてのルートに BGP コミュニティを構成します。
[admin:controller]: > configure vrfcontext global Updating an existing object. Currently, the object is: +----------------+-------------------------------------------------+ | Field | Value | +----------------+-------------------------------------------------+ | uuid | vrfcontext-ded10944-53da-4542-bbf1-1cd4f300fb29 | | name | global | | system_default | True | | tenant_ref | admin | | cloud_ref | Default-Cloud | +----------------+-------------------------------------------------+ [admin:controller]: vrfcontext> bgp_profile [admin:controller]: vrfcontext:bgp_profile> cancel Exit the current submode without saving community Community string either in aa:nn format where aa, nn is within [1,65535] or local-AS|no-advertise|no-export|internet. do Execute a show command hold_time Hold time for Peers ibgp BGP peer type ip_communities (submode) keepalive_interval Keepalive interval for Peers local_as Local Autonomous System ID new (Editor Mode) Create new object in editor mode no Remove field peers (submode) save Save and exit the current submode send_community Send community attribute to all peers. show_schema show object schema watch Watch a given show command where Display the in-progress object [admin:controller]: vrfcontext:bgp_profile> [admin:controller]: vrfcontext:bgp_profile> community internet [admin:controller]: vrfcontext:bgp_profile> community 10:10 [admin:controller]: vrfcontext:bgp_profile> community 65000:20 [admin:controller]: vrfcontext:bgp_profile> save [admin:controller]: vrfcontext> save +---------------------------+-----------------------------------------------------------------------+ | Field | Value | +---------------------------+-----------------------------------------------------------------------+ | uuid | vrfcontext-ded10944-53da-4542-bbf1-1cd4f300fb29 | | name | global | | bgp_profile | | | local_as | 65000 | | ibgp | True | | keepalive_interval. | 60 | | hold_time | 180 | | send_community | True | | community[1] | internet | | community[2] | 10:10 | | community[3] | 65000:20 | | system_default | True | | tenant_ref | admin | | cloud_ref | Default-Cloud | +---------------------------+-----------------------------------------------------------------------+
次の手順に従って、構成済みのコミュニティのいずれかを削除します。
[admin:controller]: > configure vrfcontext global [admin:controller]: vrfcontext> bgp_profile [admin:controller]: vrfcontext:bgp_profile> no community 10:10 Removed community 10:10 [admin:controller]: vrfcontext:bgp_profile> save [admin:controller]: vrfcontext> save +----------------------------+-------------------------------------------------+ | Field | Value | +----------------------------+-------------------------------------------------+ | uuid | vrfcontext-ded10944-53da-4542-bbf1-1cd4f300fb29 | | name | global | | bgp_profile | | | local_as | 65000 | | ibgp | True | | peers[1] | | | remote_as | 1 | | | | | send_community | True | | community[1] | internet | | community[2] | 65000:20 | | system_default | True | | tenant_ref | admin | | cloud_ref | Default-Cloud | +----------------------------+-------------------------------------------------+
IP アドレス範囲に属するルーターに固有の BGP コミュニティを構成する手順
次の例は、特定の IP アドレス範囲にのみ適用される特定のコミュニティでルートをタグ付けする方法を示しています。この IP 固有のコミュニティは、すべてのルートに適用される bgp_profile
のデフォルト コミュニティを上書きします。
[admin:controller]: > configure vrfcontext global [admin:controller]: vrfcontext> bgp_profile [admin:controller]: vrfcontext:bgp_profile> ip_communities New object being created [admin:controller]: vrfcontext:bgp_profile:ip_communities> cancel Exit the current submode without saving community Community string either in aa:nn format where aa, nn is within [1,65535] or local-AS|no-advertise|no-export|internet. do Execute a show command ip_begin Beginning of IP address range. ip_end End of IP address range. Optional if ip_begin is the only ip address in specified ip range. no Remove field save Save and exit the current submode show_schema show object schema watch Watch a given show command where Display the in-progress object [admin:controller]: vrfcontext:bgp_profile:ip_communities> ip_begin 10.70.163.100 [admin:controller]: vrfcontext:bgp_profile:ip_communities> ip_end 10.70.163.200 [admin:controller]: vrfcontext:bgp_profile:ip_communities> community 200:200 [admin:controller]: vrfcontext:bgp_profile:ip_communities> community 100:100 [admin:controller]: vrfcontext:bgp_profile:ip_communities> save [admin:controller]: vrfcontext:bgp_profile> save [admin:controller]: vrfcontext> save +----------------------------+-------------------------------------------------+ | Field | Value | +----------------------------+-------------------------------------------------+ | uuid | vrfcontext-ded10944-53da-4542-bbf1-1cd4f300fb29 | | name | global | | bgp_profile | | | local_as | 65000 | | ibgp | True | | peers[1] | | | remote_as | 1 | | | | | hold_time | 180 | | send_community | False | | community[1] | internet | | community[2] | 65000:20 | | ip_communities[1] | | | ip_begin | 10.70.163.100 | | ip_end | 10.70.163.200 | | community[1] | 200:200 | | community[2] | 100:100 | | system_default | True | | tenant_ref | admin | | cloud_ref | Default-Cloud | +----------------------------+-------------------------------------------------+
記載されている手順に従い、BGP ピアにアドバタイズされる単一の IP アドレス(VIP アドレスなど)の BGP コミュニティを構成します。IP アドレスのコミュニティを 1 つだけ構成する場合、ip_end
はオプションです。ただし、ユーザーは ip_begin
と ip_end
の両方を同じ IP アドレスに問題なく構成できます。
[admin:controller]: vrfcontext> bgp_profile [admin:controller]: vrfcontext:bgp_profile> ip_communities New object being created [admin:controller]: vrfcontext:bgp_profile:ip_communities> ip_begin 10.70.164.150 [admin:controller]: vrfcontext:bgp_profile:ip_communities> community 150:150 [admin:controller]: vrfcontext:bgp_profile:ip_communities> save [admin:controller]: vrfcontext:bgp_profile> save [admin:controller]: vrfcontext> save +----------------------------+-------------------------------------------------+ | Field | Value | +----------------------------+-------------------------------------------------+ | uuid | vrfcontext-ded10944-53da-4542-bbf1-1cd4f300fb29 | | name | global | | bgp_profile | | | local_as | 65000 | | ibgp | True | | peers[1] | | | | | | hold_time | 180 | | send_community | True | | community[1] | internet | | community[2] | 65000:20 | | ip_communities[1] | | | ip_begin | 10.70.163.100 | | ip_end | 10.70.163.200 | | community[1] | 200:200 | | community[2] | 100:100 | | ip_communities[2] | | | ip_begin | 10.70.164.150 | | community[1] | 150:150 | | system_default | True | | tenant_ref | admin | | cloud_ref | Default-Cloud | +----------------------------+-------------------------------------------------+
CLI コマンドに従って、コミュニティを使用した BGP アドバタイズ ルートのタグ付けを停止します。このコマンドは、構成を保持したまま、コミュニティを使用したルートのタグ付けを停止します。
ユーザーは、必要に応じて後でタグ付けを有効にできます。
[admin:controller]: > configure vrfcontext global [admin:controller]: vrfcontext> bgp_profile [admin:controller]: vrfcontext:bgp_profile> no send_community +--------------------------+----------------+ | Field | Value | +--------------------------+----------------+ | local_as | 65000 | | ibgp | True | | peers[1] | | | remote_as | 1 | | | | | hold_time | 180 | | send_community | False | | community[1] | internet | | community[2] | 65000:20 | | ip_communities[1] | | | ip_begin | 10.70.163.100 | | ip_end | 10.70.163.200 | | community[1] | 200:200 | | community[2] | 100:100 | | ip_communities[2] | | | ip_begin | 10.70.164.150 | | community[1] | 150:150 | +--------------------------+----------------+ [admin:controller]: vrfcontext:bgp_profile> save
NSX Advanced Load Balancer CLI コマンドに従って、構成済みの ip_communities
を削除します。
| send_community | False | | community[1] | local-AS | | community[2] | no-export | | ip_communities[1] | | | ip_begin | 10.70.163.100 | | ip_end | 10.70.163.200 | | community[1] | 200:200 | | community[2] | 100:100 | | ip_communities[2] | | | ip_begin | 10.70.164.150 | | community[1] | 150:150 | | system_default | True | | tenant_ref | admin | | cloud_ref | Default-Cloud | +----------------------------+-------------------------------------------------+
[admin:controller]: > configure vrfcontext global [admin:controller]: vrfcontext> bgp_profile [admin:controller]: vrfcontext:bgp_profile> no ip_communities index 1 Removed ip_communities with index 1 +--------------------------+----------------+ | Field | Value | +--------------------------+----------------+ | local_as | 65000 | | ibgp | True | | peers[1] | | | remote_as | 1 | | | | | hold_time | 180 | | send_community | False | | community[1] | internet | | community[2] | 65000:20 | | ip_communities[1] | | | ip_begin | 10.70.164.150 | | community[1] | 150:150 | +--------------------------+----------------+
次の手順に従って、BGP アドバタイズ ルートのコミュニティ タグを有効にします。
[admin:controller]: > configure vrfcontext global [admin:controller]: vrfcontext> bgp_profile [admin:controller]: vrfcontext:bgp_profile> send_community Overwriting the previously entered value for send_community [admin:controller]: vrfcontext:bgp_profile> save [admin:controller]: vrfcontext> save s+----------------------------+------------------------------------------------+ | Field | Value | +----------------------------+-------------------------------------------------+ | uuid | vrfcontext-ded10944-53da-4542-bbf1-1cd4f300fb29 | | name | global | | bgp_profile | | | local_as | 65000 | | ibgp | True | | peers[1] | | | remote_as | 1 | | peer_ip | 10.70.163.23 | | subnet | 10.70.163.0/24 | | md5_secret | sensitive | | bfd | True | | advertise_vip | True | | advertise_snat_ip | True | | advertisement_interval | 5 | | connect_timer | 10 | | keepalive_interval | 60 | | hold_time | 180 | | ebgp_multihop | 0 | | peers[2] | | | remote_as | 1 | | peer_ip | 10.70.164.21 | | subnet | 10.70.164.0/24 | | md5_secret | sensitive | | bfd | True | | advertise_vip | True | | advertise_snat_ip | True | | advertisement_interval | 5 | | connect_timer | 10 | | keepalive_interval | 60 | | hold_time | 180 | | ebgp_multihop | 0 | | keepalive_interval | 60 | | hold_time | 180 | | send_community | True | | community[1] | internet | | community[2] | 65000:20 | | ip_communities[1] | | | ip_begin | 10.70.164.150 | | community[1] | 150:150 | | system_default | True | | tenant_ref | admin | | cloud_ref | Default-Cloud | +----------------------------+-------------------------------------------------+
標準コミュニティを使用して BGP ピアにアドバタイズされたルートをタグ付けすることができます。NSX Advanced Load Balancer は、BGP サブ モードでのみルートのタグ付けをサポートします。NSX Advanced Load Balancer では、ルート単位のコミュニティのタグ付けをサポートしていません。
[admin:controller]: > configure vrfcontext global Updating an existing object. Currently, the object is: +----------------+-------------------------------------------------+ | Field | Value | +----------------+-------------------------------------------------+ | uuid | vrfcontext-3cc726d3-d94a-4eb0-9c70-f70d7e1b185e | | name | global | | system_default | True | | tenant_ref | admin | | cloud_ref | Default-Cloud | +----------------+-------------------------------------------------+ [admin:controller]: vrfcontext> bgp_profile [admin:controller]: vrfcontext:bgp_profile> cancel Exit the current submode without saving community List of community attributes. Valid values are "internet", "local-AS", "no-advertise", "no-export". Community can also be specified in : format where AS,Val are in the range [1,65535]. do Execute a show command hold_time Hold time for Peers ibgp BGP peer type keepalive_interval Keepalive interval for Peers local_as Local Autonomous System ID new (Editor Mode) Create new object in editor mode no Remove field peers (submode) save Save and exit the current submode send_community Send community attribute to all peers(True by default) show_schema show object schema watch Watch a given show command where Display the in-progress object [admin:controller]: vrfcontext:bgp_profile> community internet [admin:controller]: vrfcontext:bgp_profile> community 10:10 [admin:controller]: vrfcontext:bgp_profile> community 65000:20 [admin:controller]: vrfcontext:bgp_profile> save [admin:controller]: vrfcontext> save +---------------------------+-----------------------------------------------------------------------+ | Field | Value | +---------------------------+-----------------------------------------------------------------------+ | uuid | vrfcontext-3cc726d3-d94a-4eb0-9c70-f70d7e1b185e | | name | global | | bgp_profile | | | local_as | 65000 | | ibgp | True | | keepalive_interval. | 60 | | hold_time | 180 | | send_community | True | | community[1] | internet | | community[2] | 10:10 | | community[3] | 65000:20 | | system_default | True | | tenant_ref | admin | | cloud_ref | Default-Cloud | +---------------------------+-----------------------------------------------------------------------+ </code></pre>