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