| VPN
MPLS |
|
L’une des applications les plus
importantes du protocole MPLS est de pouvoir créer
des réseaux privés virtuels (ou VPN : Virtual
Private Network).
Un VPN est un ensemble de sites
d’un client qui sont interconnectés ensemble à
partir d’une infrastructure réseau partagé et qui
n’ont pas conscience de la présence d’éventuels
autres sites connectés eux aussi sur cette
infrastructure.
Pour créer des VPNs clients, il est donc nécessaire
d’isoler les flux de chacun des clients. Pour cela,
le label MPLS est constitué de non plus d’un label
mais de 2 labels : le premier label (extérieur)
identifie le chemin vers le LSR destination, et change
à chaque bond, le second label (intérieur) spécifie
le VPN-ID attribué au VPN et n’est pas modifié
entre le LSR source et le LSR destination.
C’est le LSR source qui applique ces 2 labels au paquet de
data lorsqu’un VPN est utilisé:
|
|
label
extérieur
identifie le dest.
|
label
intérieur
identifie
un VPN |
data
(IP paquet)
|
|
|
Chez certains opérateurs comme France Telecom, les noms
de LSR et E-LSR sont remplacés par routeurs PE et P. Ce
n’est qu’un changement de nom par rapport à la
norme MPLS, les fonctionnalités des routeurs sont
totalement identiques, mais il est bon de le savoir car
ces noms sont en général plus utilisés que ceux de la
norme.
|
|
Les
différentes composantes des VPNs MPLS
|
|
 |
|
Les composants des VPNs MPLS sont :
-
le
CE
routeur (Customer Edge router) – routeur client
connecté au backbone IP via un service d’accès (LS,
PVC FR, ATM …). Il route en IP le trafic entre le
site client et le backbone IP.
-
le PE routeur
(Provider Edge router) : routeur backbone de périphérie
auquel sont connectés des CE. C’est au niveau des
PE qu’est déclarée l’appartenance d’un CE à
un VPN donné. Le rôle du PE consiste à gérer les
VPN en coopérant avec les autres PE et à commuter
les trames avec les P.
-
le P équipement
(Provider device) : routeur ou commutateur de cœur
de backbone chargé de la commutation des trames
MPLS.
La
gestion des VPN dans le backbone est assurée par l’opérateur
par le biais des PE.
Chaque PE
associe, de manière statique, une VRF
(Virtual Routing and Forwarding Table) aussi appelé LIB
(Label Information Base)
dans la norme MPLS à chacune de ses interfaces
utilisateur. La VRF est une table de routage associée
à un VPN qui donne les routes vers les réseaux IP
faisant partie de ce VPN.
|
|
 |
|
Chaque VRF est renseignée
localement par le CE rattaché à l’interface de la
VRF. Pour indiquer les réseaux IP qu’il dessert, le
CE utilise, pour moins de 5 réseaux IP, du
routage statique, et pour plus de 6 réseaux IP, le
protocole de routage dynamique e-BGP. Ceci afin de ne
pas avoir à traiter de façon manuel un trop grand
nombre de routes. Le PE de rattachement affecte un
label local à chacun de ces réseaux IP et les stocke
dans sa table de commutation.
Puis il annonce l’appartenance
au VPN de ces réseaux IP ainsi que leur label local
et leur PE de rattachement à l’ensemble des PE du
backbone (Ce label local identifie le VPN auquel
appartient le réseau IP). Pour cela, il transmet
les informations pertinentes à l’ensemble des PE grâce
au protocole MP-iBGP
(Multi-Protocol BGP extension, RFC 2283). Seuls les PE
desservant des CE appartenant au même VPN captureront
ces informations pour les stocker dans la VRF associée
au VPN et pour mettre à jour leur table de
commutation.
Les PE supportant le même VPN
connaissent ainsi tous les réseaux IP membres du VPN
par le biais de la VRF, ainsi que leur label local et
leur PE de rattachement.
|
|
Le
Backbone MPLS
|
|
|
|
Dans un backbone MPLS, les paquets IP ne sont pas
routés suivant l’adresse de destination
(contrairement au protocole IP) mais des trames MPLS
sont commutées suivant leur label MPLS. Le protocole
MPLS a été conçu initialement, pour améliorer les
performances du backbone, indépendamment des VPNs. |
|
La trame MPLS est composé d’un
paquet IP précédé d’une en-tête MPLS qui contient
notamment :
-
un champ label
-
un champ EXP (3 bits)
-
un bit S qui indique si un autre en-tête MPLS
est présent dans la
trame MPLS. Cet empilement d’en tête MPLS est utilisé pour transporter au sein
du backbone, le label local nécessaire à la gestion du
VPN. On parle aussi, par rapport au format de la
trame MPLS, de label externe pour désigner le label
MPLS et de label interne pour désigner le label local.
|
En
tête externe
(label MPLS, S
= 1)
|
En
tête interne
(label local, S
= 0)
|
Paquet
IP
|
|
|
Le
protocole de routage interne au backbone est actif sur
les
PE et P du backbone IP partagé. Il permet
d’abord d’assurer la connectivité IP entre les P
et les PE du backbone puis l’établissement de
session TDP (Tag Distribution Protocol) issu de Cisco
ou LDP (Label Distribution Protocol) standard IETF
(RFC 3036) entre les différents composants du
backbone.
Par
échange de labels MPLS, le protocole TDP ou LDP
affecte un label MPLS à chaque tronçon de chaque
meilleure route du backbone (au sens routage) et
construit une table de commutation de labels MPLS
propre à
chaque routeur du backbone.
Une
fois les tables de commutation à jour, le backbone
n’utilise pas les tables de routage pour le trafic
IP.
Remarque :
pour les PE, cette table de commutation contient,
outre le label MPLS, les informations relatives aux réseaux
IP annoncés par les CE. Ces informations sont
renseignées grâce au protocole MP-iBGP : CE
distant, PE de rattachement du CE, label local.
|
|
Lorsque le PE d’entrée reçoit un paquet IP
entrant en provenance d’un CE, le PE identifie la
VRF associée à l’interface d’entrée. Si le PE
ne trouve pas le destinataire dans la VRF, il rejette
le paquet IP entrant car le destinataire ne fait pas
partie du même VPN que le réseau IP origine. |
|
|
|
Si les réseaux IP origine et destinataire font
partie du même VPN, le PE d’entrée consulte sa
table de commutation pour trouver le label local
associé au destinataire et le label MPLS associé au
PE destinataire. Le PE encapsule le paquet IP entrant
dans une trame MPLS en indiquant dans 2 en-têtes successives
: le label MPLS et le label local. La
trame MPLS est ensuite commutée par le backbone en
fonction des tables de commutation jusqu’au PE
destination.
La valeur
du label MPLS est modifiée à chaque P routeur
traversé jusqu’au PE destinataire, celle du label
local n’est pas traitée par les P : le
label local est transporté de manière transparente
par le backbone IP jusqu’au PE destination. A partir
du label local, ce dernier retrouve dans sa table de
commutation l’interface de sortie associée au
destinataire, désencapsule le paquet IP de la trame
MPLS et le transmet au
destinataire.
|
|
La
Qualité de service
|
|
|
|
Deux
types d’architectures sont étudiés par l’IETF
(Internet Engineering Task Force) pour définir la QoS
IP :
|
|
|
|
Int-Serv suppose que pour chaque
flux demandant de la QoS, les ressources nécessaires
sont réservées à chaque bond entre l’émetteur et
le récepteur. IntServ requiert une signalisation de
bout en bout, assurée par RSVP, et doit maintenir
l’état de chaque flux (messages RSVP,
classification, policing et scheduling par flux de
niveau 4). IntServ permet donc une forte granularité
de QoS par flux et pour cette raison, est plutôt
destiné à être implémenté à l’accès.
IntServ
définit 2 classes de services :
Guaranteed :
garantie de bande passante, délai et pas de perte
de trafic
Controlled
Load : fournit différents niveaux de services
en best effort
|
|
|
|
DiffServ, quant à lui, est
davantage destiné à être appliqué en coeur de réseau
opérateur. Les différents flux, classifiés selon des
règles prédéfinies, sont agrégés selon un nombre
limité de classes de services, ce qui permet de
minimiser la signalisation. DiffServ ne peut pas offrir
de QoS de bout en bout et a un comportement « Hop
By Hop ».
Le
champ DS (Differenciated Services) aussi appelé CoS ou
Exp (voir page concernant le label) est utilisé pour spécifier
aux différents LSR quel traitement appliquer aux
paquets IP (c’est à dire le plus souvent séparation
du trafic selon la classe de service). Ce champ DS
correspond à l’ancien champ ToS (Type of Service) de
l’en-tête IP v4 qui a été renommé.
|
|
|
|
DiffServ définit 2
classifications de service (Expedited, Assured) qui
peuvent être corrélées aux classifications de
service IntServ (Guaranteed, Controlled Load).
MPLS est amené à
interfonctionner avec DiffServ, car LDP supporte avant
tout de la QoS à faible granularité. Le mapping
entre le champ DS de l’en-tête IP et le SHIM header
de l’en-tête MPLS reste à définir.
|
|
|