Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

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

ルーティング ポリシーの一致条件としての BGP コミュニティ、拡張コミュニティ、大規模コミュニティについて

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

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

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

通常のコミュニティ属性は 4 オクテットです。VPN などのネットワーク機能拡張には、コミュニティなどの属性によって満足できる機能要件があります。しかし、4オクテットコミュニティの価値は、VPN要件に対応するための十分な拡張と柔軟性を提供しません。これにより、拡張されたコミュニティが生まれます。拡張コミュニティは、8オクテット値であり、2つの主要なセクションにも分かれています。コミュニティの最初の2オクテットは型フィールドをエンコードし、最後の6オクテットは型フィールドによって定義された形式で一意のデータセットを運びます。拡張されたコミュニティは、コミュニティをグループ化または分類するための幅広い範囲を提供します。

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

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

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

注:

BGP ラージ コミュニティーの属性値の長さは、12 のゼロ以外の倍数にする必要があります。

例:特定のコミュニティ タグを使用して BGP ルートを IS-IS に再分配するためのルーティング ポリシーの設定

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

要件

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

概要

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

図 1: 特定のコミュニティ タグを使用した BGP ルートの IS-IS への再分配特定のコミュニティ タグを使用した BGP ルートの IS-IS への再分配

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

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

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

CLI クイック設定 でのすべてのデバイス 図 1の設定を示しています。このセクション #d244e62__d244e383 では、デバイス 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-to-isis ポリシーを設定します。

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

  5. EBGP を介してデバイス E にルートを再分配する send-isis-and-direct ポリシーを設定します。

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

  6. EBGP を設定し、send-isis-and-direct ポリシーを適用します。

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

結果

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

デバイスE

デバイス C

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

検証

設定が正しく機能していることを確認します。

IS-IS ネイバーの検証

目的

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

対処

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

意味

予想通り、10.2.0.0/16 および 10.3.0.0/16 ルートは、デバイス D のルーティング テーブルに IS-IS 外部ルートとして 73 のメトリックが含まれます。デバイス C がメトリックに 63 を追加しなかった場合、デバイス D はこれらのルートのメトリック 10 を持つことになります。

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

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

要件

この例を設定する前に、デバイス初期化以外の特別な設定は不要です。

概要

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

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

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

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

トポロジ

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

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

設定

CLI クイック設定

この例を迅速に設定するには、次のコマンドをコピーしてテキスト ファイルに貼り付け、改行を削除し、ネットワーク設定に一致するために必要な詳細情報を変更してから、コマンドを階層レベルで [edit] CLI にコピーアンドペーストします。

デバイスR1

デバイスR2

手順

手順

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

デバイス R1 を設定するには、次の手順に従います。

  1. インターフェイスを設定します。

  2. BGP を設定します。

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

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

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

手順

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

デバイス R2 を設定するには、次の手順に従います。

  1. インターフェイスを設定します。

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

  3. BGP を設定します。

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

  5. 静的ルートを設定します。

  6. スタティック ルートを BGP にアドバタイズし、BGP コミュニティをルートに追加するルーティング ポリシーを設定します。

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

結果

設定モードから、 、 show protocolsshow policy-optionsおよび コマンドをshow interfaces入力して設定を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 ルートを受け入れるポリシーを作成する方法を示しています。

要件

この例を設定する前に、デバイス初期化以外の特別な設定は不要です。

概要

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

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

トポロジ

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

図 3: 受け入れ可能なコミュニティの数に制限があるBGPポリシー受け入れ可能なコミュニティの数に制限があるBGPポリシー

設定

CLI クイック設定

この例を迅速に設定するには、次のコマンドをコピーしてテキスト ファイルに貼り付け、改行を削除し、ネットワーク設定に一致するために必要な詳細情報を変更してから、コマンドを階層レベルで [edit] CLI にコピーアンドペーストします。

デバイスR1

デバイスR2

手順

手順

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

デバイス R1 を設定するには、次の手順に従います。

  1. インターフェイスを設定します。

  2. BGP を設定します。

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

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

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

手順

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

デバイス R2 を設定するには、次の手順に従います。

  1. インターフェイスを設定します。

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

  3. BGP を設定します。

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

  5. 静的ルートを設定します。

  6. スタティック ルートを BGP にアドバタイズし、BGP コミュニティをルートに追加するルーティング ポリシーを設定します。

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

結果

設定モードから、 、 show protocolsshow policy-optionsおよび コマンドをshow interfaces入力して設定を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のルーティングテーブルで、デバイスR2から送信されたBGPルートが非表示であることを示しています。community-countデバイスR1のインポートポリシーの設定が変更されると、BGPルートは非表示になります。