Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

BGPコミュニティと拡張コミュニティの定義方法の理解

BGP コミュニティまたは拡張コミュニティをルーティングポリシーの一致条件として使用するには、次のセクションで説明するようにコミュニティを定義します。

ルーティングポリシー一致条件で使用するBGPコミュニティの定義

名前付きBGPコミュニティを作成し、コミュニティメンバーを定義するには、 ステートメントを含めます 。community

name コミュニティを識別します。ここでは、文字、数字、ハイフン(-)を含め、最大 255 文字まで使用可能です。名前にスペースを含めるには、名前全体を引用符(“ ”)で囲みます。

community-ids は、コミュニティーの 1 人以上のメンバーを識別します。各コミュニティ ID は 2 つの要素で構成され、次の形式で指定します。

  • as-number- コミュニティメンバーのAS番号。0 から 65,535 までの値を指定できます。AS番号の指定には、次の表記を使用できます。

    • 数字の文字列。

    • アスタリスク(*) - すべての AS 番号が一致するワイルドカード文字。(コミュニティ属性の定義では、アスタリスクはの説明 に従って機能します。)表 1

    • ピリオド (.)- AS 番号の任意の 1 桁と一致するワイルドカード文字。

    • AS 番号のグループ - 単一の AS 番号、または丸カッコで囲んだ AS 番号のグループ。この方法で番号をグループ化すると、グループ全体で共通の操作を実行し、グループに優先順位を付けることができます。グループ化された数値には、それ自体が正規表現演算子を含めることができます。正規表現の詳細については、を参照してください 。コミュニティ名での UNIX 正規表現の使用

  • community-value- コミュニティ メンバーの識別子。0 から 65,535 までの数値を指定できます。コミュニティ ID の指定には、次の表記を使用できます。

    • 数字の文字列。

    • アスタリスク(*)—すべてのコミュニティ値に一致するワイルドカード文字。(コミュニティ属性の定義では、アスタリスクはの説明 に従って機能します。)表 1

    • ピリオド (.)- コミュニティ値番号の任意の 1 桁と一致するワイルドカード文字。

    • コミュニティ値番号のグループ - 単一のコミュニティ値番号、または括弧で囲んだコミュニティ値番号のグループ。この方法で正規表現をグループ化すれば、グループ全体で共通の動作を実行し、グループに優先順位を付けることができます。グループ化されたパスは、それ自体が正規表現演算子を含むことができます。

また、次の既知のコミュニティ名(RFC 1997、 BGPコミュニティ属性で定義)のいずれかを ステートメントのオプションに含めることもできます。community-idsmembers これにより、 で 指定したルートに、構成された名前またはコミュニティ値がタグ付けされます。[policy-options policy-statement] 別の設定では、BGPインポートポリシーでインポートされたルートのフィルターも作成する必要があります。

  • no-advertise—このコミュニティ名のルートを他のBGPピアにアドバタイズしないでください。

  • no-export—このコミュニティのルートは、BGPコンフェデレーションの境界外にアドバタイズしてはなりません。コンフェデレーションの一部ではないスタンドアロンの自律システムは、コンフェデレーション自体と見なす必要があります。

  • no-export-subconfed—このコミュニティのルートは、BGPコンフェデレーション内の他のメンバーのASのピアを含む、外部のBGPピアにアドバタイズしてはなりません。

IPv6 ユニキャスト アドレス固有の拡張コミュニティに対応するために、次の IPv6 ユニキャスト アドレス コミュニティ名(RFC 5701、 BGP コミュニティ属性で定義)を含めることができます。

は、ポリシー一致で使用される VPN IPv6 ターゲット ユニキャスト アドレスを識別します。 は、ポリシー一致で IPv6 ユニキャスト アドレスの送信元を識別します。 は、ポリシー一致で IPv6 ユニキャストアドレスの拡張フォーマットを識別します。ipv6-targetipv6-originipv6-extended

コミュニティ名での UNIX 正規表現の使用

(ステートメント内で )名前付きBGPコミュニティのメンバーを指定する場合、UNIXスタイルの正規表現を使用してAS番号とメンバー識別子を指定できます。members [ community-ids ] 正規表現は 2 つの要素で構成され、以下の形式で指定します。

term は、一致させる文字列を識別します。

項の一致方法を指定します。 に、コミュニティ ID でサポートされている正規表現演算子のリストを示します。operator表 1 演算子は、 の直後に記述し、間にスペースは入れません。ただし、2つの項の間にパイプ()およびダッシュ()演算子を記述する場合と、項を丸カッコで囲む場合は除きます。に、コミュニティ正規表現を使用して定義する方法の例を示します。 term|表 2community-ids 演算子はオプションです。

コミュニティの正規表現は、UNIXの正規表現と同じです。どちらもPOSIX 1003.2で定義されている拡張(または最新)正規表現を実装しています。

コミュニティ正規表現は、 で指定された 文字列を文字単位で評価します。term 例えば、 を と指定した場合、正規表現では、コロンで区切られた2組の数字(と)ではなく、コロン()を含む9つの個別の文字が表示されます。1234:5678term:12345678

注:

Junos OSリリース9.1以降では、RFC 4893の4オクテットAS番号スペースのBGPサポートに定義されている4バイトAS番号と、Junos OS旧リリースがサポートする2バイトAS番号の両方を指定できます。

表 1: コミュニティ属性正規表現演算子

オペレータ

一致定義

{m,n}

少なくとも m 回最大で n term を繰り返す。m および n はともに正数。mn よりも小さい値でなければならない。

{m}

正確に mterm を繰り返す。m は必ず正数。

{m,}

m 回以上 termを繰り返す。mは必ず正数。

*

0回以上term を繰り返す。これは と等価 です。{0,}

+

1回以上 term を繰り返す。これは と等価 です。{1,}

?

0回または1回 term を繰り返す。これは と等価 です。{0,1}

|

パイプの両側にある2項のうちの1項。

開始項と終了項の範囲に含まれる値。

^

コミュニティ属性の正規表現の先頭の文字。

$

コミュニティ属性の正規表現の末尾の文字。

[ ]

文字のセット。セットから 1 文字一致できます。範囲の開始と終了を指定するには、ハイフン()を使用します。- 一致しない文字のセットを指定するには、左角括弧()の後の最初の文字としてキャレット()を使用します。^[

( )

丸カッコで囲まれた項のグループ。間にスペースを入れずに引用符で囲んだ場合 ("" )、は NULL を示します。() カッコと項の間のスペースは無視される。

“ ”

コミュニティ属性の正規表現で引用符で囲まれた文字(スペース、タブ、疑問符、角括弧など)は、特殊文字を示します。

表 2: コミュニティ属性の正規表現の例

一致するコミュニティ属性

正規表現

一致結果の例

AS番号は56または78です。コミュニティ値は任意の数です。

^((56) |(78)):(.*)$

56:1000

78:64500

AS番号は56です。コミュニティ値は、2 で始まる任意の数値です。

^56:(2.*)$

56:2

56:222

56:234

AS番号は任意の番号です。コミュニティ値は、5、7、または 9 で終わる任意の数値です。

^(.*):(.*[579])$

1234:5

78:2357

34:64509

AS番号は56または78です。コミュニティ値は、2 で始まり 2 から 8 で終わる任意の数値です。

^((56) |(78)):(2.*[2–8])$

56:22

56:21197

78:2678

ルーティングポリシー一致条件で使用するBGP拡張コミュニティの定義

名前付きBGPコミュニティを作成し、コミュニティメンバーを定義するには、 ステートメントを含めます 。community

name コミュニティを識別します。ここでは、文字、数字、ハイフン(-)を含め、最大 255 文字まで使用可能です。名前にスペースを含めるには、名前全体を引用符(“ ”)で囲みます。

community-ids は、コミュニティーの 1 人以上のメンバーを識別します。各コミュニティ ID は 3 つの要素で構成され、次の形式で指定します。

type は拡張コミュニティーのタイプであり、特定の BGP 拡張コミュニティーの 16 ビットの数値識別子、または次のいずれかのタイプです。

  • bandwidth- 帯域幅拡張コミュニティーを設定します。リンク帯域幅を指定すると、異なる BGP パス間でトラフィックを不均一に分散できます。

    注:

    リンク帯域幅属性は、プレフィックス単位のロードバランシングと同時には機能しません。

  • domain-id- ルートの送信元のOSPFドメインを識別します。

  • origin- ルートの起点を識別します。

  • rt-import- ルーティング テーブルにインストールするルートを識別します。

    注:

    AS番号ではなく、IPアドレスでルートを識別する必要があります。

  • src-as- ルートの起点となったASを識別します。IPアドレスではなく、AS番号を指定する必要があります。

    注:

    ASは、IPアドレスではなく、AS番号で識別する必要があります。

  • target- ルートの宛先を識別します。

    注:

    VPNルーティングおよび転送(VRF)インスタンスのインポートポリシーの場合、少なくとも1つのルートターゲットを含める必要があります。また、VRF インポートポリシーのルートターゲットでワイルドカード文字または正規表現を使用することはできません。VRF インポート ポリシーのルート ターゲットに設定する各値は、単一の値である必要があります。

administrator は管理者です。拡張コミュニティのタイプに応じて、AS番号またはIPバージョン4(IPv4)アドレスプレフィックスのいずれかになります。

assigned-number は、ローカル プロバイダーを識別します。

Junos OSリリース9.1以降では、RFC 4893の4オクテットAS番号スペースのBGPサポートに定義されている4バイトAS番号と、Junos OS旧リリースがサポートする2バイトAS番号の両方を指定できます。プレーン番号形式では、1〜4,294,967,295の範囲の値を設定できます。プレーン番号形式の4バイトAS番号を含むまたは拡張コミュニティを設定するには、番号の末尾に文字「L」を追加します。targetorigin たとえば、4バイトAS番号334,324で番号132が割り当てられたターゲットコミュニティは、次のように 表されます。target:334324L:132

注:

4バイトASは拡張コミュニティの一部としてのみ指定できるため、基本BGP正規表現コミュニティでは文字「L」は使用できません。例えば、拡張コミュニティーとのマッチを許可するには、 や のような拡張コミュニティー式を の代わりに使用しますorigin:334324L:*target:334324L:*334324L:*

Junos OSリリース9.2以降では、および拡張コミュニティの4バイトAS番号を定義する際に、ASドット表記を使用することもできます。targetorigin ピリオドで連結された 2 つの整数を指定します。..16-bit high-order value in decimal16-bit low-order value in decimal たとえば、プレーン番号形式で65546と表される4バイトAS番号は、ASドット表記では1.10と表されます。

例:BGP 拡張コミュニティーの定義

管理フィールドが で 、割り当てられた番号 が のターゲットコミュニティを設定します。1045820

管理フィールドが 10.1.1.1 で、番号が割り当てられた 20 でターゲット コミュニティを設定します。

管理フィールドが10.1.1.1で、番号が割り当てられた20を使用して、送信元コミュニティを設定します。

管理フィールドに100000の4バイトAS番号と130の割り当て番号を使用して、ターゲットコミュニティを設定します。