フルメッシュ VPN
シンプルなフルメッシュVPNトポロジーの設定
この例では、以下のコンポーネントで構成されるシンプルなフルメッシュ サービス プロバイダ vpn を設定する方法を示します( 図 1 を参照)。
2つの独立したVPN(VPN-AとVPN-B)
2 台の PE(プロバイダ エッジ)ルーター。どちらも VPN-A と VPN-B にサービスを提供
シグナリング プロトコルとしての RSVP
1 つのプロバイダー(P)ルーターを介して 2 つの PE ルーター間をトンネリングする 1 つの RSVP LSP(ラベルスイッチ パス)
の例
この設定では、ルーター VPN-A-Paris からルーター VPN-A-Tokyo への VPN A のルート分配は次のように行われます。
カスタマーエッジ(CE)ルーターVPN-A-Parisは、PEルータールーターAへのルートをアナウンスします。
ルーターAは、受信したアナウンスされたルートをVPNルーティングおよび転送(VRF)テーブルVPN-A.inet.0にインストールします。
ルーターAは、ルーターAとルーターVPN-A-Paris間のインターフェイス用のMPLSラベルを作成します。
ルーター A は、VRF エクスポート ポリシーを確認します。
ルーター A は、ルート識別子を使用して、ルーター VPN-A-Paris からの Internet Protocol version 4(IPv4)ルートを VPN IPv4 形式に変換し、これらのルートを 2 つの PE ルーター間の IBGP 上で PE ルーター C にアナウンスします。
ルーター C は、VRF インポート ポリシーを確認し、ポリシーに一致するすべてのルートを bgp.l3vpn.0 ルーティングテーブルにインストールします。(一致しないルートは破棄されます。
ルーター C は、VRF インポート ポリシーを確認し、一致するすべてのルートを VPN-A.inet.0 ルーティングテーブルにインストールします。ルートはIPv4形式でインストールされます。
ルーター C は、CE ルーター VPN-A-Tokyo にルートを通知し、プライマリ ルーティングテーブルにインストールします。(Junos OS を実行するルーティング プラットフォームでは、プライマリ ルーティングテーブルは inet.0 です)。
ルーター C は、ルーター C とルーター A 間の LSP を使用して、ルーター VPN-A-Tokyo からルーター VPN-A-Paris 宛てのすべてのパケットをルーティングします。
この例の最後のセクションでは、 図 1 に示す各サービス P ルーターで VPN 機能を設定するために必要なステートメントを統合します。
この例では、ルート識別子とルートターゲットにプライベート自律システム(AS)番号が使用されています。この番号は、説明のためにのみ使用されます。VPNを設定する場合は、割り当てられたAS番号を使用する必要があります。
以下のセクションでは、PE および P ルーターで VPN 機能を設定する方法について説明します。CEルータにはVPNに関する情報がないため、通常どおり設定します。
- PEおよびPルーターでのIGPの有効化
- P ルーターでの RSVP と MPLS の有効化
- PE ルーター間の MPLS LSP トンネルの設定
- PE ルーターでの IBGP の設定
- PE ルーターでの VPN のルーティング インスタンスの設定
- PE ルーターでの VPN ポリシーの設定
- ルーター別に要約されたシンプルなVPN設定
PEおよびPルーターでのIGPの有効化
PE ルーターと P ルーターが相互にルーティング情報を交換できるようにするには、これらすべてのルーターで IGP(内部ゲートウェイ プロトコル)を設定するか、スタティック ルートを設定する必要があります。IGPは、VPNルーティング インスタンス内(つまり、[edit routing-instances]階層レベルではなく)ではなく、ルーティングプロトコルプロセス(RPD)のプライマリインスタンス(つまり、[edit protocols]階層レベル)で設定します。
IGP は標準的な方法で設定します。この設定例には、設定のこの部分は含まれていません。
P ルーターでの RSVP と MPLS の有効化
Pルーター、ルーターBでは、2つのPEルーター、ルーターAとルーターCの間のMPLS LSPパスに存在するため、RSVPとMPLSを設定する必要があります。
[edit]
protocols {
rsvp {
interface so-4/0/0.0;
interface so-6/0/0.0;
}
mpls {
interface so-4/0/0.0;
interface so-6/0/0.0;
}
}
PE ルーター間の MPLS LSP トンネルの設定
この設定例では、VPNシグナリングにRSVPが使用されています。そのため、RSVP の設定に加えて、IGP でトラフィック制御サポートを有効にし、VPN トラフィックをトンネリングするための MPLS LSP を作成する必要があります。
PE ルーター A で、RSVP を有効にし、MPLS LSP トンネルの一端を設定します。この例では、OSPF のトラフィック制御サポートが有効になっています。MPLS LSP を設定する際、PE および CE ルーターへのインターフェースを含む、MPLS に参加するすべてのインターフェースに interface ステートメントを含めます。PEルーターとCEルーター間のインターフェイスのステートメントは、PEルーターがプライベートインターフェイスのMPLSラベルを作成できるようにするために必要です。この例では、最初の interface ステートメントは LSP に接続されたインターフェイスで MPLS を設定し、残りの 3 つのステートメントは PE ルーターを CE ルーターに接続するインターフェイスで MPLS を設定します。
[edit]
protocols {
rsvp {
interface so-3/0/0.0;
}
mpls {
label-switched-path RouterA-to-RouterC {
to 10.255.245.47;
}
interface so-3/0/0.0;
interface so-6/0/0.0;
interface so-6/0/1.0;
interface ge-0/3/0.0;
}
ospf {
traffic-engineering;
area 0.0.0.0 {
interface so-3/0/0.0;
}
}
}
PE ルーター C で、RSVP を有効にし、MPLS LSP トンネルのもう一方の端を設定します。ここでも、トラフィック制御サポートは OSPF で有効になっており、LSP および CE ルーターへのインターフェイスで MPLS を設定します。
[edit]
protocols {
rsvp {
interface so-2/0/0.0;
}
mpls {
label-switched-path RouterC-to-RouterA {
to 10.255.245.68;
}
interface so-2/0/0.0;
interface ge-1/0/0.0;
interface at-1/2/0.0;
}
ospf {
traffic-engineering;
area 0.0.0.0 {
interface so-2/0/0.0;
}
}
}
PE ルーターでの IBGP の設定
PE ルーターで、以下のプロパティを使用して IBGP セッションを設定します。
VPNファミリー—IBGPセッションがVPN用であることを示すには、
family inet-vpnステートメントを含めます。ループバックアドレス—ローカルPEルーターのループバックアドレスを指定する
local-addressステートメントを含めます。VPN の IBGP セッションは、ループバック アドレスを介して実行されます。また、[edit interfaces]階層レベルでlo0インターフェイスを設定する必要があります。この例では、ルーターの設定のこの部分は含まれていません。ネイバーアドレス—ループバック(
lo0)アドレスであるネイバーPEルーターのIPアドレスを指定するneighborステートメントを含めます。
PEルーターAで、IBGPを設定します。
[edit]
protocols {
bgp {
group PE-RouterA-to-PE-RouterC {
type internal;
local-address 10.255.245.68;
family inet-vpn {
unicast;
}
neighbor 10.255.245.47;
}
}
}
PEルーターCで、IBGPを設定します。
[edit]
protocols {
bgp {
group PE-RouterC-to-PE-RouterA {
type internal;
local-address 10.255.245.47;
family inet-vpn {
unicast;
}
neighbor 10.255.245.68;
}
}
}
PE ルーターでの VPN のルーティング インスタンスの設定
どちらの PE ルーターも VPN-A と VPN-B にサービスを提供するため、各ルーターに 2 つのルーティング インスタンス(VPN ごとに 1 つ)を設定する必要があります。各VPNについて、ルーティング インスタンスで以下を定義する必要があります。
ルート識別子は、PE ルーター上の各ルーティング インスタンスに対して一意である必要があります。
これは、あるVPNのアドレスを別のVPNのアドレスと区別するために使用されます。
PE ルーター上に VRF テーブルを作成する
vrfのインスタンスタイプ。CE ルーターに接続されたインターフェイス。
VRF インポートおよびエクスポート ポリシー。これは、同じ VPN にサービスを提供する各 PE ルーターで同じである必要があります。インポートポリシーには、
then rejectステートメントしか含まれていない限り、コミュニティへの参照を含める必要があります。そうしないと、設定のコミットを試みると、コミットが失敗します。手記:この例では、ルート識別にプライベートAS番号が使用されています。この番号は、説明のためにのみ使用されます。VPNを設定する場合は、割り当てられたAS番号を使用する必要があります。
PE ルーターと CE ルーター間のルーティング。PE ルーターが接続された CE ルーターとの間で VPN 関連のルートを配信するために必要です。ルーティングプロトコル(BGP、OSPF、またはRIP)を設定することも、スタティックルーティングを設定することもできます。
PE ルーター A で、VPN-A に以下のルーティング インスタンスを設定します。この例では、ルーター A はスタティック ルートを使用して、接続先の 2 台の CE ルーターとの間でルートを配信しています。
[edit]
routing-instance {
VPN-A-Paris-Munich {
instance-type vrf;
interface so-6/0/0.0;
interface so-6/0/1.0;
route-distinguisher 65535:0;
vrf-import VPN-A-import;
vrf-export VPN-A-export;
routing-options {
static {
route 172.16.0.0/16 next-hop so-6/0/0.0;
route 172.17.0.0/16 next-hop so-6/0/1.0;
}
}
}
}
PE ルーター C で、VPN-A に以下のルーティング インスタンスを設定します。この例では、ルーターCはBGPを使用して、接続先のCEルーターとの間でルートを配信しています。
[edit]
routing-instance {
VPN-A-Tokyo {
instance-type vrf;
interface ge-1/0/0.0;
route-distinguisher 65535:1;
vrf-import VPN-A-import;
vrf-export VPN-A-export;
protocols {
bgp {
group VPN-A-Site2 {
peer-as 1;
neighbor 10.12.1.2;
}
}
}
}
}
PE ルーター A で、VPN-B に以下のルーティング インスタンスを設定します。この例では、ルーターAはOSPFを使用して、接続先のCEルーターとの間のルートを配信しています。
[edit]
policy-options {
policy-statement bgp-to-ospf {
from {
protocol bgp;
route-filter 192.168.1.0/24 orlonger;
}
then accept;
}
}
routing-instance {
VPN-B-Madrid {
instance-type vrf;
interface ge-0/3/0.0;
route-distinguisher 65535:2;
vrf-import VPN-B-import;
vrf-export VPN-B-export;
protocols {
ospf {
export bgp-to-ospf;
area 0.0.0.0 {
interface ge-0/3/0;
}
}
}
}
}
PE ルーター C で、VPN-B に以下のルーティング インスタンスを設定します。この例では、ルーター C が RIP を使用して、接続先の CE ルーターとの間でルートを配信しています。
[edit]
policy-options {
policy-statement bgp-to-rip {
from {
protocol bgp;
route-filter 192.168.2.0/24 orlonger;
}
then accept;
}
}
routing-instance {
VPN-B-Osaka {
instance-type vrf;
interface at-1/2/0.0;
route-distinguisher 65535:3;
vrf-import VPN-B-import;
vrf-export VPN-B-export;
protocols {
rip {
group PE-C-to-VPN-B {
export bgp-to-rip;
neighbor at-1/2/0;
}
}
}
}
}
PE ルーターでの VPN ポリシーの設定
適切なルートが PE ルーターの VRF テーブルにインストールされるように、各 PE ルーターで VPN インポートおよびエクスポート ポリシーを設定します。VRF テーブルは、VPN 内でパケットを転送するために使用されます。VPN-A の VRF テーブルは VPN-A.inet.0 で、VPN-B の VRF テーブルは VPN-B.inet.0 です。
VPN ポリシーでは、VPN ターゲットコミュニティも設定します。
次の例では、ルートターゲットにプライベートAS番号が使用されています。この番号は、説明のためにのみ使用されます。VPNを設定する場合は、割り当てられたAS番号を使用する必要があります。この例で示すポリシー修飾子は、VPNが機能するために必要なものだけです。必要に応じて、設定した任意のポリシーに対して追加の修飾子を設定できます。
PE ルーター A で、以下の VPN インポートおよびエクスポート ポリシーを設定します。
[edit]
policy-options {
policy-statement VPN-A-import {
term a {
from {
protocol bgp;
community VPN-A;
}
then accept;
}
term b {
then reject;
}
}
policy-statement VPN-A-export {
term a {
from protocol static;
then {
community add VPN-A;
accept;
}
}
term b {
then reject;
}
}
policy-statement VPN-B-import {
term a {
from {
protocol bgp;
community VPN-B;
}
then accept;
}
term b {
then reject;
}
}
policy-statement VPN-B-export {
term a {
from protocol ospf;
then {
community add VPN-B;
accept;
}
}
term b {
then reject;
}
}
community VPN-A members target:65535:4;
community VPN-B members target:65535:5;
}
PE ルーター C では、以下の VPN インポートおよびエクスポート ポリシーを設定します。
[edit]
policy-options {
policy-statement VPN-A-import {
term a {
from {
protocol bgp;
community VPN-A;
}
then accept;
}
term b {
then reject;
}
}
policy-statement VPN-A-export {
term a {
from protocol bgp;
then {
community add VPN-A;
accept;
}
}
term b {
then reject;
}
}
policy-statement VPN-B-import {
term a {
from {
protocol bgp;
community VPN-B;
}
then accept;
}
term b {
then reject;
}
}
policy-statement VPN-B-export {
term a {
from protocol rip;
then {
community add VPN-B;
accept;
}
}
term b {
then reject;
}
}
community VPN-A members target:65535:4;
community VPN-B members target:65535:5;
}
ルーターにVPNポリシーを適用するには、ルーティング インスタンスを設定する際に vrf-export と vrf-import ステートメントを含めます。どちらの VPN でも、VRF インポートおよびエクスポート ポリシーは、PE ルーター間で実行されている IBGP セッション全体のルート配布を処理します。
PE ルーター A に VPN ポリシーを適用するには、以下のステートメントを含めます。
[edit]
routing-instance {
VPN-A-Paris-Munich {
vrf-import VPN-A-import;
vrf-export VPN-A-export;
}
VPN-B-Madrid {
vrf-import VPN-B-import;
vrf-export VPN-B-export;
}
}
PE ルーター C に VPN ポリシーを適用するには、以下のステートメントを含めます。
[edit]
routing-instance {
VPN-A-Tokyo {
vrf-import VPN-A-import;
vrf-export VPN-A-export;
}
VPN-B-Osaka {
vrf-import VPN-B-import;
vrf-export VPN-B-export;
}
}
ルーター別に要約されたシンプルなVPN設定
ルーターA(PEルーター)
VPN-A のルーティング インスタンス
routing-instance {
VPN-A-Paris-Munich {
instance-type vrf;
interface so-6/0/0.0;
interface so-6/0/1.0;
route-distinguisher 65535:0;
vrf-import VPN-A-import;
vrf-export VPN-A-export;
}
}
インスタンス ルーティング プロトコル
routing-options {
static {
route 172.16.0.0/16 next-hop so-6/0/0.0;
route 172.17.0.0/16 next-hop so-6/0/1.0;
}
}
VPN-B のルーティング インスタンス
routing-instance {
VPN-B-Madrid {
instance-type vrf;
interface ge-0/3/0.0;
route-distinguisher 65535:2;
vrf-import VPN-B-import;
vrf-export VPN-B-export;
}
}
インスタンス ルーティング プロトコル
protocols {
ospf {
area 0.0.0.0 {
interface ge-0/3/0;
}
}
}
プライマリ プロトコル インスタンス
protocols {
}
RSVP を有効にする
rsvp {
interface so-3/0/0.0;
}
MPLS LSP を設定します。
mpls {
label-switched-path RouterA-to-RouterC {
to 10.255.245.47;
}
interface so-3/0/0.0;
interface so-6/0/0.0;
interface so-6/0/1.0;
interface ge-0/3/0.0;
}
IBGPを設定します
bgp {
group PE-RouterA-to-PE-RouterC {
type internal;
local-address 10.255.245.68;
family inet-vpn {
unicast;
}
neighbor 10.255.245.47;
}
}
トラフィック制御をサポートするためのOSPFの設定
ospf {
traffic-engineering;
area 0.0.0.0 {
interface so-3/0/0.0;
}
}
VPNポリシーの設定
policy-options {
policy-statement VPN-A-import {
term a {
from {
protocol bgp;
community VPN-A;
}
then accept;
}
term b {
then reject;
}
}
policy-statement VPN-A-export {
term a {
from protocol static;
then {
community add VPN-A;
accept;
}
}
term b {
then reject;
}
}
policy-statement VPN-B-import {
term a {
from {
protocol bgp;
community VPN-B;
}
then accept;
}
term b {
then reject;
}
}
policy-statement VPN-B-export {
term a {
from protocol ospf;
then {
community add VPN-B;
accept;
}
}
term b {
then reject;
}
}
community VPN-A members target:65535:4;
community VPN-B members target:65535:5;
}
ルーターB(Pルーター)
プライマリ プロトコル インスタンス
protocols {
}
RSVP を有効にする
rsvp {
interface so-4/0/0.0;
interface so-6/0/0.0;
}
MPLS の有効化
mpls {
interface so-4/0/0.0;
interface so-6/0/0.0;
}
ルーターC(PEルーター)
VPN-A のルーティング インスタンス
routing-instance {
VPN-A-Tokyo {
instance-type vrf;
interface ge-1/0/0.0;
route-distinguisher 65535:1;
vrf-import VPN-A-import;
vrf-export VPN-A-export;
}
}
インスタンス ルーティング プロトコル
protocols {
bgp {
group VPN-A-Site2 {
peer-as 1;
neighbor 10.12.1.2;
}
}
}
VPN-B のルーティング インスタンス
VPN-B-Osaka {
instance-type vrf;
interface at-1/2/0.0;
route-distinguisher 65535:3;
vrf-import VPN-B-import;
vrf-export VPN-B-export;
}
インスタンス ルーティング プロトコル
protocols {
rip {
group PE-C-to-VPN-B {
neighbor at-1/2/0;
}
}
}
プライマリ プロトコル インスタンス
protocols {
}
RSVP を有効にする
rsvp {
interface so-2/0/0.0;
}
MPLS LSP を設定します。
mpls {
label-switched-path RouterC-to-RouterA {
to 10.255.245.68;
}
interface so-2/0/0.0;
interface ge-1/0/0.0;
interface at-1/2/0.0;
}
IBGPを設定します
bgp {
group PE-RouterC-to-PE-RouterA {
type internal;
local-address 10.255.245.47;
family inet-vpn {
unicast;
}
neighbor 10.255.245.68;
}
}
トラフィック制御をサポートするためのOSPFの設定
ospf {
traffic-engineering;
area 0.0.0.0 {
interface so-2/0/0.0;
}
}
VPNポリシーの設定
policy-options {
policy-statement VPN-A-import {
term a {
from {
protocol bgp;
community VPN-A;
}
then accept;
}
term b {
then reject;
}
}
policy-statement VPN-A-export {
term a {
from protocol bgp;
then {
community add VPN-A;
accept;
}
}
term b {
then reject;
}
}
policy-statement VPN-B-import {
term a {
from {
protocol bgp;
community VPN-B;
}
then accept;
}
term b {
then reject;
}
}
policy-statement VPN-B-export {
term a {
from protocol rip;
then {
community add VPN-B;
accept;
}
}
term b {
then reject;
}
}
community VPN-A members target:65535:4;
community VPN-B members target:65535:5;
}
ルートリフレクタを使用したフルメッシュVPNトポロジーの設定
この例は、PE ルーターの 1 つが BGP ルート リフレクタであるフルメッシュ VPN トポロジーの例( シンプルなフルメッシュ VPN トポロジーの設定を参照)のバリエーションです。このバリエーションでは、 シンプルなフルメッシュVPNトポロジーの設定 のルーターCがルートリフレクタです。設定の唯一の変更点は、BGP グループを設定する際に cluster ステートメントを含める必要があることです。
[edit]
protocols {
bgp {
group PE-RouterC-to-PE-RouterA {
type internal;
local-address 10.255.245.47;
family inet-vpn {
unicast;
}
neighbor 10.255.245.68;
cluster 4.3.2.1;
}
}
}