VPN ルートの配布
このトピックでは、BGP、MPLSシグナリング、およびポリシーのルート情報を処理するためのルーターの設定について説明します。
VPN のルーティング情報交換の有効化
レイヤー 2 VPN、レイヤー 3 VPN、仮想ルーター ルーティング インスタンス、VPLS、EVPN、レイヤー 2 回線が正常に機能するためには、サービス プロバイダーの PE ルーターと P ルーターがルーティング情報を交換できる必要があります。そのためには、これらのルーターにIGP(OSPFやIS-ISなど)またはスタティックルートを設定する必要があります。ルーティングプロトコルプロセスのマスターインスタンス上のIGPは、VPNに使用されるルーティング インスタンス内ではなく、 [edit protocols]
階層レベルで設定します。つまり、 [edit routing-instances]
階層レベルでは設定しません。
PE ルーターを設定する場合、エリア境界で PE ルーターのループバック アドレスの集約を設定しないでください。各 PE ルーターのループバック アドレスは、個別のルートとして表示されます。
VPN における PE ルーター間の IBGP セッションの設定
PE ルーター間で IBGP セッションを設定して、PE ルーターが VPN を発信および終了するルートに関する情報を交換できるようにする必要があります。PE ルーターは、この情報に基づいて、リモート サイト宛てのトラフィックに使用するラベルを決定します。
VPN の IBGP セッションを次のように設定します。
[edit protocols] bgp { group group-name { type internal; local-address ip-address; family evpn { signaling; } family (inet-vpn | inet6-vpn) { unicast; } family l2vpn { signaling; } neighbor ip-address; } }
local-address
ステートメントの IP アドレスは、ローカル PE ルーター上のループバック インターフェイスのアドレスです。VPN の IBGP セッションは、ループバック アドレスを介して実行されます。(ループバックインターフェイスは [edit interfaces]
階層レベルでも設定する必要があります)。
neighbor
ステートメントの IP アドレスは、隣接する PE ルーターのループバック アドレスです。RSVP シグナリングを使用している場合、この IP アドレスは、MPLS LSP を設定する際に [edit mpls label-switched-path lsp-path-name]
階層レベルの to
ステートメントで指定したアドレスと同じです。
family
ステートメントを使用すると、レイヤー 2 VPN、VPLS、EVPN、またはレイヤー 3 VPN の IBGP セッションを設定できます。
レイヤー 2 VPN と VPLS に IBGP セッションを設定するには、
[edit protocols bgp group group-name family l2vpn]
階層レベルでsignaling
ステートメントを含めます。[edit protocols bgp group group-name family l2vpn] signaling;
EVPNのIBGPセッションを設定するには、
[edit protocols bgp group group-name family evpn]
階層レベルでsignaling
ステートメントを含めます。[edit protocols bgp group group-name family evpn] signaling;
レイヤー3VPNのIPv4 IBGPセッションを設定するには、
[edit protocols bgp group group-name family inet-vpn]
階層レベルでunicast
ステートメントを設定します。[edit protocols bgp group group-name family inet-vpn] unicast;
レイヤー3VPNのIPv6 IBGPセッションを設定するには、
[edit protocols bgp group group-name family inet6-vpn]
階層レベルでunicast
ステートメントを設定します。[edit protocols bgp group group-name family inet6-vpn] unicast;
同じピアグループ内で、 family inet
と family inet-vpn
の両方、または family inet6
と family inet6-vpn
の両方を設定できます。これにより、同じピアグループ内で、IPv4 と IPv4 の両方の VPN ルート、または IPv6 と IPv6 の両方の VPN ルートのサポートを有効にすることができます。
VPN の集約ラベルの設定
VPN 用集約ラベルにより、ジュニパーネットワークスのルーティング プラットフォームは、受信ラベルのセット(ピア ルーターから受信したラベル)を、受信ラベルのセットから選択された 1 つの転送ラベルに集約できます。1 つの転送ラベルは、そのラベル セットの 1 つのネクスト ホップに対応します。ラベルアグリゲーションにより、ルーターが検査しなければならないVPNラベルの数が削減されます。
ラベルのセットが集約転送ラベルを共有するには、同じ転送等価クラス(FEC)に属している必要があります。ラベル付きパケットは、同じ宛先エグレスインターフェイスを持っている必要があります。
community
community-name
ステートメントと aggregate-label
ステートメントを含めることで、共通のオリジン コミュニティを持つプレフィックスを指定できます。ピアPE上のポリシーで設定されるこれらのプレフィックスは、ピアPEルーター上のFECを表します。
送信元コミュニティではなく、ターゲットコミュニティが誤って設定された場合、エグレスPEで転送の問題が発生する可能性があります。ピアPEからのすべてのプレフィックスは同じFECにあるように見え、同じVPN内の特定のPEの背後にあるすべてのCEルーターに対して単一の内部ラベルになります。
レイヤー3 VPNネットワークでルートリフレクタを操作するために、ジュニパーネットワークスM10iルーターは、ルートが次の場合にのみ受信ラベルのセットを集約します。
同じピア ルーターから受信している
同じ発信元サイト コミュニティがある
同じネクストホップを持つ
ルートリフレクタは、異なるBGPピアから発信されたルートを、それらのルートのネクストホップを変更することなく、別のBGPピアに転送するため、ネクストホップ要件は重要です。
VPN の集約ラベルを設定するには、 ステートメントを aggregate-label 含めます。
aggregate-label { community community-name; }
このステートメントを含めることができる階層レベルの一覧については、このステートメントのステートメント概要を参照してください。
コミュニティを設定する方法については 、ルーティングポリシー一致条件としてのBGPコミュニティ、拡張コミュニティ、および大規模コミュニティについてを参照してください。
VPN のシグナリング プロトコルと LSP の設定
VPN を機能させるには、プロバイダー エッジ(PE)ルーターとプロバイダー(P)ルーターで、LDP または RSVP のいずれかのシグナリング プロトコルを有効にする必要があります。また、イングレスルーターとイグレスルーター間のラベルスイッチパス(LSP)を設定する必要もあります。一般的な vpn 設定では、各 PE ルーターから VPN に参加している他のすべての PE ルーターに LSP をフルメッシュで設定する必要があります。
MPLSに関わるあらゆる設定と同様に、高密度のファストイーサネットPICを介してPEルーター上のコアに面したインターフェイスを設定することはできません。
シグナリング プロトコルを有効にするには、次のいずれかのセクションの手順を実行します。
VPN シグナリングでの LDP の使用
VPN シグナリングに LDP を使用するには、PE およびプロバイダー(P)ルーターで次の手順を実行します。
[edit protocols]
階層レベルでldp
ステートメントを含めることで、サービスプロバイダのネットワークのコアにあるインターフェイスに LDP を設定します。LDPは、PEルーター間またはPEとPルーター間のインターフェイスでのみ設定する必要があります。これらは「コア向け」インターフェイスと考えることができます。PE とカスタマーエッジ(CE)ルーター間のインターフェイスに LDP を設定する必要はありません。
[edit] protocols { ldp { interface type-fpc/pic/port; } }
[edit interfaces type-fpc/pic/port unit logical-unit-number]
階層レベルでfamily mpls
ステートメントを含めて、LDP を有効にしたインターフェイス(ステップ 1 で設定したインターフェイス)に MPLS アドレスファミリーを設定します。[edit] interfaces { type-fpc/pic/port { unit logical-unit-number { family mpls; } } }
各 PE および P ルーターで OSPF または IS-IS を設定します。
これらのプロトコルは、VPNに使用されるルーティング インスタンス内ではなく、ルーティングプロトコルのマスターインスタンスで設定します。
OSPFを設定するには、
[edit protocols]
階層レベルでospf
ステートメントを含めます。少なくとも、ルーターのインターフェイスの少なくとも1つにバックボーンエリアを設定する必要があります。[edit] protocols { ospf { area 0.0.0.0 { interface type-fpc/pic/port; } } }
IS-IS を設定するには、
[edit protocols]
階層レベルでisis
ステートメントを含め、[edit interfaces]
階層レベルでループバック インターフェイスと国際標準化機構(ISO)ファミリーを設定します。少なくとも、ルーターで IS-IS を有効にし、ルーターのインターフェイスの 1 つ(できればループバック インターフェイス lo0)でネットワーク エンティティ タイトル(NET)を設定し、IS-IS を実行するすべてのインターフェイスで ISO ファミリーを設定する必要があります。IS-IS を有効にすると、レベル 1 とレベル 2 がデフォルトで有効になります。以下に、IS-IS の最小設定を示します。address
ステートメントでは、address
はNETです。[edit] interfaces { lo0 { unit logical-unit-number { family iso { address address; } } } type-fpc/pic/port { unit logical-unit-number { family iso; } } } protocols { isis { interface all; } }
VPN シグナリングでの RSVP の使用
VPN シグナリングに RSVP を使用するには、次の手順を実行します。
各 PE ルーターで、トラフィック エンジニアリングを設定します。
そのためには、トラフィック制御(IS-IS または OSPF)をサポートする内部ゲートウェイ プロトコル(IGP)を設定し、そのプロトコルのトラフィック制御サポートを有効にする必要があります。
OSPFトラフィック制御サポートを有効にするには、
[edit protocols ospf]
階層レベルでtraffic-engineering
ステートメントを含めます。[edit protocols ospf] traffic-engineering { shortcuts; }
IS-ISの場合、トラフィック制御サポートはデフォルトで有効になっています。
各 PE および P ルーターで、LSP(ラベルスイッチ パス)に参加するインターフェイスで RSVP を有効にします。
PE ルーターでは、これらのインターフェイスは LSP へのイングレスおよびエグレス ポイントです。P ルーターでは、これらのインターフェイスが PE ルーター間の LSP を接続します。PEとCEルーター間のインターフェイスはLSPの一部ではないため、RSVPを有効にしないでください。
PEおよびPルーターでRSVPを設定するには、
[edit protocols rsvp]
階層レベルでinterface
ステートメントを含めます。RSVP を有効にするインターフェイスごとに 1 つのinterface
ステートメントを含めます。[edit protocols] rsvp { interface interface-name; interface interface-name; }
各 PE ルーターで、LSP のエグレス ポイントである PE ルーターに MPLS LSP を設定します。
これを行うには、
[edit protocols mpls]
階層レベルでinterface
およびlabel-switched-path
ステートメントを含めます。[edit protocols] mpls { interface interface-name; label-switched-path path-name { to ip-address; } }
to
ステートメントでは、LSP のエグレス ポイントのアドレスを指定します。これはリモート PE ルーター上のアドレスです。interface
ステートメントで、インターフェイスの名前(物理部と論理部の両方)を指定します。LSP に関連するインターフェイスのinterface
ステートメントを 1 つ含めます。[edit interfaces]
階層レベルで同じインターフェイスの論理部分を設定する場合、family inet
およびfamily mpls
ステートメントも設定する必要があります。[edit interfaces] interface-name { unit logical-unit-number { family inet; family mpls; } }
LSP に参加するすべての P ルーターで、
[edit mpls]
階層レベルでinterface
ステートメントを含めて MPLS を有効にします。LSP への接続ごとに 1 つの
interface
ステートメントを含めます。[edit] mpls { interface interface-name; interface interface-name; }
[edit mpls]
階層レベルでinterface
ステートメントを含めることで、PE ルーターと CE ルーター間のインターフェイスで MPLS を有効にします。こうすることで、PE ルーターは LSP に入るトラフィックに MPLS ラベルを割り当てたり、LSP から出るトラフィックからラベルを削除したりすることができます。
[edit] mpls { interface interface-name; }
MPLSの設定に関する情報については、 MPLS信号LSP用のイングレスルーターの設定を参照してください。
参照
VPN の PE ルーターでの VRF テーブルのポリシーの設定
各 PE ルーターでは、ルーターの VRF テーブルにルートをインポートする方法と、VRF テーブルからエクスポートする方法を定義するポリシーを定義する必要があります。これらのポリシーでは、ルート・ターゲットを定義する必要があり、オプションでルート起点を定義できます。
VRF テーブルのポリシーを設定するには、次のセクションの手順を実行します。
- ルート ターゲットの設定
- ルート起点の設定
- PEルーターのVRFテーブルのインポートポリシーの設定
- PE ルーターの VRF テーブルのエクスポート ポリシーの設定
- VRFエクスポートポリシーとBGPエクスポートポリシーの両方を適用
- 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]
VPN のルート起点の設定
ルート起点を使用すると、起点コミュニティでマークされたあるカスタマーエッジ(CE)ルーターから学習したルートが、同じAS内の別のCEルーターからアドバタイズされるのを防ぐことができます。
この例では、ルート起点を使用して、起点コミュニティでマークされたCEルーターAから学習されたルートが、AS 200によってCEルーターEにアドバタイズされるのを防ぎます。トポロジーの例を 図 1 に示します。

このトポロジーでは、CEルーターAとCEルーターEは同じAS(AS200)にあります。これらは、EBGP を使用して、それぞれのプロバイダー エッジ(PE)ルーターである PE ルーター B および PE ルーター D とルートを交換します。2台のCEルーターにはバック接続があります。
次のセクションでは、VPNグループのルート起点を設定する方法について説明します。
- CEルーターAでのSite of Originコミュニティの設定
- CE ルーター A のコミュニティの設定
- CEルーターAでのポリシー・ステートメントの適用
- PE ルーター D でのポリシーの設定
- PE ルーター D のコミュニティ設定
- PE ルーター D へのポリシーの適用
CEルーターAでのSite of Originコミュニティの設定
次のセクションでは、CEルータAを設定して、起点コミュニティのあるルートをPEルータBにアドバタイズする方法について説明します。
この例では、直接ルートはアドバタイズされるように設定されていますが、任意のルートを設定することができます。
CEルーターAで my-soo
コミュニティとルートをアドバタイズするポリシーを次のように設定します。
[edit] policy-options { policy-statement export-to-my-isp { term a { from { protocol direct; } then { community add my-soo; accept; } } } }
CE ルーター A のコミュニティの設定
CEルーターAの my-soo
コミュニティを次のように設定します。
[edit] policy-options { community my-soo { members origin:100:1; } }
CEルーターAでのポリシー・ステートメントの適用
以下の通り、export-to-my-isp ポリシー・ステートメントをエクスポート・ポリシーとして CE ルーター A の EBGP ピアリングに適用します。
[edit] protocols { bgp { group my_isp { export export-to-my-isp; } } }
show route receive-protocol bgp detail
コマンドを発行すると、コミュニティでPEルーターBから発信された以下のルートmy-soo
確認できます。
user@host> show route receive-protocol bgp 10.12.99.2 detail inet.0: 16 destinations, 16 routes (15 active, 0 holddown, 1 hidden) inet.3: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden) vpn_blue.inet.0: 8 destinations, 10 routes (8 active, 0 holddown, 0 hidden) * 10.12.33.0/30 (2 entries, 1 announced) Nexthop: 10.12.99.2 AS path: 100 I Communities: origin:100:1 10.12.99.0/30 (2 entries, 1 announced) Nexthop: 10.12.99.2 AS path: 100 I Communities: origin:100:1 * 10.255.71.177/32 (1 entry, 1 announced) Nexthop: 10.12.99.2 AS path: 100 I Communities: origin:100:1 * 192.168.64.0/21 (1 entry, 1 announced) Nexthop: 10.12.99.2 AS path: 100 I Communities: origin:100:1 iso.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden) mpls.0: 8 destinations, 8 routes (8 active, 0 holddown, 0 hidden) bgp.l3vpn.0: 4 destinations, 4 routes (4 active, 0 holddown, 0 hidden) inet6.0: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden) __juniper_private1__.inet6.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)
PE ルーター D でのポリシーの設定
PEルーターDで、CEルーターAによってタグ付けされた my-soo
コミュニティを持つルートがCEルーターEにアドバタイズされないようにするポリシーを設定します。
[edit] policy-options { policy-statement soo-ce1-policy { term a { from { community my-soo; then { reject; } } } } }
PE ルーター D のコミュニティ設定
PE ルーター D のコミュニティを次のように設定します。
[edit] policy-options { community my-soo { members origin:100:1; } }
PE ルーター D へのポリシーの適用
CEルーターAから学習したルートがCEルーターEにアドバタイズされないようにする(2つのルーターがこれらのルートを直接通信できる)には、 soo-ce1-policy
ポリシーステートメントをエクスポートポリシーとしてPEルーターDおよびCEルーターEのEBGPセッション vpn_blue
に適用します。
show routing-instances
コマンドを使用して、PE ルーター D の EBGP セッションを表示します。
user@host# show routing-instances vpn_blue { instance-type vrf; interface fe-2/0/0.0; vrf-target target:100:200; protocols { bgp { group ce2 { advertise-peer-as; peer-as 100; neighbor 10.12.99.6; } } } }
soo-ce1-policy
ポリシーステートメントをエクスポートポリシーとして、PEルーターDおよびCEルーターEのEBGPセッションvpn_blue
に次のように適用します。
[edit routing-instances] vpn_blue { protocols { bgp { group ce2{ export soo-ce1-policy; } } } }