Multiprotocol Label SwitchingDans les réseaux informatiques et les télécommunications, Multiprotocol Label Switching (MPLS) est un mécanisme de transport de données basé sur la commutation de labels[1] (des « étiquettes »), qui sont insérés à l'entrée du réseau MPLS et retirés à sa sortie. À l'origine, cette insertion s'opère entre la couche de liaison de données (niveau 2) et la couche réseau (niveau 3) afin de transporter des protocoles comme IP. C'est pourquoi MPLS est qualifié de protocole de couche « 2,5 » ou « 2 / 3 ». Ce protocole a évolué pour fournir un service unifié de transport de données pour les clients en utilisant une technique de commutation de paquets. MPLS peut être utilisé pour transporter pratiquement tout type de trafic, par exemple la voix ou des paquets IPv4, IPv6 et même des trames Ethernet ou ATM. Ainsi, MPLS permet d'acheminer sur une unique infrastructure différents types de trafic tout en les isolant. L'utilisation de labels dits de transport permet au routeur de départ, pour chaque paquet, de déterminer à la source le routeur de sortie du réseau, sans que les routeurs intermédiaires aient besoin de consulter une table de routage volumineuse lors de la transmission du paquet. Le fonctionnement de MPLS est notamment défini dans la RFC 3031[2]. Historique
L'idée de MPLS est apparue en 1996 d'un groupe d'ingénieurs de Ipsilon Networks[3]. À l'origine, la technologie n'était prévue pour fonctionner que sur ATM, ce qui limita sa place sur le marché. Cisco Systems proposa ensuite l'idée de ne pas limiter MPLS à l'ATM et créa le Tag Switching (et un protocole TDP[4] de distribution des tags [étiquettes]), qui sera ensuite renommé en Label Switching pour la standardisation par l'IETF en tant que MPLS (et son protocole de distribution des labels : LDP). IntroductionDeux groupes de travail ont été désignés par l'IETF pour combler les lacunes d'IP : un groupe consacré à la sécurité travaillant sur l'IPSec et l'autre consacré au routage travaillant sur MPLS. Comme son sigle (MPLS) l'indique, ses caractéristiques sont :
FonctionnementCommutation de labelsLabelsUn en-tête MPLS est composé d'un ou plusieurs éléments de 4 octets chacun, les labels. Ce ou ces labels forment un empilement ou « pile » de labels, le Label Stack. Le nombre de labels dans le Stack dépendra des services MPLS utilisés. Cet en-tête MPLS est inséré dans un paquet juste après l'en-tête de couche 2 (par exemple Ethernet, dont le champ Ethertype indiquera alors un contenu de type MPLS), et donc avant le protocole de couche 3 (au sens du modèle OSI) comme par exemple IP. FormatUn label comporte 32 bits (4 octets), divisés en :
ValeursLes labels de 0 à 15 sont réservés à des usages spécifiques (RFC 3032[6] et RFC 7274[7]). On trouvera notamment :
PrincipesMPLS fonctionne par commutation de labels. Des chemins entre PE (Provider Edge) sont établis de façon manuelle (action d'un administrateur dans le plan d'administration) ou automatique (via un protocole de signalisation comme LDP — Label Distribution Protocol — dans le plan de contrôle). Ces chemins sont appelés des LSP (Label Switched Paths). Les routeurs MPLS sont les LSR (Label Switch Router), et sont de type PE (Provider Edge) ou P (Provider). Par extension, les routers CE (Customer Edge) sont les routeurs du client avant que son trafic ne pénètre dans le « nuage » MPLS du fournisseur par les routeurs PE. Un chemin MPLS étant toujours unidirectionnel, on fait la différence en MPLS entre les routeurs d'entrée (PE ou iLSR — ingress Label Switch Router), de transit (P-router pour Provider router), et de sortie (PE ou eLSR — egress Label Switch Router). Routeur PE d'entréeLe routeur PE d'entrée a pour rôle d'encapsuler le trafic reçu sur ses interfaces « clients ». Il applique (au moins) un label au paquet reçu (« imposition » de label, ou push) et l'envoie vers une de ses interfaces sortantes. Pour créer le label, le routeur utilise les FEC (Forwarding Equivalence Class), qui sont des tables de correspondances dont les clefs sont un élément du paquet (adresse MAC, adresse IP, Class of Service, port TCP/UDP, etc.). Une FEC est donc un groupe de paquets transférés vers la même interface de sortie et avec les mêmes critères de transmission (donc un type de flux vers un LSP). Routeurs PLe paquet atteint ensuite des commutateurs de transit (P-router) ou de sortie (PE-router). Ceux-ci possèdent une table de commutation (la Label Information Base[8],[9]) comportant quatre entrées :
Routeur PE de sortieLe dernier routeur PE reçoit (d'un P-router, ou du premier PE-routeur, selon la topologie du réseau MPLS) :
Intérêt initialL'opération de commutation est donc extrêmement simple, puisqu'il suffit d'analyser le label MPLS qui se trouve directement après l'en-tête de la trame de niveau 2 (Ethernet), ou dans l'équivalent de la cellule/trame de niveau 2 (VPI/VCI de l'ATM, DLCI du Frame Relay, etc.). Il n'est donc pas nécessaire d'extraire le paquet IP et de parcourir l'ensemble de la table de routage. Toutefois, si cet argument était à l'origine de la création de MPLS, il a perdu beaucoup de poids, car l'augmentation de la puissance des routeurs et l'avènement de nouvelles puces dédiées permettent largement de parcourir la table de routage IP à chaque nouveau paquet. Ce sont donc les autres possibilités attribuées à MPLS qui en font une technique de plus en plus utilisée, et notamment les services qu'il peut apporter. PHP / UHPDans le cadre des spécifications initiales de MPLS, pour le transport d'IPv4 sans VPN, le principe de disposition du label à l'avant dernier saut « Penultimate Hop Popping » (PHP) a été retenu. Ainsi l'avant-dernier routeur est censé supprimer le label et envoyer le paquet « nu » au PE de sortie, afin d'économiser à celui-ci un examen non-seulement de l'adresse IP de destination (ce qu'il doit faire de toute façon), mais aussi de traitement du label. Dans ce mécanisme, la valeur de label annoncée entre les routeurs (mais non-utilisée réellement, car le label est en fait supprimé) est la valeur 3 « implicit-null ». L'utilité de cette optimisation n'est plus vraiment d'actualité (de la même façon que les arguments initiaux pour MPLS – traitement facilité pour les routeurs). Certains services MPLS (notamment traitement de bout-en-bout de la QoS[10] et 6PE[11]) peuvent amener à décider le maintien d'un label y compris entre l'avant-dernier et le dernier routeur MPLS de sortie, dans le cadre d'un mécanisme de disposition du paquet au dernier saut « Ultimate Hop Popping » (UHP)[12],[13]. Certaines valeurs de labels ont notamment été réservées à cet effet (« explicit-null »). Distribution des labels et protocolesSi la configuration manuelle des chemins MPLS (les LSP – Label Switched Path) est toujours possible, elle s'avère très fastidieuse pour l'administrateur, c'est pourquoi la plupart du temps un protocole de signalisation est utilisé pour établir ces LSP et distribuer les labels au sein du nuage MPLS entre les routeurs. On trouvera notamment les protocoles suivants :
Contrairement à la pile TCP/IP, MPLS n'est pas un protocole de bout en bout. Il définit seulement une façon d'encapsuler des protocoles de couche 3 (IPv4 comme IPv6), de couche 2 (Ethernet, PPP, ATM, Frame Relay entre autres), et même de couche 1 (PDH, SDH). Cette notion d'encapsulation explique qu'un même type de protocole (exemple : Ethernet) puisse à la fois être transporté sur MPLS (dans le cadre d'un VPN de niveau 2), et servir au transport de ce même MPLS. Utilisation des labelsUn paquet peut avoir un ou plusieurs labels à la fois. Les labels :
On pourra trouver par exemple, dans le cadre d'un VPNv4 (VPRN) un paquet IPv4 avec un label de service identifiant le VPN (positionné par le PE d'entrée suivant une valeur reçue depuis le PE de sortie, par exemple en MP-BGP), et un label de transit changé entre chaque routeur. Dans certains cas, on peut avoir encore plus de labels sur un même paquet (labels liés au raccordement entre deux nuages MPLS[24], ou transport tunnelisé en MPLS de paquet eux-mêmes MPLS dans le cadre de service « Carrier over Carrier »[25]). DéploiementMPLS est actuellement utilisé dans de grands réseaux. En pratique, MPLS est principalement utilisé pour transporter des datagrammes IP et du trafic Ethernet. Services MPLSMPLS peut notamment être utilisé pour mettre en œuvre des services (notamment de type VPN) dans le nuage MPLS :
Note : on oppose[36] parfois les VPN MPLS qui permettent de garantir un niveau de qualité de service et les VPN via Internet qui assurent confidentialité et intégrité des données transportées par un mécanisme de chiffrement :
Techniques complémentaires (applications réseaux opérateurs & grandes entreprises)La majorité des grands opérateurs utilise aujourd’hui MPLS dans la partie centrale de leur réseau pour assurer l’ingénierie de trafic et la qualité de service. En revanche, l’extension de MPLS à l’accès et dans la partie métropolitaine du réseau est moins avancée. Cette solution, si elle est techniquement viable, introduit dans de nombreux cas un ensemble de difficultés liées à la gestion et à l'évolutivité du réseau, qui en fin de compte augmentent le coût et la complexité d'exploitation mais dégradent aussi la fiabilité. Plusieurs solutions alternatives ont été proposées parmi lesquelles :
Pour éviter des redites, voir les articles détaillés correspondants. ConcurrentsDans le cadre des VPN, L2TPv3 et Provider Backbone Bridge apparaissent en tant que technologies concurrentes à MPLS, particulièrement dans les réseaux IP. On peut aussi noter l'existence de la technologie IEEE 1355 qui est également de la commutation de label mais de façon matérielle. Articles connexes
Notes et références
Liens externes
|