MPLS - Réseaux
Transcription
MPLS - Réseaux
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 1 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 2 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 3 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 RHD 2009 MPLS 4 FIB MPLS • 2 possibilités • 1 table par entrée (portée label = lien) • 1 table globale (portée label = nœud) (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 5 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 6 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 7 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 8 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 9 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 10 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 11 Association • Association FEC <-> label – Locale (décidée localement) – Distante (décidée par voisin) – Les 2 voisins doivent être d’accord • signalisation – Création upstream ou downstream • Choix MPLS : downstream RHD 2009 MPLS 12 Déclenchement association • Deux méthodes – Méthode Control Driven • Événement proto routage – OSPF recalcule table – Réservation RSVP – PIM join/prune … • Stable (indépendant trafic) • Nombreuses associations inutiles RHD 2009 MPLS 13 Déclenchement association (2) • Méthode Data driven – À la détection d’un nouveau flux – Pas d’association inutile – Que se passe-t-il pour un paquet sans association ? (réseau hybride) RHD 2009 MPLS 14 Distribution des labels • Par protocoles de routage (piggybacking) – Possible avec vecteur de distance ou chemins (RIP, BGP) • Annonces suivent chemin inverse données – Peu compatible avec état des liens • Inondation des annonces • Par protocoles spécifiques (LDP) RHD 2009 MPLS 15 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 16 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 17 Création des LSP • Mode ordonné – Egress déclenche création de proche en proche vers Ingress • • • • • 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 RHD 2009 MPLS 18 Exemple (downstream, ordonné) Domaine MPLS BGP Nouveau préfixe F (F, L3) R3 BGP Nouveau préfixe F (F, L1) R2 R6 R4 (F, L0) (F, L4) (F, L2) (F, L5) R1 BGP Nouveau préfixe F R7 R5 BGP Nouveau préfixe F RHD 2009 MPLS R6 L0 -> R7, POP R4 L1,L2 -> R6, SWAP(L0) R5 F -> R4, PUSH(L2) L5 -> R4, SWAP(L2) R2 L3,L4 -> R4, SWAP(L1) L5 inutilisé 19 Distribution des labels : LDP • LDP Label Distribution Protocol – RFC 3036 – Divers messages pour gérer adjacences entre LSR voisins • Découverte adjacences (Hello) UDP, périodique • Établissement de session TCP • « hard state » : pas de de rafraîchissement cyclique RHD 2009 MPLS 20 LDP : Associations – Label Advertisement : 4 commandes • Label Request(FEC) (descendant) – Nouvelle FEC ou nouveau NH (ou commande) • Label Mapping(FEC, Label) (montant) – Réponse à request ou spontané • Withdrawal(FEC, Label) – Plus de route pour FEC • Release(Label) – Plus besoin du Label RHD 2009 MPLS 21 Distribution (suite) • Mode libéral – Garder les mapping(FEC, L) de LSR1 Même si NH pour FEC ≠ LSR1 Utilisables si NH(FEC) change Gaspille espace label • Mode conservateur si NH(FEC) ≠ LSR, envoyer release(L) à LSR1 • Mode downstream on demand • Request descend depuis Ingress • Mode unsollicited downstream • Pas de request, mapping initié par Egress (schéma) Mode négocié lors établissement session RHD 2009 MPLS 22 Exemple (LDP downstream on demand, ordonné) Domaine MPLS routes IP vers F BGP Nouveau préfixe F REQ(F) R3 Map(F, L3) REQ(F) Map(F, L1) R2 REQ(F) R6 R4 R7 Map(F, L0) Map(F, L4) Map(F, L2) REQ(F) R1 REQ(F) BGP Nouveau préfixe F BGP Nouveau préfixe F R5 BGP Nouveau préfixe F RHD 2009 MPLS R6 L0 -> R7, POP R4 L1,L2 -> R6, SWAP(L0) R5 F -> R4, PUSH(L2) R2 L3,L4 -> R4, SWAP(L1) 23 LDP : FEC • FEC = suite d’éléments FEC – Élément FEC = préfixe ou adresse d’hôte – Prochain saut vers tous les éléments • Doit être identique • Sinon POP (possibilité de pile) Mapping(P1,L1) Mapping((P1,P2),L3) LSR1 LSR3 POP Préfixe P1 LSR2 Mapping(P2,L2) RHD Agrégation 2009 MPLSP1,P2 LSR4 Préfixe P2 24 Contrôle de boucle • Données : TTL (curatif) – élimination de paquets • Construction de LSP (préventif) – – – – Option configurable « loop detect » incluse dans Request et Mapping Hopcount TLV #LSR traversés Path vector TLV (pour LSR non « merge capable ») • Liste des LSR traversés – Message LDP « loop detected notification » • HopCount max atteint ou • PathVector contient Id LSR local (ou max atteint) RHD 2009 MPLS 25 Routeur/commutateur routeur IP + LSR MPLS configuration Routage IP LDP Signalisation Données A = label A, données entrée paquet RIB RIB IP LIB label IB Algo routage FIB FC Commutation de labels RHD 2009 MPLS sortie 26 Ingénierie de trafic • Traffic Engineering • RFC 2702, Requirements for Traffic Engineering Over MPLS, septembre 99 • 2 types d’objectifs – Orientés trafic (~qualité de service pour les flux) • Pour certains flux (type d’applic., de client) • Contraintes de qualité de service (débit, délai,…) – => routage basé sur destination + (QoS dispo / lien)? – Orientés ressources (bonne utilisation des ressources) • Répartir les flux – Augmenter la bande passante totale utilisable – Et/ou limiter la congestion – => routage basé sur destination + (BP dispo ?) RHD 2009 MPLS 27 Ingénierie de trafic (2) – Commutation des paquets • basé sur critères supplémentaires • Difficile à obtenir avec routage saut par saut – Routage source (peu efficace en IP) – Marquer (épingler) la route (route pinning) • MPLS : LSP = route « marquée » – Signalisation spécifique (RSVP-TE ou CR-LDP) – Utilisation différente des protocoles de routage » Calcul à la source (à la demande ?) » Calcul par serveur PCE : Path Computing Element RHD 2009 MPLS 28 RSVP • Principe de RSVP (architecture Intserv) – Source envoie RSVP-Path(Dest, FlowSpec) • « marquage du chemin » • Nécessaire car routage non symétrique – Récepteur(s) envoie RSVP-Resv • Réservation ressources sur le chemin • prend le chemin inverse (grâce marquage) – Nécessite option Router Alert • Paquet Source => Dest. Traité par routeurs RHD 2009 MPLS 29 RSVP • Soft State (messages périodiques) – si route IP change • réservation change au prochain Path/Resv • RSVP de base : – utilise routes IP « classiques » RHD 2009 MPLS 30 RSVP-TE (1) • RFC 3209, 3210 (décembre 2001) • Associe un label à un flux RSVP – Mode downstream on demand • RSVP-Path(Label Request, Fec = D) – En option objet route explicite • Liste de nœuds abstraits – Strict (doit être voisin du précédent) – Lâche (loose) (pas nécessairement voisin direct) • Nœud abstrait – décrit par Adresse IP ou Préfixe ou N° AS – Réponse RSVP-Resv(Label, Fec) RHD 2009 MPLS 31 RSVP-TE (2) • Changement dynamique de LSP – Nouvelle capacité – Panne – Augmentation besoin des flux • => modification sans perturbation – Identificateur de session – Changement de LSP : « make before break » • Détecter liens communs ancien et nouveau LSP – même ident. de session • Ne pas ajouter les BP (uniquement delta si ≠ ) RHD 2009 MPLS 32 Architecture de TE • Automatisation des tunnels TE – Prise en compte des contraintes • Bande passante – Connaître les ressources – Calculer des routes explicites • Tenant compte ds ressources (CSPF) – => nouveau routage • OSPF-TE RHD 2009 MPLS 33 OSPF-TE • RFC3630 • Spécifie 1 nouveau LSA TE-LSA – Bande passante totale – Bande passante totale réservable – Bande passante résiduelle • Sur 8 niveaux de priorité – Groupe(s) administratif(s) (couleur) • Peut appartenir à 1 ou plusiuers de 32 groupes – Métrique de TE (peut être ≠ métrique usuelle) RHD 2009 MPLS 34 OSPF-TE (suite) • Chaque routeur – Carte réseau avec BP disponible • Sur chaque lien • Par priorité • Lors de demande – Chemin de R1 à R2, • bande passante D, priorité P – Calcul (par la source ) du CSPF RHD 2009 MPLS 35 OSPF-TE (suite) • Calcul (par la source A ) du CSPF Constrained SPF shortest path first – Prendre le graphe du réseau – Éliminer les arêtes dont la BP résiduelle pour P • Vérifie BPrésiduelle < Demande – Lancer l’algorithme de Dijkstra • => tous les chemins calculés vérifient BP > D – Récupérer le chemin A=R1, R2, R3, …Rn=B – Réserver D sur ce chemin via RSVP-TE avec route explicite • Si succès, chaque routeur envoie – LSA-TE mis à jour (BP résiduelle diminuée de D) RHD 2009 MPLS 36 CR-LDP • Constrained Routing LDP – RFC 3212-3214, janvier 2002 • Distribution « ordered on-demand downstream » – Label-Request => mapping • Routage explicite (strict ou lâche) entre noeuds abstraits • Descripteur de trafic – (peak rate, commited rated) (token bucket) • Priorité (possibilité de préemption) • « hard state » comme LDP ≠ RSVP soft state – A été virtuellement abandonné au profit de RSVP-TE • Cf rfc3468 , bien que « proposed standard » de l’ietf RHD 2009 MPLS 37 Demande R3 => R6 10M Domaine MPLS R3 calcule Route explicite R3 - R2 - R5 -R4 - R6 (CSPF) Demande pour F R3 50 R2 60 5 R4 Path Resv, L4 R1 Path Resv, L1 20 Path Resv, L2 40 Path Resv, L3 R5 RHD 2009 MPLS R6 R7 R3 envoie RSVP Path route explicite R3 - R2 - R5 -R4 - R6 label request BP demandée 10M R6 renvoie RSVP Resv Label BP 38 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 Supporting Multimedia Applications, IEEE JSAC, Vol 14 N°7, sept 96. [RFC 3209, 3210] RSVP-TE, décembre 2001 [RFC 3212-3214] CR-LDP, janvier 2002 RHD 2009 MPLS 39