MPLS – Multi-Protocol Label Switching François Spies Université de Franche-Comté – I.U.T. Belfort-Montbéliard Résumé—L'objectif de ce travail pratique est de manipuler le protocole MPLS et découvrir certaines fonctionnalités. Le protocole MPLS devient progressivement le protocole utilisé au coeur de l'architecture des grands opérateurs de réseaux informatiques. Il procure bons nombres des caractéristiques de la technologie réseau ATM, mais dans une version logicielle. En effet, c'est la solution la plus élaborée aujourd'hui pour transporter des flux de natures différentes en faisant respecter les contraintes d'acheminement. C'est par exemple une des solutions proposant des règles de qualité de service au triple play. Le triple play s'est largement développé ces dernières années auprès des particuliers grâce aux solutions de convergence Voix-Données-Images. L I.INTRODUCTION a gestion des réseaux d'opérateurs devient de plus en plus complexe. En effet, la taille des réseaux qu'ils doivent gérer combiner aux nombreuses contraintes techniques, législatives et commerciales les oblige à développer des solutions compliquées. Parmi ces contraintes techniques, nous pouvons mentionner l'acheminement rapide, la haute disponibilité, la répartition équilibrée du trafic, la qualité de service, la sécurité des investissements, la sécurisation des transactions... Ces contraintes rendent le routage difficile à réaliser. En effet, le calcul des chemins optimaux dans un graphe s'effectue actuellement essentiellement à partir de calcul a priori. Les accords de régulations de trafic entre opérateur sont également difficile à traduire en terme de routage. La qualité de service et l'offre de service triple play très développée avec la technologie ADSL (Asymmetric Digital Subcriber Line) [1] oblige les opérateurs de réseaux informatiques à effectuer une convergence VoixDonnées-Images sans artefact. II.HISTORIQUE DES RÉSEAUX D'OPÉRATEUR Une technologie réseau à longtemps répondue à nombre de ces contraintes, c'est l'ATM (Asynchronous Transfert Mode) [2]. Sur la figure 1, une plate-forme ATM permet d'observer les similitudes avec une plate-forme Ethernet. Les supports physiques sont semblables avec de la paire de cuivre torsadée ou de la fibre optique avec des spécifications similaires. Cependant, l'ATM propose une technologie très différente d'Ethernet avec de la commutation de cellules. Le mot cellule est employé pour référencer des paquets de taille fixe, i.e. 48 octets de données et 5 octets d'en-tête. De cette manière, la ressource de communication n'est utilisée que régulièrement et pendant une courte durée. Les priorités de retransmission pouvant être appliquées rapidement entre 2 transmissions de cellule à priorité plus faible. Malheureusement, les concepteurs de l'ATM ont “oublié” d'intégrer la dimension économique dans l'architecture en positionnant de nombreuses tâches au niveau électronique. Cela a eu comme conséquence, d'alourdir les interfaces réseaux avec de nombreux composants électroniques. Les cartes ATM et les appareils actifs des réseaux ATM coûtaient extrêmement chers comparativement aux équipements Ethernet. Cela dit, seul l'ATM propose directement de manière native dans la technologie plusieurs formes de qualité de service et par conséquant offre la convergence de la voix, des données et de l'image (VDI). Actuellement, nous utilisons plutôt les termes VoIP, ToIP. Du coup, nous retrouvons assez naturellement cela dans la technologie ADSL qui s'est très largement inspirée des principes et l'ATM avec la notion de VP/VC (Virtual Path/Virtual Channel). C'est ce principe de base avec un mode connecté et une qualité de service associée que nous pouvons donner la priorité au flux de télévision au détriment du flux de données par exemple afin de ne pas perdre de paquets composant une image. III.PRÉSENTATION GÉNÉRALE DE M.P.L.S. Après l'échec commercial de la technologie ATM principalement soutenue par les grands opérateurs de téléphonie fixe tels que France Télécom ou AT&T, l'IETF a proposé à un groupe de travail d'effectuer une nouvelle proposition. Cette nouvelle proposition doit intégrée, plusieurs caractéristiques, dont : -- accroître la vitesse de traitement des paquets aux coeurs des grands réseaux Fig. 3. Empilement de commutateurs ATM Fore LE155 et serveur MPOA. Email auteur : francois.spies@univ-fcomte.fr date du document 1er novembre 2007. Fig. 2. Principe de la commutation par label avec le protocole MPLS. (croquis de Christophe Fillot [3]) -- proposer de la qualité de service pour les flux -- effectuer des stratégies de routage variées, incluant des métriques technologiques, mais aussi commerciaux -- offrir des solutions d'ingénierie de trafic (traffic engineering) pour améliorer la répartition de charge du réseau. À l'époque, le constat est le suivant, -- au niveau 2, la commutation est rapide et s'effectue par exemple avec la technologie ATM, -- au niveau 3, le routage est lent et s'effectue avec le protocole IP. C'est ainsi, que le protocole MPLS [3] a été proposé. C'est une solution à l'interface des niveaux 2 et 3 et elle est logicielle. Elle s'appuiera sur un principe de commutation de labels, proche de l'ATM avec la commutation de cellules. De plus, elle utilise un mode connecté toujours proche de l'ATM afin de proposer de la qualité de service par flux. Le coeur du réseau utilise MPLS, mais l'extrémité doit pouvoir continuer de fonctionner de manière simplifiée pour que les équipements ne soient pas trop complexes et que les administrateurs situés à l'extrémité du réseau puissent continuer d'exercer sans formation complémentaire. La notion de nuage MPLS apparaît avec son encapsulation à l'entrée et sa déencapsulation en sortie. Ainsi, la commutation MPLS du coeur de réseau reste transparente à l'extrémité. A.Commutation de label La commutation de label consiste à effectuer un acheminement de paquets à partir d'un chemin établi préalablement constitué d'une liste de labels (voir figure 2). Les numéros de label sont créés localement. Le choix du chemin entre la source et la destination est effectué sur le premier routeur MPLS. À partir de là, le paquet est transporté de routeur en routeur en utilisant le chemin déterminé par le premier routeur MPLS appelé ingress. Ce chemin déterminé s'appelle un tunnel, puisque MPLS ajoute un en-tête entre l'en-tête de niveau 2 et l'en-tête de niveau 3. Ainsi, l'en-tête de niveau 3 est masqué pour empêcher les routeurs d'effectuer leur action de routage. La commutation sur chaque routeur interne à MPLS s'effectue à partir de sa table de commutation de label. C'est ainsi que le tunnel est emprunté du début à la fin sans que le paquet puisse être détourné le long du parcours. L'inconvénient de ce mécanisme est un temps d'adaptation plus important lorsqu'une défaillance intervient dans le réseau. En effet, chaque tunnel impacté par le routeur ou la liaison défaillant devra se reconstruire pour que le trafic puisse à nouveau être acheminé. La sortie du tunnel s'effectue par le dernier routeur MPLS du chemin (egress) qui doit retirer l'en-tête MPLS du paquet pour le libérer et que le routage IP puisse à nouveau s'appliquer pour atteindre le destinataire. La description de ces chemins de label est guidée par 3 catégories de définition de destinataires. Ce sont les FEC (Forwarding Equivalent Classes). Ces FEC peuvent avoir 3 formes : -- un identifiant de routeur, -- un préfixe d'adresses IP (agrégation), -- un flux de communication (IP et port de la source et de la destination). Dans l'exercice qui sera effectué, c'est l'identifiant du routeur qui a été utilisé. B.Routage implicite Il n'y a pas de fonction d'établissement de route avec MPLS dans le mode implicite. Le protocole utilisé est LDP (Label Distribution Protocol) qui n'a qu'un rôle d'information et non pas de calcul. Pour cela, il s'appuie sur un protocole de routage de niveau 3 comme IS-IS ou OSPF par exemple. Il faut donc commencer par activer ce protocole de routage IP avant de mettre en oeuvre le routage implicite avec LDP. Nous utiliserons le protocole de routage OSPF [4] dans notre configuration. C.Routage explicite Un des avantages très important du protocole MPLS est de pouvoir conjuguer du routage automatique (implicite) recherchant les meilleures routes et de le compléter avec des paramètres manuels en imposant par exemple certaines liaisons (explicite). En effet, les routes optimales proposées par les protocoles de routage sont des chemins idéaux sans considérer les autres flux. Dit autrement, ce sont des configurations statiques calculées a priori et ne tenant pas compte de la réalité du trafic en cours. Cette notion de dynamique peut être introduite dans les tables de commutation de label par la création de tunnel dédié. En effet, il est possible pour l'administrateur réseau Fig. 3. Empilement de routeurs Cisco 1841 constitués de 2 interfaces Fast Ethernet et 2 interfaces WAN X21. de modifier certains acheminements provoquant des goulots d'étranglement dans son réseau pour soulager les liaisons les plus utilisées. Pour cela, il utilise des mécanismes de réservation de bande passante, mais il peut aussi expliciter une liste d'intermédiaires constituant un tunnel. Ce travail s'appelle l'ingénierie de trafic (traffic engineering). Ces fonctions explicites peuvent aussi être utilisées pour exprimer d'autres contraintes qui peuvent d'être d'ordre commercial, concurrentiel ou économique. D.Qualité de service Lorsqu'un tunnel est décrit entre 2 points du réseau MPLS, il est possible de le qualifier avec des contraintes de bande passante notamment. Ainsi, au moment du calcul du chemin, le tunnel créé pourra prendre en compte uniquement les liaisons respectant les contraintes. Pour cela, il faut que la technologie réseau sous-jacente le permette. MPLS n'est qu'une solution logicielle et en aucun cas, ne pourra réserver une partie de bande passante sur une technologie réseau de niveau 2 ne le permettant pas. Cela dit, il est possible avec divers artifices de transformer une technologie réseau n'offrant pas de qualité de service en utilisant une encapsulation PPP ou en créant des tunnels VPN par exemple. IV.MISE EN PLACE D'UN RÉSEAU MPLS Pour mettre en oeuvre quelques fonctionnalités liées au protocole MPLS, il convient de créer des réseaux assez grands. Il faut un minimum de 4 routeurs pour avoir des routeurs frontières (edge LSR) qui constituent le tour du nuage MPLS et des routeurs internes ayant toutes leurs interfaces réseau dans le nuage MPLS. De plus, ces 4 routeurs offrent deux chemins différents pour aller d'un point à l'autre ce qui nous permettra d'observer les changements de routage. Les routeurs utilisés sont des Cisco 1841 possédant 2 interfaces Fast Ethernet et deux modules d'extension. Les routeurs disposent d'un module d'extension avec 2 interfaces série synchrone X21 et fonctionnent avec la version SP Services du système d'exploitation IOS (c1841-spservicesk9-mz.124-6.XE1) [5,6]. Ainsi configuré, chaque routeur coûte environ 1500 euros. Un vue en pile et une vue éclaté sur les figures 3 et Fig. 4. Vue éclatée d'un routeur Cisco 1841. 4 permettent de visualiser ces équipements. Sur la figure 4, l'alimentation est sur la droite, les grilles représentent les logements des modules d'extension, le processeur est en position centrale et le système d'exploitation est situé sur une carte extractible au format Compact Flash (CF). A.Architecture IP de la plate-forme Dans un premier temps, nous créons un réseau IP avec une classe par réseau, tel qu'illustré sur la figure 5. Le protocole OSPF est activé sur l'ensemble des 4 routeurs. Nous pouvons contrôler le bon fonctionnement de la configuration avant de mettre en place le protocole MPLS par dessus. Certaines mesures et observations nous permettent au préalable d'identifier les meilleurs chemins, les latences et les bandes passantes disponibles. Le protocole de routage OSPF s'activera avec les commandes suivantes sur le routeur R1 par exemple : router ospf 10 network 192.168.0.0 0.0.0.255 area 10 network 192.168.2.0 0.0.0.255 area 10 network 192.168.4.0 0.0.0.255 area 10 Sur la figure 6, un paquet de contrôle de connexion est échangé entre le routeur R3 et le routeur R4. Celui-ci est capturé par le PC3 qui intègre le logiciel wireshark [10]. C'est un paquet de type Hello du protocole OPSF. Sur la figure 7, c'est un paquet de changement d'état qui a été capturé dans les mêmes conditions que précédemment. Une liaison a été deconnectée pour provoquer cette émission de type Link State (LS). B.Mise en place du protocole MPLS Dans un second temps, le protocole MPLS est mis en place avec la délimitation du nuage MPLS [7]. Tous les routeurs utilisant MPLS seront activés avec la commande : ip cef Tous les liens placés dans le nuage MPLS seront activés avec la commande suivante : interface serial 0/0/0 mpls ip De plus, il faut créer une nouvelle interface pour utiliser un identifiant du routeur indépendant des liaisons. C'est loopback qui est utilisé pour cela : Fig. 5. Architecture IP utilisée. interface loopback 0 ip address 10.0.0.1 255.255.255.255 Enfin, le protocole OSPF diffusera en complément des commandes précédentes l'interface loopback : router ospf 10 network 10.0.0.0 0.0.0.255 area 10 À présent, le protocole MPLS est activé. L'encapsulation à l'entrée du nuage MPLS est effective. La commutation de label fonctionne sur les routeurs internes à MPLS. La déencapsulation en sortie du nuage MPLS est effectuée pour restituer à l'identique le paquet afin que l'action MPLS soit transparente. La diffusion de paquets LDP peut être observée sur l'ordinateur d'analyse de trafic (PC3) et restituer en utilisant le logiciel wireshark. La figure 8 correspond à une capture d'écran lors de l'interception d'un paquet LDP. C.Ajout d'éléments explicites Pour terminer l'exercice, une mise en place d'un tunnel explicite est réalisée pour illustrer l'association d'un routage adaptatif avec un routage statique [8,9]. Le tunnel est mis en place entre le routeur R1 (10.0.0.1) et le routeur R4 (10.0.0.4) de manière unidirectionnelle. Cette configuration débute avec l'annonce d'une stratégie d'ingénierie de trafic sur tous les routeurs : mpls traffic-eng tunnels Cette commande doit également être placée sur chaque interface où MPLS est activé. La déclaration d'un tunnel se fait uniquement sur le point de départ de celui-ci. Dans notre exemple c'est sur le routeur R1 qu'il faut le définir comme suit : interface Tunnel50 ip unnumbered loopback0 tunnel destination 10.0.0.4 tunnel mode mpls traffic-eng tunnel mpls traffic-eng autoroute announce tunnel mpls traffic-eng path-option 1 explicit name RT Ensuite, il faut associer un chemin à ce tunnel, à l'aide des commandes suivantes toujours sur le routeur R1 : ip explicit-path name RT enable next-address 192.168.4.2 next-address 192.168.5.2 Pour terminer, il faut indiquer par le protocole OSPF qu'une action d'ingénierie de trafic est mise en oeuvre sur tous les routeurs. Les commandes suivantes doivent être ajoutées sur tous les routeurs : router ospf 10 mpls traffic-eng area 10 mpls traffic-eng router-id loopback0 Fig. 6. Capture d'un paquet de type Hello du protocole OSPF. La réalisation que nous venons de bâtir, permet au trafic allant du routeur R1 vers le routeur R4 d'utiliser un chemin différent du trafic allant du routeur R4 vers le routeur R1. En effet, la définition du tunnel detour0 ne vaut que pour le sens du routeur R1 vers le routeur R4. Dans l'autre sens, c'est l'autre parcours qui est privilégié par le jeu d'un coût fixée arbitrairement plus faible. La figure 9 illustre un trafic ICMP établi entre le routeur R1 et le routeur R4 avec l'interception d'un paquet encapsulé dans un en-tête MPLS. La commande permettant de contrôler l'activation du tunnel est la suivante : show mpls traffic-eng tunnels Name: Router_detour0 Status: Admin: up Oper: up (detour0) Destination: 10.0.0.1 Path: valid Signalling: connected path option 1, type explicit RT (Basis for Setup, path weight 161) Config Parameters: Bandwidth: 0 kbps (Global) Priority: 7 7 0x0/0xFFFF Metric Type: TE (default) AutoRoute:enabled LockDown:disabled Loadshare:0 auto-bw: disabled Fig. 7. Capture d'un paquet de type Link State du protocole OSPF. Affinity: bw-based InLabel : OutLabel : FastEthernet0/1, 23 RSVP Signalling Info: Src 10.0.0.1, Dst 10.0.0.4, Tun_Id 0, Tun_Instance 144 RSVP Path Info: My Address: 192.168.0.1 Explicit Route: 192.168.4.2 192.168.5.2 10.0.0.4 Record Route: NONE Tspec: ave rate=0 kbits, burst=1000 bytes, peak rate=0 kbits RSVP Resv Info: Record Route: NONE Fspec: ave rate=0 kbits, burst=1000 bytes, peak rate=0 kbits History: Tunnel: Time since created: 55 minutes, 29 seconds [9] Christophe Fillot : Implémentation MPLS avec Cisco http://www.frame ip.com/mpls-cisco/ [10] http://www.wireshark.org En cas d'échec, un message d'erreur relativement explicite permet de corriger une erreur de configuration. Fig. 9. Capture d'un paquet IP transporté dans un tunnel MPLS. Fig. 8. Capture d'un paquet Label Distribution Protocol utilisé pour construire les tables de commutation MPLS. V.CONCLUSION Le protocole MPLS possède des avantages comparés aux autres protocoles et technologies réseaux existants. Parmi ceux-ci, nous avons relevé les fonctionnalités de la commutation par label, la possibilité d'établir des chemins à qualité de service, la coexistante de stratégies de routage dynamique et de routage statique. L'expertise de gestion des réseaux devient de plus en plus importante. La compétence d'ingénierie de trafic s'impose progressivement aux grands opérateurs. L'absence d'évolution de l'ATM s'est fait sentir pour gérer le coeur du réseau. Celle-ci a permis l'émergence d'une solution logicielle, certes plus lente, mais ouvrant sur de larges perspectives et évolutions. Certaines caractéristiques du protocole MPLS n'ont pas pu être mises en évidence dans ce sujet d'introduction, mais il faut relever par exemple que MPLS tout comme les tunnels permettent de relier des fragments de classes IP physiquement éloignés tout en offrant de mieux contrôler et sécuriser les réseaux. REFERENCES [1] [2] [3] [4] [5] [6] [7] [8] http://fr.wikipedia.org/wiki/Asymmetric_Digital_Subscriber_Line http://en.wikipedia.org/wiki/Asynchronous_Transfer_Mode http://en.wikipedia.org/wiki/Multiprotocol_Label_Switching http://fr.wikipedia.org/wiki/OSPF Architecture des systèmes IOS sur les routeurs Cisco 1800 http://www.cisco.com/en/US/products/ps5853/prod_bulletin0900ae cd802edc81.html Cisco IOS Release 12.3(14) http://www.cisco.com/en/US/products/ps5854/prod_bulletin0900ae cd802d0c05.html Cisco : Configuring Basic MPLS using OSPF http://www.cisco.com/warp/public/105/mplsospf.pdf Cisco : (MPLS Basic Traffic Engineering Using OSPF Configuration Example) http://www.cisco.com/warp/public/105/mpls_te_ospf.pdf