VPN の PE ルーターでの VRF テーブルのポリシーの設定
各 PE ルーターでは、ルーターの VRF テーブルにルートをインポートする方法と、VRF テーブルからエクスポートする方法を定義するポリシーを定義する必要があります。これらのポリシーでは、ルート・ターゲットを定義する必要があり、オプションでルート起点を定義できます。
VRF テーブルのポリシーを設定するには、次のセクションの手順を実行します。
ルート ターゲットの設定
VPN ルーティングテーブルのポリシー構成の一部として、ルートが属する VPN を定義するルート ターゲットを定義する必要があります。同じ PE ルーター上で異なるタイプの VPN サービス(レイヤー 2 VPN、レイヤー 3 VPN、EVPN、VPLS)を設定する場合は、間違った VPN ルーティングテーブルにルートやシグナリング情報が追加されないように、必ず一意のルート ターゲット値を割り当ててください。
ルート ターゲットを設定するには、community
ステートメントに target
オプションを含めます。
community name members target:community-id;
以下の階層レベルでこのステートメントを使用することができます。
[edit policy-options]
[edit logical-systems logical-system-name policy-options]
name
はコミュニティの名前です。
community-id
はコミュニティの識別子です。以下のいずれかの形式で指定します。
as-number
:number
、as-number
はAS番号(2バイト値)、number
は4バイトのコミュニティ値です。AS番号の範囲は1〜65,535です。IANAによって割り当てられた非プライベートのAS番号を使用することが推奨されます。好ましいのは、ISP自身またはカスタマー自身のAS番号です。コミュニティ値は、0〜4,294,967,295(232 – 1)の範囲の数値です。ip-address
:number
、ip-address
は IPv4 アドレス(4 バイト値)、number
は 2 バイトのコミュニティ値です。IP アドレスには、グローバルに一意なユニキャスト アドレスを指定できます。割り当てられたプレフィックス範囲内の非プライベートアドレスであるrouter-id
ステートメントで設定するアドレスを使用することをお勧めします。コミュニティ値は、1〜65,535の範囲の数値です。
ルート起点の設定
PE ルーターの VRF テーブルのインポートおよびエクスポート ポリシーでは、オプションで、他の PE ルーターに送信されるマルチプロトコル外部 BGP(MP-EBGP)VPN IPv4 ルート アップデートに適用される VRF エクスポート ポリシーを使用して、PE ルーターの VRF ルートのルート起点(起点サイトとも呼ばれる)を割り当てることができます。
受信側 PE の VRF インポート ポリシーで割り当てられたルート起点属性を照合することで、1 つの PE からの MP-EBGP アップデートを通じて学習した VPN-IPv4 ルートが、同じサイトに接続された別の PE から同じ VPN サイトに再インポートされることがなくなります。
ルート起点を構成するには、以下のステップを実行します。
origin
オプションにcommunity
ステートメントを含めます。community name members origin:community-id;
以下の階層レベルでこのステートメントを使用することができます。
[edit policy-options]
[edit logical-systems logical-system-name policy-options]
name
はコミュニティの名前です。community-id
はコミュニティの識別子です。以下のいずれかの形式で指定します。as-number
:number
、as-number
はAS番号(2バイト値)、number
は4バイトコミュニティ値です。AS番号の範囲は1〜65,535です。IANAによって割り当てられた非プライベートのAS番号を使用することが推奨されます。好ましいのは、ISP自身またはカスタマー自身のAS番号です。コミュニティ値は、0〜4,294,967,295(232 – 1)の範囲の数値です。ip-address
:number
で、ip-address
は IPv4 アドレス(4 バイト値)で、number
は 2 バイトのコミュニティ値です。IP アドレスには、グローバルに一意なユニキャスト アドレスを指定できます。router-id
ステートメントで設定するアドレスは、割り当てられたプレフィックス範囲内の非プライベートアドレスを使用することを推奨します。コミュニティ値は、1〜65,535の範囲の数値です。
ステップ1で定義した
community-id
識別子でcommunity
ステートメントを[edit policy-options policy-statement import-policy-name term import-term-name from]
階層レベルで設定することで、PEルーターのVRFテーブルのインポートポリシーにコミュニティを含めます。PE ルーターの VRF テーブルのインポート ポリシーの設定を参照してください。ポリシーの
from
句でコミュニティ条件が指定されていない場合、ポリシーが適用されるvrf-import
ステートメントはコミットできません。Junos OS のコミット操作は検証チェックに合格しません。ステップ1で定義した
community-id
識別子でcommunity
ステートメントを[edit policy-options policy-statement export-policy-name term export-term-name then]
階層レベルで設定することで、PEルーターのVRFテーブルのエクスポートポリシーにコミュニティを含めます。PE ルーターの VRF テーブルのエクスポート ポリシーの設定を参照してください。
設定例については 、VPN のルート起点の設定 を参照してください。
PEルーターのVRFテーブルのインポートポリシーの設定
各 VPN には、PE ルーターの VRF テーブルにルートをインポートする方法を定義するポリシーを設定できます。インポート ポリシーは、VPN 内の他の PE ルーターから受信したルートに適用されます。ポリシーは、ピアPEルーターとのIBGPセッションで受信したすべてのルートを評価する必要があります。ルートが条件に一致する場合、PEルーターの routing-instance-name.inet.0
VRFテーブルにルートがインストールされます。インポート ポリシーには、他のすべてのルートを拒否する 2 番目の条件を含める必要があります。
インポートポリシーに then reject
ステートメントしか含まれていない限り、コミュニティへの参照を含める必要があります。そうしないと、設定のコミットを試みると、コミットが失敗します。複数のインポートポリシーを設定できます。
インポート ポリシーは、IBGP を通じてリモート PE ルーターから学習した VPN ルートに基づいて、指定された VRF テーブルに何をインポートするかを決定します。IBGP セッションは、 [edit protocols bgp]
階層レベルで設定されます。 [edit protocols bgp]
階層レベルでもインポートポリシーを設定すると、 [edit policy-options]
階層レベルと [edit protocols bgp]
階層レベルのインポートポリシーが論理AND演算で組み合わされます。これにより、トラフィックをグループとしてフィルタリングできます。
PE ルーターの VRF テーブルにインポート ポリシーを設定するには、以下の手順に従います。
インポートポリシーを定義するには、
policy-statement
ステートメントを含めます。すべてのPEルーターについて、インポートポリシーには少なくともpolicy-statement
ステートメントを必ず含める必要があります。policy-statement import-policy-name { term import-term-name { from { protocol bgp; community community-id; } then accept; } term term-name { then reject; } }
以下の階層レベルで
policy-statement
ステートメントを含めることができます。[edit policy-options]
[edit logical-systems logical-system-name policy-options]
import-policy-name
ポリシーは、他の PE ルーターとの IBGP セッションで受信したすべてのルートを評価します。ルートがfrom
ステートメントの条件に一致する場合、ルートは PE ルーターの routing-instance-name.inet.0 VRF テーブルにインストールされます。ポリシーの 2 番目の条件は、他のすべてのルートを拒否します。ポリシー作成の詳細については 、「ルーティングポリシー、ファイアウォールフィルタ、およびトラフィックポリサーユーザーガイド」を参照してください。
オプションで、正規表現を使用して、VRF インポートポリシーに使用するコミュニティのセットを定義できます。
例えば、
[edit policy-options policy-statement policy-statement-name]
階層レベルでcommunity
ステートメントを使用して、以下を設定することができます。[edit policy-options vrf-import-policy-sample] community high-priority members *:50
ルートターゲット拡張コミュニティの一部として正規表現を設定することはできません。コミュニティーの正規表現を設定する方法については、「 ルーティングポリシー一致条件で BGP コミュニティーと拡張コミュニティーがどのように評価されるか」を参照してください。
インポートポリシーを設定するには、
vrf-import
ステートメントを含めます。vrf-import import-policy-name;
以下の階層レベルでこのステートメントを使用することができます。
[edit routing-instances routing-instance-name]
[edit logical-systems logical-system-name routing-instances routing-instance-name]
PE ルーターの VRF テーブルのエクスポート ポリシーの設定
各 VPN には、PE ルーターの VRF テーブルからルートをエクスポートする方法を定義するポリシーを設定できます。エクスポート ポリシーは、VPN 内の他の PE ルーターに送信されたルートに適用されます。エクスポート・ポリシーは、CEルーターとのルーティング・プロトコル・セッションで受信したすべてのルートを評価する必要があります。(このセッションでは、BGP、OSPF、またはルーティング情報プロトコル(RIP)ルーティングプロトコル、またはスタティックルートを使用できます。)ルートが条件に一致する場合、指定されたコミュニティ ターゲット(ルート ターゲット)がルートに追加され、リモート PE ルーターにエクスポートされます。エクスポート ポリシーには、他のすべてのルートを拒否する 2 番目の条件を含める必要があります。
VPN ルーティング インスタンス内で定義されたエクスポート ポリシーは、VRF テーブルに適用される唯一のエクスポート ポリシーです。PE ルーター間の IBGP セッションで定義するエクスポート ポリシーは、VRF テーブルには影響しません。複数のエクスポート ポリシーを設定できます。
PE ルーターの VRF テーブルのエクスポート ポリシーを設定するには、以下の手順に従います。
すべての PE ルーターについて、エクスポート ポリシーは、ルーティング インスタンス内で CE ルーターと PE ルーター間で設定するルーティング プロトコルのタイプに従って、接続された CE ルーターとの間で VPN ルートを配信する必要があります。
エクスポート ポリシーを定義するには、
policy-statement
ステートメントを含めます。エクスポートポリシーには、少なくとも必ずpolicy-statement
ステートメントを含める必要があります。policy-statement export-policy-name { term export-term-name { from protocol (bgp | ospf | rip | static); then { community add community-id; accept; } } term term-name { then reject; } }
手記:community add
ステートメントの設定は、レイヤー 2 VPN VRF エクスポート ポリシーの要件です。community add
ステートメントをcommunity set
ステートメントに変更すると、レイヤー2 VPNリンクのエグレスにあるルーターが接続をドロップする場合があります。手記:送信元固有のモードで動作するdraft-rosen マルチキャスト VPN を設定し、
vrf-export
ステートメントを使用してエクスポート ポリシーを指定する場合、ポリシーには vrf-name.mdt.0 ルーティングテーブルからのルートを受け入れる条件が必要です。この条件は、inet-mdt
アドレスファミリーを使用して、適切なPE自動検出を保証します。送信元固有のモードで動作する draft-rosen マルチキャスト VPN を設定し、
vrf-target
ステートメントを使用すると、VRF エクスポート ポリシーが自動的に生成され、vrf-name.mdt.0 ルーティングテーブルからのルートが自動的に受け入れられます。以下の階層レベルに
policy-statement
ステートメントを含めることができます。[edit policy-options]
[edit logical-systems logical-system-name policy-options]
export-policy-name
ポリシーは、CEルータとのルーティングプロトコルセッションで受信したすべてのルートを評価します。(このセッションでは、BGP、OSPF、RIPルーティングプロトコル、またはスタティックルートを使用できます。)ルートがfrom
ステートメントの条件に一致する場合、then community add
ステートメントで指定されたコミュニティ ターゲットがルートに追加され、リモート PE ルーターにエクスポートされます。ポリシーの 2 番目の条件は、他のすべてのルートを拒否します。ポリシー作成の詳細については 、「ルーティングポリシー、ファイアウォールフィルタ、およびトラフィックポリサーユーザーガイド」を参照してください。
ポリシーを適用するには、
vrf-export
ステートメントを含めます。vrf-export export-policy-name;
以下の階層レベルでこのステートメントを使用することができます。
[edit routing-instances routing-instance-name]
[edit logical-systems logical-system-name routing-instances routing-instance-name]
VRFエクスポートポリシーとBGPエクスポートポリシーの両方を適用
PE ルーターの VRF テーブルのエクスポート ポリシーの設定の説明に従って VRF エクスポート ポリシーを適用すると、VPN ルーティング インスタンスからのルートはこのポリシーに基づいて他の PE ルーターにアドバタイズされますが、BGP エクスポート ポリシーは無視されます。
BGP 設定に vpn-apply-export
ステートメントを含めると、VPN ルーティング テーブルで他の PE ルーターにルートがアドバタイズされる前に、VRF エクスポートと BGP グループまたはネイバー エクスポート ポリシーの両方が適用されます(最初に VRF、次に BGP)。
PE デバイスが、キャリアオーバーキャリアまたはAS間VPNのルートリフレクタ(RR)または自律システム境界ルーター(ASBR)としても機能している場合、vrf-exportポリシーのネクストホップ操作は無視されます。
vpn-apply-export
ステートメントを含める場合、次の点に注意してください。
bgp.l3vpn.0 ルーティングテーブルにインポートされたルートは、元のルートの属性を保持します(例えば、OSPF ルートは、bgp.l3vpn.0 ルーティングテーブルに格納されていても OSPF ルートのままです)。IBGP PEルーターとPEルーター、ルートリフレクターとPEルーター、またはASBR(ASBR)ピアルーター間の接続にエクスポートポリシーを設定する場合は、この点に注意する必要があります。
デフォルトでは、bgp.l3vpn.0ルーティングテーブル内のすべてのルートがIBGPピアにエクスポートされます。エクスポートポリシーの最後のステートメントがdeny allで、エクスポートポリシーがbgp.l3vpn.0ルーティングテーブルのルートで特に一致しない場合、ルートはエクスポートされません。
VRFエクスポートポリシーとBGPエクスポートポリシーの両方をVPNルートに適用するには、 vpn-apply-export
ステートメントを含めます。
vpn-apply-export;
このステートメントを含めることができる階層レベルの一覧は、このステートメントのステートメント概要のセクションを参照してください。
VRF ターゲットの設定
VRF ターゲット コミュニティの設定に vrf-target
ステートメントを含めると、指定されたターゲット コミュニティでルートを受け入れてタグ付けするデフォルトの VRF インポートおよびエクスポート ポリシーが生成されます。VRF インポートおよびエクスポート ポリシーを明示的に設定することで、より複雑なポリシーを作成することもできます。これらのポリシーは、 vrf-target
ステートメントの設定時に生成されるデフォルトポリシーを上書きします。
vrf-target
ステートメントの import
および export
オプションを設定しない場合、指定されたコミュニティ ストリングが両方向に適用されます。import
キーワードと export
キーワードを使用すると柔軟性が高まり、方向ごとに異なるコミュニティを指定できます。
VRF ターゲット コミュニティの構文は、名前ではありません。 target:x:y
の形式で指定する必要があります。コミュニティ名を指定することはできません。その場合、 policy-options
ステートメントを使用してそのコミュニティのコミュニティメンバーを設定する必要があるためです。 policy-options
ステートメントを定義すると、通常どおり VRF インポートおよびエクスポート ポリシーを設定できます。 vrf-target
ステートメントの目的は、 [edit routing-instances]
階層レベルでほとんどのステートメントを設定できるようにすることで、設定を簡素化することです。
VRF ターゲットを設定するには、 vrf-target
ステートメントを含めます。
vrf-target community;
以下の階層レベルでこのステートメントを使用することができます。
[edit routing-instances routing-instance-name]
[edit logical-systems logical-system-name routing-instances routing-instance-name]
以下に、 vrf-target
ステートメントの設定例を示します。
[edit routing-instances sample] vrf-target target:69:102;
export
とimport
オプションでvrf-target
ステートメントを設定するには、以下のステートメントを含めます。
vrf-target { export community-name; import community-name; }
以下の階層レベルでこのステートメントを使用することができます。
[edit routing-instances routing-instance-name]
[edit logical-systems logical-system-name routing-instances routing-instance-name]