レイヤー 2 VPN の設定例
以下のセクションでは、各サイトに接続されたプロバイダーエッジ(PE)ルーターでレイヤー2 VPN機能を設定する方法について説明します。
シンプルなフルメッシュレイヤー2VPN の概要
以下のセクションでは、サニーベール、オースティン、ポートランドの 3 つのサイトにまたがるシンプルなフルメッシュ レイヤー 2 VPN を構成します。各サイトは PE ルーターに接続します。各サイトのカスタマー エッジ(CE)ルーターは、フレーム リレーを使用してレイヤー 2 トラフィックを PE ルーターに伝送 します。この例では、3 つのサイトすべてでフルメッシュ トポロジーを使用しているため、各サイトには 2 つの論理インターフェイス(他の CE ルーターごとに 1 つ)が必要ですが、各 PE ルーターを各 CE ルーターに接続するために必要な物理リンクは 1 つだけです。 図 1 は、このレイヤー 2 VPN のトポロジーを示しています。

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セッションを設定します。
レイヤー 2 VPN—IBGP セッションがレイヤー 2 VPN 用であることを示すには、
family l2vpn
ステートメントを含めます。ローカル アドレス—
local-address
ステートメントの IP アドレスは、リモート PE ルーターの[edit protocols mpls label-switched-path lsp-path-name]
階層レベルでto
ステートメントで設定されたアドレスと同じです。レイヤー2VPN の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ルーター/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 テーブルにインストールする必要があります。
レイヤー2 VPN VRFエクスポートポリシーを促進するには、[edit policy-options policy-statement policy-statement-name term term-name then]
階層レベルでcommunity add community-name
ステートメントを使用します。
ルーター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; } }
レイヤー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; }