重複する VPN
ルーティング テーブル グループを使用した重複 VPN の設定
レイヤー 3 VPN では、多くの場合、1 つの CE ルーターが複数の VPN のメンバーになります。この例では、複数の VPN をサポートする CE ルーターをサポートする PE ルーターを設定する方法を示します。 このタイプの設定では、ルーティングテーブルグループ(ルーティング情報ベース(RIB)グループとも呼ばれる)と呼ばれるJunos OSの機能を使用し、ルートを複数のルーティングテーブルにインストールできるようにします。ルーティングテーブルグループは、プロトコルがルートをインストールするルーティングテーブルのリストです。
デフォルトインスタンスの [edit routing-options] 階層レベルでルーティングテーブルグループを定義します。 [edit routing-instances routing-options] 階層レベルでルーティングテーブルグループを設定することはできません。設定すると、コミットエラーが発生します。
ルーティングテーブルグループを定義すると、そのグループを複数のプロトコルで使用できます。また、スタティックルーティングにルーティングテーブルグループを適用することもできます。このセクションの設定例には、両方のタイプの設定が含まれています。
図 1 は、このセクションの設定例のトポロジーを示しています。このセクションの設定は、同じ PE ルーターに接続された CE ルーター間のローカル接続を示しています。ルーターPE1がルーターCE2(VPN AB)にのみ接続されている場合、追加の設定は必要ありません。以下のセクションの設定ステートメントでは、VPN ABルーターCE2が、ルーターPE1に直接接続されているVPN AルーターCE1およびVPN BルーターCE3と通信することを可能にします。リモート PE ルーター(この場合は PE2 ルーター)から発信された VPN ルートは、グローバル レイヤー 3 VPN ルーティングテーブル(bgp.l3vpn.inet.0)に配置され、適切なルート ターゲットを持つルートは、VRF インポート ポリシー設定に従ってルーティング テーブルにインポートされます。目標は、ローカルに設定された個々の VPN ルーティング テーブルからルートを選択できるようにすることです。
ルーターPE1では、すべてのフィルタリングと設定変更が行われます。したがって、PE1のVPN設定のみが表示されています。CEルータにはVPNに関する情報がないため、通常どおり設定できます。
の例
次のセクションでは、重複する VPN を設定するいくつかの方法について説明します。
以下のセクションでは、PE ルーターと CE ルーター間で使用されるルーティング プロトコルに応じて、重複する VPN を設定するさまざまなシナリオを示します。これらの例すべてにおいて、ルーティングテーブルグループを設定する必要があります。
- ルーティングテーブルグループの設定
- PEルーターとCEルーター間のスタティックルートの設定
- PEルーターとCEルーター間のBGPの設定
- PEルーターとCEルーター間のOSPFの設定
- PEとCEルーター間のスタティック、BGP、およびOSPFルートの設定
ルーティングテーブルグループの設定
この例では、ルーティングテーブルグループは 4 つの設定シナリオで共通です。ルーティングテーブルグループは、デフォルトおよびその他のインスタンスの複数のルーティングテーブルにルート(インターフェイス、スタティック、OSPF、およびBGPルートを含む)をインストールするために使用されます。ルーティングテーブルグループ定義では、最初のルーティングテーブルをプライマリルーティングテーブルと呼びます。(通常、プライマリ ルーティングテーブルは、ルーティングテーブル グループを設定しなかった場合にルートがインストールされるテーブルです。その他のルーティングテーブルは、セカンダリルーティングテーブルと呼ばれます。
この設定のルーティングテーブルグループは、次のようにルートをインストールします。
-
vpna-vpnabは、ルーティング テーブル VPN-A.inet.0 と VPN-AB.inet.0 にルートをインストールします。 -
vpnb-vpnabは、ルーティング テーブル VPN-B.inet.0 と VPN-AB.inet.0 にルートをインストールします。 -
vpnab-vpna_and_vpnbは、ルーティングテーブルVPN-AB.inet.0、VPN-A.inet.0、VPN-B.inet.0にルートをインストールします。
ルーティングテーブルグループを設定します。
[edit]
routing-options {
rib-groups {
vpna-vpnab {
import-rib [ VPN-A.inet.0 VPN-AB.inet.0 ];
}
vpnb-vpnab {
import-rib [ VPN-B.inet.0 VPN-AB.inet.0 ];
}
vpnab-vpna_and_vpnb {
import-rib [ VPN-AB.inet.0 VPN-A.inet.0 VPN-B.inet.0 ];
}
}
}
PEルーターとCEルーター間のスタティックルートの設定
PE1ルーターとCE1、CE2、およびCE3ルーター間の静的ルーティングを設定するには、VPN A、VPN B、およびVPN ABのルーティングインスタンスを設定する必要があります(各インスタンスの下で静的ルーティングを設定します)。
VPN A のルーティング インスタンスの設定
ルーターPE1で、VPN Aを設定します。
[edit]
routing-instances {
VPN-A {
instance-type vrf;
interface fe-1/0/0.0;
route-distinguisher 10.255.14.175:3;
vrf-import vpna-import;
vrf-export vpna-export;
routing-options {
interface-routes {
rib-group inet vpna-vpnab;
}
static {
route 10.255.14.155/32 next-hop 192.168.197.141;
route 10.255.14.185/32 next-hop 192.168.197.178;
}
}
}
}
interface-routesステートメントは、VPN Aのインターフェイスルートを、ルーティングテーブルグループvpna-vpnabで定義されたルーティングテーブルにインストールします。
staticステートメントは、VPN-A.inet.0ルーティングテーブルにインストールされる静的ルートを設定します。最初の静的ルートはルーターCE1(VPN A)用で、2つ目はルーターCE2(VPN AB内)用です。
ネクスト ホップ 192.168.197.178 は VPN A にありません。VPN AB からのインターフェイス ルートがこのルーティングテーブルにインストールされていない限りルーティング インスタンスルート 10.255.14.185/32 を VPN-A.inet.0 にインストールすることはできません。VPN AB 設定に interface-routes ステートメントを含めることで、このネクストホップが提供されます。同様に、VPN AB設定に interface-routes ステートメントを含めると、VPN-AB.inet.0に 192.168.197.141 がインストールされます。
VPN ABのルーティング インスタンスの設定
ルーターPE1で、VPN ABを設定します。
[edit]
routing instances {
VPN-AB {
instance-type vrf;
interface fe-1/1/0.0;
route-distinguisher 10.255.14.175:9;
vrf-import vpnab-import;
vrf-export vpnab-export;
routing-options {
interface-routes {
rib-group vpnab-vpna_and_vpnb;
}
static {
route 10.255.14.185/32 next-hop 192.168.197.178;
route 10.255.14.155/32 next-hop 192.168.197.141;
route 10.255.14.186/32 next-hop 192.168.197.242;
}
}
}
}
この設定では、VPN-AB.inet.0ルーティングテーブルに以下のスタティックルートがインストールされています。
-
10.255.14.185/32はルーターCE2用(VPN AB内) -
10.255.14.155/32はルーターCE1(VPN A内)用です -
10.255.14.186/32はルーターCE3用(VPN B内)
ネクスト ホップ 192.168.197.141 と 192.168.197.242 は VPN AB に属しません。VPN A と VPN B からのインターフェイス ルートがこのルーティングテーブルにインストールされていない限り、ルート 10.255.14.155/32 と 10.255.14.186/32 を VPN-AB.inet.0 にインストールすることはできません。VPN A および VPN B ルーティング インスタンスのインターフェイス ルート設定は、これらのネクスト ホップを提供します。
VPN Bのルーティングインスタンスの設定
ルーターPE1で、VPN Bを設定します。
[edit]
routing instances {
VPN-B {
instance-type vrf;
interface fe-1/0/2.0;
route-distinguisher 10.255.14.175:10;
vrf-import vpnb-import;
vrf-export vpnb-export;
routing-options {
interface-routes {
rib-group inet vpnb-vpnab;
}
static {
route 10.255.14.186/32 next-hop 192.168.197.242;
route 10.255.14.185/32 next-hop 192.168.197.178;
}
}
}
}
VPN B のルーティング インスタンスを設定すると、これらのスタティック ルートは VPNB.inet.0 に配置されます。
-
10.255.14.186/32はルーターCE3用(VPN B内) -
10.255.14.185/32はルーターCE2用(VPN AB内)
ネクストホップ 192.168.197.178 はVPN Bに属していません。VPN ABからのインターフェイスルートがこのルーティングテーブルにインストールされていない限り、ルート 10.255.14.185/32 をVPN-B.inet.0にインストールすることはできません。VPN ABのインターフェイスルート設定は、このネクストホップを提供します。
VPN ポリシーの設定
重複する VPN に設定する vrf-import および vrf-export ポリシー ステートメントは、各 VRF エクスポート ポリシーに from interface ステートメントを含めることを除いて、通常の VPN のポリシー ステートメントと同じです。このステートメントは、各 VPN に、その VPN から発信されたルートのみを通知するように強制します。たとえば、VPN A には、VPN A と VPN AB を起点としたルートがあります。 from interface ステートメントを含めない場合、VPN A は自身のルートと VPN AB のルートをアナウンスするため、リモート PE ルーターは同じルートに対して複数のアナウンスを受信します。 from interface ステートメントを含めることで、各VPNが発信したルートのみを通知することを制限し、ローカル接続のために他のルーティングテーブルからインポートされたルートを除外することができます。
この設定例では、 vpnab-import ポリシーは VPN A、VPN B、VPN AB からのルートを受け入れます。 vpna-export ポリシーは、VPN A から発信されたルートのみをエクスポートします。同様に、 vpnb-export および vpnab-export ポリシーは、それぞれのVPN内を起点としたルートのみをエクスポートします。
ルーターPE1では、以下のVPNインポートおよびエクスポートポリシーを設定します。
[edit]
policy-options {
policy-statement vpna-import {
term a {
from {
protocol bgp;
community VPNA-comm;
}
then accept;
}
term b {
then reject;
}
}
policy-statement vpnb-import {
term a {
from {
protocol bgp;
community VPNB-comm;
}
then accept;
}
term b {
then reject;
}
}
policy-statement vpnab-import {
term a {
from {
protocol bgp;
community [ VPNA-comm VPNB-comm ];
}
then accept;
}
term b {
then reject;
}
}
policy-statement vpna-export {
term a {
from {
protocol static;
interface fe-1/0/0.0;
}
then {
community add VPNA-comm;
accept;
}
}
term b {
then reject;
}
}
policy-statement vpnb-export {
term a {
from {
protocol static;
interface fe-1/0/2.0;
}
then {
community add VPNB-comm;
accept;
}
}
term b {
then reject;
}
}
policy-statement vpnab-export {
term a {
from {
protocol static;
interface fe-1/1/0.0;
}
then {
community add VPNB-comm;
community add VPNA-comm;
accept;
}
}
term b {
then reject;
}
}
community VPNA-comm members target:69:1;
community VPNB-comm members target:69:2;
}
ルーターPE1で、VPNインポートおよびエクスポートポリシーを適用します。
[edit]
routing-instances {
VPN-A {
instance-type vrf;
interface fe-1/0/0.0;
route-distinguisher 10.255.14.175:3;
vrf-import vpna-import;
vrf-export vpna-export;
routing-options {
static {
rib-group vpna-vpnab;
route 10.255.14.155/32 next-hop 192.168.197.141;
route 10.255.14.185/32 next-hop 192.168.197.178;
}
}
}
VPN-AB {
instance-type vrf;
interface fe-1/1/0.0;
route-distinguisher 10.255.14.175:9;
vrf-import vpnab-import;
vrf-export vpnab-export;
routing-options {
static {
rib-group vpnab-vpna_and_vpnb;
route 10.255.14.185/32 next-hop 192.168.197.178;
}
}
}
VPN-B {
instance-type vrf;
interface fe-1/0/2.0;
route-distinguisher 10.255.14.175:10;
vrf-import vpnb-import;
vrf-export vpnb-export;
routing-options {
static {
rib-group vpnb-vpnab;
route 10.255.14.186/32 next-hop 192.168.197.242;
}
}
}
}
VPN Aでは、ルーティングテーブルグループvpna-vpnabで定義されたルーティングテーブルにスタティックルートを直接インストールするために、[edit routing-instances routing-instance-name]階層レベルでrouting-optionsステートメントを含めます。VPN ABの場合、この設定は、ルーティングテーブルグループvpnab-vpnaおよびvpnab-vpnbで定義されたルーティングテーブルに直接静的ルートをインストールします。VPN B では、ルーティングテーブル グループ vpnb-vpnabで定義されたルーティング テーブルに 静的ルート が直接インストールされます。
PEルーターとCEルーター間のBGPの設定
この設定例では、VPN Aの vpna-site1 BGPグループが、BGPセッションから学習したルートを、 vpna-vpnab ルーティングテーブルグループで定義されたルーティングテーブルにインストールします。VPN ABの場合、 vpnab-site1 グループはBGPセッションから学習したルートを、 vpnab-vpna_and_vpnb ルーティングテーブルグループで定義されたルーティングテーブルにインストールします。VPN Bの場合、 vpnb-site1 グループは、BGPセッションから学習したルートを、 vpnb-vpnab ルーティングテーブルグループで定義されたルーティングテーブルにインストールします。この設定にインターフェイスルートは必要ありません。
VRF インポートおよびエクスポート ポリシーは、 PE および CE ルータ間のスタティック ルートの設定で定義されているポリシーと似ていますが、エクスポート プロトコルが静的ルートではなく BGP である点が異なります。すべての vrf-export ポリシーで、 from protocol bgp ステートメントを使用します。
ルーターPE1で、PEとCEルーター間のBGPを設定します。
[edit]
routing-instances {
VPN-A {
instance-type vrf;
interface fe-1/0/0.0;
route-distinguisher 10.255.14.175:3;
vrf-import vpna-import;
vrf-export vpna-export;
protocols {
bgp {
group vpna-site1 {
family inet {
unicast {
rib-group vpna-vpnab;
}
}
peer-as 1;
neighbor 192.168.197.141;
}
}
}
}
VPN-AB {
instance-type vrf;
interface fe-1/1/0.0;
route-distinguisher 10.255.14.175:9;
vrf-import vpnab-import;
vrf-export vpnab-export;
protocols {
bgp {
group vpnab-site1 {
family inet {
unicast {
rib-group vpnab-vpna_and_vpnb;
}
}
peer-as 9;
neighbor 192.168.197.178;
}
}
}
}
VPN-B {
instance-type vrf;
interface fe-1/0/2.0;
route-distinguisher 10.255.14.175:10;
vrf-import vpnb-import;
vrf-export vpnb-export;
protocols {
bgp {
group vpnb-site1 {
family inet {
unicast {
rib-group vpnb-vpnab;
}
}
neighbor 192.168.197.242 {
peer-as 10;
}
}
}
}
}
}
PEルーターとCEルーター間のOSPFの設定
この設定例では、VPN A の OSPF セッションから学習したルートは、 vpna-vpnab ルーティングテーブル グループで定義されたルーティングテーブルにインストールされます。VPN ABでは、OSPFセッションから学習したルートは、 vpnab-vpna_and_vpnb ルーティングテーブルグループで定義されたルーティングテーブルにインストールされます。VPN B では、OSPF セッションから学習したルートは、 vpnb-vpnab ルーティングテーブル グループで定義されたルーティング テーブルにインストールされます。
VRF のインポートおよびエクスポート ポリシーは、PE または 静的ルート ではなく OSPF である点を除いて、PE および CE ルーター間のスタティック ルートの設定および PE ルーターと CE ルーター間の BGP の設定で定義されているポリシーと類似しています。したがって、すべてのvrf-exportポリシーで、from protocol <static | bgp> ステートメントではなく from protocol ospf ステートメントを使用します。
ルーターPE1で、PEとCEルーター間のOSPFを設定します。
[edit]
routing-instances {
VPN-A {
instance-type vrf;
interface fe-1/0/0.0;
route-distinguisher 10.255.14.175:3;
vrf-import vpna-import;
vrf-export vpna-export;
protocols {
ospf {
rib-group vpna-vpnab;
export vpna-import;
area 0.0.0.0 {
interface fe-1/0/0.0;
}
}
}
}
VPN-AB {
instance-type vrf;
interface fe-1/1/0.0;
route-distinguisher 10.255.14.175:9;
vrf-import vpnab-import;
vrf-export vpnab-export;
protocols {
ospf {
rib-group vpnab-vpna_and_vpnb;
export vpnab-import;
area 0.0.0.0 {
interface fe-1/1/0.0;
}
}
}
}
VPN-B {
instance-type vrf;
interface fe-1/0/2.0;
route-distinguisher 10.255.14.175:10;
vrf-import vpnb-import;
vrf-export vpnb-export;
protocols {
ospf {
rib-group vpnb-vpnab;
export vpnb-import;
area 0.0.0.0 {
interface fe-1/0/2.0;
}
}
}
}
}
PEとCEルーター間のスタティック、BGP、およびOSPFルートの設定
このセクションでは、スタティックルート、BGP、および OSPF を組み合わせて、PE ルーターと CE ルーター間のルートを設定する方法を示します。
-
ルーターPE1とルーターCE1間の接続は、静的ルーティングを使用します。
-
ルーターPE1とルーターCE2間の接続はBGPを使用します。
-
ルーターPE1とルーターCE3間の接続はOSPFを使用しています。
ここでは、VPN ABの設定にはCE1への静的ルートも含まれています。
ルーターPE1で、PEとCEルーター間の静的ルーティング、BGP、およびOSPFの組み合わせを設定します。
[edit]
routing-instances {
VPN-A {
instance-type vrf;
interface fe-1/0/0.0;
route-distinguisher 10.255.14.175:3;
vrf-import vpna-import;
vrf-export vpna-export;
routing-options {
static {
rib-group vpna-vpnab;
route 10.255.14.155/32 next-hop 192.168.197.141;
}
}
}
VPN-AB {
instance-type vrf;
interface fe-1/1/0.0;
route-distinguisher 10.255.14.175:9;
vrf-import vpnab-import;
vrf-export vpnab-export;
protocols {
bgp {
group vpnab-site1 {
family inet {
unicast {
rib-group vpnab-vpna_and_vpnb;
}
}
export to-vpnab-site1;
peer-as 9;
neighbor 192.168.197.178;
}
}
}
}
VPN-B {
instance-type vrf;
interface fe-1/0/2.0;
route-distinguisher 10.255.14.175:10;
vrf-import vpnb-import;
vrf-export vpnb-export;
protocols {
ospf {
rib-group vpnb-vpnab;
export vpnb-import;
area 0.0.0.1 {
interface t3-0/3/3.0;
}
}
}
}
}
policy-options {
policy-statement to-vpnab-site1 {
term a {
from protocol static;
then accept;
}
term b {
from protocol bgp;
then accept;
}
term c {
then reject;
}
}
}
自動ルート エクスポートを使用したオーバーラップ VPN の設定
複数のルーティングインスタンスで問題となるのは、ルーティングインスタンス間でルートをエクスポートする方法です。他のルーティングテーブルにルートをエクスポートする必要がある各ルーティング インスタンスごとにルーティングテーブルグループを設定することで、Junos OSこれを実現できます。ルーティングテーブル グループを使用して重複する VPN を設定する方法については、「 ルーティング テーブル グループを使用した重複 VPN の設定」を参照してください。
ただし、ルーティングテーブルグループの使用には制限があります。
ルーティングテーブルグループの構成が複雑である。ルートをエクスポートするルーティング インスタンスごとに、一意のルーティングテーブルグループを定義する必要があります。
また、ルートをエクスポートするプロトコルごとに、一意のルーティングテーブルグループを設定する必要があります。
複数のルーティング インスタンストポロジーでルーティングテーブルグループを設定する必要性を制限し、場合によっては排除するために、 auto-export ステートメントが提供する機能を使用できます。
auto-export ステートメントは、重複する VPN(複数の VRF ルーティング インスタンスがvrf-importポリシーで同じコミュニティ ルート ターゲットをリストする VPN 設定)を設定する場合に特に役立ちます。auto-exportステートメントは、既存のポリシー設定を調べることで、どのルーティングテーブルからルートをエクスポートし、どのルーティングテーブルにルートをインポートするかを調べます。
auto-export ステートメントは、特定のルート ターゲット コミュニティを参照するルーティング インスタンス間のルートを自動的にエクスポートします。auto-exportステートメントを設定すると、システムに設定されたvrf-importおよびvrf-exportポリシーに基づいてVRFターゲットツリーが構築されます。ルーティング インスタンスがvrf-importポリシーでルートターゲットを参照する場合、そのルートターゲットはターゲットのインポートリストに追加されます。vrf-exportポリシーで特定のルートターゲットを参照する場合、そのルートターゲットはそのターゲットのエクスポートリストに追加されます。インポーターが 1 つで、エクスポーターが 1 つ、またはインポーターもエクスポーターもいないルートターゲットは無視されます。
ルートターゲットをエクスポートするルーティングテーブルへの変更が追跡されます。ルート変更が発生すると、ルーティング インスタンスの vpn-export ポリシーがルートに適用されます。許可されている場合、エクスポート・ポリシーで設定されたルート・ターゲットのすべてのインポート・テーブル( vrf-import ポリシーに従う)にルートがインポートされます。
以下のセクションでは、ルーティングテーブルグループに加え、インスタンス間エクスポートに auto-export ステートメントを使用して、重複するVPNを設定する方法について説明します。
BGPと自動ルートエクスポートによる重複VPNの設定
次の例は、PE ルーターと CE ルーター間で BGP が使用されるオーバーラップ VPN の設定を示しています。
ルーティング インスタンス VPN-Aを設定します。
[edit]
routing-instances {
VPN-A {
instance-type vrf;
interface fe-1/0/0.0;
route-distinguisher 10.255.14.175:3;
vrf-import vpna-import;
vrf-export vpna-export;
routing-options {
auto-export;
}
protocols {
bgp {
group vpna-site1 {
peer-as 1;
neighbor 192.168.197.141;
}
}
}
}
}
ルーティング インスタンス VPN-ABを設定します。
[edit]
routing-instances {
VPN-AB {
instance-type vrf;
interface fe-1/1/0.0;
route-distinguisher 10.255.14.175:9;
vrf-import vpnab-import;
vrf-export vpnab-export;
routing-options {
auto-export;
}
protocols {
bgp {
group vpnab-site1 {
peer-as 9;
neighbor 192.168.197.178;
}
}
}
}
}
この設定では、ルーティングテーブルグループ設定で提供されていた機能を auto-export ステート メントに置き換えます。ただし、追加の設定が必要な場合もあります。
vrf-importポリシーと、auto-export ステートメントがインポートとエクスポートのマトリクスを推定する vrf-export ポリシーはインスタンス単位で設定されるため、マルチキャストのネットワーク層到達可能性情報(NLRI)が設定されている場合は、ユニキャストとマルチキャストで有効または無効にできる必要があります。
重複 VPN と追加テーブルの設定
重複するVPN間で auto-export ステートメントを使用する必要がある場合がありますが、VRFテーブルから学習したルートのサブセットをinet.0テーブルまたはrouting-instance.inet.2にインストールする必要があります。
必要な情報の一部が vrf-import ポリシーと vrf-export ポリシーに存在するわけではないこのタイプのシナリオをサポートするには、追加の ルーティングテーブル グループを使用してルーティングテーブルの追加リストを構成します。
説明した例で、 VPN-A および VPN-AB からinet.0へのルートを追加するには、以下の設定ステートメントを追加する必要があります。
ルーティングオプションを設定します。
[edit]
routing-options {
rib-groups {
inet-access {
import-rib inet.0;
}
}
}
ルーティング インスタンス VPN-Aを設定します。
[edit]
routing-instances {
VPN-A {
routing-options {
auto-export {
family inet {
unicast {
rib-group inet-access;
}
}
}
}
}
}
ルーティング インスタンス VPN-ABを設定します。
[edit]
routing-instances {
VPN-AB {
routing-options {
auto-export {
family inet {
unicast {
rib-group inet-access;
}
}
}
}
}
}
この設定でのルーティング テーブル グループは、Junos OS での一般的な使用方法とは異なり使用されます。 ルーティングテーブルグループでは、通常、エクスポートするルーティングテーブルが、ルーティングテーブルグループ内のプライマリインポートルーティングテーブルとして参照される必要があります。この設定では、制限は適用されません。ルーティングテーブルグループは、ルートのエクスポート先のテーブルの追加リストとして機能します。
すべての VRF インスタンスの自動ルート エクスポートの設定
以下の設定では、設定グループ内のすべてのルーティングインスタンスに auto-export ステートメントを設定することができます。
[edit]
groups {
vrf-export-on {
routing-instances {
<*> {
routing-options {
auto-export;
}
}
}
}
}
apply-groups vrf-export-on;