This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
RHD 2009 MPLS 1
MPLS
• Multi Protocol Label Switching• Objectifs initiaux
– accélérer commutation IP• « lenteur » de la commutation IP saut par saut• Cell switching router (Toshiba 94), IP switching
(Ipsilon 96), Tag switching (cisco fin 96), …• Création groupe IETF MPLS 12/96• Normalisation (début 2001 …)
– RFC 3031 (architecture), RFC 3036 (LDP), …
RHD 2009 MPLS 2
MPLS
• Idée– Insérer un label dans paquet (IP ou autre)– Construire une table (FIB) de commutation en
fonction du label• Label court : lookup rapide• Possibilité d’agréger des destinations• Unifier la commutation des paquets
– Unicast ordinaire longest match (@D)– Unicast avec ToS : exact match (@D +ToS)– Multicast exact match (@D, @S, int. Entrée)– Protocoles différents (IPv4, IPv6, …) : Mpls
RHD 2009 MPLS 3
MPLS : nouveaux objectifs
• Commutation de label =– forme de tunnel (encapsulation) =>– construire des chemins particuliers
• ingénierie de trafic, routage avec QoS• Ex : RSVP-TE, CR-LDP
– masquer le réseau traversé• VPN IP basés sur MPLS et BGP• interconnexion de LAN à travers réseau IP
– trame sur IP, VPLS
– extension à d’autres niveaux• λ MPLS, GMPLS
RHD 2009 MPLS 4
FEC
• Concept de Forwarding Equivalence Class– Tous paquets d’une FEC traités de la même façon
• Même interface sortie• Même NextHop• Même file attente (si QoS)• Ex : unicast classique FEC = préfixe• Granularité variable
– FEC grossier : préfixe réseau 192.168.0.0/18– FEC fin : flux RSVP @S, @D, port S, port D
(int entrée, label entrée) => (label de sortie, int sortie, NextHop, File)n
• n > 1 si multicast
• Quel équipement insére le premier label ?– Classification des paquets
• Comment construire la FIB ?• Comment insérer les labels dans des
paquets/trames?
RHD 2009 MPLS 6
Insertion des labels• RFC 3032 MPLS Label Stack encoding• Pile de labels (utilisé p.e. dans VPN BGP-MPLS)• Label codé sur 20 bits dans Label Entry de 32 bits
– Label (20), Cos (3), Stack (1), TTL (8)– Stack = 1 <=> fond de pile
• Quelques labels réservés– 0 : IPv4 Explicit Null (fond de pile) => oblige à POP et
traitement IPv4– 1 : Router Alert Label (pas au fond) => examen spécial– 2 : IPv6 Explicit Null– 3 : Implicit Null (pas dans la pile) distribué pour forcer POP
RHD 2009 MPLS 7
Labels• Insertion ethernet
– @D,@D, ether=8847, label(s), network layer• Possible LLC/SNAP
– Remarque :• ethertype d’origine 0800 (IPv4) 86DD (IPv6), … perdu• Doit être déductible du label ou du network layer
• Insertion ATM– Réutilisation hard ATM pour MPLS
• => label dans entête cellule– Label sommet stack dans VPI,VCI (pas de TTL)
• Permet réutiliser commutation cellule• Stack complet dans paquet AAL
RHD 2009 MPLS 8
Encapsulation• TTL initialisé à TTL IP entrant
– Décrémenté (si possible) => détection de boucle• Problème des messages ICMP
– Connaissance du protocole supérieur ?– Possibilité de router message ICMP
• Adresse niveau IP peut être non routable (p.e. privée)• Possibilité :
– générer un paquet ICMP, et lui donner le même label stack– (sauf TTL)– le paquet « descend » jusqu’à l’Egress qui retransmet à la source
• Ex :– Problème de TTL exceeded (traceroute)– Problème de Path-MTU discovery
RHD 2009 MPLS 9
Commutation (FIB)• 3 structures
– NHLFE Next Hop Label Forwarding Entry• Indique
– Prochain saut– Opérations à effectuer sur pile de label
» Remplacer sommet pile SWAP (usuel)» Supprimer sommet pile POP» ex : sortie domaine Mpls : Egress router» Remplacer puis empiler 1 ou +sieurs labels PUSH
– Infos spécifiques au lien» Adresse mac , …
RHD 2009 MPLS 10
Commutation (2)
• ILM Incoming Label Map– Pour paquets avec label– label entrée (et int) => 1 ou +sieurs NHLFE
• Pour load balancing multipath• 1 seul NHFLE choisi
• FEC to NHFLE map– Pour paquets non labelés– Entrée de domaine Mpls : Ingress router– Insertion du premier label en fonction de la FEC
RHD 2009 MPLS 11
Construction des tables
• Protocoles de routage « classiques »– (A) Mapping FEC à NextHop (FIB IP)
OSPF, RIP, BGP, PIM, …
• Création d’association– (B) FEC <-> Label
• Distribution association– (A) +(B) => ILM + NHLFE
RHD 2009 MPLS 12
Association
• Association FEC <-> label– Locale (décidée localement)– Distante (décidée par voisin)– Les 2 voisins doivent être d’accord
– Peu compatible avec état des liens• Inondation des annonces
• Par protocoles spécifiques (LDP)
RHD 2009 MPLS 16
Architecture• LSR Label Switch Router
– Routeur capable de commuter des paquets par label• Domaine MPLS
– Ensemble de LSR qui échangent• Des paquets avec label et des infos sur les associations• ~ domaine de routage
– Pour une FEC• Pour une entrée Ingress
– en général une seule sortie Egress– LSP (Label Switched Path) de Ingress vers Egress
• En général N Ingress utilisent la même sortie– 2 solutions
» 1 arbre : LSP-tree» ou bien N LSP indépendants
RHD 2009 MPLS 17
LSR et LSP merge
• Label merge : pour une même FEC– deux entrées (incoming label)
• => un seul NHFLE (et donc un seul label)• en général possible pour un routeur IP
• Si label merge impossible :– plusieurs LSP convergent vers Egress
même FEC, mais labels différents sur un lien
– Ex : switch ATM– Label <=> CV
• label merge <=> cellules de plusieurs CV « mélangées »incompatible avec AAL
• possibilité de merge sur le VP, mais VC ≠
RHD 2009 MPLS 18
Création des LSP• Mode ordonné
– Egress déclenche création de proche en proche versIngress
• Créer association si Egress ou si reçu association de l’aval• => Si LSP existe à l’Ingress, existe jusqu’à Egresss• Séquentiel => plus lent• Peut être Hop by Hop (chaque LSR décide prochain saut) ou• Explicite (~PNNI, source routing plus avantageux que IP)
• Mode indépendant– Chaque LSR décide pour ses liens entrants
• Construction en parallèle (+ rapide)• Risque incohérence
Biblio• [RFC 2702] Requirements for Traffic Engineering Over MPLS,
septembre 99• [MPLS] Davie, Rekhter, MPLS Technology and Applications,
Morgan Kaufmann, 2000.• [RFC3031] MPLS architecture, janvier 2001• [RFC 3032] MPLS label stack encoding, janvier 2001.• [RFC 3036] LDP specification, janvier 2001.• [QoSR] Z Wang, J Crowcroft, Quality of Service Routing for