Exemple de configuration VPN de couche 2
Les sections suivantes expliquent comment configurer la fonctionnalité VPN de couche 2 sur les routeurs de périphérie du fournisseur (PE) connectés à chaque site :
Présentation simple du VPN de couche 2 complète
Dans les sections suivantes, vous configurez un SIMPLE VPN de couche 2 full-mesh couvrant trois sites : Sunnyvale, Austin et Portland. Chaque site se connecte à un routeur PE. Les routeurs de périphérie client (CE) de chaque site utilisent le relais de trame pour transporter le trafic de couche 2 vers les routeurs PE. Étant donné que cet exemple utilise une topologie de maillage complet entre les trois sites, chaque site nécessite deux interfaces logiques (une pour chacun des autres routeurs CE), bien qu’une seule liaison physique soit nécessaire pour connecter chaque routeur PE à chaque routeur CE. La figure 1 illustre la topologie de ce VPN de couche 2.

Activation d’un IGP sur les routeurs PE
Pour permettre aux routeurs PE d’échanger des informations de routage entre eux, vous devez configurer un protocole IGP (Interior Gateway Protocol) ou des routes statiques sur ces routeurs. Vous configurez l’IGP sur l’instance principale du processus de protocole de routage (rpd) (c’est-à-dire au niveau de la [edit protocols]
hiérarchie), et non dans l’instance de routage VPN de couche 2 (c’est-à-dire, pas au niveau de la [edit routing-instances]
hiérarchie). Activez l’ingénierie du trafic sur l’IGP.
Vous configurez l’IGP de manière standard. Cet exemple n’inclut pas cette partie de la configuration.
Configuration des tunnels LSP MPLS entre les routeurs PE
Dans cet exemple de configuration, RSVP est utilisé pour la signalisation MPLS. Par conséquent, en plus de configurer RSVP, vous devez créer un chemin de commutation d’étiquettes (LSP) MPLS pour tunneliser le trafic VPN.
Sur le routeur A, activez RSVP et configurez une extrémité du tunnel MPLS LSP vers le routeur B. Lors de la configuration du LSP MPLS, incluez toutes les interfaces à l’aide de l’instruction 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; } } }
Sur le routeur B, activez RSVP et configurez l’autre extrémité du tunnel LSP MPLS. Là encore, configurez les interfaces à l’aide de l’instruction 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; } } }
Sur le routeur C, activez RSVP et configurez l’autre extrémité du tunnel MPLS LSP. Là encore, configurez toutes les interfaces à l’aide de l’instruction 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; } } }
Configuration d’IBGP sur les routeurs PE
Sur les routeurs PE, configurez une session IBGP avec les paramètres suivants :
VPN de couche 2 : pour indiquer que la session IBGP est destinée à un VPN de couche 2, incluez l’instruction
family l2vpn
.Adresse locale : l’adresse IP de l’instruction
local-address
est la même que l’adresse configurée dans l’instructionto
au niveau de la[edit protocols mpls label-switched-path lsp-path-name]
hiérarchie du routeur PE distant. La session IBGP pour les VPN de couche 2 passe par cette adresse.Adresse voisine : incluez l’instruction
neighbor
en spécifiant l’adresse IP du routeur PE voisin.
Sur le routeur A, configurez 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; } } } } }
Sur le routeur B, configurez 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; } } } } }
Sur le routeur C, configurez 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; } } } } }
Configuration des instances de routage pour les VPN de couche 2 sur les routeurs PE
Les trois routeurs PE service le VPN de couche 2, vous devez donc configurer une instance de routage sur chaque routeur. Pour le VPN, vous devez définir les éléments suivants dans chaque instance de routage :
Routeur de distinction, qui doit être unique pour chaque instance de routage sur le routeur PE. Il permet de distinguer les adresses d’un VPN de celles d’un autre VPN.
Type d’instance de
l2vpn
, qui configure le routeur pour exécuter un VPN de couche 2.Interfaces connectées aux routeurs CE.
Les stratégies d’importation et d’exportation VRF (Virtual Routing and Forwarding) doivent être les mêmes sur chaque routeur PE qui dessert le même VPN et qui est utilisé pour contrôler la topologie du réseau. À moins que la politique d’importation ne contienne qu’une
then reject
déclaration, elle doit inclure une référence à une communauté. Sinon, lorsque vous tentez de valider la configuration, l’opération de validation échoue.
Sur le routeur A, configurez l’instance de routage suivante pour le VPN de couche 2 :
[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; } } } } } }
Sur le routeur B, configurez l’instance de routage suivante pour le VPN de couche 2 :
[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; } } } } } }
Sur le routeur C, configurez l’instance de routage suivante pour le VPN de couche 2 :
[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; } } } } } }
Configuration de l’encapsulation CCC sur les interfaces
Vous devez spécifier un type d’encapsulation de circuit croisé (CCC) pour chaque interface de routeur PE-vers-CE exécutée dans le VPN de couche 2. Ce type d’encapsulation doit correspondre au type d’encapsulation configuré sous l’instance de routage.
Configurez les types d’encapsulation CCC suivants pour les interfaces du routeur 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; } }
Configurez les types d’encapsulation CCC suivants pour les interfaces du routeur 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; } }
Configurez les types d’encapsulation CCC suivants pour les interfaces du routeur 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; } }
Configuration de la stratégie VPN sur les routeurs PE
Vous devez configurer des stratégies d’importation et d’exportation VPN sur chacun des routeurs PE afin qu’ils installent les routes appropriées dans leurs tables VRF, que les routeurs utilisent pour transférer les paquets dans le VPN.
Utilisez l’instruction community add community-name
au niveau de la [edit policy-options policy-statement policy-statement-name term term-name then]
hiérarchie pour faciliter les stratégies d’exportation VRF VPN de couche 2.
Sur le routeur A, configurez les stratégies d’importation et d’exportation VPN suivantes :
[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; }
Sur le routeur B, configurez les stratégies d’importation et d’exportation de VPN suivantes :
[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; }
Sur le routeur C, configurez les stratégies d’importation et d’exportation VPN suivantes :
[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; }
Pour appliquer les stratégies VPN sur les routeurs, incluez les vrf-export
déclarations et vrf-import
lorsque vous configurez l’instance de routage. Les stratégies d’importation et d’exportation VRF gèrent la distribution du routage sur l’ensemble de la session IBGP exécutée entre les routeurs PE.
Pour appliquer les stratégies VPN sur le routeur A, incluez les déclarations suivantes :
[edit] routing-instances { VPN-Sunnyvale-Portland-Austin { vrf-import vpn-SPA-import; vrf-export vpn-SPA-export; } }
Pour appliquer les stratégies VPN sur le routeur B, incluez les déclarations suivantes :
[edit] routing-instances { VPN-Sunnyvale-Portland-Austin { vrf-import vpn-SPA-import; vrf-export vpn-SPA-export; } }
Pour appliquer les stratégies VPN sur le routeur C, incluez les déclarations suivantes :
[edit] routing-instances { VPN-Sunnyvale-Portland-Austin { vrf-import vpn-SPA-import; vrf-export vpn-SPA-export; } }
Configuration VPN de couche 2 résumée par routeur
Pour obtenir un résumé de la configuration de chaque routeur dans les exemples de ce chapitre, consultez les sections suivantes :
- Résumé pour le routeur A (routeur PE pour Sunnyvale)
- Résumé pour le routeur B (routeur PE pour Austin)
- Résumé pour le routeur C (routeur PE pour Portland)
Résumé pour le routeur A (routeur PE pour Sunnyvale)
Instance de routage pour VPN de couche 2
[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; } } } } } }
Configurer les types d’encapsulation CCC pour les interfaces
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; } } }
Instance de protocole principale
protocols { }
Activer RSVP
rsvp { interface all; }
Configurer les LSP MPLS
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; }
Configurer 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; } } } }
Configurer la stratégie 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; }
Résumé pour le routeur B (routeur PE pour Austin)
Instance de routage pour 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; } }
Configurer un VPN de couche 2
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; } } } }
Configurer les types d’encapsulation CCC pour les interfaces
[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; } } }
Instance de protocole principale
protocols { }
Activer RSVP
rsvp { interface all; }
Configurer les LSP MPLS
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; }
Configurer 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; } } } }
Configurer la stratégie 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; }
Résumé pour le routeur C (routeur PE pour Portland)
Instance de routage pour 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; } }
Configurer un VPN de couche 2
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; } } } }
Configurer les types d’encapsulation CCC pour les interfaces
[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; } } }
Instance de protocole principale
protocols { }
Activer RSVP
rsvp { interface all; }
Configurer les LSP MPLS
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; }
Configurer 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; } } } }
Configurer la stratégie 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; }