You are on page 1of 7

Mise en place dun VPN MPLS

with 75 comments
Introduction
Dans le cadre de ma prparation pour lexamen crit, jai presque fini de lire MPLS
Fundamentals de Luc de Ghein.

Ce livre ma beaucoup aid dmystifier MPLS et ses diffrents mcanismes et dun en


particulier dont nous allons parler aujourdhui: les VPN MPLS.

Je vais concentrer le sujet de ce billet sur limplmentation de la technologie qui reste,


une fois quon a assimil les concepts inhrents, trs logique faire et suivre.

Comme dhabitude, on commence par une topologie diabolique(ou pas) faite maison:

Plusieurs prcisions savrent ncssaires pour la bonne comprhension de ce schma.

Prcisions pralables
Ce schma expose un exemple de topologie assez simple avec derrire chaque
PE(Provider Edge) pour ClientA et ClientB, un routeur ddi.
Le but du jeu ici est de pouvoir permettre via un nuage MPLS(label-switching) de
pouvoir faire communiquer les sites des clients ensemble de faon totalement
indpendante. Cela sous-entend ici que A_CE1 devra pouvoir avoir accs A_CE2 mais
pas B_CE2 par exemple(la rciproque est galement vraie vous vous en doutez).
Llement qui peut vous choquer en regardant ce schma est labsence de subnet spar
pour les liens srie CE(Customer Edge) du ct de PE1 et de PE2. Les interfaces de A_CE1
et B_CE1, par exemple, ont exactement la mme adresse IP assigne sur leurs interfaces
s1/0 et dans le mme subnet! Rassurez-vous, cest tout fait normal. Lutilisation de
table de routage virtuelle pour chaque client(Virtual Routing and Forwarding ou VRF) nous
permet de distinguer les routes avec le concours dautres paramtres notamment le
RD(Route Distinguisher).
Pourquoi les VPN MPLS?
Pour revenir lessentiel de la technologie, lavantage de ce type de VPN MPLS est de
pouvoir faire du label-switching entre PE sans que les routeurs du milieu du nuage, les P,
naient avoir connaissance des prfixes de destination dans leurs tables de routage
respectives. Cela nous permet de maintenir une architecture plus facilement et
daugmenter galement la scalabilit de celle-ci.
Enfin, de nos jours, cest un srieux concurrent pour les technologies plus anciennes de
couche 2 comme ATM ou Frame-Relay.

Technologies utilises
Jai choisi pour ce lab les technologies suivantes:
OSPF pour la communication intra-nuage
EIGRP en guise de protocole CE-PE.
MP-BGP pour le VPN
Mthodologie dapproche
Avec lexprience jai developp une mthodologie dapproche de ce type
dimplmentation savoir :
1. Mise en place des VRF sur les PE
2. Configuration des interfaces
3. Mise en place du protocole intra-nuage
4. Mise en place du protocole CE-PE
5. Mise en place du protocole MP-BGP
6. Gestion de la redistribution respective des prfixes
Bien que cette approche est personnelle, je vais la suivre dans le cheminement de ce
billet pour vous permettre, je lespre, de mieux comprendre.

Premire tape Mise en place des VRF sur les PE


Pour cette premire tape, rien de compliqu quand vous connaissez la procdure!

PE1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
PE1(config)#ip vrf ClientA
PE1(config-vrf)#rd 1:1
PE1(config-vrf)#route import 1:1
PE1(config-vrf)#route export 1:1
PE1(config-vrf)#exit
PE1(config)#ip vrf ClientB
PE1(config-vrf)#rd 1:2
PE1(config-vrf)#route import 1:2
PE1(config-vrf)#route export 1:2
PE1(config-vrf)#exit
Pour dtailler ce que nous faisons ici, nous crons deux tables de routage virtuelles(VRF)
pour chaque client. lintrieur de la configuration de la VRF, nous dsignons de RD des
futures routes de cette VRF ainsi que le RT(Route Target) dans les deux sens(import et
export).
Cette tape est bien entendu rpter sur PE2 qui accueillera exactement la mme
configuration.

Deuxime tape Configuration des interfaces


Outre la configuration des IPs, vous devez galement effectuer plusieurs actions pour
prparer le terrain :

Sur toutes les interfaces des PE directement relies sur des CE, vous devez
assigner linterface locale du PE une VRF.
Sur les interfaces concernes par le label-switching MPLS, vous devez activer le
protocole dchange de label LDP(Label Distribution Protocol).
Assignation dune VRF sur un port de routeur
Pour cela, rien de plus simple galement, suivez plutt lexemple suivant sur PE1:
PE1(config)#int s1/0
PE1(config-if)#ip vrf forwarding ClientA
PE1(config-if)#ip add 10.1.1.2 255.255.255.252
PE1(config-if)#no sh
PE1(config)#int s1/1
PE1(config-if)#ip vrf forwarding ClientB
PE1(config-if)#ip add 10.1.1.2 255.255.255.252
PE1(config-if)#no sh
Avec cette commande ip vrf forwarding, jaffecte linterface la VRF choisie
uniquement. Lopration rpter galement sur PE2 en adaptant les adresses IPs bien
entendu!
Activation du LDP sur les interfaces concernes
On active ici uniquement le LDP sur les interfaces qui auront faire du label-
switching(gnralement les interfaces qui sont dans le nuage MPLS).

Pour ce faire galement, la procdure est trs simple. On prend lexemple de PE1:

PE1(config)#int s1/2
PE1(config-if)#mpls ip
Cette procdure sera rpeter sur de plusieurs ports(P1, P2 et PE2) qui sont dans le
nuage MPLS.

Troisime tape Mise en place du protocole intra-nuage


Dans cette section, nous allons juste activer OSPF dans le nuage pour garantir la
communication intra-nuage des routers P et PE.
Sur les PE(PE1 et PE2), la configuration est la suivante :
PE1(config-if)#router ospf 1
PE1(config-router)# network 172.16.1.0 0.0.0.3 area 0
PE1(config-router)# network 192.168.1.0 0.0.0.255 area 0
PE1(config-router)# exit
La premire instruction network nous servira pour annoncer les rseaux de loopback
des PEs respectifs pour MP-BGP. La deuxime instruction annoncera dans le nuage les
rseaux directement connects et formera des relations de voisinages avec ses voisins
connects.

Sur les P(P1 et P2), la configuration est la suivante :

P1(config-if)#router ospf 1
P1(config-router)# network 192.168.1.0 0.0.0.255 area 0
P1(config-router)# exit
Ici, on ne fait que participer les interfaces comprises dans la range 192.168.1.0/24 tant
donn que ces P nont pas dinterfaces de loopback.

Si tout va bien ce moment l, PE1 devrait pouvoir pinger linterface loopback 0 de PE2
sans problmes :

PE1#ping 172.16.1.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.1.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 12/16/28 ms
Quatrime tape Mise en place du protocole CE-PE
Dans un premier temps, la configuration ddie aux CE est trs simple, du fait que le CE
na aucune notion de MPLS, il va juste tablir une adjacence avec le PE auquel il est reli
et partager ses routes avec celui-ci.

Cette configuration sera appliquer sur tous les CE en ne changeant aucune instruction:

A_CE1(config)#router eigrp 1
A_CE1(config-router)#network 10.0.0.0
A_CE1(config-router)#no auto-summary
Passons maintenant la configuration du PE, un peu plus complexe. Nous allons dans le
PE configurer une instance dEIGRP par VRF. Ces commandes sappliqueront sur PE1 et
PE2 sans aucun changement:

PE1(config)#router eigrp 1
PE1(config-router)#address-family ipv4 vrf ClientA
PE1(config-router-af)#network 10.0.0.0
PE1(config-router-af)#no auto-summary
PE1(config-router-af)#autonomous-system 1
PE1(config-router-af)#exit
PE1(config-router)#address-family ipv4 vrf ClientB
PE1(config-router-af)#network 10.0.0.0
PE1(config-router-af)#no auto-summary
PE1(config-router-af)#autonomous-system 1
PE1(config-router-af)#exit
*Jan 1 19:25:43.267: %DUAL-5-NBRCHANGE: IP-EIGRP(1) 1: Neighbor 10.1.1.1
(Serial1/0) is up: new adjacency
*Jan 1 19:26:29.439: %DUAL-5-NBRCHANGE: IP-EIGRP(2) 1: Neighbor 10.1.1.1
(Serial1/1) is up: new adjacency
Remarquez en gras que deux adjacences se sont formes entre le PE et le CE concern
par la VRF sur laquelle nous avons activ EIGRP.

Remarquez enfin que lon fait bien correspondre le numro dAS dEIGRP configur sur
chaque CE avec largument de la commande autonomous-system dans la
configuration du PE pour chaque VRF.
Cinquime tape Mise en place du protocole MP-BGP
Pour configurer la liaison vpnv4 entre les deux PE que lon recherche faire, il nous faut
configurer sur les deux routeurs, comme on le ferait en BGP, une relation de voisinage en
prenant comme rfrence les IPs de loopback paramtres prcdemment.

La configuration pour PE1 est la suivante :

PE1(config)#router bgp 1
PE1(config-router)#neighbor 172.16.1.2 remote-as 1
PE1(config-router)#neighbor 172.16.1.2 update-source Lo0
PE1(config-router)#address-family vpnv4
PE1(config-router-af)#neighbor 172.16.1.2 activate
PE1(config-router-af)#neighbor 172.16.1.2 send-community extended
PE1(config-router-af)#exit
PE1(config-router)#exit
On demande galement ce que lIP source des paquets qui schangent entre les pairs
BGP soit bien celle de notre IP de loopback, cest--dire 172.16.1.1 pour PE1.

Enfin, on active le mcanisme vpnv4 de BGP en le configurant galement de telle sorte


ce que BGP utilise le champ community de ses updates pour pouvoir en faire un
champ de communaute tendue(qui servira lors de la ngociation des capacits des
voisins, pour les RT galement qui sont stocks dans ce champ).

La configuration pour PE2 est exactement la mme en adaptant les IPs:

PE2(config)#router bgp 1
PE2(config-router)#neighbor 172.16.1.1 remote-as 1
PE2(config-router)#neighbor 172.16.1.1 upd
PE2(config-router)#neighbor 172.16.1.1 update-source Lo0
PE2(config-router)#address-family vpnv4
PE2(config-router-af)#neighbor 172.16.1.1 activate
PE2(config-router-af)#neighbor 172.16.1.1 send-community extended
PE2(config-router-af)#exit
PE2(config-router)#exit
Vous voyez la relation de voisinage BGP tre ngocie avec succs avec notamment cette
ligne de log:

*Jan 1 19:50:01.595: %BGP-5-ADJCHANGE: neighbor 172.16.1.1 Up a


Sixime tape Gestion de la redistribution respective des
prfixes
Avant de pouvoir tester le bon fonctionnement de notre VPN, il nous manque encore une
brique importante de notre architecture.

Il faut configurer les PE de telle sorte ce que la redistribution des routes soit effective
mutuellement dans les deux sens entre BGP et EIGRP. Lavantage de ce type
darchitecture est la scalabilit.

Imaginez que le client rajoute une route sur son CE. Dans ce cas, la route est
automatiquement redistribue dans BGP et les autres PE seront directement au courant
de ce nouveau prfixe sans aucune intervention de votre part! Vous imaginez galement
le temps de convergence rduit dont vous allez bnficier!

Redistribution EIGRP => BGP configuration:


Dans cette section, on soccupe de redistribuer les routes apprises par EIGRP dans BGP.
La configuration similaire est galement appliquer sur PE2.
PE1(config)#router bgp 1
PE1(config-router)#address-family ipv4 vrf ClientA
PE1(config-router-af)#redistribute eigrp 1 metric 1
PE1(config-router-af)#exit
PE1(config-router)#address-family ipv4 vrf ClientB
PE1(config-router-af)#redistribute eigrp 1 metric 1
PE1(config-router-af)#exit
PE1(config-router)#exit
Redistribution BGP => EIGRP configuration:
Dans cette section, on fait linverse. On soccupe de redistribuer les routes apprises par
BGP dans EIGRP. La configuration similaire est galement appliquer sur PE2.

PE1(config)#router eigrp 1
PE1(config-router)#address-family ipv4 vrf ClientA
PE1(config-router-af)#redistribute bgp 1 metric 1024 1 255 1 1500
PE1(config-router-af)#exit
PE1(config-router)#address-family ipv4 vrf ClientB
PE1(config-router-af)#redistribute bgp 1 metric 1024 1 255 1 1500
PE1(config-router-af)#exit
PE1(config-router)#exit
Aprs cette touche finale , le moment de vrit est arriv, voyons voir ce quil se
passe!

Tests et vrifications
On se place sur la perspective de A_CE1 qui a envie de contacter A_CE2 travers le VPN
MPLS.

Regardons la table de routage de ce routeur :

A_CE1#sh ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route
Gateway of last resort is not set
10.0.0.0/30 is subnetted, 2 subnets
D 10.1.2.0 [90/2681856] via 10.1.1.2, 00:02:02, Serial1/0
C 10.1.1.0 is directly connected, Serial1/0
Regardez-moi a, A_CE1 a appris une route via EIGRP vers 10.1.2.0!
Testons-l !
A_CE1#ping 10.1.2.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.2.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/19/24 ms
A_CE1#ping 10.1.2.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.2.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 16/20/28 ms
A_CE1#
Et voil, a ping sans aucun problme, votre configuration est ici termine !

Si vous tes curieux, vous pouvez galement regarder les label bindings cres
automatiquement sur PE1 et/ou sur les autres routeurs du nuage MPLS :
PE1(config)#do sh mpls ldp bind
tib entry: 172.16.1.1/32, rev 2
local binding: tag: imp-null
remote binding: tsr: 192.168.1.2:0, tag: 16
tib entry: 172.16.1.2/32, rev 10
local binding: tag: 18
remote binding: tsr: 192.168.1.2:0, tag: 18
tib entry: 192.168.1.0/30, rev 4
local binding: tag: imp-null
remote binding: tsr: 192.168.1.2:0, tag: imp-null
tib entry: 192.168.1.4/30, rev 7
local binding: tag: 16
remote binding: tsr: 192.168.1.2:0, tag: imp-null
tib entry: 192.168.1.8/30, rev 8
local binding: tag: 17
remote binding: tsr: 192.168.1.2:0, tag: 17
PE1(config)#
Jespre que ce billet, mme si il ft un peu long(jaime bien tre pdagogue :)) vous a
plu.

Pour ceux qui voudraient faire joujou avec cette topo sur GNS3, je laisse le .net dont je
me suis servi pour ces activits, limage de la topologie ainsi que les configs dans ce zip.
Bonne anne vous!

You might also like