6. Introduzione al Multicast Davide Guerri CASPUR 6
Introduzione
Concetti di base
Il paradigma d’instradamento è totalmente differente da
quello tradizionale IP (destination based)
Un gruppo o indirizzo multicast identifica l’insieme di client che
intendono ricevere uno specifico flusso
• Nella notazione standard, un gruppo multicast G proveniente da
qualunque sorgente è identificato dalla coppia (*,G) mentre se la sorgente
S è definita si utilizza la notazione (S,G) dove S è un indirizzo IP unicast.
Gli indirizzi IP di classe D sono tutti e soli quelli riservati al multicast:
• 224.0.0.0/4 ovvero da 224.0.0.0 a 239.255.255.255
• alcuni range sono riservati a specifici scopi (GLOP, SAP, Local Scoped, …)
L’indirizzo IP degli effettivi destinatari di una trasmissione multicast non
è in alcun modo in relazione con il gruppo multicast al quale essi
appartengono
10. Introduzione al Multicast Davide Guerri CASPUR 10
Due modelli di servizio:
Molti a Molti (Any Source Multicast, ASM)
• Più sorgenti possono trasmettere verso lo stesso gruppo multicast
• Adatto a sessioni di chat, videoconferenze, giochi online
• Realizzato, ad esempio, con un sottoinsieme delle funzionalità di PIMSM
e IGMPv2
Uno a Molti (Source Specific Multicast, SSM)
• Più sorgenti possono trasmettere verso lo stesso gruppo multicast
ma si può selezionarne uno specifico sottoinsieme
• Adatto a trasmissioni audio/video o dati
• Realizzato, ad esempio, mediante un sottoinsieme delle
funzionalità di PIMSM e IGMPv3
Introduzione
Concetti di base
12. Introduzione al Multicast Davide Guerri CASPUR 12
Nel modello ASM la sorgente del gruppo multicast
non è definita
È necessario un configurare nella rete un “punto di ritrovo”
tra sorgenti e ricevitori
• Ogni sorgente comunica a quest’entità la sua presenza
• Ogni ricevente si riferisce ad esso per conoscere l’indirizzo delle
sorgenti di un dato gruppo multicast
Nel modello SSM si assume che, in qualche modo, i
membri del gruppo multicast conoscano l’indirizzo
della sorgente
Introduzione
Concetti di base
15. Introduzione al Multicast Davide Guerri CASPUR 15
PIM è un protocollo di routing in grado di governare
l’instradamento del traffico multicast
È indipendente dal protocollo di rete:
• Può essere incapsulato in diversi tipi di pacchetti L3 (e.g.: IPv4 e
IPv6) e può essere utilizzato per diverse tipologie di routing
multicast (e.g.: IPv4 e IPv6)
È basato sullo scambio di messaggi tra router
Può operare sia in modalità densa sia sparsa
• PIMSM mira a costruire un albero di distribuzione multicast dove
ogni cammino da una foglia alla radice sia lo shortest path dalla
sorgente ai client. Tale albero è denominato Shortest Path Tree
(SPT)
Multicast Intradominio
PIM::Concetti di base
16. Introduzione al Multicast Davide Guerri CASPUR 16
Nel modello ASM, PIMSM richiede la presenza di un
Rendezvous Point (RP)
Ogni sorgente multicast è registrata (dal router ad essa direttamente
connesso) presso un RP
Ogni router del dominio PIMSM conosce l’indirizzo di un RP
• ad esempio in quanto configurato manualmente …
Per ASM, prima di costruire lo SPT radicato nella sorgente, PIMSM
costruisce un Rendevouz Point Tree (RPT), ovvero un albero di
distribuzione (subottimale) costituito da due SPT:
• Uno radicato nel RP ed in grado di distribuire i pacchetti multicast dal RP ai
membri del gruppo multicast
• Uno radicato nella sorgente ed in grado di distribuire i pacchetti dalla
sorgente al RP
In un dominio PIMSM, possono convivere più RP ognuno dei quali
responsabile di differenti gruppi multicast
Multicast Intradominio
PIMSM::Concetti di base
17. Introduzione al Multicast Davide Guerri CASPUR 17
Sorgenti e riceventi di gruppi multicast non agiscono
direttamente sull’instradamento
Tutte le operazioni di iscrizione e abbandono di un gruppo o di
registrazione di una sorgente multicast sono mediate dai router
Se su una LAN con degli host vi sono più router multicast,
solo uno di questi ha un “ruolo attivo” nel soddisfacimento
delle richieste degli host
Tale router è denominato PIM Designated Router e, per conto degli
host della LAN, è responsabile
• Dell’iscrizione ai gruppi multicast
• Dell’abbandono di un gruppo multicast
• Della registrazione di nuove sorgenti multicast sul RP
L’elezione del DR avviene per mezzo di appositi messaggi PIM Hello,
destinati a tutti i router della LAN
Multicast Intradominio
PIMSM::Concetti di base
22. Introduzione al Multicast Davide Guerri CASPUR 22
Multicast Intradominio
PIMSM::Costruzione dell’albero di distribuzione
c) S comincia a trasmettere sul gruppo G
d) Appena “appresa” l’esistenza di una nuova
sorgente, B provvede a registrarla sul RP
mediante invio di messaggi PIM Register
(S,G)
• Quest’ultimi messaggi (unicast) incapsulano i
pacchetti multicast trasmessi da S.
• Viene generato un PIM Register (S,G) per
ogni pacchetto multicast che B riceve.
e) C apprende l’esistenza di una nuova
sorgente ed inoltra il traffico che riceve
direttamente da B sulle interfacce presenti
nella OIL per G
• Il flusso multicast si propaga fino al router A
f) R riceve il primo pacchetto relativo al
gruppo G
27. Introduzione al Multicast Davide Guerri CASPUR 27
Situazione finale
Finché la topologia della rete non cambia,
anche l’albero di distribuzione non varia.
Periodicamente ogni router coinvolto, invia
al suo RPF neighbor per S un messaggio
PIM di Join per effettuare il refresh dei
timer di vita degli stati d’inoltro
La scadenza di questi timer ha un effetto
assimilabile al pruning esplicito
L’invio periodico di messaggi di Join,
consente la riconvergenza della
distribuzione in caso di variazioni
topologiche in quanto anche le RPF table
(quando popolate da algoritmi di routing
dinamico) sono modificate
Multicast Intradominio
PIMSM::Costruzione dell’albero di distribuzione
30. Introduzione al Multicast Davide Guerri CASPUR 30
Non tutti i passaggi visti sono
sempre necessari:
Se, durante la propagazione dei PIM
Join per (S,G), s’incontra un router
che ha già uno stato d’inoltro per
(S,G), l’interfaccia di provenienza di
quest’ultimo viene aggiunta alla OIL
per (S,G) ed il processo s’interrompe
Lo stesso vale per richieste inerenti
(*,G) (utilizzate nella costruzione del
RPT)
Multicast Intradominio
PIMSM::Costruzione dell’albero di distribuzione
31. Introduzione al Multicast Davide Guerri CASPUR 31
Nell’esempio precedente, un client R
richiede l’iscrizione al gruppo G prima
che S cominci a trasmettere su G
Se il RP non ha “richieste pendenti”
quando S comincia a trasmettere:
alla ricezione del PIM Register (S,G)
inviato da B, il RP invia subito un PIM
Register Stop (S,G) verso B ma (al
contrario dell’esempio precedente)
non procede alla creazione dell’albero
di distribuzione radicato in
quest’ultimo router
B continua comunque il periodico
invio di messaggi PIM Null Register
(S,G) per segnalare l’esistenza di una
sorgente attiva
Multicast Intradominio
PIMSM::Costruzione dell’albero di distribuzione
33. Introduzione al Multicast Davide Guerri CASPUR 33
SSM è realizzato con un sottoinsieme delle funzionalità di PIMSM
Tutti i gruppi multicast possono essere utilizzati con questo modello ma, per
IPv4, è riservato allo scopo il blocco d’indirizzi 232.0.0.0/8
ASM può essere implementato con un insieme di “iscrizioni” a gruppi multicast
del modello SSM
È però necessario utilizzare un meccanismo “esterno” per il discovery delle
sorgenti
SSM è estremamente più semplice e versatile di ASM
Non è più necessario il RP(!)
Risolve quasi del tutto i problemi di sicurezza legati al modello ASM (i.e.: DoS)
L’identificativo di una “trasmissione” multicast comprende anche l’indirizzo della
sorgente
• Risolve alcuni problemi legati al limitato spazio d’indirizzamento IPv4 dedicato al
multicast (e.g.: GLOP)
Multicast Intradominio
PIMSM::Source Specific Multicast
37. Introduzione al Multicast Davide Guerri CASPUR 37
I RP di due domini PIMSM che vogliano scambiare informazioni circa le
sorgenti attive (SA) stabiliscono un peering MSDP
Il peering è configurato manualmente dagli amministratori
A meno di filtri, ogni sorgente attiva viene comunicata a tutti i peerer MSDP
(tranne quello dalla quale è ricevuto)
• Sono comunicate anche le sorgenti ricevute dagli altri RP e questo è utile qualora
un dominio voglia dare transito al traffico multicast di altri domini
I messaggi MSDP sono veicolati da una connessione TCP
I meccanismi di costruzione dell’albero di distribuzione multicast rimangono
quelli di PIMSM, tuttavia
il RP di riferimento per i router multicast rimane quello del dominio
d’appartenenza
la sorgente può trovarsi in qualunque dominio per il quale si ricevono SAs
tramite MSDP
Routing Multicast Interdominio
MSDP::Cenni
44. Introduzione al Multicast Davide Guerri CASPUR 44
IGMP è basato su tre tipologie di messaggio
Query (IGMP v1, v2 e v3)
• Generate dal router multicast della LAN per “sondare” l’interesse dei
client nell’iscrizione ai gruppi multicast
• Le General Query richiedono informazioni per qualunque gruppo
• IGMPv2 introduce le GroupSpecific Query, ovvero query relative ad
uno specifico gruppo multicast
Membership Report (IGMP v1, v2 e v3)
• Generati dai client, solitamente in risposta alle query, per
richiedere/confermare l’iscrizione ad un gruppo multicast
• IGMPv3 introduce le possibilità di specificare una o più sorgenti dalla
quale ricevere un gruppo multicast
Leave (IGMP v2 e v3)
• Generati dagli host per annullare l’iscrizione ad un gruppo multicast
Multicast su rete locale
IGMP::Concetti di base
51. Introduzione al Multicast Davide Guerri CASPUR 51
IGMP snooping è molto oneroso per gli switch
Ogni dispositivo L2 deve
• Mantenere l’elenco di tutti i gruppi multicast richiesti (e delle sorgenti per
IGMPv3) con una lista di interfacce sulle quali dovrà inoltrare il traffico ad
essi relativo
• Analizzare fino al livello 4 ogni singolo messaggio IGMP
• E comunque fino al livello 3 tutte le trame ethernet/802.3 …
• Mantenere dei timer per ogni gruppo multicast richiesto
Non esiste un vero e proprio standard per IGMP snooping
Il RFC 4541 (del 2006) è successivo alla maggior parte delle
implementazioni oggi esistenti e riporta solo delle “linee guida”
Ogni vendor ha implementato una propria interpretazione di IGMP
snooping (…)
Multicast su rete locale
IGMP::Ottimizzazioni (IGMP Snooping)