La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

MPLS (MultiProtocol Label Switching)

Présentations similaires


Présentation au sujet: "MPLS (MultiProtocol Label Switching)"— Transcription de la présentation:

1 MPLS (MultiProtocol Label Switching)
Christophe Fillot DSI

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 Internet: des interconnexions complexes de réseaux…
Peering : échange de trafic « utilisateur » entre 2 AS Transit: fourniture d’une connectivité Internet complète

6 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 (ex: /24 est plus spécifique que /18) Complexe pour les routeurs ayant toutes les routes Internet (plus de en 2012, actuellement: ~480000). 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 Switched Path).

7 Principes de base de MPLS

8 On peut dire qu’il s’agit du niveau « 2.5 »…
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)

9 On peut résumer les opérations de commutation:
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 Switched Path (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 même manière, suivant les mêmes critères (ex le plus courant: adresse IP destination), avec le même chemin.

10 Distribution de Labels
Protocole : LDP (Label Distribution Protocol) – 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 label pour une FEC ; Unsollicited Downstream : le routeur annonce à ses voisins un label pour chaque préfixe/FEC 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 ?

11

12 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, …)

13 Construction de la LFIB : résumé

14 Exemple de LFIB

15 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

16 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.

17 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.

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

19 VPN niveau 3 avec MPLS/VPN

20 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 ( /8, /12, /16). 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.

21 Exemple d’opérateur raccordant 3 clients différents

22 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.

23 Exemples de configuration Cisco IOS
! Definition de la VRF ip vrf BLUE rd 100:1 route-target import 100:1 route-target export 100:1 ! interface Ethernet1/0 ip vrf forwarding BLUE ip address ip route vrf BLUE router ospf 200 vrf BLUE network area 0 router bgp 65000 address-family ipv4 vrf BLUE neighbor remote-as 65001 neighbor activate

24 Mapping de sous-interfaces dans des VRF différentes

25 Mapping de sous-interfaces dans des VRF différentes: Cisco IOS
interface Ethernet1/0.1 encapsulation dot1Q 100 ! Description VLAN 100: « Personnels » ip vrf forwarding pers ip address ! interface Ethernet1/0.2 encapsulation dot1Q 200 ! Description VLAN 200: « Etudiants » ip vrf forwarding etu ip address interface Ethernet1/0.3 encapsulation dot1Q 300 ! Description VLAN 300: « Invités » ip vrf forwarding guests ip address

26 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.

27 MP-BGP Les routeurs PE « peerent » entre eux en MP-BGP (Multi-Protocol 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).

28 Exemple d’update MP-BGP

29 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: /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.

30 Exemple d’acheminement

31 Les RT sont des communautés étendues BGP
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 Router1 ip vrf FOO rd 400:150 route-target export 100:1 ! hostname Router2 ip vrf BAR rd 300:200 route-target import 100:1

32 Route-Targets: Topologie Any To Any

33 Route-Targets: Topologie Hub & Spoke

34 Configuration Cisco IOS
! hostname PE2 ip vrf BLUE rd 100:1 route-target both 100:1 ! Both= Import + Export interface Loopback0 ip address interface Ethernet0/1 description Client 1 ip vrf forwarding BLUE ip address router bgp 65000 neighbor remote-as 65000 neighbor update-source Loopback0 address-family vpnv4 neighbor activate neighbor send-community extended address-family ipv4 vrf BLUE redistribute connected

35 6PE (IPv6 Provider Edge)

36 Raccordement de clients IPv6, à travers un cœur MPLS (RFC 4798)
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.

37 Exemple d’acheminement

38 Configuration Cisco IOS
! hostname PE2 ipv6 unicast-routing ipv6 cef interface Loopback0 ip address interface Ethernet0/1 description Client IPv6 ipv6 address 2001:660::1/48 router bgp 65000 neighbor remote-as 65000 neighbor update-source Loopback0 address-family ipv6 neighbor activate neighbor send-label redistribute connected

39 (IPv6 VPN Provider Edge)
6VPE (IPv6 VPN Provider Edge)

40 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.

41 AToM « AnyThing Over MPLS »

42 2 labels utilisés sur le chemin:
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.

43 MPLS-TE Traffic Engineering

44 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

45 Pour aller plus loin…

46 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

47 Questions ?

48 Démonstration / Maquette

49 Topologie / Adressage IP

50 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.

51 Partie 0: Exemple avec P1 ! hostname P2 ip cef interface Loopback0
ip address interface Ethernet0/0 description Vers PE1 ip address interface Ethernet0/1 description Vers PE2 ip address router ospf 100 network area 0

52 Partie 1: Etapes pour l’activation de MPLS
Vérifier la connectivité (ping, traceroute) dans le backbone avant d’activer MPLS Activer MPLS (+ LDP) sur les interfaces du backbone (pas sur les interfaces côté clients!) avec la commande « mpls ip ». Vérifier que les adjacences LDP sont bien établies avec « show mpls ldp neighbor ». Tester (ping, traceroute) la connectivité. Le traceroute donne les indications de label. Note: sur un réseau de production, attention aux problématiques de MTU !

53 Partie 2: Etapes pour l’activation de MPLS/VPN
Configurer le peering BGP entre PE1 et PE2. Configurer les VRF « BLUE » et « RED » sur PE1 et PE2, avec les informations suivantes: PE1 / BLUE : RD 100:1, RT 65000:100 PE1 / RED : RD 200:1, RT 65000:200 PE2 / BLUE : RD 100:2, RT 65000:100 PE2 / RED : RD 200:2, RT 65000:100 Configurer les interfaces clientes pour les placer dans les VRF (commande « ip vrf forwarding <VRF> »). Mettre en place les routes statiques pour les subnets en 172.x.x.x (commande ip route vrf <VRF> <subnet> <mask> <nexthop>) Redistribuer les routes connectées et statiques dans BGP (redistribute connected et redistribute static dans BGP, sous l’address-family ipv4 vrf <VRF>) Vérifier la bonne réception des routes BGP avec « show ip route vrf <VRF> » Tester (ping, traceroute) la connectivité entre routeurs PE puis entre routeurs clients. Le traceroute donne les indications de label.

54 Partie 2: Exemple avec PE1 (1/2)
ip vrf BLUE rd 100:1 route-target export 65000:100 route-target import 65000:100 ! ip vrf RED rd 200:1 route-target export 65000:200 route-target import 65000:200 interface Ethernet0/2 description Vers RED1 ip vrf forwarding BLUE ip address interface Ethernet0/3 description Vers BLUE1 ip vrf forwarding RED ip address ip route vrf BLUE ip route vrf RED

55 Partie 2: Exemple avec PE1 (2/2)
router bgp 65000 no synchronization bgp log-neighbor-changes neighbor remote-as 65000 neighbor update-source Loopback0 no auto-summary ! address-family vpnv4 neighbor activate neighbor send-community extended exit-address-family address-family ipv4 vrf BLUE redistribute connected redistribute static address-family ipv4 vrf RED

56 Commandes Cisco IOS utiles
show ip vrf : liste les VRF avec les interfaces associées ping vrf <VRF> <adresse_ip> : réalise un ping dans la VRF indiquée traceroute vrf <VRF> <adresse IP> : Traceroute show ip route vrf <VRF> : affiche les routes de la VRF show mpls ldp neighbor : affiche les voisins LDP show mpls ldp bindings : affiche la LIB (Label Information Base) show mpls forwarding-table : affiche la LFIB (Label Forwarding Information Base) show ip cef vrf <VRF> <subnet> <masque> : affiche les informations de forwarding (y compris les labels MPLS utilisés)


Télécharger ppt "MPLS (MultiProtocol Label Switching)"

Présentations similaires


Annonces Google