User Tools

Site Tools


informatique:cisco:mpls

This is an old revision of the document!


MPLS

C'est un protocole de commutation de paquet, créé à l'origine pour soulager la CPU des routeurs suite à la multiplication du nombre de réseaux à router ; mais depuis le développement de la puissance des puces spécialisées (ASICs) ainsi que le développement des techniques de commutation comme le CEF, l'atout majeur du MPLS réside dans ses fonctions d'ingénierie de trafic, de qualité de service ou de VPN.

Quand un paquet entre dans un nuage MPLS, le routeur d'entrée (iLSR) lui assigne un label, et chaque routeur intermédiaire (LSR) commute le paquet vers le routeur suivant en modifiant son label. Le chemin parcouru par le paquet est prédéfini (comme de la commutation de cellule en ATM) grâce au protocole LDP, et donc beaucoup plus rapide que du routage traditionnel. Par exemple quand un LSR R2 voit un paquet arriver du routeur R1 avec le label 4, il sait qu'il faut réacheminer ce paquet avec le label 8 vers le routeur R3. R3 voit le paquet arriver avec le label 8 depuis R2 ; il le renvoie vers R4 avec le label 3, et ainsi de suite (on appelle cela le label swapping) jusqu'au routeur de sortie (eLSR) qui va supprimer le label du paquet. Ces décisions se font sur la base d'une table d'association “source/label ⇒ destination/label” locale à chaque routeur, qui est mise à jour par le protocole LDP.

Voici un schéma de principe piqué sur l'excellent article de frameip 1) :

Il existe 2 modes de fonctionnement :

  • frame mode MPLS : insertion d'un champ de 32 bits entre les niveaux 2 et 3 pour contenir le label MPLS (20 bits pour le label + 3 bits expérimentaux (utilisés par Cisco pour la QoS (champ CoS) + 1 bit bottom-of-stack indicator + 8 bits de TTL)
  • cell mode MPLS ou MPLS over ATM : utilisation du header ATM pour contenir le label MPLS

Pour ces raisons on dit que le MPLS est un protocole de niveau 2 ou 2,5.

Terminologie

  • iLSR et eLSR (ingress/egress Label Switch Router) = routeurs d'entrée/sortie du nuage MPLS qui, respectivement insèrent (impose label) et suppriment (pop label) le label MPLS du paquet.
  • LDP (Label Distribution Protocol) : protocole standardisé par l'IETF de dialogue de labels utilisé pour la création de la LFIB sur tcp/646. Le LDP utilise des informations du control plane pour construire le data plane.
  • TDP (Tag Distribution Protocol) : idem mais protocole propriétaire Cisco sur tcp/711
  • control plane
    • échange les informations de routage (OSPF, EIGRP, …) = très lourd
    • échange les labels via LDP, TDP ainsi que BGP et RSVP
  • data plane
    • moteur de commutation de paquet ; léger
  • LIB (Label Information Base)
  • TIB (Tag Information Base) ; contient, pour chaque réseau, tous les labels appris des LSRs voisins
  • TFIB (Tag Forwarding Information Base) créée à partir de la TIB, cette base est utilisée pour la commutation de paquet ; elle utilise l'IGP pour sélectionner, pour chaque destination, l'entrée de la TIB vers le plus court chemin (le voisin le plus proche qui annonce le réseau)
  • LFIB (Label Forwarding Information Base ?)
  • PHP (Penultimate Hop Popping) optimise les performance du MPLS en évitant un lookup sur le routeur de sortie (eLSR).
  • FEC (Forwarding Equivalent Classes)
  • label stacking pile de label

Mise en place

Soit 2 routeurs R1 et R2 : on active le CEF et le MPLS sur les interfaces qui vont bien ; on augmente la MTU des paquets MPLS (il faudra en tenir compte sur les éventuel équipements intermédiaires) :

Sur R1 :

ip cef
int fa0/1
 description vers R2
 ip address 10.0.0.1 255.255.255.0
 mpls label protocol ldp
 mpls ip
 mpls mtu 1512

Sur R2 :

ip cef
int fa0/1
 description vers R1
 ip address 10.0.0.2 255.255.255.0
 mpls label protocol ldp
 mpls ip
 mpls mtu 1512

MPLS VPN

  • P-router (Provider) : routeur de transit
  • PE-router (Provider Edge) : routeur de bordure de nuage MPLS, reliés aux CE
  • CE-router (Customer Edge) : routeur de bordure client qui n'a pas le notion de MPLS

MP-BGP

MP-BGP (Multiprotocol BGP) permet d'échanger des routes Multicast et des routes VPNv4.

Un RD (Route Distinguisher) est un identifiant de 64 bits accolé à chaque subnet d'un VRF (Virtual Router Forwarding) ; il permet de ne pas mélanger les réseaux de différents clients/VPN qui pourraient se recouvrir. Il s'écrit sous la forme ASN:nn, par exemple 100:1 ; quand on ajoute une annonce de réseau (un préfixe avec son masque) cela donne 100:1:192.168.0.0/24

RT (Route Target)est une sorte de communauté qui permet d'échanger les annonces VPNv4 entre tous les PE qui y appartiennent. Il y a les import et les export ; pour faire communiquer 2 PE ensemble il faut définir un VRF comme cela :

Sur R1 :

ip vrf RED
 rd 100:20
 route-target export 500:1
 route-target import 500:2

Sur R2 :

ip vrf RED
 rd 100:20
 route-target export 500:2
 route-target import 500:1

Liens

informatique/cisco/mpls.1246633245.txt.gz · Last modified: 2013/10/14 20:52 (external edit)