レイヤー 2 VPN の設定例
以下のセクションでは、各サイトに接続された PE(プロバイダ エッジ)ルーター上でレイヤー 2 VPN 機能を設定する方法について説明します。
シンプルなフルメッシュ レイヤー 2 VPN の概要
このセクションでは、サニーベール、オースティン、ポートランドの 3 つのサイトにまたがるシンプルなフルメッシュ レイヤー 2 VPN を構成します。各サイトは PE ルーターに接続します。各サイトのカスタマーエッジ(CE)ルーターは、フレームリレーを使用してレイヤー2トラフィックをPEルーターに伝送します。この例では、3 つのサイトすべて間でフルメッシュ トポロジーを使用しているため、各サイトには 2 つの論理インターフェイス(他の CE ルーターごとに 1 つずつ)が必要ですが、各 PE ルーターを各 CE ルーターに接続するのに必要な物理リンクは 1 つだけです。 図 1 は、このレイヤー 2 VPN のトポロジーを示しています。
の例
PE ルーターでの IGP の有効化
PE ルーター間でルーティング情報を交換できるようにするには、これらのルーターで IGP(内部ゲートウェイ プロトコル)またはスタティック ルートを設定する必要があります。ルーティングプロトコルプロセス(rpd)のプライマリインスタンス(つまり、 階層レベル)では [edit protocols] 、レイヤー2 VPNルーティングインスタンス内ではなく(つまり、 階層レベルで)IGPを [edit routing-instances] 設定します。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 セッションを設定します。
レイヤー2 VPN—IBGPセッションがレイヤー2 VPN用であることを示すために、 ステートメントを
family l2vpn含めます。ローカルアドレス—ステートメント内の
local-addressIPアドレスは、リモートPEルーターの 階層レベルの ステートメントでto[edit protocols mpls label-switched-path lsp-path-name]設定されたアドレスと同じです。レイヤー 2 VPN の IBGP セッションは、このアドレスを通して実行されます。ネイバーアドレス—隣接する
neighborPEルーターのIPアドレスを指定する ステートメントを含めます。
ルーター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のアドレスを区別するために使用されます。
の
l2vpnインスタンスタイプは、レイヤー2 VPNを実行するようにルーターを設定します。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-router-to-CE-routerインターフェイスに、回線クロスコネクト(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 テーブルに適切なルートをインストールする必要があります。
community add community-name階層レベルで ステートメントを[edit policy-options policy-statement policy-statement-name term term-name then]使用して、レイヤー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 の概要(Sunnyvale の 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;
}
}
レイヤー 2 VPN の設定
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;
}
}
レイヤー 2 VPN の設定
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;
}