Introduction MPLS
Scurit 1
Serge Daigle
Autome 2009
1
2
Quest-ce que MPLS? MPLS: Multiprotocol Label Switching
Multiprotocol Label Switching (MPLS) combine lintlligence du routage
avec la performance de la commutation et par consquent les rseau de couche 2 et de couche 3 peuvent en bnficier grandement
MPLS combine les capacits dynamique de IP et de routage IP avec la performance de commutation au niveau des technologies de couche 2.
Une nouvelle technologie WAN originalement dfinit dans RFC 3031 par:
Cisco Systems
Force 10 Networks
Juniper networks
Au dbut cette technologie sappelait TAG switching
3
2 type de MPLS Frame Mode MPLS (celui que lon tudie)
Indique lusage de MPLS avec ethernet ou autre type dencapsulation utilisant des trammes (Frames)
Cell mode MPLS employ par les technologies ATM
ATM des besoins spcifiques cause de ces cellules grandeur fixe
4
Pourquoi MPLS?
Circuit traditionnel de couche 3 (IP) Avantages:
le routage dynamique, slection automatique dun chemin fournit les meilleurs route ainsi que des route backup fournit la Qualit de service (QoS)
Dsavantages: Introduit des dlais cause du table lookup
Circuit traditonnel de couche 2 (ATM, Frame Relay) Avantages:
Les destinations sont pr tablis Par contre beaucoup plus rapide pas de table lookup
Dsavantages: Par contre plus difficile grer, configuration manuelle, logiciel de
gestion sophistiqu Plus difficile implanter le QoS, et de gr les SLA (Service level
agreements ex: frame-relay la bit DE...
5
Pourquoi MPLS (suite)
La Philosophie de MPLS est quune entte de couche 3 contient beaucoup trop dinformation par rapport linformation requise pour commut ou router un paquet il faut simplifier dou lutilit dun label
MPLS permet lextension des rseaux entre les sites dun client et cela mme si le rseau MPLS appartient un fournisseur de service
Un rseau MPLS:
Converge de faon dynamique
Peut supporter plusieurs technologies
Permet de faire de la qualit de service (QoS)
MPLS - Quelques dfinitions
FEC - Forwarding equivalence class: Un FEC est un groupe de paquet qui sont routs de la mme faon (en dautre terme, ils partagent la mme destination).
Label: Cest le fondement de MPLS, un routeur va gnrer un label (identificateur) pour chaque FEC quil possde. Un routeur P (provider) va commuter un paquet en se basant uniquement sur le label sans jamais avoir recours lentte de la couche 3 du paquet cest donc un petit identificateur utilis par une groupe de
rseau qui partagent une mme destination. (habituellement une significance local seulement, comme frame-relay )
6
MPLS Quelques dfinitions
LSR Label Switching router: Un routeur qui est capable de commut les paquets libell (Label) de MPLS
CE - customers edge: Un routeur non MPLS appartenant au client qui est branch a un rseau MPLS appartenant au fournisseur de service. (route les paquets au niveau de la couche 3 seulement)
7
MPLS Quelques dfinitions
PE Providers edge: Un routeur MPLS appartenant au fournisseur de service (provider) qui est branch a un rseau non-MPLS appartenant au client. Ce routeur est oblig de regarder la table de routage (couche 3) ou dinsr un label. On peut aussi le rfrer comme un edge LSR ou un PE router
P Provider :Un routeur qui commut les paquets en se basant uniquement sur les labels et non sur linformation de couche 3. On peut aussi le rfrer comme un Non-edge LSR ou un P router
8
MPLS - Quelques dfinitions
LDP - Label distribution protocol: Aprs avoir gnr un label pour chaque FEC, un routeur a besoin dinformer ses routeurs voisins des labels quil a gnr pour chaque FEC. LDP est utilis pour distribuer cette information.
9
Commutation MPLS de base
Aprs que tous les labels sont connu un les P routers peuvent faire la commutation en se basant seulement sur les labels
10
MPLS-VPN
Notez-bien que notre objectif est de permettre lextension des rseaux entre les sites dun client et cela mme si le rseau MPLS appartient un fournisseur de service
Les rseaux des client se doivent aussi dtre prives. Le client A ne doit pas pouvoir atteindre les rseaux du client B ou vice versa
En dautre terme, les clients doivent tre isol lun de lautre
11
MPLS-VPN Quelques dfinitions
VRF Virtual Routing and Forwarding: Un instance de table de routage virtuelle qui va tre associ habituellement aux rseaux extensionns dun client (les rseaux virtuel privs dun client)
Route Target: On peut le voir comme lidentificateur dun VRF (VPN) dun client. Les rseaux privs dun client doivent tre identifi afin de pouvoir circuler sur le rseau du fournisseur de service et dchanger leur table de routage (MP-BGP) seulement entre eux.
Le RT peut importer ou exporter des routes. en se basant sur le ID, il peut importer des routes dans sa table de routage par exemple: une route par dfaut situ dans un autre VRF
Il peut y avoir plus dun route target par vrf
12
MPLS-VPN Quelques dfinitions
Route Distinguisher: Dans le but de prevenir le cas de overlapping addresses . Le RD est attach a chaque route afin quil soit unique dans le Core. Noubliez pas que les rseaux provenant du client A peuvent avoir les mmes adresse que le rseau du client B ou un autre VPN du client A
LE RD a une signification locale sur le routeur PE ou EDGE LSR.
Il y a seulement un RD par VRF
13
MPLS-VPN Quelques dfinitions
MP-BGP Multi protocol BGP: Chaque routeur PE doit communiquer aux autre routeur PE. Vu que les routes sont maintenant de 96 bits (32 +64 pour le RT) le protocol rgulier de BGP ne peut pas tre utilis nous devons utiliser MP-BGP qui offre des attributs tendus afin de supporter le RT
14
Fonctionnement de MPLS-VPN
Pour le client CE: Aucune configuration spciale est requise, une connexion point point avec un masque de /30 devrait suffire
Nous allons utiliser RIP pour transmettre les route du CE au VRF du PE
15
Fonctionnement de MPLS-VPN
Pour le PE: Il faut crer les instances VRF qui vont contenir les routes des VPN clients. Dans cet exemple, Pour le client A nous avons besoin de crer un VRF afin que les routes du client site A1, soit disponibles sur le site A2 et vice versa tout en tant isol du client B.
Les routeurs PE doivent communiquer les routes entre eux dou lutilit de MP-BGP
16
Fonctionnement de MPLS-VPN
Pour le routeur PE (suite): Chaque routeur PE une connexion iMPBGP tous les autres router PE
Chaque routeur PE va avoir un label dassign afin de rejoindre les autres routeur PE dans le core MPLS
De plus, chaque route provenant de lintrieur dun vrf va avoir un label dassign
Donc, lorsquun routeur PE reoit un paquet du CE, il va vrifier le VRF correspondant et ajouter le label correspondant au paquet par la suite, va trouver quel est le routeur PE de sortie qui correspond et ajouter ce label
Il va donc avoir 2 labels qui vont partir du PE dentre Notez que ceci est unique MPLS-VPN, pour le MPLS de base
seulement un label est ajout
17
Fonctionnement de MPLS-VPN
Pour le routeur P: Ils sont trs efficace. la seul chose quils ont faire cest de commuter en se basant sur le dernier label qui t ajout
Notez que les trammes contiennent effectivement 2 label, le premier reprsentant le VRF et le deuxime reprsentant le PE de sortie.
arriv au PE de sortie on pop le label et forward...
18
Quelques notes sur LDP
lallocation et la distribution des tiquettes (labels) suit les tapes suivantes:
1. Les protocoles de routage IP btissent la table de routage IP.
2. Chaque LSR ou P(E), va assigner une tiquette pour chaque destination trouv dans la table de routage IP
3. Les LSR diffuse leurs tiquettes a tous les autres LSR
4. Chaque LSR va btir une table LIB, LFIB et FIB en se basant sur les tiquette reu 1. lib : Label information base (contrle plane)
2. LFIB :Label forawarding information base (data plane)
3. FIB : forwarding information plane (data plane)
19
LFIB et FIB
Cisco utilise le FIB afin de faire le routage dun paquet.
afin de voir le FIB
show ip cef details
ip cef est requis afin de faire fonctionner MPLS
Cisco utilise le LFIB pour transmettre une paquet contenant une tiquette
show mpls forwarding-table
20
Le edge LSR ou PE
Forward the received IP packet based on the IP destination address and send as an IP packet
Forward the received IP packet based on the IP destination address and send as a labeled packet
Forward the received labeled packet based on the label, change (swap) the label, and send the labeled packet
Forward the received labeled packet based on the label, remove the label, and send the IP packet
21
Le edge lsr (suite)
A received labeled packet is dropped if the label is not found in the LFIB table, even if the IP destination exists in the IP forwarding table, also called the FIB.
A received IP packet is dropped if the destination is not found in the IP forwarding table (FIB table), even if there is an MPLS label-switched path toward the destination.
22
23
Capture wireshark
24
Un ping de CA2 vers CA1, capture entre PE 2 et P
25
RIB
26
RIB vrf ca
27
FIB vrf ca (IP CEF)
28
BGP
29
ROUTE VPNV4
30
Configuration dun MPLS-VPN
Nous avons besoin dun protocole de routage lintrieur du core MPLS afin de permettre LDP de faire lassignement des labels pour les rseaux
Habituellement ce protocole doit tre link state, soit OSPF, ISIS et EIGRP(hybride)
Cette configuration est la mme que vous faite habituellement
31
Configuration MPLS de base
Par la suite on peut commencer par configurer MPLS de base sur les PE et le P conf t mpls ip (on doit configurer mpls globalement) int s0/0 mpls ip (ensuite on active les interface qui font partie du core
MPLS)
Ces commandes vont mettre en fonction LDP et les routeur MPLS vont commencer schanger des tiquettes
On peut vrifier avec show mpls forwarding
on peut voir la base de donne des tiquettes avec show mpls ldp bin
32
Configuration de MPLS-VPN
Pour le MPLS VPN il suffit dajouter la portion VRF et le protocol MP-BGP
Exemple de config dune portion VRF PE_A(config)#ip vrf ClientA
PE_A(config-vrf)#route-target 100:1
PE_A(config-vrf)#rd 100:1
PE_A(config-vrf)#ip vrf ClientB
PE_A(config-vrf)#route-target 100:2
PE_A(config-vrf)#rd 100:2
33
Configuration MPLS-VPN
portion VRF (suite): Il faut maintenant associer les interface aux VRF correspondant PE_A(config-vrf)#int e1/0
PE_A(config-if)#ip vrf forwarding ClientA
PE_A(config-if)#ip address 192.168.0.1 255.255.255.252
PE_A(config-if)#no shut
PE_A(config-if)#int e1/1
PE_A(config-if)#ip vrf forwarding ClientB
PE_A(config-if)#ip address 192.168.0.5 255.255.255.252
PE_A(config-if)#no shut
34
Configuration MPLS-VPN
Maintenant que les VRF sont configur, il faut configurer la portion iMP-BGP. iMP-BGP est requis pour faire passer les routes des clients dun site lautre
De plus nous devons configurer un protocole qui va transmettre les route du CE au PE en se servant du VRF du PE. Par la suite on va redistribuer ces routes dans BGP
35
iMP-BGP
Portion BGP router bgp 100 no bgp default ipv4-unicast neighbor 172.16.1.1 remote-as 100 neighbor 172.16.1.1 update-source Loopback0 ! address-family ipv4 no synchronization neighbor 172.16.1.1 activate no auto-summary exit-address-family
36
iMP-BGP (suite)
configuration du vpnv4 (afin denvoyer les RT)
address-family vpnv4
neighbor 172.16.1.1 activate
neighbor 172.16.1.1
send-community extended
exit-address-family !
37
iMP-BGP (suite)
Configuration du vrf ca
address-family ipv4 vrf ca
no synchronization
redistribute rip metric 1
exit-address-family!
continuer pour les autres vrf
38
MPLS-VPN (RIP)
PE_A(config-router-af)#router rip PE_A(config-router)#address-family ipv4 vrf ClientA PE_A(config-router-af)#redistribute bgp 100 metric 1 PE_A(config-router-af)#network x.x.x.x PE_A(config-router-af)#no auto-summary PE_A(config-router-af)#version 2 exit PE_A(config-router-af)#address-family ipv4 vrf ClientB PE_A(config-router-af)#redistribute bgp 100 metric 1 PE_A(config-router-af)#network x.x.x.x PE_A(config-router-af)#no auto-summary PE_A(config-router-af)#version 2 exit
39
Procdure Core Network PE1, P et PE2
1) configurer les liens sries
mettre les ip sur les interfaces sries, mettre les loopback /32 sur les routeurs PE1 et PE2
2) vrification: faite des pings point point
3) configurer le protocoles de routage du core MPLS le protocole de routage ospf sur PE1, P et PE2, utilis des router-id
4) vrification: show ip ospf nei, show ip route, ping du loopback de PE1 au loopback
de PE2
5)configurer mpls mpls ip sur les interfaces sries
6) vrification: show mpls forwarding
40
Procdure les clients (CE customers Edge)
5) Configurations des interfaces des clients
mettre les ip sur les interfaces des clients, ainsi que sur les loopback simulant des rseaux internes
6) configurer la portion vrf des clients sur les PE ou EDGE LSR crer les vrf, les route target et RD associer les interfaces des clients au vrf mettre les adresses ip sur les interfaces vrf
7) vrification: faite des ping du client vers le vrf du PE exemple: ca1
ping PE1
41
Procdure: routage entre CE et PE
8) configurer le protocole de routage sur les clients et sur le vrf correspondant dans le PE
9) vrification:
sh ip route vrf ca (devrait voir le loopback du client)
faite un ping du loopback du client l'interface VRF sur le PE
42
Configuration de iMP-BGP
10) monter le neighbor iBGP (utiliser les lo comme source) 11) vrification:
show ip bgp nei
12) configurer les address-family, ipv4, vpnv4 et vrf 13) Effectuer la double redistribution
redistribuer les routes des clients dans le vrf correspondant de BGP
redistribuer les routes du vrf de BGP dans le vrf du client correspondant
14) Vrification: show ip bgp vpnv4 all show ip vrf ca ping du client dun loopback lautre travers du core
43
EXTRA stuff
Source Rick graziani...
44
45
MPLS Features
Label Switch Path (LSP) The path through one or more LSRs at one level of the hierarchy followed by a
packet in a particular path.
46
MPLS Features
Labels usually correspond to destination networks, similar to Layer 3 routing. Labels can also correspond to:
Layer 3 VPN destination Layer 2 virtual circuit Egress interface QoS Source address
MPLS designed to forward any type of Layer 3 packet, but IPv4 and IPv6 is at the forefront.
47
Label Format
Field Description
20-bit label The actual label. Values 0 to 15 are reserved.
3-bit experimental (EXP)
field
Undefined in the RFC. Used by Cisco to define a class of
service (CoS) (IP precedence).
1-bit bottom-of-stack
indicator
MPLS allows multiple labels to be inserted. The bottom-
of-stack bit determines if this label is the last label in the
packet. If this bit is set (1), the setting indicates that this
label is the last label.
8-bit Time to Live (TTL)
field
Has the same purpose as the TTL field in the IP header.
48
Label Stack
In most cases only one label is assigned to a packet. There are some instances where more than one label is used:
MPLS VPNs: Multiprotocol BGP (MP-BGP) is used to propagate a second label that identifies the VPN in addition to the label that is propagated by Label Distribution Protocol (LDP) to identify the path.
MPLS Traffic Engineering (MPLS TE): Uses Resource Reservation Protocol (RSVP) to establish label switched path (LSP) tunnels. RSVP propagates labels that are used to identify the tunnel LSP. This label is in addition to the label that is propagated by LDP to identify the underlying LSP.
MPLS VPNs combined with MPLS TE: Three or more labels are used to identify the VPN, tunnel LSP, and the underlying LSP.
49
Label Stack
A label does not contain any information about the Layer 3 protocol that is being carried in a packet.
This lack of information means that the identity of the network layer protocol must be inferable from the value of the label.
However for Layer-2 protocols that have TYPE or PID fields new values indicate the MPLS-enabled Layer-3 protocol.
Unlabeled IP unicast: PID = 0x0800 identifies that the frame payload is a classic unicast IP packet.
Labeled IP unicast: PID = 0x8847 identifies that the frame payload is a unicast IP packet with at least one label preceding the IP header.
Labeled IP multicast: PID = 0x8848 identifies that the frame payload is a multicast IP packet with at least one label preceding the IP header.
50
MPLS Features
Packets are labeled prior to be forwarded at Ingress edge LSR.
After ingress node, there is no routing table lookup.
At each non-edge LSR the label is removed and a new label added at each hop.
Only edge LSRs perform routing table lookups.
Non-edge LSRs perform forwarding process based only on the label, not Layer 3 information.
Decreases latency faster packet forwarding.
Final edge LSR (egress LSR):
pops (removes) the label from the packet and
performs a new routing table lookup to forward the packet
51
MPLS Features
Note: The type or protocol ID field indicates as MPLS enabled layer-3 protocol.
52
MPLS Features
Penultimate hop pop
When the LSR prior to the destination edge router pops the label before sending the packet to the final edge LSR.
Final edge router then does not need to perform both a label lookup and a Layer 3 routing lookup, but only the Layer 3 routing lookup.
53
Control and Data Planes
LSRs funtion at both the control and data planes. Control plane
Where exchange of routing information takes place Traditional routing functions associated with routing protocol operations Process routing protocol updates as they occur
Data plane or Forwarding plane Where the actual forwarding occurs MPLS This is done solely based on labels.
LSR Maintains converged routing table but usually not engaged for packet forwarding Maintains routing table to ensure the FIB is up to date with the most current
information so that labels can be properly assigned and packets can be dispatched.
54
MPLS Architecture
Control plane
routing protocols database
IP routing table (RIB)
Routing updates from
other routers
IP forwarding table (FIB)
Data plane
Label forwarding table (LFIB)
Label Information Base (LIB)
Label bindings
learned via LDP from
other routers
Incoming MPLS
Packet Outgoing MPLS/IP
Packet
Incoming IP Packet
Population of RIB/FIB/LIB/LFIB in an MPLS router
55
Packet Propagation Across an MPLS Network
MPLS Labels: Penultimate Hop Popping
The label at the top of the stack is removed (popped) by the upstream neighbor of the egress LSR
The egress LSR requests the popping through the label distribution protocol
Egress LSR advertises implicit-null label
One lookup is saved in the egress LSR 56
57
Penultimate Hop Popping (PHP)
PHP optimizes MPLS performance by reducing CPU effort on Edge LSRs.
The Edge LSR advertises a pop or implicit null label (value of 3) to a neighbor.
The pop tells the neighbor to use PHP.
Top Related