2. Présentation de la technique MPLS
Un « nuage » MPLS possède des routeurs capables de commuter des étiquettes et appelés LSR (Label Switching Routers). Il en existe plusieurs types comme le montre la figure suivante.
Les routeurs Ingress permettent aux paquets IP de pénétrer dans le « nuage ». Les routeurs Egress leur permettent d’en sortir et de joindre leur destination. Les routeurs intermédiaires se chargent d’acheminer les paquets IP. Pour un routeur donné, les routeurs situés vers la destination sont dits en aval (downstream) alors que les routeurs situés vers la source sont dits en amont (upstream). En d’autre termes et de façon imagée, la source d’information est considérée comme le plus haut point.
Le routeur Ingress et lui-seul, classe les paquets en amont dans des classes de service (CoS) appelées FEC (Forwarding Equivalent Class) associées à des préfixes d’adresse IP. En choisissant un FEC pour un paquet entrant, ce routeur lui ajoute une étiquette. Par contre, un routeur Egress enlève l’étiquette au paquet et un routeur intermédiaire la commute avec une autre étiquette. Dans tous les cas, le routeur choisit le routeur suivant (en aval) vers lequel le paquet va être acheminé selon l’étiquette qu’il possède. Un FEC est caractérisé par un préfixe d’adresse et le protocole transporté, c’est-à-dire qu’un FEC représente une QoS donnée. Lorsqu’un routeur intermédiaire downstream reçoit un paquet IP du routeur upstream, celui-ci échange l’étiquette du paquet IP par sa propre étiquette : c’est le label swapping. Si bien qu’entre deux routeurs successifs, l’étiquette définit un tunnel MPLS appelé LSP (Label Switching Path). Lorsqu’un paquet IP est routé vers un routeur Egress, l’étiquette n’est pas indispensable car de toute façon elle devra être supprimée. Une option de MPLS, appelée PHP (Penultimate Hop Mapping) consiste à supprimer cette étiquette. Ainsi le routeur Egress pourra lire directement l’adresse IP de destination du paquet IP.
Figure 11 : Label et routeurs MPLS
Chaque routeur LSR construit une table LIB (Label Information Base) pour spécifier comment un paquet doit être acheminé, c’est-à-dire comment une FEC (préfixe d’adresse) est lié à un e étiquette. La figure précédente montre bien que le routeur Ingress (à gauche) analyse l’adresse IP de destination du paquet, le classe dans le FEC de préfixe 128.89, lui adjoint l’étiquette 4 et l’envoie vers l’interface de sortie numéro 1. Le routeur intermédiaire suivant reçoit ce paquet sur son interface d’entrée numéro 2, commute l’étiquette avec une étiquette 9 et l’achemine vers son interface de sortie numéro 9. Enfin le paquet IP arrive sur l’interface d’entrée numéro 1 du routeur Egress, se voit enlever l’étiquette, analyser l’adresse de destination et est transmis sur l’interface de sortie numéro 0 pour être envoyé vers un routeur IP classique sans gestion d’étiquettes. Notons que l’option PHP n’a pas été utilisée dans cet exemple. Voyons dans le paragraphe suivant comment sont codées les étiquettes et comment MPLS introduit une hiérarchie d’étiquettes (labels stack, pour pile d’étiquettes).
1.4 Codage et hiérarchie d’étiquettes, agrégation
Une étiquette identifie le chemin qu’un paquet doit suivre et s’est pourquoi il est encapsulé dans un en-tête de niveau 2, immédiatement suivit par le paquet de niveau 3 comme le montre la figure suivante. Ensuite, ce label (étiquette) est analysé par le routeur en aval pour déterminer le prochain routeur vers lequel il sera acheminé. Une fois un paquet labellisé, seul le label est utilisé pour assurer la commutation (label switching). Les valeurs du label n’ont qu’une signification locale au saut entre deux LSR successifs. Ces valeurs sont dérivées des en-têtes de couches de niveau 2 (liaison de données) telles que ATM ou Frame Relay, si bien que les VPI/VCI de l’un ou les DLCI de l’autre peuvent être utilisés directement comme étiquettes. L’en-tête du label, ajouté entre l’en-tête de niveau 2 et l’entête de niveau 3 (réseau) possède 32 bits, soit 4 octets présentés par la figure suivante. Cet en-tête comporte 4 champs :
· 20 bits pour coder la valeur du label et permettant 2^20-1 = 1048575 combinaisons ;
· 3 bits expérimentaux ;
· 1 bit pour savoir si le paquet se trouve en bas de la pile d’étiquettes (voir plus loin) ;
· 8 bits pour le TTL (Time To Live).
La commutation MPLS est hiérarchique, c’est-à-dire qu’en plus de commuter des étiquettes, il est possible d’en ajouter ou d’en enlever. Le jeu de labels attaché à un même paquet IP représente une pile d’étiquettes appelée label stack. Un routeur n’analyse que l’étiquette située au sommet de la pile. Nous avons vu qu’un label constituait un tunnel. Avec une pile d’étiquettes, il est possible de réaliser des tunnels de tunnels. Le protocole NHLFE (Next Hop Label Forwarding Entry) permet au routeur Ingress de caractériser les liens (ATM, Frame relay) et le protocole ILM (Incoming Label Map) est utilisé par un routeur intermédiaire pour l’empilement/dépilement d’étiquette. Notons que la classification en FEC n’est réalisée que par le routeur Ingress de chaque niveau de la hiérarchie comme le montre la figure suivante :
Figure 13 : Commutation Hiérarchique MPLS
Comme le montre la figure précédente, MPLS introduit des niveaux de hiérarchie permettant l’agrégation. Plus un niveau est bas dans cette hiérarchie, plus l’agrégation de LSR de niveaux supérieurs est grande entre 2 LSR d’un même niveau. Un router Ingres réalise un ajout de label (push) alors qu’un router Egress réalise une suppression de label (pop) à chaque niveau. Le routeur de plus bas niveau réalise du label swapping (swap) tout comme les routeurs des niveaux hiérarchiques supérieurs (qu’ils soient Ingress, Egress ou intermédiaires). Un label étant ajouté quand le paquet passe à un niveau hiérarchique plus élevé, la pile d’étiquettes s’allonge et le TTL est systématiquement positionné à 0. Seul le TTL correspondant au plus bas niveau de la hiérarchie (level N) est positionné à 1 pour dire que la pile d’étiquettes ne possède qu’une étiquette (voir figure ci-dessous).
Figure 14 : Architecture des Label Hiérarchique MPLS
1.5 Distribution d’étiquettes :
Afin de pouvoir utiliser les LSPs (Label Switched Paths), les tables d’acheminements de chaque LSR (Label Switched Router) doivent effectuer un lien du couple {interface d’entrée, valeur d’étiquette} vers le couple {interface de sortie, valeur d’étiquette}. Ce processus est appelé la distribution d’étiquettes, ou la configuration de LSP.
L’IETF (Internet Engineering Task Force) ne spécifie pas un protocole unique de distribution des étiquettes entre LSRs, mais au contraire recommande le recours à des protocoles multiples, pour une utilisation adaptée aux différents scénarios possibles.
De ce fait plusieurs approches peuvent être envisagées pour la distribution d’étiquettes, et ce indépendamment des besoins matériels intrinsèques du réseau MPLS, et des politiques de management utilisées sur le réseau. Le principe est qu’un LSP est configuré soit en réponse à une requête du LSR d’entrée (ingress LSR), ce qui correspond au mode « downstream-on-demand », soit de manière préemptive par les LSRs du réseau ou le LSR de sortie (egress LSR), ce qui correspond au mode « downstream unsolicited ». Le cas où les deux types de configurations se réalisent en même temps est une situation envisageable. Le LSP résultant sera alors complètement configuré vers le milieu du réseau MPLS, au point de rencontre des deux types de configuration.
Dans tous les cas, les étiquettes sont allouées dans le sens montant (le sens montant étant pris comme celui contraire au flux de données), ce qui signifie que l’information relative à l’allocation se propage en direction de la source des données. La figure ci-dessous permet d’illustrer ces propos.
Cas de deux LSPs (Label Switched Paths) dans un réseau MPLS.
Le LSR D informe le LSR B que ce même LSR B doit utiliser l’étiquette 47 pour tous les paquets destinés à l’utilisateur Z. Le LSR B alloue alors une nouvelle étiquette (21), introduit la correspondance dans sa table d’acheminement, et informe enfin le LSR A que ce même LSR A doit utiliser l’étiquette 21 pour tous les paquets destinés à l’utilisateur Z.
Plusieurs options sont possibles pour contrôler la configuration des LSPs, c’est-à-dire la distribution d’étiquettes, et les protocoles utilisés à cette fin sont décrits ci-après :
Les protocoles CR-LDP et RSVP seront étudiés en détail et comparés dans les paragraphes suivants.