IP Multicast Routing
Transcript
IP Multicast Routing
IP Multicast Routing Silvano GAI Fulvio RISSO http://staff.polito.it/fulvio.risso/ Nota di Copyright 2 Questo insieme di trasparenze (detto nel seguito slides) è protetto dalle leggi sul copyright e dalle disposizioni dei trattati internazionali. Il titolo ed i copyright relativi alle slides (ivi inclusi, ma non limitatamente, ogni immagine, fotografia, animazione, video, audio, musica e testo) sono di proprietà degli autori indicati a pag. 1. Le slides possono essere riprodotte ed utilizzate liberamente dagli istituti di ricerca, scolastici ed universitari afferenti al Ministero della Pubblica Istruzione e al Ministero dell’Università e Ricerca Scientifica e Tecnologica, per scopi istituzionali, non a fine di lucro. In tal caso non è richiesta alcuna autorizzazione. Ogni altra utilizzazione o riproduzione (ivi incluse, ma non limitatamente, le riproduzioni su supporti magnetici, su reti di calcolatori e stampate) in toto o in parte è vietata, se non esplicitamente autorizzata per iscritto, a priori, da parte degli autori. L’informazione contenuta in queste slides è ritenuta essere accurata alla data della pubblicazione. Essa è fornita per scopi meramente didattici e non per essere utilizzata in progetti di impianti, prodotti, reti, ecc. In ogni caso essa è soggetta a cambiamenti senza preavviso. Gli autori non assumono alcuna responsabilità per il contenuto di queste slides (ivi incluse, ma non limitatamente, la correttezza, completezza, applicabilità, aggiornamento dell’informazione). In ogni caso non può essere dichiarata conformità all’informazione contenuta in queste slides. In ogni caso questa nota di copyright non deve mai essere rimossa e deve essere riportata anche in utilizzi parziali. Cos’è il Multicast Possibilità di trasmettere la medesima informazione a più utenti finali senza essere costretti ad indirizzare questi ultimi singolarmente e senza avere, quindi, la necessità di duplicare per ciascuno di essi l'informazione da diffondere 3 Multicast e la multimedialità non sono la stessa cosa, ma sono due caratteristiche estremamente correlate quando si entra nell'ambito delle comunicazioni (si pensi a proposito ai servizi di videoconferenza) IP e il multicasting Trasmissione di pacchetti IP multicast Non c’è alcuna differenza rispetto a pacchetti unicast Gli host non hanno quindi alcun problema a trasmettere dati multicast Recapito a destinazione dei pacchetti IP Multicast Il recapito di pacchetti multicast a destinazione è un problema decisamente diverso da quello dei pacchetti unicast 4 Il multicast è visto semplicemente come un indirizzo IP un po’ diverso Unicast: il routing è fisso, i protocolli devono semplicemente riportare che un certo host H è localizzato in una certa zona della rete Internet Multicast: il protocollo deve individuare dove sono localizzati tutti gli hosts che vogliono ricevere quella trasmissione e trasmettere il flusso solo sulle reti interessate Host Group (1) Concetto nuovo, alla base del multicasting Ogni singolo host può aderire ad un host group e poi abbandonarlo Ogni host group è contraddistinto da un indirizzo IP di classe D La trasmissione dei dati avviene inviando dei pacchetti con questo IPdest Ogni rete deve capire se, al suo interno, esistono degli host che hanno intenzione di ricevere i pacchetti destinati a questo host group Sono strutture dinamiche 5 Host Extensions for IP Multicasting, RFC1112 La composizione di un host group non è nè fissa nè limitata e varia nel tempo Host Group (2) Esistono due tipi di host group: Il permanente che ha un indirizzo ben noto e assegnato a priori Esiste sempre, anche se non esistono membri al suo interno Ad esempio gli indirizzi di multicast utilizzati da alcuni protocolli di routing (es. RIP o OSPF) per il loro funzionamento Il temporaneo che esiste solo finché qualcuno ne fa parte Non esistono limitazioni di sorta 6 Si può entrare e uscire dai gruppi a propri piacimento Non ci sono limiti sul numero di gruppi a cui è possibile appartenere contemporaneamente Viene “rilasciato” nel momento in cui il gruppo non ha più alcun membro, ed è disponibile alla creazione di un nuovo host-group IP e il multicasting Gli MRouter (Multicast Router) instradano i pacchetti multicast 7 Gli mrouter possono essere integrati con i normali router IP, ma svolgono funzioni differenti Un datagram inviato in multicast verrà consegnato a tutti i membri dell'host group di destinazione con il "miglior sforzo possibile", esattamente come accade per i pacchetti unicast. Pertanto sul datagram inviato in multicast non sono garantiti né il tempo né l'ordine di consegna Indirizzi multicast Indirizzi di classe D Gli indirizzi che identificano un host group sono detti indirizzi di classe D Nella notazione standard di Internet gli indirizzi multicast sono compresi nell'intervallo: 8 iniziano con 1110 224.0.0.0 - 239.255.255.255 Indirizzi multicast Alcuni casi particolari L'indirizzo 224.0.0.0 non viene assegnato a nessun gruppo 224.0.0.1 è il gruppo permanente composto da tutti gli host Questo indirizzo viene utilizzato dagli mrouter per inviare messaggi di controllo agli host direttamente connessi su una data rete locale I messaggi destinati a questo gruppo non vengono mai inviati al di fuori della rete locale 9 In caso contrario sarebbe una banalità intasare Internet Non esiste l'indirizzo globale di tutti gli host connessi ad Internet 224.0.0.4: indirizzo di tutti gli mrouter Multicast sulle LAN Sulle LAN il multicast di livello 3 è realizzato tramite il multicast di livello MAC Mappaggio degli indirizzi 10 Si ottimizza il processo di ricezione, perché il multicast MAC è filtrato direttamente dall’hardware della scheda Il pacchetto multicast IP è passato ai livelli superiori solo se la scheda lo riconosce come un pacchetto di un gruppo multicast riconosciuto Sono disponibili i 23 bit meno significativi dell’indirizzo MAC Lo spazio di indirizzamento IP dedicato al multicast è invece esteso su 28 bit (prefisso 1110) I 23 bit meno significativi dell'indirizzo IP vengono mappati negli omologhi bit dell'indirizzo multicast MAC corrispondente Mapping IP – MAC Ad un indirizzo MAC corrispondono 25 indirizzi IP Alcuni host riceveranno dei pacchetti IP che non sono destinati a loro; questi pacchetti vengono scartati a livello IP e non a livello MAC, aumentando l’overhead sull’host Per evitare il problema: fare attenzione all'assegnazione degli indirizzi multicast Bit che possono dare origine a collisione sull’indirizzo MAC 1110 x27x26x25x24x23x22x21x20x19x18x17x16 . . . x0 Multicast IP address 01-00-5E ... 0x22x21x20x19x18x17x16 . . . x0 Multicast MAC address for IP Indirizzi MAC riservati dall’IEEE per IP multicast: 01-00-5E-00-00-00 - 01-00-5E-7F-FF-FF (indirizzi Global – Group) 11 Configurazione delle NIC card Bisogna abilitare o disabilitare la ricezione di indirizzi multicast sulla scheda di rete I driver della scheda di rete devono permettere due nuove funzioni 12 JoinHostGroup (address, interface) LeaveHostGroup (address, interface) Componenti fondamentali Trasmissione dati Determinazione dell’esistenza di ricevitori di un certo gruppo multicast su un particolare segmento di LAN Nel caso non esistano ricevitori, non è il caso di inoltrare quei pacchetti sulla LAN Propagazione dell’esistenza e della localizzazione dei ricevitori 13 gli host trasmettono i dati ad un indirizzo particolare (multicast) Il routing multicast deve tenere traccia della localizzazione dei vari ricevitori, creando un “albero coprente” in modo da minimizzare i costi e recapitare i pacchetti a tutti Le reti che non hanno ricevitori vengono tagliate (prune) IGMP Internet Group Management Protocol È il protocollo per la gestione e lo scambio delle informazioni di controllo tra gli host e gli mrouter IGMP deve necessariamente essere realizzato su tutti gli host che vogliono ricevere, oltre che inviare, pacchetti multicast La versione attuale dell'IGMP è la numero 2 14 Scopo primario: permettere agli mrouter di mantenere sempre aggiornate al loro interno le tabelle che associano ad ogni rete locale gli host group presenti sulla rete stessa In realtà IGMP può essere utilizzato anche per lo scambio delle informazioni di controllo tra gli mrouter. esistono installazioni della 1 la numero 0 è obsoleta I messaggi IGMP vengono spediti in multicast per tutti gli host sulla LAN e sono incapsulati in un datagram IP con campo protocol type uguale a 2 Il pacchetto IGMP Version Type Unused Checksum Group Address Type 1 = Host Membership Query: inviate dal multicast router verso gli host, per tenere aggiornata la lista degli host group attivi sulla LAN 2 = Host Membership Report: inviate dall'host in risposta alle query del router Group 15 Address Viene impostato a zero nelle query generali per scoprire quali gruppi operano sulla LAN Nei report contiene l'indirizzo dell'host group a cui appartiene un host Il protocollo IGMP (1) I multicast router inviano periodicamente query per scoprire quali host group sono attivi su una LAN Le query sono indirizzate (a livello IP) al gruppo di tutti gli host (224.0.0.1) e hanno TTL=1 16 Un pacchetto con TTL = 1 non esce dalla LAN Un multicast router è abilitato, di default, a ricevere tutti i gruppi multicast Il protocollo IGMP (2) Gli host rispondono alle query generando dei report, con cui segnalano al multicast router tutti gli host group a cui appartengono Il router abilitato messaggi di query 17 La risposta avviene utilizzando il gruppo multicast di appartenenza In particolare, gli host rispondono inviando un report per ciascun host group a cui sono iscritti invia periodicamente dei Se dopo un certo numero di tentativi non riceve alcun report per quel determinato gruppo, assume che non ci siano più membri Se un host ha appena aderito ad un gruppo multicast deve inviare immediatamente un report affinché sia in grado il prima possibile di ricevere i pacchetti indirizzati a quel gruppo IGMP: Tecniche di ottimizzazione I messaggi di report possono intasare la rete. Per ovviare a ciò: Quando un host riceve una query avvia un timer per ciascun gruppo a cui appartiene: Oltre ad utilizzare i timer, ogni host resta in ascolto e se sente un report con un indirizzo multicast corrispondente ad uno dei suoi, non genera un’altra risposta per quel multicast group 18 ogni timer viene fatto partire da un valore casuale scelto tra 0 e D secondi; allo scadere del timer si genera il report relativo. È indifferente, per un router, sapere che sulla LAN ci sono 2 piuttosto che N receivers per quel gruppo IGMP v. 2 (1) Arricchisce la versione 1, mantentendo la compatibilità con gli host che hanno tale versione Aggiunte Specifica la modalità con cui si elegge il designated router viene scelto quello con indirizzo IP più basso sull'interfaccia considerata In IGMP v.1 questa procedura viene demandata al protocollo di routing Messaggio Group-Specific Query 19 protocolli differenti potrebbero implementare tecniche di elezione del designated router differenti ed incompatibili tra loro, provocando la presenza di più designated router sulla stessa sottorete Permette ad un router multicast di interrogare un ben specifico gruppo invece che tutti i gruppi presenti sulla LAN IGMP v. 2 (2) Aggiunte Messaggio Leave-Group 20 Accelera le operazioni di eliminazione di un gruppo da una LAN Inviato al gruppo All-Routers da un host che intende lasciare un certo gruppo multicast, specificando l'indirizzo del gruppo che si vuole abbandonare Quando il router riceve un messaggio di questo tipo inizia ad inviare una serie di Group-Specific Query verso quel particolare gruppo di destinazione e se continua a non ricevere risposta elimina la entry relativa al gruppo sull'interfaccia interessata Velocizza le operazioni di prune di alberi multicast inutili IGMP v. 3 Attualmente un Internet Draft Sostanzialmente aggiunge due nuovi comandi Inclusion Group-Source Report ed Exclusion Group-Source Report Un host può specificare da quale sorgente vuole o non vuole ricevere traffico multicast destinato ad un certo gruppo 21 Se ci sono più sorgenti attive che inviano pacchetti ad un determinato gruppo, gli host possono scegliere di ricevere i pacchetti provenienti solo da una di queste sorgenti Si tratta di un mezzo per risparmiare banda, in quanto questa informazione può essere sfruttata dai router per potare ulteriori ramificazioni degli alberi di distribuzione Multicast Router MULTICAST ROUTER Host Membership Report HOST 22 Host Membership Query HOST HOST HOST Protocolli di Instradamento (1) I protocolli di instradamento per pacchetti multicast gestiscono alberi di distribuzione multicast da una sorgente verso le destinazioni attive Originariamente sono stati definiti solo protocolli intra-domain Da qualche tempo c’è maggiore enfasi sui protocolli inter-domain Il multicast è ancora un problema insoluto 23 Ci si è accorti che un protocollo classico, intra-domain, non scala su Internet Ad una distanza di più di 10 anni rispetto alle proposte originarie (Deering), non esiste ancora il multicast su scala geografica Protocolli di Instradamento (2) I protocolli intra-domain utilizzati sono DVMRP (Distance Vector Multicast Routing Protocol) MOSPF (Multicast OSPF) è un protocollo di tipo link-state PIM (Protocol Independent Multicast) Il protocollo inter-domain proposto è 24 basato sui distance-vector BGMP (Border Gateway Multicast Protocol) Algoritmi di instradamento Algoritmi proposti da Steve Deering 25 Stephen E. Deering, "Multicast routing in internetworks and extended LANs," in SIGCOMM 88, pp. 55-64, Aug. 1988 Selective Flooding Reverse Path Forwarding Reverse Path Broadcasting Truncated Reverse Path Broadcasting Reverse Path Multicasting Reverse Path Forwarding (1) Migliora il Flooding Funziona solo se la rete è simmetrica (calcola il costo del reverse path) È utilizzabile in presenza di un algoritmo di routing unicast di tipo Distance Vector 26 Quando un router riceve un pacchetto multicast, lo invia su tutte le altre interfacce a patto che quella da cui è arrivato sia sul cammino più breve tra il router e la destinazione Ha le distanze del router da ogni destinazione Reverse Path Forwarding (2) Problemi Non tiene conto del fatto che ci siano ascoltatori o meno (non fa pruning) Carica la rete in modo inaccettabile: non viene generato un albero della distribuzione, ma il pacchetto viene distribuito su tutti i link Su alcuni link transitano più copie dello stesso pacchetto Ad esempio se X e Y hanno distanza minima da S dall’interfaccia superiore, sulla LAN A transiteranno 2 copie dei pacchetti emessi da S 27 Di conseguenza, transiteranno pacchetti anche su LAN B Suppone la rete simmetrica 2 S X Y LAN A Z LAN B Reverse Path Broadcasting (1) Evoluzione del RPF Si costruisce un albero di distribuzione multicast (come per costruire lo spanning tree), e i pacchetti raggiungono tutte le destinazioni passando sui rami di quest’albero 28 Non è più necessario trasmettere i pacchetti su tutti i link, ma solo su quello dove ci sono le “interfacce figlie” Viene creato un albero distinto per ogni sorgente (che si pone come nodo radice) Reverse Path Broadcasting (2) Costruzione dell’albero di multicast Ogni router deve capire la sua posizione all’interno dell’albero di distribuzione Non è necessario che conosca l’intero albero Interfaccia “padre”: è determinata dall’interfaccia da cui ha distanza minore verso la sorgente del pacchetto Interfaccia “figlia”: è determinata sfruttando ancora il protocollo DV unicast 29 Siccome RPB si appoggia su un protocollo di routing DV, questo è facile da scoprire Se il pacchetto non arriva da quell’interfaccia, non viene propagato Per ogni link a cui il router è affacciato, il router esamina i DV che gli sono arrivati dagli altri router presenti su quel link Ogni router conosce, quindi, la distanza di sé stesso e dei suoi vicini verso la destinazione, quindi è in grado di sapere chi è il router che ha la distanza minore verso la destinazione Quel router viene dichiarato “padre” di quel link, quindi solo quel router ha il diritto di inviare i pacchetti multicast su quel link In caso di costo uguale, viene presa l’interfaccia con IP più basso Reverse Path Broadcasting (3) Si supponga che i router Y e Z hanno costo 6 verso la destinazione (che è la sorgente S), mentre X ha 5 5 Supponiamo che l’indirizzo IP dell’interfaccia superiore di Y sia più alto X Sulla LAN A ci sono 3 router, quindi il router “padre” è quello con costo minore verso S (cioè X) Propagazione dei pacchetti LAN A Ogni router sceglie l’interfaccia a costo minore Definizione dell’interfaccia figlia: X e Y ricevono i pacchetti dall’interfaccia superiore Solo X può propagare il pacchetto sulla LAN A Y si vede arrivare un pacchetto dall’interfaccia inferiore, che non è un’interfaccia padre, quindi non lo propaga Z invece propaga il pacchetto perché lo riceve dalla sua interfaccia padre 6 Y Definizione dell’interfaccia padre: 30 S Esempio 6 Z LAN B Reverse Path Broadcasting (4) Problemi: sostanzialmente gli stessi del RPF 31 Non tiene conto del fatto che ci siano ascoltatori o meno (non fa pruning) Suppone la rete simmetrica Truncated RPB (1) Inserisce il concetto di pruning Non invia il multicast sulle LAN foglia qualora queste non abbiano receivers 32 Gli algoritmi precedenti lasciavano agli host il compito di filtrare i pacchetti, occupando banda inutilmente Implica che l’albero di distribuzione dipende dalla sorgente e dal gruppo di multicast (con RPB dipende solo dalla sorgente) Richiede che gli end-systems generino dei membershiprepors È richiesto l’uso di un protocollo che comunichi, ad ogni router, se su quella LAN ci sono receivers Truncated RPB (2) LAN foglia: reti che nessun altro router usa per raggiungere la sorgente Determinazione di quali sono le “LAN foglie”: ogni router deve inserire nei propri DV l’informazione del suo next hop per aggiungere ogni destinazione Questo è automatico in RIP con Split Horizon con Poisonus Reverse, perché tutte le destinazioni raggiunte attraverso il link sul quale l’annuncio è inviato vengono poste con distanza pari a infinito 33 Si supponga che il router Z propaghi la sorgente S a costo infinito verso la LAN A Questo significa che la LAN A è un link di transito, perché i pacchetti della sorgente S transiteranno su LAN A per andare a Z Quindi, se la entry relativa alla sorgente in esame è propagata con distanza infinita, quel link NON è una foglia Questa ottimizzazione semplifica l’algoritmo, ma non impedisce che sui nodi interni dell’albero ci sia traffico inutile Reverse Path Multicasting (1) Supera le limitazioni di TRPB, realizzando il pruning di intere ramificazioni Algoritmo 34 Primo pacchetto inviato dalla sorgente S: viene propagato secondo l’algoritmo TRPB Se il pacchetto raggiunger un router i cui link sono tutte foglie prive di membri di quel gruppo, il router invia un messaggio di No-Membership-Report (NMR) al router padre Se il router padre riceve questi messaggi da tutti i suoi figli, genera a sua volta un NMR verso il padre Reverse Path Multicasting (2) Messaggi NMR: hanno validità limitata Messaggi Membership-Report Servono per comunicare al nodo padre che si è aggiunto un ascoltatore per quel gruppo In questo caso deve essere attivato rapidamente il ramo dell’albero, senza aspettare il timeout precedente Scalabilità 35 Quando scadono, viene adottato nuovamente l’algoritmo TRPB Problema: ci sono dei multicast storm periodici Critica, perché ogni router deve tenere molte informazioni per ogni coppia (source, group) Link State Multicast Routing Basa il suo funzionamento sull’esistenza di un protocollo di routing unicast di tipo LS Funzionamento Ogni router ha la mappa completa della rete, quindi è in grado di calcolare, per ogni source, l’albero di distribuzione verso ogni potenziale receiver Viene creato un nuovo Link State Packet che annuncia l’esistenza di un receiver in relazione ad un particolare host group 36 Il pacchetto viene inviato in flooding, così che tutta la rete conosce quali sottoreti contengono dei receiver Se un router riconosce di essere su un albero di distribuzione, si attiva a fare il forwarding degli eventuali pacchetti appartenenti a quel gruppo Non è più necessario il “flood and prune” LS Multicast Routing: problemi (1) L’instradamento del primo pacchetto di trasmissione può richiedere parecchio tempo 37 una L’albero dei cammini minimi viene calcolato solo nel momento in cui un utente inizia a trasmettere Quando il primo pacchetto arriva ad un router, questo deve calcolare l’albero di instradamento per sapere su quali link lo deve forwardare Per i pacchetti successivi questo calcolo non è più necessario in quanto l’informazione si troverà in cache LS Multicast Routing: problemi (2) Memoria CPU Ogni router deve contenere una nuova entry (un nuovo LSP) per ogni sottorete con un membro di quel particolare host group Il calcolo dell’albero di instradamento va fatto per ogni sorgente di ogni gruppo Il numero di alberi è molto elevato Ogni sorgente ha un albero distinto verso ogni destinazione La tabella di routing deve mantenere, anzichè semplicemente la destinazione (per il routing unicast), la coppia (sorgente, destinazione) 38 Per ogni coppia è necessaria una entry distinta, in quanto ogni router deve calcolare un percorso distinto per ogni possibile destinazione Core-Based Tree (1) Prevede la creazione di un unico albero di distribuzione multicast per tutto il gruppo G Core-router 39 È il router principale dell’albero di distribuzione Utilizzo di “stati forti” L’albero è indipendente dalla sorgente Non vengono inviate periodici messaggi di refresh sullo stato dei gruppi multicast; poco adatto a situazioni altamente variabili Tony Ballardie, Paul Francis, and Jon Crowcroft, "Core based trees (CBT)," in SIGCOMM 93, pp. 8595, ACM, Sept. 1993 (also in Computer Communication Review 23 (4), Oct. 1992) Core-Based Tree (2) Algoritmo di costruzione dell’albero 40 Quando un router periferico (leaf router) riconosce che un host nella sua rete vuole agganciarsi al gruppo di multicast, invia un messaggio particolare (Join Reques) al core router Tutti i router che ricevono questo messaggio marcano l’interfaccia dalla quale il messaggio arriva come una interfaccia da usare per il forwarding dei pacchetti multicast per quel gruppo Nel caso in cui il messaggio raggiunga un router che fa già parte dell’albero (prima di raggiungere il code rotuer) la segnalazione si ferma, e all’albero precedente viene aggiunto un nuovo ramo Core-Based Tree (3) Data Forwarding Un membro del gruppo invia semplicemente il pacchetto in multicast Ogni router che riceve un pacchetto lo invia su tutte le interfacce appartenenti a quel gruppo di multicast (definite nella fase di costruzione dell’albero) tranne quella da cui il pacchetto è arrivato Problemi Il core-router è un single point of failure La posizione del core-router influenza pesantemente le performance dell’algoritmo 41 La scelta ottimale della decisamente complicata posizione può essere I percorsi non sono ottimizzati Vantaggi: scalabilità (poche informazioni di stato nei routers) Algoritmi inter-domain Sono necessari algoritmi di tipo gerarchico La complessità degli algoritmi tradizionali (e le informazioni di stato da tenere) non permettono la scalabilità In generale, gli “utenti” sono sostituiti dai “domini” 42 Routing non gerarchico: l’utente Y vuole ricevere i gruppi A, B, C Routing gerarchico: Il dominio X vuole ricevere i gruppi A, B, C Entrano in gioco altre politiche (come per il BGP) Classificazione dei protocolli Suitable Protocols 43 LAN / Small Networks WAN / Autonomous System Internet DVMRP (RPM) MOSPF (linkstate) PIM-DM PIM-SM CBT BGMP (MASC) DVMRP (1) DVMRP è definito nello RFC 1075 DVMRP ignora le informazioni di routing degli altri protocolli 44 Protocollo Distance Vector, derivato dal RIP Versione 1: è basato sul TRPB Versione 3: viene adottato RPM DVMRP calcola route che possono differire da quelle utilizzate per il traffico unicast La duplicazione nel calcolo delle route unicast (è necessario avere, ad esempio, sia RIP che DVMRP sulla stessa rete) è dovuta al fatto che spesso la rete unicast e multicast non coincidono esattamente (ci possono essere router che solo solo unicast, ad es. Mbone) DVMRP (2) Usa una metrica basata sul numero di hop Il cammino che collega due neighbor DVMRP può includere molte reti e molti router (unicast) I tunnel sono configurati manualmente DVMRP è attualmente usato da MBONE 45 disponibile sui router disponibile anche sugli host (daemon mrouted) MOSPF (1) Protocollo Link State, estensione di OSPF DVMRP è invece un protocollo completamente nuovo Essendo basato su OSPF, permette ai singoli router di avere una conoscenza completa della topologia della rete e dei costi relativi ai singoli collegamenti Crea una base dati che descrive la topologia dell'Autonomous System I pacchetti multicast vengono instradati attraverso uno shortest path tree Usa una tecnica indicata con il nome di source/destination group routing Adatto a bassa densità di gruppi multicast Source/Destination routing In MOSPF il pacchetto multicast viene instradato sia in base all'indirizzo di destinazione (cioè l'indirizzo multicast) sia in base all'indirizzo della sorgente, cioè dell'host che ha generato il pacchetto 46 Il router non dev’essere stupido da supporre che lui è il centro dell’albero di distribuzione MOSPF (2) Funzionamento Il percorso di instradamento di un pacchetto multicast viene effettuato “su richiesta” 47 i router intermedi, nel momento in cui si vedono arrivare il primo pacchetto destinato da una particolare sorgente verso un certo host group, creano, con un opportuno algoritmo, uno shortest path tree che permette di instradare il pacchetto lungo i cammini più brevi verso tutte le direzioni indicate dall'indirizzo multicast Questo funziona se l’algoritmo ha raggiunto la stabilità del database degli LSA (altrimenti lo SPT non sarebbe comune su tutta la rete) MOSPF (3) 48 MOSPF è definito nello RFC1584 Broadcast periodico delle informazioni sui gruppi I router MOSPF possono essere mischiati con router OSPF I cammini scelti per i pacchetti multicast non passano per i router solo OSPF I router OSPF indicano di poter operare anche come router MOSPF utilizzando un nuovo bit (MC) nel campo Option dell’header OSPF MOSPF È stato aggiunto un nuovo tipo di LSA 49 Type 6 I router MOSPF producono LSA di tipo 6 per informare gli altri router nella loro area dei gruppi multicast attivi sulle loro reti Gli LSA tipo 6 non sono propagati tra le aree Gli ABR MOSPF producono LSA di tipo 6 per informare gli altri router nella backbone area dei gruppi multicast attivi sulle loro aree non backbone MOSPF Un nuovo bit (W) è associato ai router links states 50 Quando W=1 il router può essere scelto come gateway verso tutti i multicast group Il bit W è uguale a uno per gli MOSPF ASBR e per gli MOSPF ABR MOSPF è una buona scelta per il multicasting intradominio PIM (1) Protocol Independent Multicast Calcolo dei cammini inversi: si basa sulle informazioni di routing derivate dai sottostanti protocolli di routing unicast, qualunque essi siano (DV o LS) 51 Da qui deriva il nome di Protocol Independent Diversamente da DVMRP e MOSPF, non include pertanto meccanismi per il calcolo delle route unicast Come il DVMRP può attraversare più domini di routing unicast PIM (2) Affronta due diverse problematiche relative alla spazialità dei ricevitori Reti estese con pochi ricevitori sparsi ai quattro venti PIM-SM - Sparse mode (RFC 2117) Reti con ricevitori molto concentrati PIM-DM - Dense Mode (Internet Draft) Adotta l’algoritmo RPM, quindi assomiglia a DVMRPv3 PIM-SM e PIM-DM non possono coesistere in uno stesso dominio di routing multicast 52 Derivato da CBT; ha un basso numero di stati generato ed è fortemente scalabile I router del dominio vanno configurati opportunamente PIM (3) Comportamenti di default Implicit Join Protocol PIM-DM (come DVMRP): in mancanza di indicazioni esplicite, i pacchetti vengono inoltrati in una certa sottorete È necessario generare messaggi di “Prune” per interrompere il traffico multicast Explicit Join Protocol PIM-SM (come MOSPF): in mancanza di indicazioni esplicite, i pacchetti non vengono inoltrati in una certa sottorete MOSPF: richiede però che tutte le informazioni di multicast siano distribuite a tutti i router del dominio, anche a quelli non interessati dal traffico multicast – Non è in grado di limitare le informazioni solamente ai router interessati 53 È necessario generare messaggi di “Join” per attivare il traffico multicast PIM-DM (1) Adatto ad ambiti locali o metropolitani Non particolarmente parco in termini di banda Gestione molto semplice Inoltra i pacchetti per la nuova coppia (src, grp) su tutte le interfacce “figlie” fino a quando viene ricevuto un “Prune” 54 Ci possono essere pacchetti inoltrati in zone non interessate dal particolare gruppo multicast La banda non è normalmente un problema in ambito LANMAN Prima di inoltrare il pacchetto, controlla il reverse path per vedere che arrivi dall’interfaccia giusta PIM-DM (2) È necessario confermare esplicitamente l’esistenza di receivers nel proprio sottoalbero I messaggi sono pertanto inviati in multicast R3 1. PIM-DM Prune(grp) 2. PIM-DM Join(grp) R1 Net1 55 R2 Net2 PIM-DM (3) ip multicast-routing interface ethernet 1 ip pim dense-mode ! interface ethernet 2 ip pim dense-mode 56 PIM-SM Nasce per rendere disponibile un protocollo sparse mode Si serve delle tabelle di unicast indipendentemente dal protocollo unicast che le ha costruite Si basa sul concetto di albero di distribuzione centralizzato ed è l'evoluzione del CBT 57 Pochi gruppi rispetto al numero di LAN L’overhead introdotto dal multicast Dense Mode non è più trascurabile Scalabile Adotta un approccio dinamico nella gestione delle entry di routing PIM-SM Non usa mai il flooding Tre nodi speciali Designated router (DR), che si occupa di raccogliere le richieste degli host Rendez-vous point (RP), un punto di raccolta dei pacchetti destinati ad un certo gruppo multicast, che corrisponde al core router dell'algoritmo CBT 58 Il RP dipende dal singolo gruppo di multicast Bootstrap Router (BSR), che si occupa di distribuire a tutto il dominio PIM-SM l’elenco dei RP Designated Router (DR) È uno dei router della LAN Il router che ha Si occupa di raccogliere le richieste degli host 59 Percorso minore verso il RP Interfaccia con indirizzo IP più alto sulla LAN (in caso esistano più router sulla LAN in esame) L'aggregazione ai gruppi da parte degli host avviene in modo esplicito Gli alberi sono costruiti da messaggi espliciti di JOIN (no data driven) Invio periodico dei JOIN per adattarsi ai cambiamenti dei gruppi BootStrap Router (BSR) Eletto dinamicamente Ogni router abilitato annuncia sè stesso come Candidate BSR Vince il router che ha costo amministrativo migliore Viene eletto un set di BSR per questioni di affidabilità Distribuisce l’RP-set a tutti i router PIM-SM 60 A parità di questo, l’indirizzo IP maggiore Elenco dei router che possono diventare RP Esiste una formula che, dato un gruppo, permette di selezionare il router che ne diventerà RP a partire dall’RPset PIM-SM Gestisce due tipi di alberi di distribuzione Utilizzo degli alberi di distribuzione 61 Albero condiviso con centro nel RP, detto RP-Tree (RPT) e valido per tutti i membri del gruppo Albero dipendente dalla sorgente, detto anche ShortestPath Tree (SPT), che permette una maggiore velocità di consegna dei pacchetti, dato che il cammino sorgentericevitore è sempre minimo Default: si usa lo shared tree Permette ai router di passare indipendentemente a source specific tree se lo ritengono conveniente Shared Tree R2 S2 RP S1 R1 62 Non vengono usati percorsi minimi (S1-R3) C’è concentrazione di traffico sul RP L’albero è indipendente dalle sorgenti R3 Shortest Path Tree R2 S2 S1 R1 63 Vengono usati percorsi minimi (S1-R3) Il traffico è distribuito Ad ogni sorgente corrisponde un albero R3 Creare lo shared tree di G RP JOIN (*,G) 64 Trasmettere a G lungo lo shared tree RP S I pacchetti sono inoltrati dal DR in unicast verso il RP, attraverso messaggi PIM-SM Register Non è obbligatorio instaurare l’albero tra il RP e il DR REG (data,G) 65 Creare l’albero di distribuzione RP S Il messaggio di JOIN è inviato sempre da un “ricevitore” (in questo caso il RP) verso la sorgente dei dati Questo messaggio non è obbligatorio JOIN(S,G) 66 Creare lo shortest path tree di S RP S Data(S,G) JOIN(S,G) 67 Trasmettere lungo lo shortest path tree RP S La trasmissione di S verso RP continua fino a quando RP emetterà un messaggio PIM-Register-Stop verso il DR Questo può essere fatto: - se non ci sono ascoltatori per quel gruppo - se RP ha emesso un JOIN verso DR, pertanto non sono necessari i messaggi PIM-Register Data(S,G) Data(S,G) 68 Staccarsi dallo Shared Tree RP Il messaggio di PRUNE è inviato solamente quanto si ha la certezza che lo SPT è stato instaurato correttamente Può esistere il caso di un RP che non riceve e non inoltra nessun pacchetto (tutte le foglie hanno creato uno SPT) R PRUNE (S,G,RP=1) 69 Unirsi allo shared tree di G RP JOIN (*,G) 70 Unirsi allo shortest path tree di S RP S JOIN(S,G) 71 PIM-SM Router A ! ip multicast-routing ip pim rp-address 10.8.0.20 1 ! interface ethernet 0 ip pim sparse-mode ! interface ethernet 1 ip pim sparse-mode ! access-list 1 permit 224.0.1.2 72 Router D ! ip multicast-routing ip pim rp-address 10.8.0.20 1 ! interface ethernet 0 ip pim sparse-mode ! interface ethernet 1 ip pim sparse-mode ! access-list 1 permit 224.0.1.2 Multicast Backbone MBone MBone e l'IETF 73 Il termine MBone è l'acronimo di Multicast Backbone. MBone è una rete virtuale appoggiata su Internet Lo scopo principale di MBone è quello di fornire agli utenti la possibilità di sfruttare il multicast per le comunicazioni multimediali. MBone nasce agli inizi del 1992 come evoluzione degli esperimenti multicast compiuti dall'IETF (Internet Engineering Task Force) Audio e video venivano inviati in diretta dai luoghi in cui si effettuavano le conferenze IETF a tutto il resto del mondo collegato alla rete Internet MBone MBone è una rete virtuale Questo significa semplicemente che MBone per trasmissione utilizza la stessa struttura fisica di Internet I router che gestiscono anche il multicast sono detti MRouters MBone costruisce sui collegamenti fisici di Internet una sua topologia propria MBone utilizza il multicasting a livello IP Multicast significa trasmissione da una sorgente ad una o più destinazioni contemporaneamente. 74 la La trasmissione broadcast (e, talvolta, anche multicast) esiste sulle LAN. La novità di MBone è che ora la trasmissione multicast può avvenire su tutta la rete Internet Cosa dire di Mbone ... Il cane parlante Prima (e sola) telecomunicazioni 75 Non è tanto entusiasmante sentire ciò che dice, quanto piuttosto il fatto che lo dica È interessante vedere come una rete connectionless possa fare conferenze con buona qualità (se la banda lo permette) È importante “prefigurare” l’importanza che questa innovazione potrà avere sulle comunicazioni future, più che ciò che si riesce a fare oggi Legge di Tengdin sulle Il salto da ZERO a qualunque baud rate è il passo più importante che tu possa compiere; dopo di allora il solo obiettivo che avrai sarà la velocità della luce Topologia di MBone Collegamento tra due mrouter remote end-point Internet local end-point Mrouter Mrouter Tunnel H H 76 H H H H H H I tunnel Caratteristiche Ogni tunnel è caratteristiche: 77 univocamente definito da quattro local end-point remote end-point metric threshold local e remote end-point sono parametri statici del tunnel, mentre metric e threshold possono essere modificati dinamicamente I tunnel Parametri Threshold rappresenta il valore minimo del TTL che un pacchetto deve avere per poter essere instradato attraverso il tunnel 78 Permette di definire la visibilità dei pacchetti Ogni mrouter decrementa il TTL di 1 e non di un valore pari al threshold Metric è una misura del costo del tunnel I protocolli di trasporto UDP RTP Attualmente è il protocollo di trasporto utilizzato da tutti gli applicativi Real Time Protocol Migliora la QoS fornita da IP per garantire servizi in tempo reale Time-stamp per recuperare le variazioni di ritardo subite nella rete RTCP “incluso” in RTP Informazioni di controllo della conferenza 79 Report e statistiche (pacchetti ricevuto / persi da ogni utente, …) informazioni su ogni utente (nome, locazione, mail…) Gli applicativi (1) SD/SDR - Session Directory Mantiene un'elenco aggiornato delle conferenze in atto e permette di aderirvi od abbandonarle Indica, per ogni sessione, i medium interessati (audio, video, whiteboard) e le loro caratteristiche (indirizzo multicast sul quale trasmettono, porta) Tramite SDR si riescono a gestire dinamicamente in modo molto semplice le varie conferenze È possibile, scorrendo l’elenco visualizzato, aderire ad ognuna delle sessioni disponibili È possibile aggiungere una nuova sessione, distribuendo così questa informazione agli altri utenti di Mbone 80 SDR sceglie automaticamente un indirizzo che non crea conflitti È necessario definire un parametro scope, che conicide in pratica con il TTL (Site 16, Region 32, World 127) Annunci mediante indirizzo multicast “riservato” Gli applicativi (2) VAT – Visual Audio Tool Permette la ricezione e la trasmissione della parte audio di una conferenza I partecipanti di una conferenza multicast hanno la possibilità di tenere delle conversazioni private (una sorta di pettegolezzo a bassa voce), evitando di disturbare l'intera conferenza. RAT – Robust Audio Tool Attualmente in forte sviluppo: più formati audio, codifiche ridondate, codifiche gerarchiche, maggiore stabilità sulle varie piattaforme VIC – Video Conference Tool 81 Questa possibilità viene realizzata facendo uso di una connessione unicast parallela a quella multicast su cui è in atto la conferenza. Permette la ricezione e la trasmissione della parte video di una conferenza Gli applicativi (3) IMM - Image Multicaster Client NV - Videoconferencing Tool Permette di ricevere video trasmesso a basso frame rate in forma di datagram UDP multicast WB - WhiteBoard Tool 82 Permette la ricezione di immagini statiche Permette di gestire una lavagna bianca su cui chiunque può scrivere Particolarmente utile nel caso di seminari