IP Multicast: architettura e protocolli - Taschin Antonio -
-
Upload
pierina-corsi -
Category
Documents
-
view
224 -
download
1
Transcript of IP Multicast: architettura e protocolli - Taschin Antonio -
IP Multicast: architettura e protocolli
- Taschin Antonio -
Taschin Antonio 2
Sommario
• Introduzione al multicast• Routing interno• Altri protocolli multicast• Routing esterno
Introduzione al Multicast
•Cos’è il multicast
•Storia
•MBone
•Il Multicast nell’ISO/OSI
•Comandi
Taschin Antonio 4
Cos’è il multicast
La tecnologia multicast, è un processo che trasmette le informazioni da una sorgente a più destinazioni con un
unico flusso di dati, invece di usarne molteplici.
•Tante connessioni separate quante sono le richieste
•Utilizzare il broadcast
Taschin Antonio 5
PRO CONTRO
Larghezza di banda
Carico del server
Carico della rete
Inaffidabilità della consegna
Duplicazione di pacchetti
Congestioni di rete
Taschin Antonio 6
• Videoconferenze, video on demand• Quotazioni in borsa, distribuzione di listini e cataloghi
in tempo reale• Training, teledidattica• Distribuzione di software• Possibilità di sfruttare Internet per trasmissioni di tipo
televisivo
Scenari di applicazione
Taschin Antonio 7
Storia
• Stanford University primi anni 80
• Steve Deering e Vsystem
• Agosto 1989 RFC1112
• Dicembre 1991 “Multicast routing in a Datagram Network”
Taschin Antonio 8
MBone
•Tunnel
rete virtuale sperimentale di router multicast, costruita sopra la struttura standard di Internet
• mrouted protocollo di routing DVMRP
Taschin Antonio 9
Storia di MBone
• Primi anni 90
• Darpa Testbed Network (DARTNet)
• MIT,SRI, ISI, BBN, varie università
• 1992 IETF meeting a San Diego
Taschin Antonio 10
Gli indirizzi multicast
224.0.0.0 – 239.255.255.255
Insieme di zero o più host identificato da un singolo indirizzo IP di classe D
Taschin Antonio 11
…riassumendo
•Indirizzi IP Multicast–Classe D — caratterizata dai 4 bit più alti (1110)=(224.0.0.0)–Range da 224.0.0.0 a 239.255.255.255
•Well known addresses stabiliti dallo IANA –Per usi riservati da 224.0.0.0 a 224.0.0.255
•224.0.0.1—all systems on subnet•224.0.0.2—all routers on subnet•224.0.0.13 – all PIM routers•“http://www.iana.org/assignments/multicast-addresses ”
•Altri indirizzi utilizzati dinamicamente:–Global scope: 224.0.1.0-238.255.255.255–Limited Scope: 239.0.0.0-239.255.255.255– Site-local scope: 239.255.0.0/16– Organization-local scope: 239.192.0.0/16
Taschin Antonio 12
Le applicazioni in MBone
• Session Announcement Protocol• Session Description Protocol• Session Initiation Protocol
SessioneTrasmissione di dati in MBone
Taschin Antonio 13
Session Announcement Protocol (SAP)
• Per annunciare una sessione multicast e la sua descrizione
• Sessioni Gloobal Scope 224.2.127.254
• 224.2.128.0 – 224.2.255.255
• Sessioni Administrative Scope indirizzo più alto
• Porta 9875
Taschin Antonio 14
Cancellazione di una sessione
• Explicit Timeout
• Implicit Timeout
• Explicit Deletion
Taschin Antonio 15
Tool di MBone
• SDR (Session Directory)• VIC (Video Conferencing Tool)• RAT e VAT (Robust e Visual Audio Tool)• WB
Taschin Antonio 16
Livello 2: Multicast Ethernet
• Esempio:
• L’indirizzo AB-CD-EF-04-26-45
– la cifra AB (171 in notazione decimale) è dispari.
Indirizzo Ethernet 48bit 6 campi da 2 cifre esadecimali
L’indirizzo multicast viene riconosciuto dalla prima cifra esadecimale dell’indirizzo.
•Pari unicast•Dispari multicast
Taschin Antonio 17
…esempio• L’indirizzo AB-CD-EF-04-26-45
– la cifra AB (10101011) è dispari.
• Livello 1:
• Ogni singolo byte viene trasferito autonomamente• dal più significativo• Ogni bit del byte viene trasferito dal meno significativo
il primo bit che esce dalla scheda di rete è un 1
mappare gli indirizzi della classe D con indirizzi Ethernet che generino fisicamente un livello alto di tensione all'inizio.
Taschin Antonio 18
01-00-5e-7f-00-0101-00-5e-7f-00-01
239.255.0.1239.255.0.1
32 Bits
23 Bits
24 Bits 24 Bits
48 Bits
Multicast su Ethernet (livello 2)
RFC1112 01-00-5E-00-00-00
Taschin Antonio 19
Indirizzo Multicast Ethernet
• HEX 01 00 5E - 23 bit -• BIN 0000 0001 0000 0000 0101 1110 0xxx xxxx xxxx xxxx xxxx
xxxx• | | • Multicast Bit 0 = Internet Multicast
Taschin Antonio 20
Sovrapposizione di indirizzi
32 Bits
28 Bits
25 Bits 23 Bits
48 Bits
01-00-5e-7f-00-01
239.255.0.1239.255.0.11110
5 BitsLost
Taschin Antonio 21
224.1.1.1224.129.1.1225.1.1.1225.129.1.1 . . .238.1.1.1238.129.1.1239.1.1.1239.129.1.1
0x0100.5E01.0101
1 - Multicast MAC Address
32 – Indirizzi IP Multicast
Sovrapposizione di indirizzi
Taschin Antonio 22
224.0.0.x224.129.0.x225.0.0.x225.129.0.x . . .238.0.0.x238.129.0.x239.0.0.x239.129.0.x
0x0100.5E00.00xx
32 – Indirizzi IP Multicast
1 - Multicast MAC Address
Sovrapposizione di indirizzi
Taschin Antonio 23
Perché
• Primi anni 90 Steve Deering
• IEEE 16 consecutivi OUI (Organizational Unique Identifier)
Taschin Antonio 24
Il concetto di Gruppo
1. Insieme di zero o più host identificato da un indirizzo di classe D
2. Associarsi o Abbandonare3. Non è statico ma dinamico4. Non è necessario essere membri di un
gruppo per inviare dati a quel gruppo5. Per ricevere i dati però bisogna essere
membri del gruppo
Taschin Antonio 25
Internet Group Management Protocol
IGMP
• IGMPv1 RFC1112 obsoleto• IGMPv2 RFC2236 in uso• IGMPv3 bozza
Taschin Antonio 26
Pachetto IGMPv1
•Version•in questo campo viene specificata la versione dell’IGMP
•Typeesistono due tipi di messaggi IGMP:•1 = Host Membership Query.•2 = Host Membership Report.
•Unused• 0 quando viene spedito
•Checksum•Group Address
Taschin Antonio 27
IGMPv1
224.0.0.1 ALL-SYSTEMS.MCAST.NET
224.0.0.2 ALL-ROUTERS.MCAST.NET
• Membership Query
• Membership Report
• Leave Group
Taschin Antonio 28
224.1.1.1
Report
IGMPv1—Associarsi a un gruppo
• Per associarsi a un gruppo un PC manda un pacchetto IGMP report all’indirizzo 224.1.1.1 con TTL 1
IGMPv1
H3H1 H2
Taschin Antonio 29
Membership Query all’indirizzo 224.0.0.1
MulticastRouter
IGMPv1 — Membership Queries
• Periodicamente il router invia un pacchetto IGMP di Membership Query all’indirizzo 224.0.0.1 per aggiornare la tabella dei gruppi multicast attivi
IGMPv1
H3H1 H2
Taschin Antonio 30
IGMPv1
IGMPv1
#1#1 Router manda periodicamente la Membership Query
Query a224.0.0.1 #1#1
#2#2 Solo un membro per gruppo invia il report
224.1.1.1
Report
#2#2
#3#3 Gli altri membri non inviano nulla
224.1.1.1
SoppressoX
#3#3
224.1.1.1
SoppressoX
#3#3
H1 H2 H3
Taschin Antonio 31
H3
• Il router invia periodicamente i pacchetti IGMP
Query a224.0.0.1
• Il PC lascia il gruppo senza segnalarlo
H3
• Il router continua ad inviare le query periodiche
Query a224.0.0.1
IGMPv1 — Abbandonare un gruppo
IGMPv1
H1 H2
• Il router non riceve nessun report per quel determinato gruppo• Il gruppo va in time out
Taschin Antonio 32
IGMPv2
• RFC 2236
– group-specific query•Il router si assicura che non ci sia più nessun interessato al gruppo prima di cessare il forwarding di quel traffico multicast
– Leave group message•Gli host possono inviare questo messaggio per abbandonare il gruppo
Taschin Antonio 33
IGMPv2
• Querier election mechanism–Viene selezionato il router con l’indirizzo IP minore.
• Query-interval response time–Viene impostato il massimo tempo nel quale un host può rispondere
• Compatibilità con IGMPv1
Pacchetto IGMPv2
Type0x11 Membership Query: ci sono due sottotipi di messaggi:
•General Query: utilizzato per conoscere quali gruppo hanno dei partecipanti in una particolare rete.•Group-Specific Query: utilizzato per conoscere se un particolare gruppo ha dei partecipanti in una particolare rete.
0x12 Membership Report usato per la compatibilità con la versione 1.0x16 Membership Report per la versione 2.0x17 Leave Group: Abbandono del gruppo
Pacchetto IGMPv2
Max Response Time questo campo è significativo solo nei messaggi di tipo Membership Query e specifica il tempo massimo consentito prima di inviare un report di risposta. Il tempo è misurato in unità da 1/10 di secondo. Negli altri messaggi, questo campo, è settato a zero da coloro che trasmettono e ignorato da chi riceve.
Taschin Antonio 36
224.1.1.1
Report
H1 H3
1.1.1.10 1.1.1.11 1.1.1.12
IGMPv2—Unirsi a un gruppo
• Il PC che sta per unirsi a un gruppo invia un messaggio IGMP al gruppo di cui vuol far parte
H3H1 H2
1.1.1.1
router
Taschin Antonio 37
1.1.1.1
Stato IGMP nel router
router>show ip igmp groupIGMP Connected Group Membershipgruppo Address Interface Uptime Expires Last Reporter224.1.1.1 Ethernet0 6d17h 00:02:31 1.1.1.11
IGMPv2—Unirsi a un gruppo
H1 H3
1.1.1.10 1.1.1.11 1.1.1.12
router
H3H1 H2
Taschin Antonio 38
IGMPv2—Querier Election
IGMPv2
1.1.1.11.1.1.2
H1 H2 H3
• Inizialmente tutti i router inviano una Query
Query Query
• Il router con il più basso indirizzo IP viene eletto querier
IGMPQuerier
• Gli altri router diventano “Non-Queries”
IGMPNon-Querier
routerrouter_b
1.1.1.10 1.1.1.11 1.1.1.12
Taschin Antonio 39
router>show ip igmp interface e0Ethernet0 is up, line protocol is up Internet address is 1.1.1.1, subnet mask is 255.255.255.0 IGMP is enabled on interface Current IGMP version is 2 CGMP is disabled on interface IGMP query interval is 60 seconds IGMP querier timeout is 120 seconds IGMP max query response time is 10 seconds Inbound IGMP access group is not set Multicast routing is enabled on interface Multicast TTL threshold is 0 Multicast designated router (DR) is 1.1.1.1 (this system) IGMP querying router is 1.1.1.1 (this system) Multicast groups joined: 224.0.1.40 224.2.127.254
Quale router?
IGMPv2—Querier Election
Taschin Antonio 40
IGMPv2—Mantenere un gruppo
• Il router invia le query periodiche
Query1.1.1.1
IGMPv2
1.1.1.10 1.1.1.11 1.1.1.12
• Solo un unico membro per gruppo risponde con un report
224.1.1.1
Report
• Gli altri membri sopprimono l’invio del report
224.1.1.1
SuppressedX
224.1.1.1
SuppressedX
H1 H2 H3
Taschin Antonio 41
IGMPv2—Abbandonare un gruppo
router>sh ip igmp groupIGMP Connected Group MembershipGroup Address Interface Uptime Expires Last Reporter224.1.1.1 Ethernet0 6d17h 00:02:31 1.1.1.11
1.1.1.1
H1 H2 H3
1.1.1.10 1.1.1.11 1.1.1.12
router
Stato IGMP nel router
Taschin Antonio 42
IGMPv2—Abbandonare un gruppo
• H2 lascia il gruppo ed invia un Leave message
1.1.1.1
H1 H2 H3
1.1.1.10 1.1.1.11 1.1.1.12
H2
Leave Msg224.0.0.2
224.1.1.1
#1#1
• Il router invia il solito Group specific query
Group SpecificQuery to 224.1.1.1
#2#2
• Uno dei membri rimasti risponde
Report a224.1.1.1
224.1.1.1
#3#3
• Il gruppo resta attivo
router
Taschin Antonio 43
IGMPv2—Abbandonare un gruppo
router>sh ip igmp groupIGMP Connected Group MembershipGroup Address Interface Uptime Expires Last Reporter224.1.1.1 Ethernet0 6d17h 00:01:47 1.1.1.12
1.1.1.1
H1 H2 H3
1.1.1.10 1.1.1.11 1.1.1.12
router
Stato IGMP nel router
Taschin Antonio 44
IGMPv2—Abbandonare un gruppo
• L’ultimo membro rimasto invia un Leave message
1.1.1.1
H1 H3
1.1.1.10 1.1.1.11 1.1.1.12
H3
Leave M224.0.0.2
224.1.1.1
#1#1
• Il router invia il solito Group specific query
Group SpecificQuery to 224.1.1.1
#2#2
• Il router non riceve nessun report• Il gruppo va in time out
router
H2
Taschin Antonio 45
IGMPv2—Abbandonare un gruppo
router>sh ip igmp groupIGMP Connected Group MembershipGroup Address Interface Uptime Expires Last Reporter
1.1.1.1
H1 H2 H3
1.1.1.10 1.1.1.11 1.1.1.12
router
Stato IGMP nel router
Taschin Antonio 46
Comandiip multicast-routing
clear ip igmp group
clear ip sdr
ip igmp access-group
ip igmp helper-address
ip igmp join-group
ip igmp query-interval
ip igmp query-max-response-time
ip igmp query-timeout
ip igmp static-group
ip igmp version
ip multicast cache-headers
ip multicast rate-limit
ip multicast ttl-threshold
ip sdr cache-timeout
ip sdr listen
mrinfo
mstat
mtrace
show ip igmp groups
show ip igmp interface
show ip sdr
Taschin Antonio 47
In dettaglio• ip multicast-routing
– Default: Disabled
– Command Mode: Global
– Cisco IOS Release 10.0.
• ip multicast ttl-threshold <ttl>– Default: 0
– Command Mode: Interface
– Cisco IOS Release 11.0.
Taschin Antonio 48
In dettaglio• ip multicast rate-limit {in | out} [video | whiteboard] [group-list
access-list] [source-list access-list] kbps– Default: NC
– Command Mode: Interface
– Cisco IOS Release 11.0.
• ip igmp access-group <access-list-number> <version>– Default: tutti i gruppi sono permessi
– Command Mode: Interface
– Cisco IOS Release 10.0.
Taschin Antonio 49
In dettaglio• ip igmp join-group <group-address>
• ip igmp query-interval <seconds>
• ip igmp query-max-response-time <seconds>
• ip igmp query-timeout <seconds>
• ip igmp static-group <group-address>
Taschin Antonio 50
In dettaglio
• ip sdr cache-timeout <minuti>
• ip sdr listen
• mrinfo
• mstat
• mtrace
Taschin Antonio 51
In dettaglio• clear ip igmp group [group-name | group-address | type number]
• clear ip sdr [group-address | "session-name"]
• show ip igmp groups [group-name | group-address | type number]
• show ip igmp interface [type number]
• show ip sdr [group | "session-name" | detail]
Taschin Antonio 52
Routing Interno
• Principi di routing interno
• Protocolli di routing
• Comandi
Taschin Antonio 53
Inoltro e instradamento
• Inoltro (forwarding)– consiste nel prendere il pacchetto, esaminarne
l’indirizzo di destinazione, consultare la tabella di inoltro e inviare il pacchetto nella direzione stabilita e memorizzata nella tabella
• Instradamento (routing)– è il processo di costruzione della tabella di inoltro
Taschin Antonio 54
Principi di routing interno
• Alberi di distribuzione–Basati sulla sorgente (S,G)–Condivisi (*,G)
• Il multicast routing utilizza–“Reverse path forwarding” per costruire l’albero di distribuzione e arricurarsi che I pacchetti vengano inoltrati nella interfaccia corretta.
• Viene utilizzato un algoritmo unicast–È utilizzato per determinare il miglior percorso unicast dal ricevente alla sorgente.
Taschin Antonio 55
Algoritmi di routing
• Flooding• Spanning Tree• Reverse Path Broadcasting• Truncated Reverse Path Broadcasting• Reverse Path Multicasting
Taschin Antonio 56
Reverse Path Forwarding (RPF)Multicast Forwarding
• Come viene utilizzato RPF per costruire un albero di distribuozione?
–Gli alberi di distribuzione per il multicast vengono costruiti hop-by-hop, determinando il miglior hop successivo seguendo il percorso verso la sorgente con un algoritmo unicast.
– Dopo aver determinato l’hop successivo un Join o un Graft viene emesso nell’interfaccia RPF. Così viene costruito l’albero: dal ricevitore alla sorgente.
• Come funziona?
–Se il pacchetto arriva dall’interfaccia specificata da routing unicast per la sorgente allora il check RPF ha successo.
–Altrimenti fallisce.
Taschin Antonio 57
Unicast Route TableUnicast Route Table
NetworkNetwork Interface Interface
151.10.0.0/16151.10.0.0/16 S1S1
198.14.32.0/24198.14.32.0/24 S0S0
204.1.16.0/24204.1.16.0/24 E0E0
E0
S1
S0
S2
Pacchetto multicast dall’indirizzo151.10.3.21
Il pacchetto è arrivato dall’interfaccia corretta. Ora viene forwardato in tutte le altre interfaccie.
Multicast Forwarding
Taschin Antonio 58Receiver 1
B
E
A D F
Indirizzo Sorgente 1.1.1.1Gruppo 224.2.2.2
Notazione: (S, G) o (1.1.1.1 , 224.2.2.2) e (1.1.2.1 , 224.2.2.2)
S = SorgenteG = Gruppo
C
Receiver 2
Albero di distribuzione basato sulla sorgente
IndirizzoSorgente 1.1.2.1
Taschin Antonio 59Receiver 1
B
E
A D (Shared Root)
F
C
Receiver 2
Indirizzo Sorgente 1.1.2.1
Albero di distribuzione condiviso
Indirizzo Sorgente 1.1.1.1Indirizzo Gruppo 224.2.2.2 Notazione: (*, G) or (* , 224.2.2.2)
* = Tute le sorgenti G = gruppo
Taschin Antonio 60
Protocolli di routing
• Dense-mode–Metodo Flood and prune–Crea uno stato in ogni router per ogni sorgente–Supportano solo SPT o SDT
• Sparse-mode–Metodo del join espicito–Supportano sia I SDT che I Shared-DT
Taschin Antonio 61
Protocolli di routingAlbero basato sulla
sorgenteAlbero Condiviso
• Distance Vector Multicast Routing Protocol
• Multicast Open Shortest Path First
• Protocol Independent Multicast – Dense Mode
• Core Based Tree
• Protocol Independent Multicast - Sparse Mode
Taschin Antonio 62
DVMRP
• DVMRP– Utilizza il RIP e TRPB– Utilizza il metodo Flood and Prune– Molto utilizzato nelle reti accademiche– Costruisce un albero per ogni sorgente– Largamente utilizzato in MBone
Taschin Antonio 63
I problemi del DVMRP
• DVMRP non può scalare alle dimesioni di Internet
• Distance vector-based routing protocol– Update tabella di routing
• Un update ogni 60 secondi
– Dimensioni• Molte informazioni memorizzate nella tabella di routing
– Stabilità • Converge lentamente, count-to-infinity, etc.
• Non supporta gli albero condivisi
Taschin Antonio 64
Come funziona il DVMRP
Taschin Antonio 65
Come funziona il DVMRP
Taschin Antonio 66
MOSPF - RFC 1584Multicast Extension to OSPF
MOSPF - RFC 1584Multicast Extension to OSPF
• Estensione all’OSPF unicast
–OSPF: I router utilizzano del pacchetti aprticolari per capire le condiziojni della rete
–MOSPF: Include le informazioni multicast negli annunci OSPF. Ogni router ha un’immagine dell’intera topologia della rete
• Utilizza l’algoritmo di Dijkstra algorithm per calcolare SPT.
Taschin Antonio 67
MOSPFMOSPF• Non fa flood di traffico multicast
• Protocollo dipendente — lavora solo nelle reti in cui c’è l’OSPF.
• Problemi:– L’algoritmo di Dijkstra viene eseguito per ogni coppia
(S,G).
– Non supporta gli alberi condivisi
• Non è appropriato per:– Grandi reti con un grande numero di sernder e receiver.
Taschin Antonio 68
Il metodo Flood and Prune
Receiver 1
B
E
A D F
Sorgente
C
Receiver 2
No Receivers
RPF Fails (Normal)
1. Inizialmente viene fatto un fllod2. Prune dove non c’e’ il gruppo3. Prune i non SPT4. Reflooding periodico
Utilizzo del SPT
Protocolli Dense Mode
Taschin Antonio 69
PIM Dense Mode
• Protocollo Independente–Supporta la maggior parte dei protocolli unicast: static, RIP, IGRP, EIGRP, IS-IS, BGP, e OSPF
• Utilizza reverse path forwarding
• Adatto per...–Piccole reti densamente popolate dal multicast
Taschin Antonio 70
PIM Dense ModePIM Dense Mode• Vantaggi:
– Facile da configurare—due comandi
– Meccanismo di flood and prune molto semplice
– Facile da capire e facile debug
• Problemi...
– Non adatto per WAN
– Non supporta gli alberi condivisi
Taschin Antonio 71
Sorgente
Receiver 2
DD FF
II
BB
CC
AA
EE
GG
HH
LinkData
Control
Esempio PIM Dense Mode
Receiver 1
Taschin Antonio 72
Inizialmente viene effetuato un flooddei dati
Sorgente
Esempio PIM Dense Mode
IIEE
Receiver 1
DD FF
BBAA
GG
HH
Receiver 2
Taschin Antonio 73
Prune dei non Non-RPF
Sorgente
Prune
Receiver 1
Esempio PIM Dense Mode
DD FF
II
BB
CC
AA
EE
GG
HH
Receiver 2
Taschin Antonio 74
C e D devono decidire chi forwarderà il flusso
Sorgente
Asserts
Receiver 1
DD FF
II
BB
CC
AA
EE
GG
HH
Esempio PIM Dense Mode
Receiver 2
Taschin Antonio 75
Prune di IPrune di E ignorato
Sorgente
Prune
Receiver 1
Join Override
Prune
DD FF
II
BB
CC
AA
EE
GG
HH
Esempio PIM Dense Mode
Receiver 2
Taschin Antonio 76
Source
Graft
Receiver 3
Un nuovo Receiver, I invia un Graft
DD FF
II
BB
CC
AA
EE
GG
HH
Esempio PIM Dense Mode
Receiver 1 Receiver 2
Taschin Antonio 77
Source
Receiver 3Receiver 1
DD FF
II
BB
CC
AA
EE
GG
HH
Esempio PIM Dense Mode
Receiver 2
Taschin Antonio 78
PIM Sparse Mode (RFC 2362)
PIM Sparse Mode (RFC 2362)
• Supporta sia gli alberi condivisi che basati sulla sorgente• Utilizza un Rendezvous Point (RP)
– Le sorgenti si registrano nell’RP e inviano il loro traffico attravero l’RP
– Richiesta esplicita di ottenere il flusso multicast
– Indipendente dai protocolli unicast
– Ha posto le basi per il routing esterno (inter-domain)
• Adatto per…– Per tutti I tipi di rete
– Ottimale per gruppi che hanno receiver su WAN differenti
Taschin Antonio 79
Meccanismo di Join Esplicito
Receiver 1
B
E
A
Rendezvous Point(Shared Root)
F
Sorgente 1
C
Non Viewer
NonViewersD
1. Nessuno riceve il traffico di un gruppo senza un esplicito join2. Utilizzo del Rendezvous 3. Nessun flood periodico
Utilizza gli alberi condivisi per default. Ma può switchare se necessario ai SPT.
Protocolli Sparse Mode
Taschin Antonio 80
B
E
A D
C
RP
LinkData
Control
Esempio PIM Sparse Mode
Taschin Antonio 81
Receiver 1
BA D
Receiver 1 manda un Joins per il gruppo GC crea lo stato (*, G), E manda il join al RP
RP
Join
EC
Esempio PIM Sparse Mode
Taschin Antonio 82
Receiver 1
BA RP D
RP crea lo stato (*, G)
EC
Esempio PIM Sparse Mode
Taschin Antonio 83
Receiver 1
BA RP D
Sorgente 1 Sorgente 1 invia il flusso eA lo registra via unicast su RP
Register
EC
Esempio PIM Sparse Mode
Taschin Antonio 84
Receiver 1
BA RP D
Rp manda un join a B per ottenere il flusso nativo
Join Join
Sorgente 1
EC
Esempio PIM Sparse Mode
Taschin Antonio 85
Receiver 1
BA RP D
Register-Stop
Source 1
EC
Esempio PIM Sparse Mode
Taschin Antonio 86
Receiver 1
BA RP D
C invia un Join per il gruppo (S, G) per unirsi al Shortest Path Tree (SPT)
(S, G) Join
Source 1
EC
Esempio PIM Sparse Mode
Taschin Antonio 87
Receiver 1
BA RP D
C invia un msg di Prune fino al RP RP invia un msg di prune fino alla sorgente
(S, G) RP Prune
(S, G) Prune
Source 1
EC
Esempio PIM Sparse Mode
Taschin Antonio 88
Receiver 1
BA RP D
Nuovo receiver
Receiver 2
(*, G) Join
Source 1
EC
Esempio PIM Sparse Mode
Taschin Antonio 89
Receiver 1
BA RP D
C inserisce E nella OIF
Receiver 2
Source 1
EC
Esempio PIM Sparse Mode
Taschin Antonio 90
Receiver 1
BA RP D
Source 2 inizia a spedireD invia il messagio di Register RP inoltra I dati del msg
Receiver 2
Source 2
Register
Source 1
EC
Esempio PIM Sparse Mode
Taschin Antonio 91
Esempio PIM Sparse Mode
Receiver 1
BA RP D
RP invia un Join a D
Receiver 2
Register
Join Source 2
Source 1
EC
Taschin Antonio 92
Esempio PIM Sparse Mode
Receiver 1
BA RP D
RP invia Register-Stop
Receiver 2
Register-Stop
Source 2
Source 1
EC
Taschin Antonio 93
Esempio PIM Sparse Mode
Receiver 1
BA RP D
Sia l’albero condiviso che l’albero basato sulla sorgente sono in uso
Receiver 2
Source 2
Source 1
EC
Taschin Antonio 94
Comandiclear ip dvmrp route
clear ip mroute
clear ip pim auto-rp
ip dvmrp accept-filter
ip dvmrp auto-summary
ip dvmrp default-information
ip dvmrp metric
ip dvmrp metric-offset
ip dvmrp output-report-delay
ip dvmrp reject-non-pruners
ip dvmrp routehog-notification
ip dvmrp route-limit
ip dvmrp summary-address
ip dvmrp unicast-routing
ip mroute
ip mroute-cache
ip pim
ip pim accept-rp
ip pim message-interval
ip pim minimum-vc-rate
ip pim multipoint-signalling
ip pim nbma-mode
ip pim neighbor-filter
ip pim query-interval
ip pim rp-address
ip pim rp-announce-filter
ip pim send-rp-announce
ip pim send-rp-discovery
ip pim spt-threshold
ip pim vc-count
Taschin Antonio 95
Comandi
• show ip dvmrp route• show ip mcache• show ip mpacket• show ip mroute• show ip pim interface• show ip pim neighbor• show ip pim rp• show ip pim vc• show ip rpf• show ip sdr
Taschin Antonio 96
In dettaglio
• ip pim {dense-mode | sparse-mode | sparse-dense-mode}
• ip pim accept-rp {address | auto-rp} [group-access-list-number]
• ip pim message-interval seconds
Taschin Antonio 97
In dettaglio
• ip pim query-interval seconds • default 30
• ip pim rp-address ip-address [group-access-list-number] [override]
• ip dvmrp unicast-routing
Taschin Antonio 98
In dettaglio
• ip mroute source mask [protocol as-number] {rpf-address | type number} [distance]
• Es: ip mroute 0.0.0.0 255.255.255.255 tunnel0
• ip mroute 171.69.0.0 255.255.0.0 171.68.10.13
Taschin Antonio 99
Admin-Scoping
– Esempio di una semplice scoped zone: • 239.255.0.0/16 = Site-Local Scope Zone
• 239.192.0.0/10 = Org.-Local Scope Zone
• 224.0.1.0 - 238.255.255.255 = Global scope (Internet) zone
Taschin Antonio 100
Admin-Scoping
Economia Ingegneria
Centro Stella
T1
S1
S0
RP Locale RP Locale
Internet
T1
S0
S0
RP Locale
Border B Border C
Border A
AS Border
S0
Taschin Antonio 101Economia Ingegneria
Centro Stella
RP Locale RP Locale
InternetRP Locale
Border B Border C
Border A
S0
Admin-Scoping
Router di frontiera periferici
Router di frontiera periferici
Router di frontiera
T1
S1
S0
T1
S0
S0
Taschin Antonio 102
T1
S1
S0
T1
S0
S0
Admin-Scoping
Economia Ingegneria
Centro Stella
RP Locale RP Locale
InternetRP Locale
Border B Border C
Border A
AS Border
S0Interface Serial0. . . ip multicast ttl-threshold 16 ip multicast boundary 10
access-list 10 deny 239.255.0.0 0.0.255.255access-list 10 permit any
Interface Serial0. . . ip multicast ttl-threshold 16 ip multicast boundary 10
access-list 10 deny 239.255.0.0 0.0.255.255access-list 10 permit any
Taschin Antonio 103Economia Ingegneria
Centro Stella
RP Locale RP Locale
To InternetRP Locale
Border B Border C
Border A
AS Border
S0
Admin-Scoping
T1
S1
S0
T1
S0
S0Interface Serial0. . . ip multicast ttl-threshold 16 ip multicast boundary 10
Interface Serial1. . . ip multicast ttl-threshold 16 ip multicast boundary 10
access-list 10 deny 239.255.0.0 0.0.255.255access-list 10 permit any
Taschin Antonio 104
T1
S1
S0
T1
S0
S0
Admin-Scoping
Economia Ingegneria
Centro Stella
RP Locale RP Locale
To InternetRP Locale
Border B Border C
Border A
AS Border
S0interface Loopback0 ip address 192.168.10.2 255.255.255.255
ip pim send-rp-discovery scope 15ip pim send-rp-announce Loopback0 scope 15 gruppo 20
access-list 20 permit 239.255.0.0 0.0.255.255
Taschin Antonio 105
T1
S1
S0
T1
S0
S0
Economia Ingegneria
Centro Stella
RP Locale RP Locale
To InternetRP Locale
Border B Border C
Border A
AS Border
S0
Admin-Scoping
interface Loopback0 ip address 192.168.10.1 255.255.255.255
ip pim send-rp-discovery scope 15ip pim send-rp-announce Loopback0 scope 15 gruppo 20
access-list 20 permit 239.255.0.0 0.0.255.255
Taschin Antonio 106
T1
S1
S0
T1
S0
S0
Economia Ingegneria
Centro Stella
RP Locale RP Locale
InternetRP Locale
Border B Border C
Border A
AS Border
S0
Admin-Scoping
interface Loopback0 ip address 192.168.10.3 255.255.255.255
ip pim send-rp-discovery scope 15ip pim send-rp-announce Loopback0 scope 15 gruppo 20
access-list 20 permit 239.255.0.0 0.0.255.255
Taschin Antonio 107
T1
S1
S0
T1
S0
S0
Economia Ingegneria
Centro Stella
RP Locale RP Locale
InternetRP Locale
Border B Border C
Border A
AS Border
S0
Admin-Scoping
Interface Serial0. . . ip multicast ttl-threshold 128 ip multicast boundary 10
access-list 10 deny 239.0.0.0 0.0.0.255access-list 10 permit any
Taschin Antonio 108
MSDP Concepts
• Works with PIM-SM only– RP’s knows about all sources in a domain
• Sources cause a “PIM Register” to the RP• Can tell RP’s in other domains of its sources
–Via MSDP SA (Source Active) messages
– RP’s know about receivers in a domain• Receivers cause a “(*, G) Join” to the RP• RP can join the source tree in the peer domain
–Via normal PIM (S, G) joins–Only necessary if there are receivers for the gruppo
Taschin Antonio 109
MSDP Design Points
• MSDP peers talk via TCP connections– UDP encapsulation option
• Source Active (SA) messages– Peer-RPF forwarded to prevent loops
• RPF check on AS-PATH back to the peer RP• If successful, flood SA message to other peers• Stub sites accept all SA messages
– Since they have only one exit (e.g., default peer)
– MSDP speaker may cache SA messages• Reduces join latency
Taschin Antonio 110
SA Message192.1.1.1, 224.2.2.2
Domain C
Domain B
Domain D
Domain E
s
192.1.1.1, 224.2.2.2
SA
SA
SA SA
SA
SA
Source ActiveMessages
SA
Domain A
SA Message192.1.1.1, 224.2.2.2
r
Join (*, 224.2.2.2)
MSDP Peers
RP
RP
RP
RP
RP
MSDP Example
Taschin Antonio 111
Domain C
Domain B
Domain D
Domain E
sDomain A
RP
RP
RP
RP
r
MSDP Peers
Join (S, 224.2.2.2)
MSDP Example
RP
Taschin Antonio 112
Domain C
Domain B
Domain D
Domain E
sDomain A
RP
RP
RP
RP
r
MSDP Peers
Multicast Traffic
MSDP Example
RP
Taschin Antonio 113
Implementazione Cisco MSDP
– draft-ietf-msdp-spec-02.txt
• Multiple peer support– Peer with BGP, MBGP, or static peers
• SA caching (off by default)
• Sending and receiving SA-requests
• Sending and receiving SA-responses
Taschin Antonio 114
Cisco MSDP Implementation
• SA input and output filtering• SA-request input filtering• Default peer support
– So a tail site can MSDP with a backbone provider without requiring the two to BGP peer
• Triggered join support when creating an (S,G) learned by MSDP
• Mesh gruppos– Reduces RPF-flooding of SA messages between fully meshed
MSDP peers
Taschin Antonio 115
MSDP Configuration
• Configure peersip msdp peer <ip-address> [connect-source <i/f>]
• Configure default peerip msdp default-peer <ip-address> [prefix-list acl]
• SA cachingip msdp cache-sa-state [list <acl>]
• Mesh grupposip msdp mesh-gruppo <name> <ip-address>
Taschin Antonio 116
MSDP Configuration (Cont.)
• Filtering– Can filter SA in/out, gruppos, with
acls or route-maps
• TTL Scopingip msdp ttl-threshold <ip-address> <ttl>
• For more configuration commands see:– ftp://ftpeng.cisco.com/ipmulticast/
msdp-commands
Taschin Antonio 117
Architettura per l’allocazione degli indirizzi