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 ID: 635622
Download Presentation The PPT/PDF document "MPLS ( MultiProtocol Label" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
MPLS(MultiProtocol Label Switching)
Christophe
Fillot
DSISlide2
2 Rappels sur le routage IPIntérêt de MPLS Slide3
3 Routage des paquets IPLe 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.
Slide4
4 Routage IP « saut par saut »: chaque saut doit connaitre l’ensemble des routes!
Slide5
5 Internet: des interconnexions complexes de réseaux…
Peering
: échange de trafic « utilisateur » entre 2
AS
Transit: fourniture d’une connectivité Internet
complèteSlide6
6 ProblématiqueUne 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: 192.168.1.0/24 est plus spécifique que 192.168.0.0/18)
Complexe pour les routeurs ayant toutes les routes Internet (plus de 430000 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
).
Slide7
7 Principes de base de MPLS Slide8
8 EncapsulationLes 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)
Slide9
9 Commutation de labelOn 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 1
er
label => routeur de sortie (
egress
)
« Swap » : remplacement de label => routeurs intermédiairesLes 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.
Slide10
10 Distribution de LabelsProtocole : 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 ?
Slide11
11 Slide12
12 Construction de la LFIBLes 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, …)
Slide13
13 Construction de la LFIB : résumé Slide14
14
Exemple de LFIBSlide15
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
Slide16
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.
Slide17
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.
Slide18
18 Routage IP/MPLS : seuls les routeurs de bordure connaissent toutes les routes
Slide19
19 VPN niveau 3 avec MPLS/VPN Slide20
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 (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/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
.
Slide21
21 Exemple d’opérateur raccordant 3 clients différents Slide22
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.
Slide23
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
i
p
address
10.0.0.1 255.255.255.0
!
i
p
route
vrf
BLUE 10.1.0.0 255.255.255.0 10.0.0.2
!
r
outer
ospf
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.3
remote
-as 65001
neighbor
10.0.0.3
activate
!
!Slide24
24 Mapping de sous-interfaces dans des VRF différentes Slide25
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
10.0.0.1 255.255.255.0
!
interface Ethernet1/0.2
encapsulation dot1Q 200 ! Description VLAN 200: « Etudiants »
ip
vrf
forwarding
etu
ip
address
10.1.0.1 255.255.255.0
!
interface Ethernet1/0.3
encapsulation dot1Q 300 ! Description VLAN 300: « Invités »
ip
vrf
forwarding
guests
ip
address
10.2.0.1 255.255.255.0
!Slide26
26 Terminologie3 types de routeurs : P, PE, CERouter « 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.
Slide27
27 MP-BGPLes 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).
Slide28
28 Exemple d’update MP-BGP Slide29
29 Acheminement du traficDans 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/24Problè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 2
nd
label correspond au label VPN utilisé par PE2. Il est appris par MP-BGP
Les routeurs intermédiaires ne s’occupent que du 1
er
label: lorsque le paquet arrive à PE2, le 1
er
label a été retiré (PHP), seul reste le 2
nd
label, qui va permettre à PE2 d’aiguiller le paquet vers la bonne interface de sortie.
Slide30
30 Exemple d’acheminement Slide31
31 Route-Targets (RT)Les RT sont des communautés étendues BGPUn 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
!Slide32
32 Route-Targets: Topologie Any To Any
Slide33
33 Route-Targets: Topologie Hub & Spoke
Slide34
34 Configuration Cisco IOS
!
hostname
PE2
!
ip
vrf
BLUE
rd 100:1
route-
target
both
100:1 !
Both
= Import + Export
!
interface Loopback0
ip
address
10.2.2.2 255.255.255.255
!
interface Ethernet0/1
description Client 1
ip
vrf
forwarding
BLUE
ip
address
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
-
community
extended
!
address
-
family
ipv4
vrf
BLUE
redistribute
connected
!
!Slide35
35 6PE(IPv6 Provider Edge)
Slide36
36 Principes de 6PERaccordement 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 2
nd
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.
Slide37
37 Exemple d’acheminement Slide38
38 Configuration Cisco IOS
!
hostname
PE2
!
ipv6 unicast-
routing
ipv6
cef
!
interface Loopback0
ip
address
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
redistribute
connected
!
!Slide39
39 6VPE(IPv6 VPN Provider Edge)
Slide40
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.
Slide41
41 AToM« AnyThing Over MPLS »
Slide42
42 AnyThing Over MPLSAToM 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é
2
nd
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.
Slide43
43 MPLS-TETraffic Engineering
Slide44
44 Principes de MPLS-TEL’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 toutLe
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
Slide45
45 Pour aller plus loin… Slide46
46 Autres possibilitésVPLS (Virtual Private LAN Service) : Emulation d’un LAN par-dessus MPLSMPLS
CsC
(
Carrier
Supporting
Carrier
) : Permet de construire son propre réseau MPLS par-dessus un réseau MPLS d’un autre opérateurInter-AS MPLS/VPN …etc
Slide47
47 Questions ? Slide48
48 Démonstration / Maquette Slide49
49 Topologie / Adressage IP Slide50
50 Partie 0: Configuration backboneInitialement, 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 LANAu départ, les routeurs clients (CE) n’ont bien sûr pas de connectivité entre eux.
Slide51
51 Partie 0: Exemple avec P1
!
hostname
P2
!
ip
cef
!
interface Loopback0
ip
address
10.254.0.1 255.255.255.255
!
interface Ethernet0/0
description Vers PE1
ip
address
10.0.0.1 255.255.255.252
!
interface Ethernet0/1
description Vers PE2
ip
address
10.0.0.5 255.255.255.252
!
router
ospf
100
network 10.0.0.0 0.255.255.255 area 0
!Slide52
52 Partie 1: Etapes pour l’activation de MPLSVé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 !
Slide53
53 Partie 2: Etapes pour l’activation de MPLS/VPNConfigurer 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.
Slide54
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
192.168.1.1 255.255.255.252
!
interface Ethernet0/3
description Vers BLUE1
ip
vrf
forwarding
RED
ip
address
192.168.2.1 255.255.255.252
!
ip
route
vrf
BLUE 172.16.0.0 255.255.0.0 192.168.1.2
ip
route
vrf
RED 172.20.0.0 255.255.0.0 192.168.2.2
!Slide55
55 Partie 2: Exemple avec PE1 (2/2)
router
bgp
65000
no synchronization
bgp
log-neighbor-changes
neighbor 10.254.1.2 remote-as 65000
neighbor 10.254.1.2 update-source Loopback0
no auto-summary
!
address-family vpnv4
neighbor 10.254.1.2 activate
neighbor 10.254.1.2 send-community extended
exit-address-family
!
address-family ipv4
vrf
BLUE
no synchronization
redistribute connected
redistribute static
exit-address-family
!
address-family ipv4
vrf
RED
no synchronization
redistribute connected
redistribute static
exit-address-family
!Slide56
56 Commandes Cisco IOS utilesshow ip vrf : liste les VRF avec les interfaces associéesping
vrf
<VRF> <
adresse_ip
> : réalise un
ping dans la VRF indiquéetraceroute 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)