レイヤー 2 VPN の設定例
次のセクションでは、各サイトに接続されたプロバイダエッジ(PE)ルーターでレイヤー2 VPN機能を設定する方法について説明します。
シンプルなフルメッシュレイヤー2VPNの概要
次のセクションでは、サニーベール、オースティン、ポートランドの3つのサイトにまたがるシンプルなフルメッシュレイヤー2VPNを設定します。各サイトはPEルーターに接続します。各サイトのカスタマーエッジ(CE)ルーターは、フレームリレーを使用してレイヤー2トラフィックをPEルーターに伝送します。この例では、3つのサイト間でフルメッシュトポロジーを使用しているため、各サイトには2つの論理インターフェイス(他のCEルーターそれぞれに1つずつ)が必要ですが、各PEルーターを各CEルーターに接続するために必要な物理リンクは1つだけです。 図1 は、このレイヤー2VPNのトポロジーを示しています。
例
PEルーターでのIGPの有効化
PEルーター間でルーティング情報を交換できるようにするには、これらのルーターに内部ゲートウェイプロトコル(IGP)または静的ルートを設定する必要があります。IGP設定は、レイヤー2 VPNルーティングインスタンス(つまり、[edit routing-instances]階層レベルではない)ではなく、ルーティングプロトコルプロセス(rpd)のプライマリインスタンス(つまり、[edit protocols]階層レベル)で設定します。IGPのトラフィック制御をオンにします。
IGPは、標準的な方法で設定します。この例には、この設定は含まれていません。
PE ルーター間の MPLS LSP トンネルの設定
この設定例では、MPLS シグナリングに RSVP が使用されています。そのため、RSVPの設定に加えて、VPNトラフィックをトンネル化するためのMPLSラベルスイッチパス(LSP)を作成する必要があります。
ルーターAでRSVPを有効にし、ルーターBへのMPLS LSPトンネルの一端を設定します。MPLS LSPを設定するときは、 interface all ステートメントを使用してすべてのインターフェイスを含めます。
[edit]
protocols {
rsvp {
interface all;
}
mpls {
interface all;
label-switched-path RouterA-to-RouterB {
to 192.168.37.5;
primary Path-to-RouterB;
}
label-switched-path RouterA-to-RouterC {
to 192.168.37.10;
primary Path-to-RouterC;
}
}
}
ルーターBで、RSVPを有効にし、MPLS LSPトンネルのもう一方の端を設定します。ここでも、 interface all ステートメントを使用してインターフェイスを設定します。
[edit]
protocols {
rsvp {
interface all;
}
mpls {
interface all;
label-switched-path RouterB-to-RouterA {
to 192.168.37.1;
primary Path-to-RouterA;
}
label-switched-path RouterB-to-RouterC {
to 192.168.37.10;
primary Path-to-RouterC;
}
}
}
ルーター C で、RSVP を有効にし、MPLS LSP トンネルのもう一方の端を設定します。ここでも、 interface all ステートメントを使用してすべてのインターフェイスを設定します。
[edit]
protocols {
rsvp {
interface all;
}
mpls {
interface all;
label-switched-path RouterC-to-RouterA {
to 192.168.37.1;
primary Path-to-RouterA;
}
label-switched-path RouterC-to-RouterB {
to 192.168.37.5;
primary Path-to-RouterB;
}
}
}
PE ルーターでの IBGP の設定
PE ルーターで、以下のパラメーターで IBGP セッションを設定します。
-
レイヤー2VPN—IBGPセッションがレイヤー2 VPN用であることを示すには、
family l2vpnステートメントを含めます。 -
ローカルアドレス—
local-addressステートメントのIPアドレスは、リモートPEルーターの[edit protocols mpls label-switched-path lsp-path-name]階層レベルでtoステートメントで設定したアドレスと同じです。レイヤー2 VPNのIBGPセッションは、このアドレスを介して実行されます。 -
ネイバーアドレス—隣接するPEルーターのIPアドレスを指定する
neighborステートメントを含めます。
ルーターAで、IBGPを設定します。
[edit]
protocols {
bgp {
import match-all;
export match-all;
group pe-pe {
type internal;
neighbor 192.168.37.5 {
local-address 192.168.37.1;
family l2vpn {
signaling;
}
}
neighbor 192.168.37.10 {
local-address 192.168.37.1;
family l2vpn {
signaling;
}
}
}
}
}
ルーターBで、IBGPを設定します。
[edit]
protocols {
bgp {
local-address 192.168.37.5;
import match-all;
export match-all;
group pe-pe {
type internal;
neighbor 192.168.37.1 {
local-address 192.168.37.5;
family l2vpn {
signaling;
}
}
neighbor 192.168.37.10 {
local-address 192.168.37.5;
family l2vpn {
signaling;
}
}
}
}
}
ルーターCで、IBGPを設定します。
[edit]
protocols {
bgp {
local-address 192.168.37.10;
import match-all;
export match-all;
group pe-pe {
type internal;
neighbor 192.168.37.1 {
local-address 192.168.37.10;
family l2vpn {
signaling;
}
}
neighbor 192.168.37.5 {
local-address 192.168.37.10;
family l2vpn {
signaling;
}
}
}
}
}
PE ルーター上のレイヤー 2 VPN のルーティング インスタンスの設定
3台のPEルーターはレイヤー2 VPNにサービスを提供するため、各ルーターにルーティングインスタンスを設定する必要があります。VPN では、各ルーティングインスタンスで以下を定義する必要があります。
-
ルート識別子は、PE ルーター上の各ルーティング インスタンスに対して固有でなければなりません。これは、あるVPNのアドレスを別のVPNのアドレスと区別するために使用されます。
-
レイヤー2 VPNを実行するようにルーターを設定する
l2vpnのインスタンスタイプ。 -
CEルーターに接続されたインターフェイス。
-
仮想ルーティングおよび転送(VRF)インポートおよびエクスポートポリシーは、同じVPNにサービスを提供し、ネットワークトポロジーの制御に使用される各PEルーターで同じである必要があります。インポートポリシーに
then rejectステートメントのみが含まれていない限り、コミュニティへの参照を含める必要があります。それ以外の場合、設定をコミットしようとすると、コミット操作は失敗します。
ルーターAでは、レイヤー2 VPN用に以下のルーティングインスタンスを設定します。
[edit]
routing-instances {
VPN-Sunnyvale-Portland-Austin {
instance-type l2vpn;
interface so-6/0/0.0;
interface so-6/0/0.1;
route-distinguisher 100:1;
vrf-import vpn-SPA-import;
vrf-export vpn-SPA-export;
protocols {
l2vpn {
encapsulation-type frame-relay;
site Sunnyvale {
site-identifier 1;
interface so-6/0/0.0 {
remote-site-id 2;
}
interface so-6/0/0.1 {
remote-site-id 3;
}
}
}
}
}
}
ルーターBでは、レイヤー2 VPN用に以下のルーティングインスタンスを設定します。
[edit]
routing-instances {
VPN-Sunnyvale-Portland-Austin {
instance-type l2vpn;
interface so-6/0/0.2;
interface so-6/0/0.3;
route-distinguisher 100:1;
vrf-import vpn-SPA-import;
vrf-export vpn-SPA-export;
protocols {
l2vpn {
encapsulation-type frame-relay;
site Austin {
site-identifier 2;
interface so-6/0/0.2 {
remote-site-id 1;
}
interface so-6/0/0.3 {
remote-site-id 3;
}
}
}
}
}
}
ルーターCで、レイヤー2 VPN用に以下のルーティングインスタンスを設定します。
[edit]
routing-instances {
VPN-Sunnyvale-Portland-Austin {
instance-type l2vpn;
interface so-6/0/0.4;
interface so-6/0/0.5;
route-distinguisher 100:1;
vrf-import vpn-SPA-import;
vrf-export vpn-SPA-export;
protocols {
l2vpn {
encapsulation-type frame-relay;
site Portland {
site-identifier 3;
interface so-6/0/0.4 {
remote-site-id 1;
}
interface so-6/0/0.5 {
remote-site-id 2;
}
}
}
}
}
}
インターフェイスでの CCC カプセル化の設定
レイヤー2 VPNで動作する各PEルーター-to-CEルーターインターフェイスに、回線クロスコネクト(CCC)カプセル化タイプを指定する必要があります。このカプセル化タイプは、ルーティングインスタンスで設定されたカプセル化タイプと一致する必要があります。
ルーターAのインターフェイスに、以下のCCCカプセル化タイプを設定します。
[edit]
interfaces so-6/0/0 {
encapsulation frame-relay-ccc;
unit 0 {
encapsulation frame-relay-ccc;
}
}
interfaces so-6/0/0 {
encapsulation frame-relay-ccc;
unit 1 {
encapsulation frame-relay-ccc;
}
}
ルーターBのインターフェイスに以下のCCCカプセル化タイプを設定します。
[edit]
interfaces so-6/0/0 {
encapsulation frame-relay-ccc;
unit 2 {
encapsulation frame-relay-ccc;
}
}
interfaces so-6/0/0 {
encapsulation frame-relay-ccc;
unit 3 {
encapsulation frame-relay-ccc;
}
}
ルーターCのインターフェイスに以下のCCCカプセル化タイプを設定します。
[edit]
interface so-6/0/0 {
encapsulation frame-relay-ccc;
unit 4 {
encapsulation frame-relay-ccc;
}
}
interface so-6/0/0 {
encapsulation frame-relay-ccc;
unit 5 {
encapsulation frame-relay-ccc;
}
}
PE ルーターでの VPN ポリシーの設定
各PEルーターでVPNインポートおよびエクスポートポリシーを設定して、ルーターがVPN内でパケットを転送するために使用するVRFテーブルに適切なルートをインストールするようにする必要があります。
[edit policy-options policy-statement policy-statement-name term term-name then]階層レベルでcommunity add community-name ステートメントを使用して、レイヤー2 VPN VRFエクスポートポリシーを容易にします。
ルーターAで、以下のVPNインポートおよびエクスポートポリシーを設定します。
[edit]
policy-options {
policy-statement match-all {
term acceptable {
then accept;
}
}
policy-statement vpn-SPA-export {
term a {
then {
community add SPA-com;
accept;
}
}
term b {
then reject;
}
}
policy-statement vpn-SPA-import {
term a {
from {
protocol bgp;
community SPA-com;
}
then accept;
}
term b {
then reject;
}
}
community SPA-com members target:69:100;
}
ルーターBで、以下のVPNインポートおよびエクスポートポリシーを設定します。
[edit]
policy-options {
policy-statement match-all {
term acceptable {
then accept;
}
}
policy-statement vpn-SPA-import {
term a {
from {
protocol bgp;
community SPA-com;
}
then accept;
}
term b {
then reject;
}
}
policy-statement vpn-SPA-export {
term a {
then {
community add SPA-com;
accept;
}
}
term b {
then reject;
}
}
community SPA-com members target:69:100;
}
ルーターCで、以下のVPNインポートおよびエクスポートポリシーを設定します。
[edit]
policy-options {
policy-statement match-all {
term acceptable {
then accept;
}
}
policy-statement vpn-SPA-import {
term a {
from {
protocol bgp;
community SPA-com;
}
then accept;
}
term b {
then reject;
}
}
policy-statement vpn-SPA-export {
term a {
then {
community add SPA-com;
accept;
}
}
term b {
then reject;
}
}
community SPA-com members target:69:100;
}
ルーターにVPNポリシーを適用するには、ルーティングインスタンスの設定時に vrf-export および vrf-import ステートメントを含めます。VRF インポートおよびエクスポート ポリシーは、PE ルーター間で実行される IBGP セッション全体のルート配布を処理します。
ルーターAにVPNポリシーを適用するには、以下のステートメントを含めます。
[edit]
routing-instances {
VPN-Sunnyvale-Portland-Austin {
vrf-import vpn-SPA-import;
vrf-export vpn-SPA-export;
}
}
ルーターBにVPNポリシーを適用するには、以下のステートメントを含めます。
[edit]
routing-instances {
VPN-Sunnyvale-Portland-Austin {
vrf-import vpn-SPA-import;
vrf-export vpn-SPA-export;
}
}
ルーター C に VPN ポリシーを適用するには、以下のステートメントを含めます。
[edit]
routing-instances {
VPN-Sunnyvale-Portland-Austin {
vrf-import vpn-SPA-import;
vrf-export vpn-SPA-export;
}
}
ルーター別レイヤー2 VPN設定の概要
この章の例における各ルーターの設定の概要については、次のセクションを参照してください。
ルーターA(サニーベール用PEルーター)の概要
レイヤー2 VPNのルーティングインスタンス
[edit]
routing-instances {
VPN-Sunnyvale-Portland-Austin {
instance-type l2vpn;
interface so-6/0/0.0;
interface so-6/0/0.1;
route-distinguisher 100:1;
vrf-import vpn-SPA-import;
vrf-export vpn-SPA-export;
protocols {
l2vpn {
encapsulation-type frame-relay;
site Sunnyvale {
site-identifier 1;
interface so-6/0/0.0 {
remote-site-id 2;
}
interface so-6/0/0.1 {
remote-site-id 3;
}
}
}
}
}
}
インターフェイスのCCCカプセル化タイプの設定
interfaces {
interface so-6/0/0 {
encapsulation frame-relay-ccc;
unit 0 {
encapsulation frame-relay-ccc;
}
}
interface so-6/0/0 {
encapsulation frame-relay-ccc;
unit 1 {
encapsulation frame-relay-ccc;
}
}
}
プライマリプロトコルインスタンス
protocols {
}
RSVPを有効にする
rsvp {
interface all;
}
MPLS LSP の設定
mpls {
label-switched-path RouterA-to-RouterB {
to 192.168.37.5;
primary Path-to-RouterB {
cspf;
}
}
label-switched-path RouterA-to-RouterC {
to 192.168.37.10;
primary Path-to-RouterC {
cspf;
}
}
interface all;
}
IBGPを設定する
bgp {
import match-all;
export match-all;
group pe-pe {
type internal;
neighbor 192.168.37.5 {
local-address 192.168.37.1;
family l2vpn {
signaling;
}
}
neighbor 192.168.37.10 {
local-address 192.168.37.1;
family l2vpn {
signaling;
}
}
}
}
VPNポリシーの設定
policy-options {
policy-statement match-all {
term acceptable {
then accept;
}
}
policy-statement vpn-SPA-export {
term a {
then {
community add SPA-com;
accept;
}
}
term b {
then reject;
}
}
policy-statement vpn-SPA-import {
term a {
from {
protocol bgp;
community SPA-com;
}
then accept;
}
term b {
then reject;
}
}
community SPA-com members target:69:100;
}
ルーターB(オースティン用PEルーター)の概要
VPN用ルーティングインスタンス
[edit]
routing-instances {
VPN-Sunnyvale-Portland-Austin {
instance-type l2vpn;
interface so-6/0/0.2;
interface so-6/0/0.3;
route-distinguisher 100:1;
vrf-import vpn-SPA-import;
vrf-export vpn-SPA-export;
}
}
レイヤー2VPNの設定
protocols {
l2vpn {
encapsulation-type frame-relay;
site Austin {
site-identifier 2;
interface so-6/0/0.2 {
remote-site-id 1;
}
interface so-6/0/0.3 {
remote-site-id 3;
}
}
}
}
インターフェイスのCCCカプセル化タイプの設定
[edit]
interfaces {
interface so-6/0/0 {
encapsulation frame-relay-ccc;
unit 2 {
encapsulation frame-relay-ccc;
}
}
interface so-6/0/0 {
encapsulation frame-relay-ccc;
unit 3 {
encapsulation frame-relay-ccc;
}
}
}
プライマリプロトコルインスタンス
protocols {
}
RSVPを有効にする
rsvp {
interface all;
}
MPLS LSP の設定
mpls {
label-switched-path RouterB-to-RouterA {
to 192.168.37.1;
primary Path-to-RouterA {
cspf;
}
}
label-switched-path RouterB-to-RouterC {
to 192.168.37.10;
primary Path-to-RouterC {
cspf;
}
}
interface all;
}
IBGPを設定する
bgp {
local-address 192.168.37.5;
import match-all;
export match-all;
group pe-pe {
type internal;
neighbor 192.168.37.1 {
local-address 192.168.37.5;
family l2vpn {
signaling;
}
}
neighbor 192.168.37.10 {
local-address 192.168.37.5;
family l2vpn {
signaling;
}
}
}
}
VPNポリシーの設定
policy-options {
policy-statement match-all {
term acceptable {
then accept;
}
}
policy-statement vpn-SPA-import {
term a {
from {
protocol bgp;
community SPA-com;
}
then accept;
}
term b {
then reject;
}
}
policy-statement vpn-SPA-export {
term a {
then {
community add SPA-com;
accept;
}
}
term b {
then reject;
}
}
community SPA-com members target:69:100;
}
ルーターC(ポートランド用PEルーター)の概要
VPN用ルーティングインスタンス
[edit]
routing-instances {
VPN-Sunnyvale-Portland-Austin {
instance-type l2vpn;
interface so-6/0/0.3;
interface so-6/0/0.4;
route-distinguisher 100:1;
vrf-import vpn-SPA-import;
vrf-export vpn-SPA-export;
}
}
レイヤー2VPNの設定
protocols {
l2vpn {
encapsulation-type frame-relay;
site Portland {
site-identifier 3;
interface so-6/0/0.4 {
remote-site-id 1;
}
interface so-6/0/0.5 {
remote-site-id 2;
}
}
}
}
インターフェイスのCCCカプセル化タイプの設定
[edit]
interfaces {
interface so-6/0/0 {
encapsulation frame-relay-ccc;
unit 4 {
encapsulation frame-relay-ccc;
}
}
interface so-6/0/0 {
encapsulation frame-relay-ccc;
unit 5 {
encapsulation frame-relay-ccc;
}
}
}
プライマリプロトコルインスタンス
protocols {
}
RSVPを有効にする
rsvp {
interface all;
}
MPLS LSP の設定
mpls {
label-switched-path RouterC-to-RouterA {
to 192.168.37.1;
primary Path-to-RouterA {
cspf;
}
}
label-switched-path RouterC-to-RouterB {
to 192.168.37.5;
primary Path-to-RouterB {
cspf;
}
}
interface all;
}
IBGPを設定する
bgp {
local-address 192.168.37.10;
import match-all;
export match-all;
group pe-pe {
type internal;
neighbor 192.168.37.1 {
local-address 192.168.37.10;
family l2vpn {
signaling;
}
}
neighbor 192.168.37.5 {
local-address 192.168.37.10;
family l2vpn {
signaling;
}
}
}
}
VPNポリシーの設定
policy-options {
policy-statement match-all {
term acceptable {
then accept;
}
}
policy-statement vpn-SPA-import {
term a {
from {
protocol bgp;
community SPA-com;
}
then accept;
}
term b {
then reject;
}
}
policy-statement vpn-SPA-export {
term a {
then {
community add SPA-com;
accept;
}
}
term b {
then reject;
}
}
community SPA-com members target:69:100;
}