Vous êtes ici : Accueil Glossaire / MPLS

Bienvenue dans la technologie MPLS

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 :

  •  Integrated Services (IntServ)

  • Differential Services (DiffServ)

  • IntServ

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

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.