Table of Contents

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 :

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

Un label MPLS peut correspondre à une IP destination, de la QoS, une adresse source ou un circuit de niveau 2.

Terminologie

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 éventuels équipements intermédiaires) :

Sur R1 :

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

Sur R2 :

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

La MTU doit être augmentée sur les interfaces WAN à cause du header MPLS :

MPLS VPN

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 une adresse VPNv4, par exemple 100:1:192.168.0.0/24. Ces adresses VPNv4 sont échangées entre les PE routers en MPBGP.

RT (Route Target) est une sorte de communauté qui permet d'échanger les annonces VPNv4 entre tous les PE qui y appartiennent. Les RT permettent donc de définir l'appartenance à un ou plus VPN. Il y a les import et les export.

Le BGP VPNv4 n'est utilisé qu'entre PE routers ; les P routers n'utilise que du BGP IPv4 pour que la solution soit scalable.

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

Vérifications

show mpls interfaces
show mpls ldp discovery
show mpls ldp neighbor
show mpls ldp bindings

Liens