Layer 2-VPN-Konfigurationsbeispiel
In den folgenden Abschnitten wird erläutert, wie Sie die Layer-2-VPN-Funktionalität auf den Provider Edge (PE)-Routern konfigurieren, die an jedem Standort angeschlossen sind:
Einfache Übersicht über Full-Mesh Layer 2 VPN
In den folgenden Abschnitten konfigurieren Sie ein einfaches Full-Mesh-Layer-2-VPN, das drei Standorte umfasst: Sunnyvale, Austin und Portland. Jeder Standort verbindet sich mit einem PE-Router. Die Customer Edge (CE)-Router an jedem Standort verwenden Frame Relay, um Layer-2-Datenverkehr zu den PE-Routern zu leiten. Da in diesem Beispiel eine Full-Mesh-Topologie zwischen allen drei Standorten verwendet wird, erfordert jeder Standort zwei logische Schnittstellen (eine für jeden der anderen CE-Router), obwohl nur eine physische Verbindung benötigt wird, um jeden PE-Router mit jedem CE-Router zu verbinden. Abbildung 1 veranschaulicht die Topologie dieses Layer-2-VPN.
Aktivieren einer IGP auf den PE-Routern
Damit die PE-Router Routing-Informationen untereinander austauschen können, müssen Sie ein Interior Gateway Protocol (IGP) oder statische Routen auf diesen Routern konfigurieren. Sie konfigurieren die IGP auf der primären Instanz des Routingprotokollprozesses (rpd) (d. h. auf [edit protocols] Hierarchieebene), nicht innerhalb der Layer-2-VPN-Routinginstanz (d. h. nicht auf Hierarchieebene [edit routing-instances] ). Aktivieren Sie Traffic Engineering für die IGP.
Sie konfigurieren die IGP standardmäßig. Dieses Beispiel umfasst diesen Teil der Konfiguration nicht.
Konfiguration von MPLS LSP-Tunneln zwischen PE-Routern
In diesem Konfigurationsbeispiel wird RSVP für MPLS-Signalübertragung verwendet. Daher müssen Sie nicht nur rsVP konfigurieren, sie müssen einen MPLS Label-Switched Path (LSP) zum Tunneln des VPN-Datenverkehrs erstellen.
Aktivieren Sie auf Router A RSVP und konfigurieren Sie ein Ende des MPLS LSP-Tunnels zu Router B. Schließen Sie bei der Konfiguration des MPLS-LSP alle Schnittstellen mit der interface all Anweisung ein.
[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;
}
}
}
Aktivieren Sie auf Router B RSVP und konfigurieren Sie das andere Ende des MPLS LSP-Tunnels. Konfigurieren Sie die Schnittstellen mithilfe der interface all Anweisung.
[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;
}
}
}
Aktivieren Sie auf Router C RSVP und konfigurieren Sie das andere Ende des MPLS LSP-Tunnels. Konfigurieren Sie alle Schnittstellen mithilfe der interface all Anweisung.
[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;
}
}
}
Konfiguration von IBGP auf den PE-Routern
Konfigurieren Sie auf den PE-Routern eine IBGP-Sitzung mit den folgenden Parametern:
Layer 2-VPN: Geben Sie die Anweisung an,
family l2vpnum anzugeben, dass die IBGP-Sitzung für ein Layer-2-VPN ist.Lokale Adresse: Die IP-Adresse in der
local-addressAnweisung ist identisch mit der Adresse, die in dertoAnweisung auf Hierarchieebene auf dem[edit protocols mpls label-switched-path lsp-path-name]entfernten PE-Router konfiguriert wurde. Die IBGP-Sitzung für Layer-2-VPNs läuft über diese Adresse.Nachbarnadresse: Geben Sie die
neighborAnweisung ein und geben Sie die IP-Adresse des benachbarten PE-Routers an.
Konfigurieren Sie auf Router 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;
}
}
}
}
}
Konfigurieren Sie auf Router 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;
}
}
}
}
}
Konfigurieren Sie auf Router 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;
}
}
}
}
}
Konfigurieren von Routing-Instanzen für Layer-2-VPNs auf den PE-Routern
Die drei PE-Router bedienen das Layer-2-VPN, sodass Sie auf jedem Router eine Routing-Instanz konfigurieren müssen. Für das VPN müssen Sie in jeder Routing-Instanz Folgendes definieren:
Routenscheider, der für jede Routing-Instanz auf dem PE-Router eindeutig sein muss. Es wird verwendet, um die Adressen in einem VPN von denen in einem anderen VPN zu unterscheiden.
Instanztyp von
l2vpn, der den Router so konfiguriert, dass ein Layer-2-VPN ausgeführt wird.Schnittstellen, die mit den CE-Routern verbunden sind.
Import- und Exportrichtlinien für virtuelles Routing und Weiterleitung (VRF), die auf jedem PE-Router, der dasselbe VPN bedient, identisch sein müssen und zur Steuerung der Netzwerktopologie verwendet werden. Sofern die Importrichtlinie nicht nur eine
then rejectErklärung enthält, muss sie einen Verweis auf eine Community enthalten. Andernfalls schlägt der Commit-Vorgang fehl, wenn Sie versuchen, die Konfiguration zu bestätigen.
Konfigurieren Sie auf Router A die folgende Routing-Instanz für Layer-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;
}
}
}
}
}
}
Konfigurieren Sie auf Router B die folgende Routing-Instanz für layer 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;
}
}
}
}
}
}
Konfigurieren Sie auf Router C die folgende Routing-Instanz für layer 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;
}
}
}
}
}
}
Konfigurieren der CCC-Kapselung auf den Schnittstellen
Sie müssen einen Circuit Cross-Connect (CCC)-Kapselungstyp für jede PE-Router-to-CE-Router-Schnittstelle angeben, die im Layer-2-VPN ausgeführt wird. Dieser Kapselungstyp sollte dem in der Routing-Instanz konfigurierten Kapselungstyp entsprechen.
Konfigurieren Sie die folgenden CCC-Kapselungstypen für die Schnittstellen auf Router A:
[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;
}
}
Konfigurieren Sie die folgenden CCC-Kapselungstypen für die Schnittstellen auf Router B:
[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;
}
}
Konfigurieren Sie die folgenden CCC-Kapselungstypen für die Schnittstellen auf Router C:
[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;
}
}
Konfigurieren der VPN-Richtlinie auf den PE-Routern
Sie müssen die VPN-Import- und Exportrichtlinien auf jedem der PE-Router so konfigurieren, dass sie die entsprechenden Routen in ihren VRF-Tabellen installieren, die die Router verwenden, um Pakete innerhalb des VPN weiterzuleiten.
Verwenden Sie die community add community-name Anweisung auf Hierarchieebene [edit policy-options policy-statement policy-statement-name term term-name then] , um Layer-2-VPN-VRF-Exportrichtlinien zu vereinfachen.
Konfigurieren Sie auf Router A die folgenden VPN-Import- und Exportrichtlinien:
[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;
}
Konfigurieren Sie auf Router B die folgenden VPN-Import- und Exportrichtlinien:
[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;
}
Konfigurieren Sie auf Router C die folgenden VPN-Import- und Exportrichtlinien:
[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;
}
Um die VPN-Richtlinien auf den Routern anzuwenden, fügen Sie diese vrf-export und vrf-import Anweisungen bei der Konfiguration der Routing-Instanz ein. Die VRF-Import- und Exportrichtlinien übernehmen die Routenverteilung über die IBGP-Sitzung, die zwischen den PE-Routern ausgeführt wird.
Fügen Sie die folgenden Anweisungen bei, um die VPN-Richtlinien auf Router A anzuwenden:
[edit]
routing-instances {
VPN-Sunnyvale-Portland-Austin {
vrf-import vpn-SPA-import;
vrf-export vpn-SPA-export;
}
}
Um die VPN-Richtlinien auf Router B anzuwenden, fügen Sie die folgenden Anweisungen ein:
[edit]
routing-instances {
VPN-Sunnyvale-Portland-Austin {
vrf-import vpn-SPA-import;
vrf-export vpn-SPA-export;
}
}
Um die VPN-Richtlinien auf Router C anzuwenden, fügen Sie die folgenden Anweisungen ein:
[edit]
routing-instances {
VPN-Sunnyvale-Portland-Austin {
vrf-import vpn-SPA-import;
vrf-export vpn-SPA-export;
}
}
Layer 2 VPN-Konfiguration nach Router zusammengefasst
Eine Zusammenfassung der Konfiguration auf den einzelnen Routern in den Beispielen dieses Kapitels finden Sie in den folgenden Abschnitten:
- Zusammenfassung für Router A (PE-Router für Sunnyvale)
- Zusammenfassung für Router B (PE-Router für Austin)
- Zusammenfassung für Router C (PE-Router für Portland)
Zusammenfassung für Router A (PE-Router für Sunnyvale)
Routing-Instanz für Layer 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;
}
}
}
}
}
}
Konfigurieren von CCC-Kapselungstypen für Schnittstellen
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;
}
}
}
Primäre Protokollinstanz
protocols {
}
RsVP aktivieren
rsvp {
interface all;
}
Konfigurieren von MPLS-LSPs
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 konfigurieren
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;
}
}
}
}
Konfigurieren der VPN-Richtlinie
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;
}
Zusammenfassung für Router B (PE-Router für Austin)
Routing-Instanz für 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;
}
}
Konfigurieren von Layer 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;
}
}
}
}
Konfigurieren von CCC-Kapselungstypen für Schnittstellen
[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;
}
}
}
Primäre Protokollinstanz
protocols {
}
RsVP aktivieren
rsvp {
interface all;
}
Konfigurieren von MPLS-LSPs
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 konfigurieren
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;
}
}
}
}
Konfigurieren der VPN-Richtlinie
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;
}
Zusammenfassung für Router C (PE-Router für Portland)
Routing-Instanz für 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;
}
}
Konfigurieren von Layer 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;
}
}
}
}
Konfigurieren von CCC-Kapselungstypen für Schnittstellen
[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;
}
}
}
Primäre Protokollinstanz
protocols {
}
RsVP aktivieren
rsvp {
interface all;
}
Konfigurieren von MPLS-LSPs
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 konfigurieren
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;
}
}
}
}
Konfigurieren der VPN-Richtlinie
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;
}