Multi Protocol Label Switching (MPLS) Alfio Lombardo Background: integrazione del trasporto del traffico • ISDN • B-ISDN ATM (Asynchronous Transfer Model) - Elevata velocità di commutazione - Possibilità differenziare QoS - Meccanismi di gestione e controllo traffico (Traffic engineering) Background: Asynchronous Transfer Mode • http://www2.rad.com/networks/1994/atm/tu torial.htm • http://www.iec.org/online/tutorials/atm_fun d/ • http://www.cne.gmu.edu/modules/atm/Text tut.html • http://www.lanl.gov/lanp/atm.tutorial.html • http://usuario.cicese.mx/~aarmenta/frames /redes/atm/tutorial1/tute.html Background: Asynchronous Transfer Mode Assumptions ATM is a cell-based, connection-oriented transfer Methodology (label switching) ATM cell flow 1 5+48 bytes 2 3 ATM net 1 2 3 Background: Asynchronous Transfer Mode • ATM works on fiber optic fabric with extremely low error rates No error correction on data GFC: Generic Flow Control VPI: Virtual Path Id VCI: Virtul Circuit Id PT: Payload Type CLP: Cell Loss Priority HEC: Header Error Control Background: Asynchronous Transfer Mode ATM uses Virtual Connection divided in two levels (required for switching) : Virtual Path Virtual Circuit Background: Virtual Channel There are many types of virtual channel connections: • User-to-user applications. Between customer equipment at each end of the connection. • User-to-network applications. Between customer equipment and network node. • Network-to-network applications. Between two network nodes and includes traffic management and routing. Virtual channel connections have the following properties: • A VCC user is provided with a quality of service specifying parameters such as cell-loss ratio, CLR, and cell-delay variation, CDV. • VCCs can be switched or semi-permanent. • Cell sequence integrity is maintained within a VCC. • Traffic parameters can be negotiated. Background: Virtual Path • Virtual paths are used to simplify the ATM addressing structure • Within an ATM cross-connect, information about individual virtual channels within a virtual path is not required, as all VCs within one path follow the same route as that path Background: virtual channels and paths relationship Cross connect node Background: Asynchronous Transfer Mode • ATM can dynamically allocate bandwidth • ATM can dynamically manage QoS specifications • The devices to be connected to ATM networks might be very simple, like a telephone • ATM is organized in a hierarchy, like today’s phone network Background: ATM Service Classes Service Class Quality of Service Parameter constant bit rate (CBR) This class is used for emulating circuit switching. The cell rate is constant with time. CBR applications are quite sensitive to cell-delay variation. Examples of applications that can use CBR are telephone traffic (i.e., nx64 kbps), videoconferencing, and television. variable bit rate–non-real time (VBR–NRT) This class allows users to send traffic at a rate that varies with time depending on the availability of user information. Statistical multiplexing is provided to make optimum use of network resources. Multimedia e-mail is an example of VBR–NRT. variable bit rate–real time (VBR–RT) This class is similar to VBR–NRT but is designed for applications that are sensitive to cell-delay variation. Examples for real-time VBR are voice with speech activity detection (SAD) and interactive compressed video. available bit rate (ABR) This class of ATM services provides rate-based flow control and is aimed at data traffic such as file transfer and e-mail. Although the standard does not require the cell transfer delay and cell-loss ratio to be guaranteed or minimized, it is desirable for switches to minimize delay and loss as much as possible. Depending upon the state of congestion in the network, the source is required to control its rate. The users are allowed to declare a minimum cell rate, which is guaranteed to the connection by the network. unspecified bit rate (UBR) This class is the catch-all, other class and is widely used today for TCP/IP. Background: QoS parameters. Technical Parameter Definition cell loss ratio (CLR) CLR is the percentage of cells not delivered at their destination because they were lost in the network due to congestion and buffer overflow. cell transfer delay (CTD) The delay experienced by a cell between network entry and exit points is called the CTD. It includes propagation delays, queuing delays at various intermediate switches, and service times at queuing points. cell delay variation (CDV) CDV is a measure of the variance of the cell transfer delay. High variation implies larger buffering for delay-sensitive traffic such as voice and video. peak cell rate (PCR) The maximum cell rate at which the user will transmit. PCR is the inverse of the minimum cell inter-arrival time. sustained cell rate (SCR) This is the average rate, as measured over a long interval, in the order of the connection lifetime. burst tolerance (BT) This parameter determines the maximum burst that can be sent at the peak rate. This is the bucket-size parameter for the enforcement algorithm that is used to control the traffic entering the network. Background: QoS vs. Service class Class of Service CBR VBR– NRT VBR– RT AB R UB R CLR yes yes yes yes no CTD yes no yes no no CDV yes yes yes no no PCR yes yes yes no yes SCR no yes yes no no BT no yes yes no no flow control no no no yes no Background: ATM Architecture Modelli di integrazione IP/ATM • Modello overlay • Modello integrato Modello overlay (rfc 1483) • • • • Utilizzato a partire dalla meta’ anni 90 Utlizza PVC (Permanent Virtual Circuit) PVC di tipo UBR o ABR tra gli IP_Router Trasporto pacchetti su celle ATM attraverso AAL5 PVC ATM N(N-1)/2 PVC per maglia completa Modello overlay: topologia fisica PVC setup: Segnal. ATM 3 Rete ATM 1 Intf In VPI/VCI In Intf Out VPI/VCI Out 1 0/40 3 0/50 Switch ATM Router IP 1 Switch interface Modello overlay: instradamento Rete Next Hop Interface R2 atm 0/0/1 VPI/VCI=0/40 195.31.235.0/24 Intf In VPI/VCI In Intf Out VPI/VCI Out Intf In VPI/VCI In Intf Out VPI/VCI Out 1 0/40 3 0/50 2 0/50 3 0/60 Segmentazione S1 S2 R1 VPI/VCI=0/50 ATM 0/0/1 1 3 R2 VPI/VCI=0/60 2 3 ATM 0/0/2 VPI/VCI=0/40 Riassemblaggio 195.31.235.88 195.31.235.88 Commutazione ATM Host 195.31.235.88 172.16.12.10 Modello overlay: configurazione interfaccia router R1(config) # interface atm 0/0/1 R1(config) # ip address 172.16.12.1 255.255.255.252 R1(config) # pvc 0/40 R1(config) # abr 1000 500 R1(config) # encapsulation aal5snap Parametri PVC: PCR= 1 Mb/s MCR= 500 kb/s Modello overlay:Segmentazione e riassembraggio ATM cell IP IP IP IP PVC ATM IP IP IP IP AAL5 AAL5 AAL5 AAL5 ATM ATM ATM ATM Fisico Fisico Fisico Fisico Ricostruzione pacchetti in tutti i router Reti completamente magliate Modello overlay: vantaggi • Allocazione di banda sui PVC ATM • Differenziazione dei flussi di traffico ATM Possibilità di ingegnerizzare il traffico in rete Modello overlay: ingegnerizzare il traffico in rete PVC setup: Segnal. ATM Rete ATM Rete 195.31.235.0/24 195.31.233.0/24 Next Hop Interface R2 R2 atm 0/0/1 VPI/VCI=0/40 atm 0/0/2 VPI/VCI=0/90 Switch ATM Router IP 1 Switch interface Modello overlay: svantaggi • Gestione di 2 reti differenti (ATM e IP) • Limitata scalabilità (interfaccia SAR-ATM 622 Mbit/s) • Cell tax • Stress del protocollo di routing IP (elevato numero adiacenze elevato numero di messaggi di segnalaz. per configurare le tabelle dei router) Ridurre il numero di adiacenze: Modello Integrato Modello integrato Gli switch ATM implementano funzioni di instradamento IP Switch IP+ATM Switch ATM Router IP Intelligenza: routing IP Inoltro: Longest-match lookup Intelligenza: SW ATM forum Inoltro: Commutazione di etichetta - Esegue funzioni di routing IP (es.: RIP, OSPF, …) - Forwarding con modalità ATM Risultato: rete IP dove i pacchetti vengono trasportati in celle ATM su collegamenti virtuali che seguono un percorso determinato da un protocollo di routing IP (es. RIP, OSPF, …) Modello integrato: associazione delle etichette (label binding) • Nel modello integrato il collegamento virtuale non puo’ essere realizzato dalla segnalazione ATM …. Quindi e’ necessario integrare nella componente di controllo dello Switch IP+ATM un meccanismo per associare al percorso individuato dal routing IP le etichette VPI/VCI Modello integrato: associazione delle etichette (label binding) Prot. Routing IP: per raggiungere 195.31.235.0/24 IA1 R1 Richiesta: 195.31.235.0/24 VPI/VCI: 0/40 Richiesta: 195.31.235.0/24 IA1 VPI/VCI: 0/50 IA2 IA2 R1 – IA1 – IA2 – R2 Richiesta: 195.31.235.0/24 R2 VPI/VCI: 0/60 195.31.235.0/24 Definisce un circuito virtuale tra R1 e R2 assegnando delle etichette ATM al percorso individuato dall’instradamento IP Modello integrato: Rete Next Hop 195.31.235.0/24 IA1 Interface atm 0/0/1 VPI/VCI: 0/40 Intf In VPI/VCI In Intf Out VPI/VCI Out Intf In VPI/VCI In Intf Out VPI/VCI Out 1 0/40 3 0/50 2 0/50 3 0/60 IA1 R1 VPI/VCI=0/40 IA2 VPI/VCI=0/50 ATM 0/0/1 R2 VPI/VCI=0/60 ATM 0/0/2 Riassemblaggio 195.31.235.88 195.31.235.88 Segmentazione Commutazione ATM Host 195.31.235.88 Modelli overlay e integrato: confronto Overlay • PVC tra R1 e R2 realizzato con segnalazione ATM • Coesitenza 2 protocolli di routing • Adiacenza con router R2 Integrato • PVC tra R1 e R2 realizzato con label binding protocol • Protocollo di routing IP • Adiacenza con switch IP+ATM Nota: nel modello Integrato il pacchetto IP viene riassemblato solo nei router IP “reali” , non negli swithc IP+ATM…. Adiacenze IP Modello “integrato” Modello “overlay” Open issues • Spreco di banda introdotto dalla segmentazione ATM • Scalabilità interfaccia SAR ATM (segmentazione solo ai bordi della rete) • Mancanza di uno standard multivendor MultiProtocol Label Switching protocol: MPLS MPLS target • • • • Recepire il modello integrato Utilizzare diverse tecnologie di livello 2 Possibilità di ingegnerizzare traffico IP Supportare QoS in reti IP in accordo a DiffServ • Offrire RVP MPLS: concetti base • Introduce nelle reti IP (backbone) la commutazione di etichetta tipico del circuito virtuale • Non è legato alla tecnologia di trasporto • Non è conscio del contenuto dl trasporto Pacchetti di livello 3 (IPv4, IPv6, IPX, …) ... Trame di livello 2 (PPP, Ethernet, …) Commutazione di Etichetta ... Tipo di pacchetti/trame trasportati MPLS Livello 2 (Data Link) Forwarding Equivalent Class La decisione di instradamento di un router può essere vista come appartenente a due passi logici: • Ricavare dalle intestazioni del pacchetto le informazioni per classificare il pacchetto in una data FEC • Utilizzare la FEC per ottenere il next hop dalla tabella FEC - NH FEC: esempi IP •Ricavare dalle intestazioni del pacchetto il Destination Address (FEC) •Utilizzare la FEC per ottenere il next hop sulla base del Longest Match Prefix Applicato alla tabella di routing Generalizzazione FEC: Policy based routing FEC 1: pacchetti destinati alla rete 195.31.235.0 1 2 n FEC NH FEC 1 1 FEC 2 2 ... ... Tabella di routing IP (FEC-To-Next-Hop) ... FEC 2: pacchetti destinati alla rete 195.31.235.0 con IP PRECEDENCE=111 ... FEC n: pacchetti destinati al terminale 145.50.1.2 con indirizzo sorgente 195.35.4.5 FEC: granularità FEC a: pacchetti destinati alla rete 195.31.235.0 Granularità grossa Granularità FEC b: pacchetti destinati al terminale 145.50.1.2, porta 80, con indirizzo IP sorgente 195.35.4.5, porta fine sorgente 11782 Generalizzazione FEC: Policy based routing • Ricavare dalle intestazioni del pacchetto la FEC: dest addr.+ sourceadd.+ IP_TOS +... (Policy base routing) • Utilizzare la FEC per ottenere il next hop Analizzare tutti i campi che determinano la FEC è molto oneroso se effettuato in tutti i router • Analisi dei campi necessari solo nei router di accesso alla rete • Associazione di una label alla FEC nei router di accesso • Istradare in accordo alla label nei router interni alla rete MPLS: modalità di funzionamento Classificazione dei pacchetti all’entrata del Dominio MPLS (assegnazione ad una FEC) Pacchetto I nodi intermedi analizzano solo l’intestazione MPLS ed eseguono la Consegna dei pacchetti traslazione di etichetta (label al Livello 3 all’uscita dal switching) Dominio MPLS IGP IGP IGP Pacchetto L1 Pacchetto L2 Pacchetto L3 IGP Il nodo in ingresso al dominio MPLS assegna l’etichetta in accordo alla FEC (Label Imposition) Pacchetto IGP Il nodo in uscita dal dominio MPLS rimuove l’etichetta (Label Disposition) Router MPLS MPLS: inoltro dei pacchetti MPLS non viene implementato nel dominio dei clienti 195.31.235.78 & 195.31.235.15 sono associati alla FEC 195.31.235.0/24 I pacchetti IP arrivano alla rete MPLS e vengono etichettati 195.31.235.78 195.31.235.15 I pacchetti MPLS arrivano a un nodo intermedio il quale cambia l’etichetta; il pacchetto viene quindi inoltrato al Next-Hop R1 195.31.235.78 98 195.31.235.15 98 FEC 195.31.235.0/24 195.31.235.78 197.26.15.94 56 195.31.235.15 R2 Rete MPLS 56 R3 Architettura di un router MPLS Label Switching Router = Componente di Controllo + Componente Dati • L’architettura di un router MPLS (Label Switching Router) è divisa in due distinte componenti – Controllo – Dati (Forwarding) Label Switch Router: componente di controllo Protocollo di Routing IP (es. OSPF, IS-IS, BGP, PIM) Criteri per la definizione delle associazioni tra etichette e FEC (label bindings) Distribuzione delle associazioni tra etichette e FEC consigliati Creazione/aggiornamento delle Tabelle di Instradamento Gestione delle associazioni etichette-FEC Label Switch Router: componente dati 45 1 29 64 2 29 MPLS: architettura di rete ATM/FR POP SDH Sito Cliente POP LSR Edge-LSR ATM/FR MPLS: tab di routing e gestione etichette 45 ILM + LIB FTN + LIB 29 64 Edge-LSR LSR Pacchetti di livello 3 (non etichettati) Tabelle di Routing IP FTN: Fec To NHLFE (Next Hop Label Forwarding Entry) ILM: Incoming Label Map LIB: Label Information Base 29 MPLS:LIB IGP Ho associato l’etichetta 29 alla FEC 195.31.235.0/24. Ehi tu, 172.16.0.1, guarda che ho associato l’etichetta 45 alla FEC 195.31.235.0/24. Vedi di memorizzarlo nella tua LIB Lab 29 …. Label 45 FEC 195.31.235.0/24 172.16.5.2 172.16.0.1 FEC Label Loc. Label Rem. 195.31.235.0/24 29 45 175.16.5.2 50 172.16.1.4 29 172.16.1.4 70 172.16.5.2 192.106.248.0/24 64 ... Ehi tu, 175.16.0.1, guarda che ho associato l’etichetta 50 alla FEC 195.31.235.0/24. Vedi di memorizzarlo nella tua LIB Prov. 172.16.1.4 ... LIB 172.16.5.2 Interfaccia IP Identificativo LSR (una delle interfacce IP LIB (Cisco 3640) P1# show mpls ldp bindings Etichetta locale 192.168.0.22/32, rev 53 local binding: label: 24 remote binding: lsr: 192.168.1.3:0, label: 25 remote binding: lsr: 192.168.1.2:0, label: 22 FEC Etichette remote remote binding: lsr: 192.168.0.11:0, label: 27 remote binding: lsr: 192.168.0.12:0, label: 34 192.168.0.31/32, rev 31 Provenienze local binding: label: 25 remote binding: lsr: 192.168.1.3:0, label: 21 remote binding: lsr: 192.168.1.2:0, label: 24 remote binding: lsr: 192.168.0.11:0, label: 28 remote binding: lsr: 192.168.0.12:0, label: 35 192.168.0.32/32, rev 33 local binding: label: 26 remote binding: lsr: 192.168.1.3:0, label: 22 remote binding: lsr: 192.168.1.2:0, label: 25 remote binding: lsr: 192.168.0.11:0, label: 29 remote binding: lsr: 192.168.0.12:0, label: 36 FTN (negli Edge_LSR) Multicast/load bal. FEC-To-NHLFE (1) (k) FEC1 ... NHLFE NHLFE ... NHLFE ... NHLFE ... ... FEC2 ... Classificazione in FEC NHLFE FECn NHLFE ILM (nei LSR) Multicast/load bal. Incoming Label Map (1) (k) L1 ... NHLFE NHLFE ... NHLFE ... NHLFE ... ... L2 ... Etichetta entrante NHLFE Ln NHLFE Next Hop Label Forwarding Entry E adesso come e a chi li inoltro questi pacchetti ? 64 FEC/Label - Next-Hop (interfaccia di uscita, label) - Operazioni sulla pila delle etichette - Swap Ehi tu, guarda che le istruzioni per l’inoltro sono contenute nel NHLFE delle tabelle FTN/ILM - Pop - Push - (opzionale) - Informazioni per il livello 2 - Modalità di trattamento del pacchetto -... Tabella FTN/ILM NHLFE Costruzione ILM • dinamica: la ILM viene costruita a partire dalla tabella di routing IP presente nel LSR e dalla LIB; in questo caso l’indicazione del Next-Hop proviene dal protocollo di routing adottato dalla rete (OSPF, IS-IS, ecc.). • esplicita: la ILM viene costruita tramite un protocollo di segnalazione che permette di scrivere la riga corrispondente a ciascuna FEC; in questo caso il NextHop viene determinato esplicitamente (da un Operatore o automaticamente) attraverso un protocollo di segnalazione (es. RSVP-TE, CR-LDP, vedi capitolo su “Traffic Engineering”). ILM CISCO 3640 P1# show mpls forwarding-table Local Outgoing Prefix tag tag or VC or Tunnel Id 16 Untagged 10.1.1.2/32 17 Pop tag 192.168.0.12/32 18 Untagged 172.16.2.0/24 19 Untagged 172.16.3.0/24 20 Untagged 172.16.12.0/24 21 Untagged 172.16.13.0/24 22 Untagged 172.16.23.0/24 23 Pop tag 192.168.1.1/32 24 19 192.168.1.2/32 25 20 192.168.1.3/32 26 28 192.168.0.21/32 27 24 192.168.0.22/32 28 25 192.168.0.31/32 29 26 192.168.0.32/32 30 Untagged 10.10.0.0/24 31 Untagged 10.1.11.0/24 32 Untagged 10.11.0.0/24 Etichetta entrante Etichetta uscente FEC Bytes tag switched 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Outgoing interface Se0/0 Fa0/0 Fa0/0 Fa0/0 Fa0/0 Fa0/0 Fa0/0 Fa0/0 Fa0/0 Fa0/0 Fa0/0 Fa0/0 Fa0/0 Fa0/0 Se0/0 Se0/0 Se0/0 Interfaccia uscente Fa=Fast Ethernet Se=Seriale Next Hop point2point 172.16.1.12 172.16.1.1 172.16.1.1 172.16.1.1 172.16.1.1 172.16.1.1 172.16.1.1 172.16.1.1 172.16.1.1 172.16.1.1 172.16.1.1 172.16.1.1 172.16.1.1 point2point point2point point2point Next-Hop Costruzione ILM (dinamica) Rete Dest. Next-Hop 195.31.235.0/24 Interfaccia: s0 Next Hop: 192.168.1.1 192.106.248.0/24 Interfaccia: e0 Next Hop: 192.168.5.5 ... ... Identificativo LSR 192.168.1.1 172.16.5.2 192.168.5.5 172.16.1.4 ... 52 ... Etichetta Etichetta Loc. Rem. Prov. 195.31.235.0/24 29 45 50 172.16.5.2 172.16.1.4 192.106.248.0/24 64 29 70 172.16.1.4 172.16.5.2 ... Etichetta 29 Next-Hop FEC Tabella di routing IP ... NHLFE Label: 45 Interfaccia: s0 Next Hop: 192.168.1.1 operazioni:…. Label: 99 Interfaccia: s1 Next Hop: 192.168.6.7 64 Label: 29 Interfaccia: e0 Next Hop: 192.168.5.5 72 Label: 44 Interfaccia: s0 Next Hop: 192.168.1.1 ... ... ILM LIB P1#sh ip route . . . . . . . . O IA 192.168.0.32 [110/75] via 172.16.13.3, 2d23h, Serial0/1 P1#sh mpls ldp neighbor Peer LDP Ident: 192.168.1.3:0; Local LDP Ident 192.168.1.1:0 TCP connection: 192.168.1.3.11006 - 192.168.1.1.646 State: Oper; Msgs sent/rcvd: 15116/15088; ; Downstream Up time: 1w2d LDP discovery sources: Serial0/1, Src IP addr: 172.16.13.3 Addresses bound to peer LDP Ident: 192.168.1.3 P1#sh mpls ldp bindings 192.168.0.32/32, rev 40 local binding: remote binding: remote binding: remote binding: 172.16.23.3 172.16.3.3 Bytes tag switched 876 Outgoing interface Se0/1 Elenco delle interfacce di un LSR remoto 172.16.13.3 label: 28 lsr: 192.168.0.12:0, label : 36 lsr: 192.168.0.11:0, label : 35 lsr: 192.168.1.3:0, label : 30 P1#show mpls forwarding-table Local Outgoing Prefix tag tag or VC or Tunnel Id 28 30 192.168.0.32/32 Tabella di routing IP LIB Next Hop ILM point2point Operazioni sulle etichette Rimpiazza 88 con 99 … 64 88 64 … 99 64 … 88 swap Elimina 99 pop 64 … X 88 99 Rimpiazza 88 con 99 e inserisci 67 push 64 … 88 64 … 99 67 Label Switched Path R[u] R[1] 54 79 45 R[i] 58 29 R[4] 67 R[3] R[2] LSP: • Hop To Hop • Esplicito (RSVP-TE; CR-LDP) Limiti del routing IP convenzionale e dell’LSP Hop to Hop 1,5 Mbit/s Ra R2 R3 R1 Congestione ! 1,5 Mbit/s Rb Percorso Ra R3 Percorso Rb R3 Percorso Sottoutilizzato R4 R5 Rete 195.31.235.0/24 LSP Nidificati Un LSP di livello m (m>1) e’ una sequenza di LSR - Che inizia con un LSR di ingresso che inserisce l’m-esima label della pila -I cui router intermedi eseguono la commutazione di etichetta sulla etichetta aggiunta -Che termina con un LSR di uscita dove la decisione di inoltro e’ basata sull’etichetta di livelli m-1 (o sull indirizzo IP se M=1) R[u] 72 29 R[i] 19 29 55 29 35 R[4] 29 45 swap push R[2] R[3] pop Aggregazione indirizzi IP (CIDR): annunci delle reti/etichette 195.31.40.0/24 Annunciati come 195.31.40.0/23 195.31.41.0/24 Punto di aggregazione/disaggregazione dei prefissi Rete = 195.31.40.0/23 Etichetta = 44 LSR-D Rete = 195.31.40.0/24 Etichetta = 24 Rete = 195.31.40.0/23 Etichetta = POP LSR-A LSR-C Rete = 195.31.41.0/24 Etichetta = 48 LSR-B Aggregazione indirizzi IP (CIDR): inoltro pacchetti 195.31.40.0/24 Annunciati come 195.31.40.0/23 195.31.41.0/24 Terminazione dell’LSP POP 195.31.40.1 24 X 195.31.40.1 44 X 195.31.41.1 44 LSR-A 195.31.40.1 LSR-D 195.31.41.1 LSR-C 195.31.41.1 48 Lookup a livello 3 LSR-B Egress-Targeted Label Assignment (LSP basati su edge LSR di uscita) L’LSR di ingresso dell’LSP sa che le due FEC devono seguire lo stesso LSP fino al LSR R[u] Rete MPLS 195.35.25.15 195.35.25.15 98 190.30.20.10 195.35.25.0/24 98 190.30.20.10 R[u] R[i] Le due FEC vengono aggregate; viene utilizzato lo stesso LSP e quindi ai pacchetti viene associata una unica etichetta 190.30.20.0/24 Etichette TTL S Exp 8 1 3 Livello 1 Pacchetto/Trama Label 20 Livello 2 Livello m ... Pacchetto MPLS consegnato al livello 2 (Eth., ATM, F.R., PPP, ecc.) Trasporto dei pacchetti MPLS su trama Pacch. MPLS Pacch. T2 Pacch. MPLS MPLS H 2 Pacch. T2 Pacch. MPLS MPLS H 2 Pacchetto Pacchetto Pacchetto MPLS MPLS MPLS Liv. 2 Liv. 2 Liv. 2 Liv. fisico Liv. fisico Liv. fisico H 2 Header Livello 2 T 2 Trailer Livello 2 Trasporto dei pacchetti MPLS su ATM Int. Etich. NHLFE Etich. NHLFE … 64 36 … 36 … 1 Etich. 45 Int. 1 … … … 45 Etich. 55 Int. 2 … … Int. Etich. NHLFE 1 … … 55 Etich. 99 Int. 2 … … ILM ILM ILM 64 0 64 99 R[1] VPI/VCI = 0/45 R[2] R[3] VPI/VCI = 0/55 MPLS MPLS AAL5 AAL5 ATM ATM ATM Liv. fisico Liv. fisico Liv. fisico Idetificazione del tipo di protocollo trasportato • Il campo protocol del livello 2 indica “MPLS” • MPLS non ha un campo “protocol” • A ciascun tipo di protocollo trasportato viene dedicato un set di etichette Distribuzione delle associazioni FEC/Etichette Possibili opzioni: incapsulare le etichette nei messaggi di protocolli di routing esistenti utilizzare uno specifico protocollo LSP Esplicito LDP: Label Distribution Protocol CR_LDP RVSP_TE Carring Label Information in BGP-4 Modalità di distribuzione e mantenimento delle associazioni Diverse modalità di distribuzione in accordo a: •Direzione della distribuzione •A quali LSR inviare le associazioni •Quando inviare le associazioni Diverse modalità di mantenimento delle associazioni nella LIB •Mantenere nella LIB tutte le associazioni •Mantenere nella LIB le associazioni necessarie per l’inoltro dei pacchetti Direzione della distribuzione : modalità downstream/upstream 195.31.235.0/24 R[1] R[2] Associazione locale FEC: 195.31.235.0/24 Etichetta: 80 R[3] Associazione locale FEC: 195.31.235.0/24 Etichetta: 80 Distribuzione FEC: 195.31.235.0/24 Etichetta: 80 R[1] Distribuzione FEC: 195.31.235.0/24 Etichetta: 80 R[2] Pacchetto R[2] 80 R[1] (a): downstream R[3] Pacchetto R[2] R[2] 80 R[3] (b): upstream Modalità downstream Associazione locale FEC: 195.31.235.0/24 Etichetta: 80 Distribuzione FEC: 195.31.235.0/24 Etichetta: 80 Associazione locale FEC: 195.31.235.0/24 Etichetta: 72 Distribuzione FEC: 195.31.235.0/24 Etichetta: 72 Associazione locale FEC: 195.31.235.0/24 Etichetta: 35 Distribuzione FEC: 195.31.235.0/24 Etichetta: 35 195.31.235.0/24 R[1] R[2] R[3] R[4] (a) Pacchetto 80 Pacchetto 72 Pacchetto 35 195.31.235.0/24 R[1] R[2] R[3] (b) R[4] A quali LSR inviare le associazioni? Distribuzione con richiesta Ehi tu, guarda che mi serve una etichetta per la FEC 195.31.235.0/24 Richiesta 195.31.235.0/24 LSR 1 Associazione Downstream on demand LSR 2 Distribuzione senza richiesta Ehi tu, guarda che ti stò inviando una etichetta per la FEC 195.31.235.0/24 Associazione 195.31.235.0/24 LSR 1 LSR 2 Downstream unsolecited Quando inviare le associazioni Controllo: - indipendente: l’annuncio puo’ essere inviato in qualsiasi momento; - ordinato: l’annuncio puo’ essere inviato solo dopo aver ricevuto l’annuncio da parte degli LSR next hop. Esempio: Controllo ordinato (4) (2) (3) Allocazione Etichetta(50) per FEC 50.1/16 Richiesta: FEC 50.1/16 R[3] (1) R[2] Etichetta: 40 (6) R[1] (8) Allocazione Etichetta(50) per FEC 40.1/16 (7) (5) Inserimento nella ILM Inserimento nella ILM Downstream on-demand con controllo ordinato Esempio: Controllo indipendente (4) (2) (3) Allocazione Etichetta(50) per FEC 50.1/16 Richiesta: FEC 50.1/16 R[3] (1) R[2] Etichetta: 40 (6) R[1] (4) Allocazione Etichetta(40) per FEC 50.1/16 (3) (5) Inserimento nella ILM Inserimento nella ILM Downstream on-demand con controllo indipendente Esempio: LSP ILM ILM Etich. I/F entrante uscita Etich. I/F Etich. entrante uscita uscente 50 1 40 1 Dest. 50.1/16 40 FTN Dest. 50.1/16 I/F Etich. uscita uscente 1 1 50 50 1 1 R[1] 1 40 R[2] R[3] 50.1/16 Modalità di mantenimento nella LIB Modalita: - Liberale (Tutte le associazioni nella LIB) - Conservativa (Solo le associazioni ricevute dai Next Hop) Compatibilità tra le varie opzioni Downstream unsolecited + mod indipendente + mantenimento liberale Downstream on-demand + mod ordinata + mantenimento conservativo Label Distribution Protocol Meccanismo di discovery Utilizzo di TCP (UDP per Hello) con porta 646 Uso codifica TLV Due LSR che utilizzano il protocollo LDP per lo scambio di associazioni etichetta-FEC vengono detti “LDP Peers” e si parla di “sessione LDP” esistente tra i due LSR per lo scambio delle associazioni. LSR A Etichetta 94 FEC 195.31.235.0/24 LSR B Sessione LDP Fig. 3.5 (a) LSR A Rete MPLS Etichetta 94 FEC 195.31.235.0/24 Sessione LDP Usato per i LSP nidificati! LSR B Messaggi LDP Notifica Discovery NOTIFICATION HELLO Sessione Annunci INITIALIZATION KEEPALIVE ADDRESS ADDRESS WITHDRAW LABEL MAPPING LABEL REQUEST LABEL ABORT REQUEST LABEL WITHDRAW LABEL RELEASE Meccanismo di discovery Base LSR C Hello LSR A Hello LSR B Hello Hello Rete MPLS Esteso LSR D Meccanismo base: utilizza IP address 224.0.0.2 e Hold Timer 15 s. Meccanismo esteso: utilizza indirizzo IP del router target e Hold Timer 45 s. Sessioni LDP: apertura connessione TCP Ehi tu, guarda che per aprire la sessione LDP dobbiamo prima stabilire una connessione TCP SYN, Seq=n LSR 1 (attivo) SYN, Seq=m, ACK=n+1 LSR 2 (passivo) ACK=m+1 SE IP1>IP2 LSR1 attivo Sessioni LDP: inizializzazione sessione Ehi tu, guarda che dobbiamo metterci d’accordo sui parametri della sessione LDP Initialization LSR 1 Initialization Versione protocollo Modalità di distribuzione Keepalive Timer Spazio VPI/VCI (ATM) LSR 2 Sessioni LDP: KeepAlive Keepalive Timer Keepalive Timer LDP-PDU/Keepalive LSR 1 LDP-PDU/Keepalive LSR 2 HoldTimer= K * KeepAlive Timer K=3 Allo scadere di HoldTimer LSR chiude la connessione TCP Annunci LDP: Address Ehi tu, guarda che ti stò inviando un messaggio di ADDRESS per comunicarti gli indirizzi di tutte le mie interfacce IP TCP H Porta TCP dest.: 646 ADDRESS Annunci LDP: Label Mapping Ehi tu, guarda che ti stò inviando un messaggio di LABEL MAPPING per comunicarti che ho associato l’etichetta 35 alla FEC 195.31.235.0/24 IP TCP H LABEL MAPPING LSR UpStr Porta TCP dest.: 646 LSR DownStr Annunci LDP: Label Request Ehi tu, guarda che ti stò inviando un messaggio di LABEL REQUEST perché mi serve una etichetta per la FEC 195.31.235.0/24 LABEL REQUEST H TCP IP LSR UpStr LSR DownStr Porta TCP dest.: 646 Annunci LDP: Label Withdraw Ehi tu, ritiro quanto fatto in precedenza per la FEC 195.31.235.0/24; devi cancellare l’associazione FEC-etichetta che ti avevo inviato IP TCP H LABEL WITHDRAW LSR UpStr LSR DownStr Porta TCP dest.: 646 Annunci LDP: Label Release Ehi tu, guarda che ti stò inviando un messaggio di LABEL RELEASE perché mi è cambiato il Next-Hop per la FEC 195.31.235.0/24 e quindi l’associazione FECetichetta che mi hai inviato non mi serve più LABEL RELEASE H TCP IP LSR UpStr Porta TCP dest.: 646 LSR DownStr LDP - PDU 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Version | PDU Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LDP Identifier | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ LDP PDU MSG n MSG 2 MSG 1 H 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |U| Message Type | Message Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | Mandatory Parameters | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | Optional Parameters | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + TCP/UDP IP UDP solo per i messaggi “Hello” LDP Identifier 4 byte 2 byte Spazio di etichette Identificativo LSR 192.168.0.11 : 0 LDP Identifier Hello R1:0 R[5] Ser. Hello R5:0 Hello R1:0 Eth. R[3] Hello R1:1 R[1] Eth. ATM ATM Hello R2:4 Hello R3:0 Hello R4:0 Eth. R[4] R[2] Distribuzione tramite BGP Attributo “MP_REACH_NLRI” +---------------------------------------------------------+ | Address Family Identifier (2 octets) | +---------------------------------------------------------+ | Subsequent Address Family Identifier (1 octet) | +---------------------------------------------------------+ | Length of Next Hop Network Address (1 octet) | +---------------------------------------------------------+ | Network Address of Next Hop (variable) | +---------------------------------------------------------+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +---------------------------------------------------------+ | Network Layer Reachability Information (variable) | +---------------------------------------------------------+ +---------------------------+ | Length (1 octet) | +---------------------------+ | Label (3 octets) | +---------------------------+ . . . . . . . . . . . . . . . +---------------------------+ | Prefix (variable) | +---------------------------+ Integrazione DiffServ-MPLS N flussi Edge-LSR Dominio DiffServ/MPLS Edge-LSR LSR DiffServ aggregazione dei flussi all’ingresso più flussi associati con una classe (identificata dal DSCP) MPLS aggregazione dei flussi all’ingresso più flussi associati con una FEC (identificata da una sequenza di etichette) Integrazione DiffServ-MPLS DiffServ: modello per la fornitura di QoS IP MPLS: Tecnica di inoltro pacchetti MPLS Support for DiffServ: rfc 3270 •DSCP nel pacchetto IP; •LSR analizzano solo intestazione MPLS PHB deducibile da •Campo Label •Campo Exp TTL S Exp 8 1 3 Label 20 Integrazione DiffServ-MPLS • L-LSP Un LSP per ciascuna Classe di Servizio: Il PHB viene dedotto dal valore della Label (campo Exp per determinare livello priorita’ di scarto ) • E-LSP Un unico LSP per tutte le Classi di Servizio: Il PHB viene dedotto dal valore del campo Exp E-LSP Campo “EXP” 1 L1 Dominio DiffServ/MPLS 2 L1 PHB 1 PHB 2 ... E-LSP ILM Label NHLFE Label: L2 Interfaccia: s0 Next Hop: p.to – p.to L1 Tipo LSP: E-LSP Mappa EXPPHB ... ... EXP ... L1 s0 EXP PHB 0 Best-Effort 1 AF11 ... ... L-LSP Dominio DiffServ/MPLS Campo “EXP” 000 L1 001 L2 010 L2 EF AF11 L1: etichetta per l’L-LSP che supporta il PHB EF L2: etichetta per l’L-LSP che supporta la PSC AF1x AF12 LSR DiffServ Informazioni aggiuntive nel Next Hop Label Forwarding Entry: -Tipo di LSP (E-LSP; L-LSP) - PHB supportati -Corrispondenza tra l’informazione di classificazione nel pacchetto entrante e un PHB -Modalità di codifica dell’informazione di classificazione nel pacchetto uscente Background: Tunnel DiffServ DSCP=“x” DSCP tunnel=“y” x x D1 y DSCP=“x” x D3 D2 Tunnel DiffServ LSP vs Tunnel DiffServ Un LSP ha caratteristiche analoghe ad un Tunnel: • LSR intermedi al LSP lavorano solo sull’ elemento esterno dell’intestazione MPLS; l’informazione DiffServ del pacchetto non viene considerata • LSP unidirezionali • L’informazione DiffServ contenuta nell’elemento esterno dell’intestazione MPLS (EXP) puo’ essere variata dai router intermedi a causa di riclassificazione LSP: modello PIPE Intestazione MPLS DSCP=“x” x x L2 x L1 DSCP=“x” x D1 D3 Rete MPLS LSP PHB determinato sulla base del contenuto dell’elemento esterno dell’intestazione MPLS LSP: modello short PIPE DSCP=“x” x Intestazione MPLS DSCP=“x” x x L1 x D1 D3 Rete MPLS LSP PHB determinato sulla base del contenuto del campo DSCP del pacchetto IP