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 桁と一致するワイルドカード文字。

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

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

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

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

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

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

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

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

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

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

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

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

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

注:

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

( )

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

“ ”

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

表 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番号を含む target または origin 拡張コミュニティを設定するには、番号の末尾に文字「L」を追加します。たとえば、4バイトAS番号 334,324で番号 132が割り当てられたターゲットコミュニティは、 target:334324L:132と表されます。

注:

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

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

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

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

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

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

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