MPLS – Multi-Protocol Label Switching - Université de Franche

Transcription

MPLS – Multi-Protocol Label Switching - Université de Franche
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 : [email protected]
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