Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
Multi Protocol Label Switching (MPLS)
Alfio Lombardo Many uses of the Internet require particular levels of service to be supplied. For example, voice traffic requires low delay and very small delay variation. Video traffic adds the requirement for high bandwidth. Customers increasingly demand service contracts that guarantee the performance and availability of the network. In the past, in order to meet these requirements, network providers have had to over-provision their physical networks. MPLS offers a good way to avoid this issue by allocating the network resources to particular flows using constraint-based routing of LSPs. Virtual Private Networks Virtual Private Networks (VPNs) are an important feature of the service provided by ISPs to their customers. VPNs allow physically private networks to be extended to encompass remote sites by connecting them through the Internet. A customer in these circumstances expects to be able to preserve their IP addresses (which might not be globally unique) and to have the security of their data guaranteed. ISPs offer this service by ensuring that entry points to their network can exchange data only if they are configured as belonging to the same VPN. MPLS LSPs provide an excellent way to offer this service over an IP network. Meeting the Needs of the Modern Network VPNs have been addressed with additions to the BGP routing protocol, but IP has not provided good solutions to the requirements set out in the previous three sections. There has been no way of providing a guarantee of service, because the network is connectionless. Destinationbased routing along shortest path routes tends to overload some links and leave others unused. A popular solution is to use an overlay network, for example running IP over ATM PVCs. This is notoriously hard to manage, because many resources must be configured at each router in the network, and because there are two distinct protocols to be configured. It also leads to scaling issues, with an order of n2 connections needed in a network with n nodes. MPLS allows the use of just one set of protocols in the network. Using MPLS to meet the aims described in the previous three sections while avoiding the problems described above requires a label distribution protocol that supports Explicit Routes and constraint-based routing. There are currently two label distribution protocols that meet this definition: CR-LDP and RSVP. There is a debate about which of these protocols is preferable, which is most suitable for particular scenarios, and whether it is necessary to implement both of the protocols in an MPLS network. Since the LSPs set up to support Traffic Engineering, Service Contracts and VPNs are all configured in the same way for RSVP and CR-LDP (through the Traffic Engineering MIB), they are referred to as Traffic Engineered LSPs.
2
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)
3
Background: Asynchronous Transfer Mode
4
Background: Asynchronous Transfer Mode
Assumptions ATM is a cell-based, connection-oriented transfer Methodology (label switching) ATM cell flow ATM net 1 2 3 1 2 3 5+48 bytes
5
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
6
Background: Asynchronous Transfer Mode
ATM uses Virtual Connection divided in two levels (required for switching) : Virtual Path Virtual Circuit ROUTING ATM is connection oriented. Before information is transferred from the terminal to the network, a logical/virtual connection is set. The header values are assigned to each section of a connection for the complete duration of the connection, and translated when switched from one section to another. Signalling and user information are carried on separate virtual channels Two sorts of connections are possible: * Virtual Channel Connections VCC * Virtual Path Connections VPC When switching or multiplexing on cells is to be performed, it must first be done on VPC ,then on the VCC. Virtual Channels This function is performed by a header sub field - VCI. Since the ATM network is connection oriented each connection is characterized by a VCI which is assigned at call set up. A VCI has only a local significance on the link between ATM node and will be translated in the ATM nodes. When the connection is released , the VCI values on the involved links will be released and can be reused by other connections. An advantage of this VCI principle is the use of multiple VCI values for multicomponent services. For instance video telephony can be composed of 3 components: voice , video and data each of which will be transported over a separate VCI. This allows the network to add or remove components during the connection. For instance, the video telephony service can start with voice only and the video can be added later. Virtual Path The network has to support semi-permanent connections, which have to transport a large number of simultaneous connections. This concept is known as virtual path. All ATM switches can be schematically described as follows. A number of incoming links ( I1,I2,..In) transport ATM information to the switch, where depending on the value of the header this information is switched to outgoing link (O1,O2,..On). The incoming header and the incoming link number are used to access a translation table. The result of the access to the table is an outgoing link and a new header value. VPI and VCI translation:This function is performed at the ATM switching and/or cross-connect nodes. At the VP switch, the value of the VPI field of each incoming cell is translated into a new VPI value of the outgoing cell. The values of VPI and VCI are translated into new values at a VC switch. ---- 2.2 Virtual Channels. The connection between two endpoints is called a Virtual Channel Connection, VCC. It is made up of a series of Virtual channel links that extend between VC switches. The VC is identified by a Virtual Channel Identifier, VCI. The value of the VCI will change as it enters a VC switch, due to routing translation tables. Within a virtual channel link the value of the VCI remains constant. The VCI (and VPI) are used in the switching environment to ensure that channels and paths are routed correctl The VCI (and VPI) are used in the switching environment to ensure that channels and paths are routed correctly. They provide a means for the switch to distinguish between different types of connection. There are many types of virtual channel connections, these include: 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, QoS, 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, using the Usage Parameter Control, UPC. A detailed diagram showing the relationship between virtual channels and paths is shown below. 2.3 Virtual Paths. A virtual path, VP, is a term for a bundle of virtual channel links that all have the same endpoints. As with VCs, virtual path links can be strung together to form a virtual path connection, VPC. A VPC endpoint is where its related VPIs are originated, terminated or translated. Virtual paths are used to simplify the ATM addressing structure. VPs provide logical direct routes between switching nodes via intermediate cross-connect nodes. A virtual path provides the logical equivalent of a link between two switching nodes that are not necessarily directly connected on a physical link. It therefore allows a distinction between logical and physical network structure and provides the flexibility to rearrange the logical structure according to traffic requirements. This is best shown in the diagram above. As with VCs, virtual paths are identified in the cell header with the Virtual Path Identifier, VPI. 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.
7
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.
8
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
9
Background: virtual channels and paths relationship
Cross connect node
10
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
11
Background: ATM Service Classes
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 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 . 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.
12
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.
13
Background: QoS vs. Service class
Class of Service CBR VBR–NRT VBR–RT ABR UBR CLR yes no CTD CDV PCR SCR BT flow control
14
Background: ATM Architecture
The ATM Adaptation Layer, AAL, performs the necessary mapping between the ATM layer and the higher layers. This task is usually performed in terminal equipment, or terminal adaptors, TA, at the edge of the ATM network. The class of service are general concepts, but these they are mapped onto different specific AAL types. Class A: AAL 1. Class B: AAL 2. Class C & D: AAL 3/4. Class C & D: AAL 5. Below is a list of the defined AAL types. Contained with each type is a list of applications suited to that particular AAL. 2.4.1 AAL type 1. Circuit transport to support synchronous (e.g. 64KBit/s) and asynchronous (e.g. 1.5, 2 MBit/s) circuits. Video signal transport for interactive and distributive services. Voice band signal transport. High quality audio transport. AAL type 2. AAL 2 has not currently been defined, but services for this type may include: Transfer of service data units with a variable source bit-rate. Transfer of timing information between source & destination. AAL types 3/4. AAL 3 was designed for connection-orientated data, while AAL 4 for connectionless-orientated data. AAL5 ha lo stesso scopo di AAL3/4 cioè di permettere alle applicazioni di trasmettere dati con dimensioni dei datagrammi più ragionevoli dei 48 byte delle celle ATM. Il datagramma che si vuole inviare sulla rete viene aggiunto a un certo numero di byte di padding più altri 8 byte di trailer. I byte di padding sono tali per cui il datagramma più il padding più il trailer rappresenta un multiplo intero di 48 byte cioè della dimensione dell celle ATM vere e proprie. Il trailer ha 2 byte non utilizzati, 2 byte che indicano che indicano la lunghezza del pacchetto escludendo il padding ed il trailer ed infine 4 byte di CRC. AAL5 utilizza 1 bit dell’header della cella ATM per indicare la fine del pacchetto. The AAL is organised on two sublayers: The Convergence Sublayer. The Segmentation and Reassembly Sublayer.
15
Modelli di integrazione IP/ATM
Modello overlay Modello integrato
16
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
17
Modello overlay: topologia fisica
PVC setup: Segnal. ATM 3 Rete ATM 1 Intf In VPI/VCI Out 1 0/40 3 0/50 Switch ATM Router IP 1 Switch interface
18
Modello overlay: instradamento
atm 0/0/1 VPI/VCI=0/40 Rete /24 Next Hop Interface R2 Intf In VPI/VCI Out 1 0/40 3 0/50 Intf In VPI/VCI Out 2 0/50 3 0/60 Segmentazione S1 S2 R2 R1 VPI/VCI=0/50 VPI/VCI=0/60 ATM 0/0/1 ATM 0/0/2 1 3 2 3 VPI/VCI=0/40 Riassemblaggio Commutazione ATM Host
19
Modello overlay: configurazione interfaccia router
R1(config) # interface atm 0/0/1 R1(config) # ip address R1(config) # pvc 0/40 R1(config) # abr R1(config) # encapsulation aal5snap Parametri PVC: PCR= 1 Mb/s MCR= 500 kb/s
20
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
21
Modello overlay: vantaggi
Allocazione di banda sui PVC ATM Differenziazione dei flussi di traffico ATM Possibilità di ingegnerizzare il traffico in rete
22
Modello overlay: ingegnerizzare il traffico in rete
PVC setup: Segnal. ATM Rete ATM atm 0/0/1 VPI/VCI=0/40 atm 0/0/2 VPI/VCI=0/90 Rete /24 /24 Next Hop Interface R2 Switch ATM Router IP 1 Switch interface
23
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
24
Modello integrato Gli switch ATM implementano funzioni di instradamento IP Switch IP+ATM Switch ATM Router IP Intelligenza: routing IP Intelligenza: SW ATM forum Inoltro: Longest-match lookup 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, …)
25
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
26
Modello integrato: associazione delle etichette (label binding)
Prot. Routing IP: per raggiungere / R1 – IA1 – IA2 – R2 IA1 IA2 Richiesta: /24 Richiesta: /24 Richiesta: /24 R1 R2 VPI/VCI: 0/40 VPI/VCI: 0/50 VPI/VCI: 0/60 IA1 IA2 /24 Definisce un circuito virtuale tra R1 e R2 assegnando delle etichette ATM al percorso individuato dall’instradamento IP
27
Modello integrato: IA1 IA2 R2 R1 Rete Next Hop Interface atm 0/0/1
VPI/VCI: 0/40 /24 IA1 Intf In VPI/VCI Out 1 0/40 3 0/50 Intf In VPI/VCI Out 2 0/50 3 0/60 IA1 IA2 R2 R1 VPI/VCI=0/40 VPI/VCI=0/50 VPI/VCI=0/60 ATM 0/0/1 ATM 0/0/2 Riassemblaggio Segmentazione Commutazione ATM Host
28
Modelli overlay e integrato: confronto
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….
29
Adiacenze IP Modello “integrato” Modello “overlay”
30
MultiProtocol Label Switching protocol:
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
31
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
32
Tipo di pacchetti/trame
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 . . . Ethernet Frame Relay ATM PPP Commutazione di Etichetta Pacchetti di livello 3 (IPv4, IPv6, IPX, …) Trame di livello 2 (PPP, Ethernet, …) Tipo di pacchetti/trame trasportati Livello 2 (Data Link) MPLS
33
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
34
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 . . . FEC 2: pacchetti destinati con IP PRECEDENCE=111 FEC n: pacchetti destinati al terminale con indirizzo sorgente FEC NH FEC 1 1 FEC 2 2 n Tabella di routing IP (FEC-To-Next-Hop)
35
FEC: granularità Granularità grossa Granularità fine
FEC a: pacchetti destinati alla rete Granularità grossa FEC b: pacchetti destinati al terminale , porta 80, con indirizzo IP sorgente , porta sorgente 11782 Granularità fine
36
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
37
MPLS: modalità di funzionamento
Pacchetto L2 L3 I nodi intermedi analizzano solo l’intestazione MPLS ed eseguono la traslazione di etichetta (label switching) Pacchetto Classificazione dei pacchetti all’entrata del Dominio MPLS (assegnazione ad una FEC) Pacchetto Il nodo in uscita dal dominio MPLS rimuove l’etichetta (Label Disposition) Consegna dei pacchetti al Livello 3 all’uscita dal Dominio MPLS IGP IGP IGP Il nodo in ingresso al dominio MPLS assegna l’etichetta in accordo alla FEC (Label Imposition) Pacchetto L1 IGP IGP Nota che MPLS non viene implementato ( a meno di casi particolari) nel dominio dei clienti. Ne segue che i pacchetti IP provenienti da un router in tale dominio devono essere elaborati a livello 3 (IP) dal primo router del dominio MPLS; Analogamente l’ultimo router del dominio MPLS deve necessariamente esaminare il pacchetto a livello 3 Router MPLS
38
MPLS: inoltro dei pacchetti
MPLS non viene implementato nel dominio dei clienti I pacchetti MPLS arrivano a un nodo intermedio il quale cambia l’etichetta; il pacchetto viene quindi inoltrato al Next-Hop 56 & sono associati alla FEC /24 I pacchetti IP arrivano alla rete MPLS e vengono etichettati FEC /24 98 R1 98 R2 R3 Rete MPLS
39
Label Switching Router
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)
40
Label Switch Router: componente di controllo
Criteri per la definizione delle associazioni tra etichette e FEC (label bindings) Distribuzione delle associazioni tra etichette e FEC Protocollo di Routing IP (es. OSPF, IS-IS, BGP, PIM) consigliati Per problemi legati all’Ingegneria del traffico vengono usati protocolli di routing di tipo Link State Creazione/aggiornamento delle Tabelle di Instradamento Gestione delle associazioni etichette-FEC
41
Label Switch Router: componente dati
45 1 29 64 2 29
42
MPLS: architettura di rete
ATM/FR POP SDH POP: Point of Presence Edge LSR: ha almeno una interfaccia non MPLS; oltre che le funzioni di un LSR di transito (LSR) ha il compito di assegnare/rimuovere le etichette. Synchronous Digital Hierarchy (SDH) Sito Cliente ATM/FR POP LSR Edge-LSR
43
MPLS: tab di routing e gestione etichette
45 ILM + LIB FTN + LIB 29 64 Edge-LSR Tabelle di Routing IP LSR Pacchetti di livello 3 (non etichettati) 29 NHLFE: Next Hop Label Forwarding Entry FTN: Fec To NHLFE (Next Hop Label Forwarding Entry) ILM: Incoming Label Map LIB: Label Information Base
44
Ho associato l’etichetta 29 alla FEC 195.31.235.0/24.
MPLS:LIB IGP Ehi tu, , guarda che ho associato l’etichetta 45 alla FEC /24. Vedi di memorizzarlo nella tua LIB /24 29 45 Label 45 FEC /24 Ho associato l’etichetta 29 alla FEC /24. Lab 29 …. Ehi tu, , guarda che ho associato l’etichetta 50 alla FEC /24. Vedi di memorizzarlo nella tua LIB 50 Label 50 FEC /24 FEC Label Loc. Label Rem. Prov. Ogni LSR riguardo alla conservazione delle associazioni FEC-etichette puo’ operare in 2 modi diversi: Liberale, conservativo (v Tofoni pag 37). Nel caso in figura il routing IP ha specificato che il next hop per l a FEC /24 e’ Quindi nel LIB basterebbe mantenere la riga verde (modalita’ conservativa) Nella modalita’ liberale viene memorizzata anche la riga sottostante il che rendera’ la costruzione della tabella piu’ veloce in caso di cambio di instradamento. 64 29 /24 70 . . . Interfaccia IP . . . Identificativo LSR (una delle interfacce IP LIB
45
LIB (Cisco 3640) P1# show mpls ldp bindings 192.168.0.22/32, rev 53
local binding: label: 24 remote binding: lsr: :0, label: 25 remote binding: lsr: :0, label: 22 remote binding: lsr: :0, label: 27 remote binding: lsr: :0, label: 34 /32, rev 31 local binding: label: 25 remote binding: lsr: :0, label: 21 remote binding: lsr: :0, label: 24 remote binding: lsr: :0, label: 28 remote binding: lsr: :0, label: 35 /32, rev 33 local binding: label: 26 remote binding: lsr: :0, label: 22 remote binding: lsr: :0, label: 25 remote binding: lsr: :0, label: 29 remote binding: lsr: :0, label: 36 Etichetta locale FEC Etichette remote Provenienze
46
FTN (negli Edge_LSR) Multicast/load bal. FEC-To-NHLFE (1) (k) NHLFE
. . . Classificazione in FEC FEC2 NHLFE NHLFE . . . . . . . . . . . . FECn NHLFE NHLFE . . .
47
ILM (nei LSR) Multicast/load bal. Incoming Label Map (1) (k) NHLFE
. . . Etichetta entrante L2 NHLFE NHLFE . . . . . . . . . . . . Ln NHLFE NHLFE . . .
48
Next Hop Label Forwarding Entry
E adesso come e a chi li inoltro questi pacchetti ? FEC/Label - Next-Hop (interfaccia di uscita, label) - Operazioni sulla pila delle etichette Swap Pop Push - (opzionale) - Informazioni per il livello 2 - Modalità di trattamento del pacchetto 64 Ehi tu, guarda che le istruzioni per l’inoltro sono contenute nel NHLFE delle tabelle FTN/ILM NHLFE Tabella FTN/ILM
49
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 Next-Hop viene determinato esplicitamente (da un Operatore o automaticamente) attraverso un protocollo di segnalazione (es. RSVP-TE, CR-LDP, vedi capitolo su “Traffic Engineering”).
50
ILM CISCO 3640 P1# show mpls forwarding-table
Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface Untagged / Se0/ point2point Pop tag / Fa0/ Untagged / Fa0/ Untagged / Fa0/ Untagged / Fa0/ Untagged / Fa0/ Untagged / Fa0/ Pop tag / Fa0/ / Fa0/ / Fa0/ / Fa0/ / Fa0/ / Fa0/ / Fa0/ Untagged / Se0/ point2point Untagged / Se0/ point2point Untagged / Se0/ point2point La tabella ILM permette di associare ad una etichetta un insieme di NHLFE, ciascuno contenente opportune informazioni necessarie per l’inoltro del pacchetto (Nota: almeno un NHLFE deve essere sempre presente). Viene utilizzata quando ad un LSR arrivano pacchetti già etichettati. Tipicamente viene utilizzata nei LSR intermedi di un dominio MPLS. Come per le tabelle FTN, la presenza di più NHLFE associati a una sigola FEC può essere utile in caso di servizi multicast, o anche nel caso si voglia fare “load balancing” su più percorsi a costo minimo. In ogni caso, solo uno di questi NHLFE viene utilizzato per l’inoltro del singolo pacchetto. Etichetta entrante FEC Interfaccia uscente Fa=Fast Ethernet Se=Seriale Next-Hop Etichetta uscente
51
Costruzione ILM (dinamica)
Etichetta NHLFE 29 52 64 72 Label: 45 Interfaccia: s0 Next Hop: operazioni:…. Label: 99 Interfaccia: s1 Next Hop: Label: 29 Interfaccia: e0 Next Hop: Label: 44 . . . Rete Dest. Next-Hop /24 /24 FEC Prov. Loc. Rem. 45 70 50 LIB Tabella di routing IP Identificativo LSR
52
Peer LDP Ident: 192.168.1.3:0; Local LDP Ident 192.168.1.1:0
P1#sh ip route O IA [110/75] via , 2d23h, Serial0/1 Tabella di routing IP P1#sh mpls ldp neighbor Peer LDP Ident: :0; Local LDP Ident :0 TCP connection: State: Oper; Msgs sent/rcvd: 15116/15088; ; Downstream Up time: 1w2d LDP discovery sources: Serial0/1, Src IP addr: Addresses bound to peer LDP Ident: Elenco delle interfacce di un LSR remoto P1#sh mpls ldp bindings /32, rev 40 local binding: label: 28 remote binding: lsr: :0, label : 36 remote binding: lsr: :0, label : 35 remote binding: lsr: :0, label : 30 LIB La costruzione della ILM, così come della FTN, può essere effettuata secondo due modalità: 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 Next-Hop viene determinato esplicitamente (da un Operatore o automaticamente) attraverso un protocollo di segnalazione (es. RSVP-TE, CR-LDP, vedi capitolo su “Traffic Engineering”). La figura riporta un esempio di costruzione della ILM nel caso dinamico. Come si può notare, la costruzione risulta immediatamente da una “fusione” della tabella di routing IP convenzionale (sempre presente in ogni LSR) e dalla LIB. Ad esempio, la prima riga della ILM deriva dal fatto che dalla LIB si evince che il LSR ha associato localmente alla FEC /24 l’etichetta 29 mentre i LSR identificati dall’indirizzo e hanno associato e comunicato attraverso il protocollo di distribuzione delle etichette al LSR in esame, per la stessa FEC, le etichette 45 e 50 rispettivamente. Poiché dalla tabella di routing IP si evince che il Next-Hop per la FEC /24 è il LSR , collegato direttamente attraverso l’interfaccia “seriale 0”, segue immediatamente la prima riga della ILM. NOTA IMPORTANTE: nella realtà le cose funzionano un po’ diversamente in quanto nella LIB, associato al valore dell’etichetta remota vi è un identificativo del LSR remoto, mentre nella tabella di routing IP compare l’indirizzo IP dell’interfaccia a cui inoltrare il pacchetto (indirizzo che potrebbe essere diverso dall’identificativo del LSR remoto), per cui è necessaria una mappa che faccia corrispondere a ogni identificativo del LSR remoto tutti gli indirizzi delle interfacce di quel LSR. Nel protocollo di distribuzione LDP, questo viene risolto attraverso un opportuno messaggio (“Address Message”) attraverso il quale il LSR remoto comunica gli indirizzi di tutte le sue interfacce. Per i detlabelli, vedi il paragrafo “Label Distribution Protocol” nel capitolo “Distribuzione delle Etichette”. P1#show mpls forwarding-table Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface / Se0/ point2point ILM
53
Operazioni sulle etichette
Rimpiazza 88 con 99 64 88 … 64 99 … swap Elimina 99 64 88 … 99 X 64 88 … pop Rimpiazza 88 con 99 e inserisci 67 64 88 … 64 99 … 67 push
54
Label Switched Path LSP: Hop To Hop Esplicito (RSVP-TE; CR-LDP) R[u]
54 79 R[i] 45 58 29 R[4] 67 R[3] La connessione stabilita associando delle etichette ad un determinato percorso tra un LSR di ingresso e uno di uscita prende il nome di Label Switched Path. I LSP sono unidirezionali; i dati nella direzione opposta seguono un LSP differente…(come del resto il routing IP…). Il percorso seguito da un LSP puo’ essere determinato in accordo ad un protocollo di routing (LSP di tipo Hop to Hop ovvero ILM dinamica) o attraverso un esplicito protocollo di segnalazione (LSP esplicito ovvero ILM esplicita). Questi vengono realizzato per problematiche di Ingegneria del traffico: in pratica si decide di far fluire il traffico appartenente ad una FEC su un LSP differente da quello che sarebbe stato definito tramite il routing IP! R[2] LSP: Hop To Hop Esplicito (RSVP-TE; CR-LDP)
55
Limiti del routing IP convenzionale e dell’LSP Hop to Hop
Ra 1,5 Mbit/s R2 Congestione ! R3 Rete /24 R1 Rb 1,5 Mbit/s R5 Percorso Ra R3 R4 Percorso Rb R3 Percorso Sottoutilizzato
56
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 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) 29 55 29 35 R[4] 29 45 R[3] pop swap R[2] push
57
Aggregazione indirizzi IP (CIDR): annunci delle reti/etichette
Annunciati come /24 /24 /23 Rete = /24 Etichetta = 24 Rete = /24 Etichetta = 48 Rete = /23 Etichetta = POP Punto di aggregazione/disaggregazione dei prefissi LSR-B LSR-A LSR-C LSR-D Etichetta = 44
58
Aggregazione indirizzi IP (CIDR): inoltro pacchetti
Annunciati come /24 /24 /23 Terminazione dell’LSP Lookup a livello 3 X POP LSR-A 24 44 X 44 LSR-D LSR-C 48 LSR-B
59
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 /24 98 98 R[u] R[i] Vi sono situazioni in cui il LSR di ingresso di un LSP, R[i], sa che pacchetti appartenenti a FEC differenti devono seguire lo stesso percorso, ossia devono essere inoltrati attraverso lo stesso LSP, che termina in un LSR di uscita R[u] (es., pacchetti entranti nel LSR R[i] e destinati a reti diverse, ma tutte attestate al LSR R[u]). In tale situazione, la strategia migliore (più scalabile) è quella di assegnare tutte le FEC ad un unico LSP, riducendo in tal modo notevolmente lo spazio di etichette utilizzato. In altre parole, è possibile aggregare più FEC in una unica FEC caratterizzata dalla stesso LSR di uscita R[u]. Questa modalità di assegnazione delle FEC ad un unico LSP viene indicata nella RFC 3031 (MPLS Architecture) come “Egress-Targeted Label Assignment”. Il LSR di ingresso R[i] può associare una unica etichetta a tutte le FEC caratterizzate da una destinazione raggiungibile attraverso lo stesso LSR di uscita R[u], se e solo se valgono le seguenti due condizioni: 1. l’indirizzo di R[u] è presente nella tabella di routing IP del LSR R[i] come “host route”; 2. il LSR R[i] ha la possibilità di determinare in qualche modo che R[u] è il LSR di uscita del LSP utilizzato dai pacchetti di un particolare insieme di FEC. Vi sono vari modi per R[i] di detrminare che R[u] è il LSR di uscita per tutti i pacchetti di una determinata FEC. Ad esempio: - Se la rete adotta un protocollo di routing IP di tipo “link-state” e MPLS in una determinata area di routing, allora il protocollo di routing è in grado di far pervenire a R[i] informazioni sufficienti per determinare attraverso quali router di bordo sono raggiungibili le reti esterne all’area. - Se la rete utilizza il protocollo iBGP, allora R[i] riesce a determinare che i pacchetti di una determinata FEC lasciano la rete attraverso un determinato LSR che è il “BGP Next-Hop” per quella FEC; - È possibile utilizzare il protocollo di distribuzione delle etichette per passare informazioni circa le reti connesse ai vari LSR di bordo della rete; si ha in questo caso il vanlabelgio di non dipendere dal particolare protocolo di routing utilizzato. Il vanlabelgio principale della modalità di assegnazione delle etichette “Egress-Targeted Label Assignment” è che riduce considerevolmente l’utilizzo dello spazio di etichette e il numero di LSP nella rete. Una applicazione che vedremo in seguito, basata su questa modalità riguarda le reti BGP/MPLS. Le due FEC vengono aggregate; viene utilizzato lo stesso LSP e quindi ai pacchetti viene associata una unica etichetta /24
60
Pacchetto MPLS consegnato al livello 2 (Eth., ATM, F.R., PPP, ecc.)
Etichette TTL S Exp Label 8 1 3 20 Livello 1 Livello 2 Livello m . . . Pacchetto/Trama Pacchetto MPLS consegnato al livello 2 (Eth., ATM, F.R., PPP, ecc.)
61
Trasporto dei pacchetti MPLS su trama
Liv. fisico Liv. 2 Pacchetto MPLS Liv. fisico Liv. 2 Pacchetto MPLS Liv. fisico Liv. 2 Pacchetto MPLS H 2 Header Livello 2 T 2 Trailer Livello 2
62
Trasporto dei pacchetti MPLS su ATM
Etich. NHLFE 45 Etich. 55 Int. 2 … Int. 1 Int. Etich. NHLFE Etich. NHLFE 36 Etich. 45 Int. 1 … … … 1 55 Etich. 99 Int. 2 64 36 … … 64 VPI/VCI = 0/45 ILM ILM ILM VPI/VCI = 0/55 64 99 Non e’ possibile gestire i campi TTL, EXP R[1] R[3] R[2] MPLS MPLS AAL5 AAL5 ATM ATM ATM Liv. fisico Liv. fisico Liv. fisico
63
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
64
Distribuzione delle associazioni FEC/Etichette
Possibili opzioni: incapsulare le etichette nei messaggi di protocolli di routing esistenti utilizzare uno specifico protocollo LDP: Label Distribution Protocol CR_LDP RVSP_TE LSP Esplicito CR_LDP: Constrained based Routing LDP Carring Label Information in BGP-4
65
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
66
Direzione della distribuzione : modalità downstream/upstream
/24 Associazione locale FEC: /24 Etichetta: 80 Associazione locale FEC: /24 Etichetta: 80 Distribuzione FEC: /24 Etichetta: 80 Distribuzione FEC: /24 Etichetta: 80 R[1] R[2] R[2] R[3] Pacchetto 80 Pacchetto 80 R[1] R[2] R[2] R[3] (a): downstream (b): upstream
67
Modalità downstream (a) (b) 195.31.235.0/24 R[1] R[2] R[3] R[4]
Associazione locale FEC: /24 Etichetta: 80 Associazione locale FEC: /24 Etichetta: 72 Associazione locale FEC: /24 Etichetta: 35 Distribuzione FEC: /24 Etichetta: 80 Distribuzione FEC: /24 Etichetta: 72 Distribuzione FEC: /24 Etichetta: 35 /24 R[1] R[2] R[3] R[4] (a) Pacchetto 80 Pacchetto 72 Pacchetto 35 /24 R[1] R[2] R[3] R[4] (b)
68
A quali LSR inviare le associazioni? Distribuzione con richiesta
Ehi tu, guarda che mi serve una etichetta per la FEC /24 Richiesta /24 LSR 1 Associazione LSR 2 Downstream on demand
69
Distribuzione senza richiesta
Ehi tu, guarda che ti stò inviando una etichetta per la FEC /24 Associazione /24 LSR 1 LSR 2 Downstream unsolecited
70
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.
71
Esempio: Controllo ordinato
(4) Allocazione Etichetta(50) per FEC 40.1/16 (2) Allocazione Etichetta(50) per FEC 50.1/16 Richiesta: FEC 50.1/16 (3) R[3] Richiesta: FEC 50.1/16 (1) R[2] Etichetta: 40 (5) (6) Inserimento nella ILM Etichetta : 50 (7) R[1] (8) Inserimento nella ILM Downstream on-demand con controllo ordinato
72
Esempio: Controllo indipendente
(4) Allocazione Etichetta(40) per FEC 50.1/16 Inserimento nella ILM (2) Allocazione Etichetta(50) per FEC 50.1/16 Richiesta: FEC 50.1/16 (3) Etichetta : 50 R[3] Richiesta: FEC 50.1/16 (1) R[2] Etichetta: 40 (5) (6) Inserimento nella ILM R[1] Downstream on-demand con controllo indipendente
73
Esempio: LSP 1 ILM ILM Etich. entrante I/F uscita Dest. Etich.
uscente 50 1 40 40 1 50.1/16 FTN Dest. I/F uscita Etich. uscente 50.1/16 1 50 1 40 50.1/16 1 R[3] 50 1 R[2] 1 R[1]
74
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
75
Label Distribution Protocol
Meccanismo di discovery Utilizzo di TCP (UDP per Hello) con porta 646 Uso codifica TLV
76
Usato per i LSP nidificati!
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. Etichetta 94 FEC /24 LSR A LSR B Sessione LDP Usato per i LSP nidificati! Fig. 3.5 (a) 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. Una singola sessione LDP permette lo scambio delle associazioni etichetta-FEC tra i due LSR agli estremi della sessione. La sessione può essere di tipo “single-hop” o “multi-hop”. Se la sessione è di tipo “single-hop” allora i due LDP Peers sono adiacenti l’un l’altro, ossia esiste un collegamento diretto (fisico o logico) fra i due. Se la sessione è di tipo “multi-hop” allora i due LDP Peers sono separati da altri LSR. Rete MPLS LSR A LSR B Etichetta 94 FEC /24 Sessione LDP
77
Messaggi LDP Notifica Discovery Annunci Sessione NOTIFICATION HELLO
ADDRESS ADDRESS WITHDRAW LABEL MAPPING LABEL REQUEST LABEL ABORT REQUEST LABEL WITHDRAW LABEL RELEASE Sessione INITIALIZATION KEEPALIVE
78
Meccanismo di discovery
Base Hello LSR C LSR A LSR B Rete MPLS Esteso LSR D Meccanismo base: utilizza IP address e Hold Timer 15 s. Meccanismo esteso: utilizza indirizzo IP del router target e Hold Timer 45 s.
79
Sessioni LDP: apertura connessione TCP
Ehi tu, guarda che per aprire la sessione LDP dobbiamo prima stabilire una connessione TCP SYN, Seq=n SYN, Seq=m, ACK=n+1 LSR 1 (attivo) LSR 2 (passivo) ACK=m+1 SE IP1>IP LSR1 attivo
80
Sessioni LDP: inizializzazione sessione
Ehi tu, guarda che dobbiamo metterci d’accordo sui parametri della sessione LDP Initialization LSR 1 Initialization LSR 2 Versione protocollo Modalità di distribuzione Keepalive Timer Spazio VPI/VCI (ATM)
81
Sessioni LDP: KeepAlive
Keepalive Timer Keepalive Timer LDP-PDU/Keepalive LDP-PDU/Keepalive LSR 1 LSR 2 HoldTimer= K * KeepAlive Timer K=3 Allo scadere di HoldTimer LSR chiude la connessione TCP
82
Annunci LDP: Address Porta TCP dest.: 646 IP TCP H ADDRESS
Ehi tu, guarda che ti stò inviando un messaggio di ADDRESS per comu-nicarti gli indirizzi di tutte le mie interfacce IP TCP H ADDRESS Porta TCP dest.: 646
83
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 /24 IP TCP H LABEL MAPPING LSR UpStr LSR DownStr Porta TCP dest.: 646
84
Annunci LDP: Label Request
Ehi tu, guarda che ti stò inviando un messaggio di LABEL REQUEST perché mi serve una etichetta per la FEC /24 LABEL REQUEST H TCP IP LSR UpStr LSR DownStr Porta TCP dest.: 646
85
Annunci LDP: Label Withdraw
Ehi tu, ritiro quanto fatto in precedenza per la FEC /24; devi cancellare l’associazione FEC-etichetta che ti avevo inviato IP TCP H LABEL WITHDRAW LSR UpStr LSR DownStr Porta TCP dest.: 646
86
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 /24 e quindi l’associazione FEC- etichetta che mi hai inviato non mi serve più LABEL RELEASE H TCP IP LSR UpStr LSR DownStr Porta TCP dest.: 646
87
LDP - PDU + LDP PDU MSG n MSG 2 MSG 1 H TCP/UDP IP UDP solo per i
| Version | PDU Length | | LDP Identifier | | | LDP PDU MSG n MSG 2 MSG 1 H + TCP/UDP IP |U| Message Type | Message Length | | Message ID | | | | Mandatory Parameters | | Optional Parameters | Lo scambio dei messaggi LDP avviene attraverso le LDP PDU (Protocol Data Unit), ciascuna delle quali può contenere più messaggi LDP. Le LDP PDU vengono quindi trasportate su una normale connessione TCP. Ogni LDP PDU è costituita da una intestazione (Header), indicata con H nella diapositiva, e un payload costituito da uno o più messaggi LDP (vedi prossime diapositive). L’intestazione contiene i seguenti campi: Version (16 bit): contiene la versione del protocollo; quella attuale è la 1. PDU Length (16 bit): specifica la lunghezza totale della PDU in byte, con esclusione dei campi “Version” e “PDU Length”; il valore massimo della lunghezza può essere negoziato durante la fase di inizializzazione della sessione LDP; prima di questa fase il valore massimo ammesso è 4096 byte. LDP Identifier (48 bit): identifica lo spazio di etichette utilizzato; i primi 4 byte costituiscono un identificativo del LSR, gli altri 2 un identificativo dello spazio di etichette; se il LSR utilizza uno spazio di etichette “globale” (indipendente dalle interfacce) questi 2 byte vengono posti a 0x0000. Il formato dei messaggi è costituito dai seguenti campi: U (1 bit): alla ricezione di un messaggio sconosciuto, U=0 significa che si deve ritornare un messaggio di errore a che ha originato il messaggio, U=1 significa che il messaggio deve essere semplicemente ignorato. Message Type (15 bit): specifica il tipo di messaggio. Message Length (16 bit): specifica la lunghezza totale (in byte) dei campi “Message ID”, “Mandatory Parameters” e “Optional Parameters”. Message ID (32 bit): identificativo del messaggio; serve a semplificare l’identificazione di un eventuale messaggio di notifica e/o errore. Mandatory Parameters (variabile): campo contenente i vari parametri necessari al messaggio (es. FEC, etichette, liste di indirizzi, ecc.); per alcuni messaggi può anche non esistere (es. messaggi “Keepalive); ogni parametro è codificato secondo lo schema TLV (Type-Length-Value). Optional Parameters (variabile): contiene eventuali parametri opzionali. UDP solo per i messaggi “Hello”
88
LDP Identifier 192.168.0.11 : 0 4 byte 2 byte Identificativo LSR
Spazio di etichette Lo scambio dei messaggi LDP avviene attraverso le LDP PDU (Protocol Data Unit), ciacuna delle quali può contenere più messaggi LDP. Le LDP PDU vengono quindi trasportate su una normale connessione TCP. Ogni LDP PDU è costituita da una intestazione (Header), indicata con H nella diapositiva, e un payload costituito da uno o più messaggi LDP (vedi prossime diapositive). L’intestazione contiene i seguenti campi: Version (16 bit): contiene la versione del protocollo; quella attuale è la 1. PDU Length (16 bit): specifica la lunghezza totale della PDU in byte, con esclusione dei campi “Version” e “PDU Length”; il valore massimo della lunghezza può essere negoziato durante la fase di inizializzazione della sessione LDP; prima di questa fase il valore massimo ammesso è 4096 byte. LDP Identifier (48 bit): identifica lo spazio di etichette utilizzato; i primi 4 byte costituiscono un identificativo del LSR, gli altri 2 un identificativo dello spazio di etichette; se il LSR utilizza uno spazio di etichette “globale” (indipendente dalle interfacce) questi 2 byte vengono posti a 0x0000. Il formato dei messaggi è costituito dai seguenti campi: U (1 bit): alla ricezione di un messaggio sconosciuto, U=0 significa che si deve ritornare un messaggio di errore a che ha originato il messaggio, U=1 significa che il messaggio deve essere semplicemente ignorato. Message Type (15 bit): specifica il tipo di messaggio. Message Length (16 bit): specifica la lunghezza totale (in byte) dei campi “Message ID”, “Mandatory Parameters” e “Optional Parameters”. Message ID (32 bit): identificativo del messaggio; serve a semplificare l’identifica-zione di un eventuale messaggio di notifica e/o errore. Mandatory Parameters (variabile): campo contenente i vari parametri necessari al messaggio (es. FEC, etichette, liste di indirizzi, ecc.); per alcuni messaggi può anche non esistere (es. messaggi “Keepalive); ogni parametro è codificato secondo lo schema TLV (Type-Length-Value). Optional Parameters (variabile): contiene eventuali parametri opzionali. :
89
LDP Identifier Hello R1:0 Hello R1:1 R[5] R[1] R[2] Hello R2:4
ATM R[5] Ser. R[1] ATM R[2] Hello R2:4 Hello R5:0 Eth. Hello R3:0 Hello R1:0 Hello R4:0 Eth. Eth. LDP prevede quattro categorie di messaggi: Discovery: a questa categoria appartiene il solo messaggio “Hello” che serve ad implementare il meccanismo di “Discovery”. Notifica: a questa categoria appartiene il solo messaggio “Notification” che serve a notificare eventuali situazioni di errore oppure a passare informazioni di servizio (es. Stato della connessione LDP, stato delle richieste pervenute attraverso altri messaggi, ecc.) Sessione: a questa categoria appartengono i messaggi “Initialization” e “Keepalive”; il primo contiene i parametri per inizializzare la sessione LSP (es. valore del “Keepalive time”, massima lunghezza della PDU, ecc.), il secondo è un messaggio praticamente vuoto il cui invio periodico, come già visto, serve a mantenere attiva la sessione LDP. Annunci: a questa categoria appartengono tutti i messaggi che servono allo scambio delle associazioni etichette-FEC; l’elenco dei messaggi è riportato nella diapositiva. I messaggi riportati nella diapositiva sono quelli ad oggi standardizzati nella RFC Poiché LDP è stato progettato per essere modulare, in futuro sarà possibile introdurre ulteriori messaggi senza intaccare l’impianto generale del protocollo. Ad esempio, l’estensione di LDP denominata CR-LDP, prevede la definizione di nuovi messaggi che servono a costruire LSP “explicitly routed” e a specificare eventual-mente il profilo di traffico trasportato da un determinato LSP. Nelle prossime diapositive verranno illustrati i messaggi più importanti. R[3] R[4]
90
Attributo “MP_REACH_NLRI”
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) | La RFC 3107 “Carrying Label Information in BGP-4” (Maggio 2001) definisce come distribuire le etichette attraverso il protocollo BGP-4. In realtà si utilizza l’estensione “Multiprotocollo” di BGP (MP-BGP, vedi RFC 2858 “Multiprotocol Extensions for BGP-4”). Le associazioni etichette-FEC vengono trasportate nel campo NLRI che è parte dell’attributo MP-BGP “MP_REACH_NLRI” attraverso il quale vengono annunciate le destinazioni raggiungibili. Il significato dei campi principali dell’attributo “MP_REACH_NLRI” è il seguente (Nota: nella diapositiva non sono stati riportati alcuni campi opzionali dell’attributo, perché di scarsa rilevanza): Address Family Identifier (AFI): indica il tipo di indirizzo trasportato. Nel caso di indirizzi IP, AFI=1 (vedi RFC 1700). Subsequent AFI (SAFI): assume, nel caso di trasporto di etichette, il valore SAFI=4. Network Address of Next-Hop: contiene l’indirizzo del router che ha generato l’annuncio; la gestione di questo campo segue le regole dettate dal protocollo BGP-4 (vedi RFC 1771). Network Layer Reachability Information (NLRI): contiene una o più triple che nel caso di MPLS contengono: Length: lunghezza in bit dei campi Label+Prefix. Label: contiene una o più intestazioni MPLS senza il campo TTL; la lunghezza del campo è quindi un multiplo di 3 byte. Prefix: l’indirizzo di Livello 3 associato alla pila di intestazioni, oggetto dell’annuncio. Le etichette associate al prefisso definito nel campo “Prefix” devono essere assegnate dal LSR identificato nel campo “Network Address of Next-Hop”. Quando un “BGP speaker” (che in questo caso coincide con un LSR) redistribuisce una destinazione, i valori delle etichette associati a quella destinazione non devono essere cambiati, a meno che il “BGP speaker” non cambia l’identificativo contenuto nel campo “Network Address of Next-Hop”. Un “BGP speaker” può anche ritirare delle associazioni etichette-FEC annunciate in precedenza: Per questo ha due modi possibili: annunciare una nuova associazione etichetta-FEC; inviare un messaggio di tipo UPDATE contenente l’attributo “MP_UNREACH_NLRI” (anche questo specifico di MP-BGP) dove sono contenute tutte le associazioni da ritirare. | Length (1 octet) | | Label (3 octets) | | Prefix (variable) |
91
Integrazione DiffServ-MPLS
N flussi Dominio DiffServ/MPLS Edge-LSR Edge-LSR LSR DiffServ aggregazione dei flussi all’ingresso più flussi associati con una classe (identificata dal DSCP) MPLS più flussi associati con una FEC (identificata da una sequenza di etichette)
92
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 Label 8 1 3 20
93
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 Nel caso in cui la rete supporti più di 8 PHBs, oppure nel caso in cui il trasporto dei pacchetti IP avviene utilizzando una tecnologia di livello 2 dove non sia possibile mappare il campo Exp (es. ATM), il metodo basato su E-LSP non va più bene. L’ovvia scelta alternativa è quella di utilizzare le labels per identificare il PHB corretto. In questo caso si parla di L-LSP. Prima di vedere il funzionamento del metodo L-LSP si ricorda una proprietà molto importante del gruppo di PHB Assured Forwarding. Questa dice che i pacchetti appartenenti a una stessa classe AF, (quindi che possibilmente differiscano solo per il livello di “drop precedence”), debbono essere inoltrati in sequenza verso il nodo successivo. Come risultato di questo vincolo, i pacchetti di una stessa classe AF vengono tipicamente posti nella stessa coda. Ora, alcuni LSR implementano una coda per ciascun LSP, e in alcuni casi due LSP verso la stessa destinazione potrebbero seguire percorsi diversi. Perciò, per soddisfare il vincolo della sequenzialità intra-classe del traffico AF, sarà necessario inviare pacchetti appartenenti alla stessa classe AF (es. pacchetti AF11, AF12 e AF13) sul medesi-mo LSP. Il gruppo di PHB AF è l’unico al momento con il vincolo della sequenzialità intra-classe; in futuro però nulla vieta che siano definiti altri. Per questo è stata introdotta una nuova definizione che è quella di PHB scheduling class, definita come un gruppo di PHB con il vincolo che pacchetti di diversi PHB siano inoltrati in sequenza. La regola fondamentale è allora che pacchetti appartenenti alla stessa PHB scheduling class debbono essere trasportati sul medesimo LSP. Una volta inviati i pacchetti di una stessa PHB scheduling class sul medesimo LSP, sorge il problema di come identificare il trattamento completo del pacchetto (es. il livello di “drop precedence”). A tale scopo si possono utilizzare tutti o parte dei bit del campo Exp, qualora questo sia disponibile, oppure altri accorgimenti, come nel caso di MPLS su ATM, dove è possibile usare il bit CLP dell’intestazione della cella ATM (che però permette due soli livelli di differenziazione). Nell’esempio riportato nella slide, sono definiti due L-LSP. Il primo trasporta traffico EF mentre il secondo trasporta pacchetti della classe AF1y. La differenziazione nel livello di “drop precedence” avviene attraverso i bit del campo Exp oppure, nel caso di MPLS su ATM, tramite il bit CLP.
94
Dominio DiffServ/MPLS
E-LSP Campo “EXP” Dominio DiffServ/MPLS 1 L1 2 L1 PHB 1 PHB 2 . . .
95
E-LSP . . . . . . . . . . . . ILM Label NHLFE L1 Label: L2
Interfaccia: s0 Next Hop: p.to – p.to Tipo LSP: E-LSP Mappa EXPPHB . . . EXP PHB Best-Effort 1 AF11 . . . . . . . . . . . . La procedura di “Label Swapping” consiste in: esaminare l’etichetta alla sommità della pila (etichetta di livello più elevato); estrarre dalla ILM il NHLFE da utilizzare in corrispondenza del valore dell’etichetta; traslare il valore dell’etichetta secondo quanto scritto nel NHLFE; inoltrare il pacchetto sull’interfaccia e verso il Next-Hop scritti nel NHLFE. E’ bene tener presente che il valore del Next-Hop può essere diverso dal Next-Hop definito dal protocollo di routing IP. Ciò avviene ad esempio, nel caso di costruzione di percorsi “espliciti”. EXP L1 s0
96
Dominio DiffServ/MPLS
L-LSP Dominio DiffServ/MPLS Campo “EXP” 000 L1 001 L2 010 L2 In una rete che supporta al più 8 PHBs, il campo Exp è sufficiente per definire una corrispondenza tra DSCP e PHB; è necessario a tale scopo che ciascun LSR venga configurato con l’associazione ExpPHB. Si noti che non viene richiesta nessuna segnalazione aggiuntiva rispetto a quanto già visto nel capitolo su MPLS; le label indicano al LSR dove inoltrare il pacchetto e il campo Exp come trattarlo (PHB). Un LSP che viene definito sotto queste condizioni viene detto E-LSP, dove la “E” indica che il corrispondente PHB è dedotto direttamente dal campo Exp. Come esempio, si consideri una rete che supporti due Classi di Servizio: Best-Effort e Premium. Si potrebbero utilizzare rispettivamente i valori ‘000’ e ‘001’ del campo Exp per definire il trattamento dei pacchetti delle Classi Best-Effort e Premium. I LER e i LSR dovrebbero essere configurati in modo tale da fornire il trattamento di default (Best-Effort) ai pacchetti con il campo Exp ‘000’ e un trattamento preferenziale (esem-pio, EF PHB) ai pacchetti con il campo Exp ‘001’ . Si noti che la soluzione tramite E-LSP non richiede nessuna modifica dei protocolli di segnalazione MPLS (es. LDP) poiché tutte le Classi di Servizio utilizzano lo stesso LSP, che può essere scelto convenientemente tramite le tecniche convenzionali. 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
97
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
98
Background: Tunnel DiffServ
DSCP=“x” DSCP tunnel=“y” DSCP=“x” x x y x D1 D3 D2 Tunnel DiffServ
99
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
100
LSP: modello PIPE D1 D3 Rete MPLS DSCP=“x” Intestazione MPLS DSCP=“x”
PHB determinato sulla base del contenuto dell’elemento esterno dell’intestazione MPLS
101
LSP: modello short PIPE
DSCP=“x” Intestazione MPLS DSCP=“x” x x L1 x x D1 D3 Rete MPLS LSP PHB determinato sulla base del contenuto del campo DSCP del pacchetto IP
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.