Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

BGP コミュニティーのルーティングポリシー

ルーティングポリシーの Match 条件における BGP コミュニティー、拡張コミュニティー、および大規模なコミュニティーについて

BGP コミュニティーは、共通のプロパティを共有する宛先のグループです。コミュニティー情報は、BGP 更新メッセージに path 属性として含まれています。この情報は、コミュニティメンバーを識別し、各メンバーについて詳しく説明せずに、グループにアクションを実行することを可能にします。コミュニティと拡張コミュニティー属性を使用して、受け入れ、拒否、設定、再配布などのルーティングの決定をトリガーできます。

コミュニティタグは、構成 (静的、集約、または生成されたルート用) またはインポートルーティングポリシーを使用して、BGP 以外のルートに割り当てることができます。ルートをエクスポート BGP と、これらのタグが一致します。

コミュニティー値は、2つの主要セクションに分かれた32ビットフィールドです。値の最初の16ビットは、コミュニティを起点とするネットワークの AS 番号をエンコードし、最後の16ビットは AS として割り当てられた一意の番号を保持します。このシステムは、インターネット内の各地域に対して、グローバルに一意なコミュニティー値のセットを保証しようとします。Junos OS は、、それぞれas-number:community-valueの値が10進数であるという表記法を使用します。0と65535の AS 値は、その中のすべてのコミュニティー値が数字として予約されています。各コミュニティ (またはコミュニティーセット) には、構成階層内[edit policy-options]で名前が付けられています。コミュニティの名前は、ルーティングデバイスに対して一意に識別され、ルートを分類する方法として機能します。たとえば、コミュニティーの値が64510:1111 のルートは、というAS64510-routesコミュニティに所属している場合があります。コミュニティー名は、ルーティングポリシー内で、一致条件またはアクションとしても使用されています。コミュニティーを作成するためのコマンド構文は、以下のとおりです。ポリシーオプションcommunity name members [community-ids]community-ids 、単一のコミュニティー値か、複数のコミュニティー値です。コミュニティ名に複数の値が割り当てられている場合、ルーティングデバイスはこれをコミュニティー値の論理 AND と解釈します。つまり、ルートには、コミュニティー名を割り当てる前に、設定されたすべての値を取得する必要があります。

通常のコミュニティー属性は4オクテットです。Vpn などのネットワークの機能強化には、コミュニティなどの属性によって満たすことができる機能が必要です。ただし、4オクテットのコミュニティー値は、VPN 要件を満たすのに十分な拡張性と柔軟性を提供しているわけではありません。これが、拡張されたコミュニティーの作成につながります。拡張コミュニティーは8オクテットの値で、2つの主要なセクションにも分かれています。コミュニティーの最初の2オクテットは type フィールドをエンコードしますが、最後の6オクテットは type フィールドで定義された形式で固有のデータセットを実行します。拡張コミュニティーは、コミュニティのグループ化や分類により広い範囲を提供します。

BGP の拡張コミュニティー属性形式には、次の3つのフィールドがあります。type:administrator:assigned-number。ルーティングデバイスは、単語targetを使用するかorigin 、タイプフィールドを表すために必要です。管理者フィールドは AS または IPv4 アドレスに10進数を使用しますが、[割り当てられた番号] フィールドは、フィールドのサイズ (2 オクテットの場合は65535、4オクテットの場合は 4294967295) 以下の10進数を想定しています。

標準および拡張されたコミュニティー属性のコミュニティー Id を指定するときは、UNIX スタイルの正規表現を使用できます。唯一の例外は、拡張コミュニティー属性のvrf-import正規表現をサポートしていない VPN インポートポリシー () を使用する場合です。

通常の BGP コミュニティー属性は可変長属性であり、16ビット値に分割された1つ以上の4バイト値のセットで構成されています。最も重要な言葉は AS number として解釈され、最下位の単語は AS のオペレータによってローカルに定義された値です。4バイトの ASNs が採用されて以来、4バイト BGP 通常のコミュニティと6バイトの BGP の拡張コミュニティーは、BGP コミュニティー属性をサポートできなくなりました。多くの場合、事業者は、コミュニティーの形式が ASN: ASN である場合があることを意味する、BGP コミュニティーのローカル部分に数字としてエンコードされます。4バイト ASN を使用する場合は、8バイトでエンコードする必要があります。BGP の拡張コミュニティーでは、グローバル管理者フィールドとしてエンコードするのに4バイトを使用できますが、ローカル管理者フィールドには2バイトの空き領域しかありません。したがって、6バイトの拡張されたコミュニティ属性も不適切です。このようなことを克服するために、Junos OS ではオプションの推移的な path 属性を設定できます。これは、グローバル管理者として自律システム番号をエンコードする最大4バイト値を提供し、残りの2個の4バイトを表示する12バイト BGP 大規模コミュニティーです。RFC 8092 で定義されているローカル値をエンコードするための番号が割り当てられています。[edit policy-options community community-name members]階層レベルで[edit routing-options static route ip-address community] BGP 大規模コミュニティーを設定できます。BGP 大規模なコミュニティー属性形式には、次の4つのフィールドがあります。large:global administrator:assigned number:assigned number.

注:

BGP 大規模なコミュニティー属性値の長さは、12の0以外の倍数でなければなりません。

例:特定のコミュニティータグを使用して BGP ルートを IS-IS に再分散するようにルーティングポリシーを構成する

この例では、コミュニティからルートをBGPし、メトリック 63 を使用してルートにIS-ISするポリシーを Edu 定義しています。

要件

この例を設定する前に、デバイス初期化以外に特別な設定を行う必要はありません。

概要

図 1は、この例で使用されているトポロジを示しています。

図 1: 特定のコミュニティータグを使用して BGP ルートを IS-IS に再配布する特定のコミュニティータグを使用して BGP ルートを IS-IS に再配布する

この例では、デバイス A、デバイス B、デバイス C、デバイス D は自律システム (AS) 1 にあり、IS-IS 実行されています。デバイス D 以外のすべてのデバイスは、内部 BGP (IBGP) を実行しています。

デバイス E は2として使用されており、デバイス C との外部 BGP (EBGP) ピアリングセッションを搭載しています。デバイス E には2つの静的ルート、10.2.0.0/16、10.3.0.0/16 があります。これらのルートは、Edu の2:5 コミュニティー属性を使用してタグ付けされ、EBGP からデバイス C へとして通知されるようになっています。

デバイス C は、Edu の2:5 コミュニティー属性でタグ付けされた BGP ルートを受け付け、ルートを IS-IS に再分配して、これらのルートに63の IS-IS メトリックを適用します。

CLI クイック構成は、のすべてのデバイスの設定を図 1示しています。このセクション#d543e62__d543e383では、デバイス C とデバイス E の手順について説明します。

構成

手順

CLI クイック構成

この例を簡単に構成するには、以下のコマンドをコピーしてテキストファイルに貼り付け、改行を削除し、ネットワーク設定に一致する必要がある詳細情報を変更してから、コマンド[edit]を階層レベルで CLI にコピー & ペーストします。

デバイス A

デバイス B

デバイス C

デバイス D

デバイス E

順を追った手順

次の例では、構成階層のさまざまなレベルを移動する必要があります。Cli のナビゲートの詳細については、『 Cli ユーザーガイド』の「 Cli エディターを設定モードで使用する」を参照してください。

デバイス E を構成するには、次のようにします。

  1. インターフェイスを構成します。

  2. staticsポリシーを設定します。これEduにより、コミュニティ属性が静的ルートに追加されます。

  3. EBGP を構成してstaticsポリシーを適用します。

  4. 静的ルートを構成します。

  5. ルーター ID と AS 番号を設定します。

順を追った手順

次の例では、構成階層のさまざまなレベルを移動する必要があります。Cli のナビゲートの詳細については、『 Cli ユーザーガイド』の「 Cli エディターを設定モードで使用する」を参照してください。

デバイス C を構成するには

  1. インターフェイスを構成します。

  2. IBGP を構成します。

  3. デバイス E から学習した Edu タグ付き BGP ルートを再配分して、63のメトリックを適用する Edu-isis ポリシーを設定します。

  4. インターフェイスで IS-IS を有効にし、Edu から isis へのポリシーを適用します。

  5. Send isis および direct ポリシーを設定して、EBGP 経由でデバイス E へのルートを再分配します。

    このポリシーがなければ、デバイス E は1つのネットワークに接続できません。

  6. EBGP を構成し、send-isis ポリシーと direct policy を適用します。

  7. ルーター ID と AS (自律システム) 番号を設定します。

結果

構成モードからshow interfaces、、、 show protocolsshow policy-options、およびshow routing-optionsコマンドを入力して設定を確認します。出力に意図した構成が表示されない場合は、この例の手順を繰り返して設定を修正します。

デバイス E

デバイス C

デバイスの設定が完了したら、設定commitモードから入力します。

検証

構成が正常に機能していることを確認します。

IS-IS の近隣ノードの検証

目的

デバイス E からの BGP ルートが IS-IS ネットワーク上で1つとして通信されていることを確認します。

アクション

動作モードから、 show route protocol isisコマンドを入力します。

予想した通り、10.2.0.0/16 と 10.3.0.0/16 ルートは、デバイス D の ルーティング テーブル 内に、メトリック 73 の IS-IS 外部ルートとして使用されます。デバイス C が63をメトリックに追加していない場合、デバイス D は、これらのルートに対してメトリックが10に設定されます。

例:BGP コミュニティを削除するルーティングポリシーの設定

この例では BGP ルートを受け付けても、ルートから BGP コミュニティを削除するポリシーを作成する方法を示しています。

要件

この例を設定する前に、デバイス初期化以外に特別な設定は必要ありません。

概要

この例では、2つのルーティングデバイスの間に外部 BGP (EBGP) 接続が示されています。デバイス R2 は、BGP セッションを使用して、デバイス R1 へ2個の静的ルートを送信します。デバイス R1 では、インポートポリシーによって、ルートからすべての BGP コミュニティーを削除する必要があることが指定されています。

デフォルトでは、EBGP ピア上でコミュニティーが設定されている場合、コミュニティが送信されて受け入れられるようになっています。近隣から受信したコミュニティーの受け入れを抑制するには、すべてのコミュニティまたは指定された一連のコミュニティを削除します。ポリシーの結果が空のコミュニティセットである場合、コミュニティー属性は含まれません。すべてのコミュニティを削除するには、まずワイルドカード コミュニティのセットを定義します(このコミュニティの名前は次の通り wild )。

次に、ルーティングポリシーステートメントでcommunity deleteアクションを指定します。

任意の自律システム (AS) の特定のコミュニティを抑制するには、 community wild members "*:community-value"コミュニティーを定義します。

Topology

図 2は、サンプルネットワークを示しています。

図 2: コミュニティを削除する BGP ポリシーコミュニティを削除する BGP ポリシー

構成

CLI クイック構成

この例を簡単に構成するには、以下のコマンドをコピーしてテキストファイルに貼り付け、改行を削除し、ネットワーク設定に一致する必要がある詳細情報を変更してから、コマンド[edit]を階層レベルで CLI にコピー & ペーストします。

デバイス R1

デバイス R2

手順

順を追った手順

次の例では、構成階層のさまざまなレベルを移動する必要があります。デバイスのナビゲーションの詳細については、「 CLI ガイド 」の「 設定モードでの CLI Junos OS CLI エディター の使用 」 を参照してください

デバイス R1 を構成するには、次のようになります。

  1. インターフェイスを構成します。

  2. BGP を構成します。

    デバイス R2 との BGP ピアリングセッションにインポートポリシーを適用します。

  3. コミュニティを削除するルーティングポリシーを設定します。

  4. 自律システム (AS) 番号とルーター ID を設定します。

順を追った手順

次の例では、構成階層のさまざまなレベルを移動する必要があります。デバイスのナビゲーションの詳細については、「 CLI ガイド 」の「 設定モードでの CLI Junos OS CLI エディター の使用 」 を参照してください

デバイス R2 を構成するには、次のようになります。

  1. インターフェイスを構成します。

  2. ルーター ID と AS (自律システム) 番号を設定します。

  3. BGP を構成します。

  4. 複数のコミュニティを構成するか、複数のメンバーで1つのコミュニティを構成します。

  5. 静的ルートを構成します。

  6. BGP に静的ルートを通知し、BGP コミュニティーをルートに追加するルーティングポリシーを設定します。

  7. エクスポートポリシーを適用します。

結果

構成モードからshow interfaces、、、 show protocolsshow policy-options、およびshow routing-optionsコマンドを入力して設定を確認します。出力に意図した構成が表示されない場合は、この例の手順を繰り返して設定を修正します。

デバイス R1

デバイス R2

デバイスの設定が完了したら、設定commitモードから入力します。

検証

構成が正常に機能していることを確認します。

BGP ルートの検証

目的

デバイス R1 のルーティングテーブルに BGP コミュニティーが含まれていないことを確認します。

アクション
  1. デバイス R1 上でshow route protocols bgp extensiveコマンドを実行します。

  2. デバイス R1 上で、インポートcommunity removeポリシーの設定を非アクティブ化します。

  3. デバイス R1 では、このshow route protocols bgp extensiveコマンドを実行して、提供されたコミュニティーを表示します。

出力は、デバイス R1 のデバイス ルーティング テーブルデバイス R2 から送信されたルートのBGPが抑制された結果を示しています。デバイス R1 のインポート ポリシーの設定が非アクティブ化された場合、コミュニティー community remove は抑制されません。

例:BGP コミュニティー数に基づいたルーティングポリシーの設定

この例では、BGP コミュニティーの数に基づいて BGP ルートを受け入れるポリシーを作成する方法を示します。

要件

この例を設定する前に、デバイス初期化以外に特別な設定は必要ありません。

概要

この例では、2つのルーティングデバイスの間に外部 BGP (EBGP) 接続が示されています。デバイス R2 は、BGP セッションを使用して、デバイス R1 へ2個の静的ルートを送信します。デバイス R1 では、インポートポリシーによって、BGP 受信したルートには最大5つのコミュニティを含めることができます。たとえば、ルートに3つのコミュニティが含まれている場合、それは一致と見なされ、受け入れられます。ルートに6つ以上のコミュニティが含まれている場合は、一致していないと見なされ、拒否されます。

EBGP のデフォルトポリシーは、すべてのルートを受け付けるようになっていることを覚えておくことが重要です。一致しないルートが拒否されるようにするにはthen reject 、ポリシー定義の最後にアクションを含める必要があります。

Topology

図 3は、サンプルネットワークを示しています。

図 3: 許可されているコミュニティー数の制限によるポリシーの BGP許可されているコミュニティー数の制限によるポリシーの BGP

構成

CLI クイック構成

この例を簡単に構成するには、以下のコマンドをコピーしてテキストファイルに貼り付け、改行を削除し、ネットワーク設定に一致する必要がある詳細情報を変更してから、コマンド[edit]を階層レベルで CLI にコピー & ペーストします。

デバイス R1

デバイス R2

手順

順を追った手順

次の例では、構成階層のさまざまなレベルを移動する必要があります。デバイスのナビゲーションの詳細については、「 CLI ガイド 」の「 設定モードでの CLI Junos OS CLI エディター の使用 」 を参照してください

デバイス R1 を構成するには、次のようになります。

  1. インターフェイスを構成します。

  2. BGP を構成します。

    デバイス R2 との BGP ピアリングセッションにインポートポリシーを適用します。

  3. 直接ルートを送信するルーティングポリシーを設定します。

  4. 自律システム (AS) 番号とルーター ID を設定します。

順を追った手順

次の例では、構成階層のさまざまなレベルを移動する必要があります。デバイスのナビゲーションの詳細については、「 CLI ガイド 」の「 設定モードでの CLI Junos OS CLI エディター の使用 」 を参照してください

デバイス R2 を構成するには、次のようになります。

  1. インターフェイスを構成します。

  2. ルーター ID と AS (自律システム) 番号を設定します。

  3. BGP を構成します。

  4. 複数のコミュニティを構成するか、複数のメンバーで1つのコミュニティを構成します。

  5. 静的ルートを構成します。

  6. BGP に静的ルートを通知し、BGP コミュニティーをルートに追加するルーティングポリシーを設定します。

  7. エクスポートポリシーを適用します。

結果

構成モードからshow interfaces、、、 show protocolsshow policy-options、およびshow routing-optionsコマンドを入力して設定を確認します。出力に意図した構成が表示されない場合は、この例の手順を繰り返して設定を修正します。

デバイス R1

デバイス R2

デバイスの設定が完了したら、設定commitモードから入力します。

検証

構成が正常に機能していることを確認します。

BGP ルートの検証

目的

デバイス R1 のルーティングテーブルに期待どおりの BGP ルートが含まれていることを確認します。

アクション
  1. デバイス R1 上でshow route protocols bgpコマンドを実行します。

  2. デバイス R1 上で、インポートcommunity-countポリシーの設定を変更します。

  3. デバイス R1 上でshow route protocols bgpコマンドを実行します。

  4. デバイス R1 では、このshow route protocols bgp extensiveコマンドを実行して、提供されたコミュニティーを表示します。

出力は、デバイスR1の接続ルートルーティング テーブル、BGP R2から送信されたルートが非表示になっています。デバイス R1 のインポート ポリシーの設定が変更された場合、デバイス BGP community-count は非表示ではなくなりました。