1 / 55

MPLS ( MultiProtocol Label Switching )

MPLS ( MultiProtocol Label Switching ). Christophe Fillot DSI. Rappels sur le routage IP Intérêt de MPLS. Routage des paquets IP Le routeur reçoit un paquet IP sur une de ses interfaces, Il extrait l ’adresse IP de destination présente dans le paquet,

quasar
Download Presentation

MPLS ( MultiProtocol Label Switching )

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MPLS(MultiProtocol Label Switching) Christophe FillotDSI

  2. Rappels sur le routage IP Intérêt de MPLS

  3. Routage des paquets IP • Le routeur reçoit un paquet IP sur une de ses interfaces, • Il extrait l ’adresse IP de destination présente dans le paquet, • Il consulte sa table de routage et détermine l’interface de sortie et l’adresse IP du routeur suivant (next-hop ou prochain saut), • Il construit une nouvelle entête de niveau 2 (avec des protocoles comme ARP par exemple) en fonction des informations obtenues. • Il envoie le paquet sur l’interface de sortie.

  4. Routage IP « saut par saut »: chaque saut doit connaitre l’ensemble des routes!

  5. Problématique • Une recherche dans la table de routage IP est dite « longest match » : pour une adresse IP donnée on doit trouver le préfixe le plus spécifique • Complexe pour les routeurs ayant toutes les routes Internet (plus de 430000 en 2012). • MPLS visait à l’origine à accélérer la commutation des paquets, en utilisant un numéro/label plutôt que l’adresse IP de destination (ou une combinaison de plusieurs critères). Un label est ajouté en entrée de réseau, et supprimé à la sortie, ce qui rend l’opération transparente au final. Sur le chemin, il y a « remplacement » (swap) de label. • Ainsi, les routeurs intermédiaires n’ont plus à prendre de décision complexe à chaque paquet, juste à analyser un label (lookup dans une table). • Il faut toutefois mettre en place un système de distribution des labels pour créer des chemins (LSP – Label SwitchedPath).

  6. Principes de base de MPLS

  7. Encapsulation • Les labels sont insérés entre l’entête de niveau 2 (Ethernet, …) et l’entête de niveau 3 (IPv4, IPv6, …) • On peut dire qu’il s’agit du niveau « 2.5 »… • Il est possible d’avoir plusieurs labels consécutifs (stacking) • Un label a une taille de 4 octets (32-bits) et contient les informations suivantes: • Label : entier sur 20 bits • TTL (Time-To-Live) : 8 bits • CoS/EXP : 3 bits (utilisé pour la qualité de service) • BoS (Bottom of Stack): 1 bit (dernier label de la pile si = 1)

  8. Commutation de label • On peut résumer les opérations de commutation: • « Push Label » : insère un nouveau label (en tête) => routeur d’entrée (ingress) • « Pop Label » : supprime le 1er label => routeur de sortie (egress) • « Swap » : remplacement de label => routeurs intermédiaires • Les routeurs utilisent le 1er label de la pile pour la commutation. • Un peu de terminologie: • Label SwitchedPath (LSP): chemin MPLS • Label Switch Router (LSR): routeur supportant MPLS • Ingress LSR: routeur d’entrée (insertion de label) • Egress LSR: routeur de sortie (pop de label) • Forwarding Equivalent Class (FEC): groupe de paquets qui sont commutés de la manière, suivant les mêmes critères (ex le plus courant: adresse IP destination), avec le même chemin.

  9. Distribution de Labels • Protocole : LDP (Label Distribution Procotol) – RFC 5036 • Les routeurs voisins établissent une adjacence (Hello en UDP multicast, puis connexion TCP) • 2 modes: • Downstream on Demand : un routeur demande explicitement un préfixe pour une FEC • UnsollicitedDownstream : le routeur annonce à ses voisins un label pour chaque préfixe qu’il connait • Les routeurs construisent une LIB (Label Information Base), en consolidant les informations reçues de leurs voisins LDP. • On a typiquement plusieurs labels pour un même préfixe IP => comment choisir ?

  10. Construction de la LFIB • Les routeurs utilisent toujours un IGP pour calculer le meilleur chemin : ils construisent une RIB (Routing Information Base), à partir des différents protocoles configurés (routes connectées, statiques, OSPF, etc) • Avec l’aide de la RIB, on peut déterminer le meilleur label à utiliser pour un préfixe donné (le nexthop figure dans la LIB). • On garde les meilleurs labels pour générer la LFIB (Label Forwarding Information Base) • Le routeur utilise la LFIB pour la commutation des paquets MPLS. La LFIB contient typiquement ces informations: • Label d’entrée • Label de sortie (ou indication de « pop label » si dernier saut) • Interface de sortie • Préfixe IP • Pour les routeurs hardware, la LFIB est programmée dans le matériel (TCAM, …)

  11. Construction de la LFIB : résumé

  12. Exemple

  13. Pen-Ultimate Hop Popping (PHP) • Plutôt qu’annoncer un « vrai » label, le dernier routeur du LSP peut annoncer un label appelé « Implicit-Null » (label réservé « 3 »). • L’avant-dernier routeur, lorsqu’il reçoit ce binding, sait qu’il doit réaliser une opération « pop » au lieu d’une opération « swap ». Le label Implicit-Null n’apparaît en fait jamais sur le lien. • => Cela évite que le dernier routeur ait à analyser un label puis à faire un lookup IP dans sa FIB (il ne fait plus que le lookup IP). • Par défaut sur Cisco IOS

  14. Qualité de service (QoS) • Un label MPLS contient un champ de 3 bits appelé CoS (ou EXP) qui sert au marquage de la QoS. • Similaire à l’IP Precedence du champ DSCP d’un paquet IP. • Les routeurs MPLS se basent sur ce champ CoS pour appliquer les règles de QoS (les routeurs « IP » utilisent le champ DSCP). • Par défaut, les routeurs ingress recopient le champ IP DSCP dans le champ CoS MPLS. • Possibilité sur le routeur Egress d’annoncer un label « Explicit-Null » pour garder l’information de CoS MPLS jusqu’au bout. Explicit-Null est un label réservé (0 pour IPv4, 2 pour IPv6) qui apparaît sur le lien.

  15. Cœur de réseau « BGP-free » • On reprend notre exemple initial, où tous les routeurs sont peers BGP et connaissent l’ensemble des routes. • On active MPLS sur l’ensemble des routeurs, et on ne garde BGP qu’entre routeurs de bordure (il faut donc juste un IGP (pour les routes du coeur) et LDP sur les routeurs intermédiaires). • Les routeurs d’entrée encapsulent les paquets avec un label MPLS. Ce label correspond au routeur de bordure de sortie (next-hop BGP pour le préfixe correspondant à l’adresse IP de destination). • C’est le chemin optimal, puisque le label a été choisi en fonction de ce qui a été calculé par l’IGP. • Les routeurs intermédiaires acheminent le trafic en se basant sur le label, et n’examinent plus l’entête IP. Ils peuvent donc acheminer des paquets pour lesquels l’adresse IP de destination leur est totalement inconnue. • En sortie, le routeur reçoit un paquet IP (PHP…) et le route normalement.

  16. Routage IP/MPLS : seuls les routeurs de bordure connaissent toutes les routes

  17. VPN niveau 3 avec MPLS/VPN

  18. VPN niveau 3 (L3VPN) • De nombreuses entreprises disposent de sites externes (agences) qui doivent se raccorder à un site central (le siège) • On utilise généralement des adresses IP privées (RFC 1918), non routables sur Internet, pour l’adressage interne. • Elles peuvent faire appel à des opérateurs capables de leur fournir un service de VPN niveau 3 (l’opérateur s’occupe du routage entre les sites de l’entreprise) • Problème: différents clients sont susceptibles d’utiliser des plans d’adressage privés qui se recouvrent. • MPLS/VPN permet de résoudre ce problème, en isolant complètement le trafic des clients. • Attention, MPLS/VPN ne fournit aucun chiffrement, il s’agit d’isoler du trafic. Pour sécuriser le trafic, il faut utiliser un protocole comme IPSec.

  19. Exemple d’opérateur raccordant 3 clients différents

  20. Virtual Routing and Forwarding (VRF) • Un routeur IP « classique » ne dispose généralement que d’une seule table de routage, utilisée pour tout le trafic IP. • Pour MPLS/VPN, il est nécessaire d’isoler le trafic entre les différents clients, qui peuvent en plus avoir des plans d’adressages recouvrants (adressage privé) • => Les routeurs MPLS/VPN supportent plusieurs tables de routage dissociées appelées « VRF ». Chaque VRF dispose de ses propres RIB et FIB. • Pour placer le trafic dans une VRF donnée, il existe plusieurs méthodes: • Assignation en « dur » d’une interface ou d’une sous-interface dans la VRF • Méthode dynamique, en fonction de différents critères (typiquement adresses IP des paquets entrants). • Il est possible d’utiliser les VRF sans utiliser MPLS/VPN, il s’agit de VRF Lite.

  21. Exemples de configuration Cisco IOS ! Definition de la VRF ipvrf BLUE rd 100:1 • route-target import 100:1 • route-target export 100:1 ! interface Ethernet1/0 ipvrfforwarding BLUE ip address 10.0.0.1 255.255.255.0 ! ip route vrf BLUE 10.1.0.0 255.255.255.0 10.0.0.2 ! routerospf 200 vrf BLUE network 10.0.0.0 0.0.0.255 area 0 ! router bgp 65000 address-family ipv4 vrf BLUE neighbor 10.0.0.1 remote-as 65001 neighbor 10.0.0.3 activate ! !

  22. Mapping de sous-interfaces dans des VRF différentes

  23. Mapping de sous-interfaces dans des VRF différentes: Cisco IOS interface Ethernet1/0.1 • encapsulation dot1Q 100 ! Description VLAN 100: « Personnels » ipvrfforwarding pers ipaddress 10.0.0.1 255.255.255.0 ! • interface Ethernet1/0.2 • encapsulation dot1Q 200 ! Description VLAN 200: « Etudiants » • ipvrfforwardingetu • ipaddress 10.1.0.1 255.255.255.0 • ! • interface Ethernet1/0.3 • encapsulation dot1Q 300 ! Description VLAN 300: « Invités » • ipvrfforwardingguests • ipaddress 10.2.0.1 255.255.255.0 • !

  24. Terminologie • 3 types de routeurs : P, PE, CE • Router « P » (Provider) : appartient au cœur de réseau de l’opérateur, il n’a aucune notion de VRF ou de VPN (pas de connexion de clients) • Router « PE » (Provider Edge): appartient à l’opérateur, ces routeurs raccordent les clients et utilisent des VRF pour isoler leur trafic. • Routeur « CE » (Customer Edge): appartient au client, et n’a aucune notion de MPLS ou de VRF. • Les routeurs « P » ne sont pas obligatoires, il est tout à fait possible de monter un backbone avec uniquement des routeurs PE.

  25. MP-BGP • Les routeurs PE « peerent » entre eux en MP-BGP, en utilisant l’address-family « VPNv4  » [AFI 1 (IPv4), SAFI 128 (VPN)] • Les routes échangées contiennent notamment un préfixe dit « VPN-IPv4 » (Préfixe IPv4 + Route Distinguisher) et un Label MPLS, local au PE qui fait l’annonce. • Le RD (Route Distinguisher) permet de distinguer les routes de clients différents. Le RD a une taille de 8 octets (il est configuré manuellement par l’opérateur).

  26. Exemple d’update MP-BGP

  27. Acheminement du trafic • Dans notre exemple, on voit que PE1 reçoit le label 28 du routeur PE2 pour la route VPN-IPv4 100:1:192.168.1.0/24 • Problème: comment utiliser ce label qui est local à PE2 ? Si on envoie un paquet avec le label 28 à P1, celui-ci ne connaît pas ce label (ou il est utilisé pour tout autre chose) => il faut pouvoir aiguiller le trafic vers PE2 ! • Dans l’update MP-BGP, on connait le next-hop (PE2), et on a appris par LDP un label pour cette adresse. • PE1 va construire un paquet avec 2 labels MPLS: • Le 1er label correspond au label pour atteindre PE2. Il est appris via LDP • Le 2nd label correspond au label VPN utilisé par PE2. Il est appris par MP-BGP • Les routeurs intermédiaires ne s’occupent que du 1er label: lorsque le paquet arrive à PE2, le 1er label a été retiré (PHP), seul reste le 2nd label, qui va permettre à PE2 d’aiguiller le paquet vers la bonne interface de sortie.

  28. Exemple d’acheminement

  29. Route-Targets (RT) • Les RT sont des communautés étendues BGP • Un routeur PE annonce les routes d’une VRF avec les RT spécifiés en export. • Les autres routeurs PE importent ces routes dans les VRF qui sont configurées pour importer ces valeurs de RT. • Ne surtout pas confondre avec le RD qui sert à distinguer les routes! • Exemple: le routeur 1 exporte les routes de la VRF « FOO » avec le RT « 100:1 ». Le routeur 2 importe les routes marquées avec le RT 100:1 dans la VRF « BAR ». ! hostname Router2 ! ipvrf BAR rd 300:200 route-target import 100:1 ! ! hostname Router1 ! ipvrf FOO rd 400:150 route-target export 100:1 !

  30. Route-Targets: Topologie Any To Any

  31. Route-Targets: Topologie Hub & Spoke

  32. Configuration Cisco IOS ! hostname PE2 ! ipvrf BLUE rd 100:1 route-targetboth 100:1 ! Both= Import + Export ! interface Loopback0 • ipaddress 10.2.2.2 255.255.255.255 ! interface Ethernet0/1 description Client 1 ipvrfforwarding BLUE ipaddress 192.168.1.1 255.255.255.0 ! router bgp 65000 neighbor 10.1.1.1 remote-as 65000 neighbor 10.1.1.1 update-source Loopback0 ! address-family vpnv4 neighbor 10.1.1.1 activate neighbor 10.1.1.1 send-communityextended ! address-family ipv4 vrf BLUE redistributeconnected ! !

  33. 6PE (IPv6 Provider Edge)

  34. Principes de 6PE • Raccordement de clients IPv6, à travers un cœur MPLS (RFC 4798) • Pas de normalisation de LDP pour IPv6 => Utilisation de MP-BGP [AFI 2 (IPv6), SAFI 4 (label)] • Avec 6PE, le cœur n’a pas besoin d’être « IPv6-aware » • Avantages : • Ne nécessite pas un upgrade du cœur, on conserve l’existant • Seuls les routeurs PE doivent être mis à jour et supporter 6PE, cela peut se faire de manière incrémentale • Même principe que pour VPNv4 => 2 labels sont utilisés, le 1er pour atteindre le PE de sortie, le 2nd correspondant au préfixe IPv6 sur le PE. • Le Next-Hop BGP est annoncé sous forme d’adresse IPv6 « IPv4-Mapped ». Les PE extraient l’adresse IPv4 et recherchent le label annoncé par LDP pour cette adresse.

  35. Exemple d’acheminement

  36. Configuration Cisco IOS ! hostname PE2 ! ipv6 unicast-routing ipv6 cef ! interface Loopback0 • ipaddress 10.2.2.2 255.255.255.255 ! interface Ethernet0/1 description Client IPv6 ipv6 address 2001:660::1/48 ! router bgp 65000 neighbor 10.1.1.1 remote-as 65000 neighbor 10.1.1.1 update-source Loopback0 ! address-family ipv6 neighbor 10.1.1.1 activate neighbor 10.1.1.1 send-label redistributeconnected ! !

  37. 6VPE (IPv6 VPN Provider Edge)

  38. Principes de 6VPE (RFC 4659) • 6PE permet de raccorder des sites en IPv6, mais sans notion d’isolation de trafic (trafic « global »). • 6VPE reprend les mêmes concepts que pour VPNv4 (VRF, RD/RT) • Les avantages sont les mêmes que pour 6PE (pas de mise à jour du cœur qui reste en IPv4/MPLS, pas de configuration supplémentaire sur le cœur, …). • Le Next-Hop BGP est annoncé sous forme d’adresse IPv6 « IPv4-Mapped ». Les PE extraient l’adresse IPv4 et recherchent le label annoncé par LDP pour cette adresse.

  39. AToM « AnyThing Over MPLS »

  40. AnyThing Over MPLS • AToM permet de transporter des paquets de niveau 2 (ATM, Frame-Relay, Ethernet, HDLC, PPP…) à travers un cœur de réseau MPLS: émulation d’une liaison niveau 2 point-à-point (Pseudo-wire – PW). • Session LDP directe établie entre les 2 routeurs d’extrémités: affectation d’un label pour le circuit. • Aucune configuration nécessaire sur les routeurs intermédiaires (routeurs P) • 2 labels utilisés sur le chemin: • 1er label (appris par LDP) pour atteindre le routeur d’extrémité • 2nd label (appris par la session LDP entre routeurs PE) pour déterminer le circuit • « Cross-connect » • Intérêt : permet de raccorder 2 sites avec une technologie niveau 2 sans avoir besoin de créer une liaison spécialisée.

  41. MPLS-TE Traffic Engineering

  42. Principes de MPLS-TE • L’IGP sélectionne le meilleur chemin suivant différents critères (bande passante,…) • Sur les réseaux fortement maillés, des liens sont susceptibles d’être sous-utilisés voire pas utilisés du tout • Le Traffic Engineering permet de créer des chemins alternatifs pour re-router du trafic. • On créée par configuration des LSP qui vont passer par les liens sous-utilisés • 2 méthodes: • Chemin explicite: on liste les next-hops sur le routeur de départ • Par « affinité »: utilisation de valeurs avec masques binaires (à définir par les gestionnaires du réseau) • Protocoles mis en jeu: • Extensions IGP (OSPF et IS-IS) pour le calcul du chemin ; • RSVP-TE (Extension de RSVP – Resource Reservation Protocol) – Signalisation/mise en place du LSP

  43. Pour aller plus loin…

  44. Autres possibilités • VPLS (Virtual Private LAN Service) : Emulation d’un LAN par-dessus MPLS • MPLS CsC (Carrier Supporting Carrier) : Permet de construire son propre réseau MPLS par-dessus un réseau MPLS d’un autre opérateur • Inter-AS MPLS/VPN … • etc

  45. Questions ?

  46. Démonstration / Maquette

  47. Topologie / Adressage IP

  48. Partie 0: Configuration backbone • Initialement, on a préparé la configuration suivante: • Routeurs P et PE configurés avec: • Loopbacks, Interconnexions IP (/30) • OSPF (une seule aire, l’aire 0) • Les routeurs clients, avec: • L’interconnexion IP avec le routeur PE correspondant • Une route par défaut vers le PE • Une loopback pour simuler le LAN • Au départ, les routeurs clients (CE) n’ont bien sûr pas de connectivité entre eux.

  49. Partie 0: Exemple avec P1 ! hostnameP2 ! ipcef ! interface Loopback0 • ipaddress10.254.0.1 255.255.255.255 ! interface Ethernet0/0 description Vers PE1 ipaddress 10.0.0.1 255.255.255.252 ! interface Ethernet0/1 description Vers PE2 ipaddress 10.0.0.5 255.255.255.252 ! router ospf 100 network 10.0.0.0 0.255.255.255 area 0 !

More Related