IP Multicast: architettura e
protocolli
- Taschin Antonio -
Sommario
•
•
•
•
Introduzione al multicast
Routing interno
Altri protocolli multicast
Routing esterno
Taschin Antonio
2
Introduzione al Multicast
•Cos’è il multicast
•Storia
•MBone
•Il Multicast nell’ISO/OSI
•Comandi
Cos’è il multicast
•Tante connessioni separate
quante sono le richieste
•Utilizzare il broadcast
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.
Taschin Antonio
4
PRO
Larghezza di banda
CONTRO
Inaffidabilità della
consegna
Carico del server
Duplicazione di pacchetti
Carico della rete
Congestioni di rete
Taschin Antonio
5
Scenari di applicazione
• 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
Taschin Antonio
6
Storia
•
•
•
•
Stanford University primi anni 80
Steve Deering e Vsystem
Agosto 1989 RFC1112
Dicembre 1991 “Multicast routing in a
Datagram Network”
Taschin Antonio
7
MBone
rete virtuale sperimentale di router multicast,
costruita sopra la struttura standard di Internet
• mrouted protocollo di routing DVMRP
•Tunnel
Taschin Antonio
8
Storia di MBone
•
•
•
•
Primi anni 90
Darpa Testbed Network (DARTNet)
MIT,SRI, ISI, BBN, varie università
1992 IETF meeting a San Diego
Taschin Antonio
9
Gli indirizzi multicast
Insieme di zero o più host identificato da un singolo
indirizzo IP di classe D
224.0.0.0 – 239.255.255.255
Taschin Antonio
10
…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
Taschin Antonio
– Organization-local scope: 239.192.0.0/16
11
Le applicazioni in MBone
Sessione
Trasmissione di dati in MBone
• Session Announcement
Protocol
• Session Description
Protocol
• Session Initiation Protocol
Taschin Antonio
12
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
13
Cancellazione di una sessione
• Explicit Timeout
• Implicit Timeout
• Explicit Deletion
Taschin Antonio
14
Tool di MBone
•
•
•
•
SDR (Session Directory)
VIC (Video Conferencing Tool)
RAT e VAT (Robust e Visual Audio Tool)
WB
Taschin Antonio
15
Livello 2: Multicast Ethernet
Indirizzo Ethernet 48bit 6 campi da 2 cifre esadecimali
L’indirizzo multicast viene riconosciuto dalla prima cifra
esadecimale dell’indirizzo.
•Pari unicast
•Dispari multicast
• Esempio:
• L’indirizzo AB-CD-EF-04-26-45
– la cifra AB (171 in notazione decimale) è dispari.
Taschin Antonio
16
…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
17
Multicast su Ethernet (livello 2)
RFC1112 01-00-5E-00-00-00
32 Bits
23 Bits
239.255.0.1
01-00-5e-7f-00-01
24 Bits
24 Bits
48 Bits
Taschin Antonio
18
Indirizzo Multicast Ethernet
• HEX
• BIN
xxxx
•
•
01
00
5E
- 23 bit 0000 0001 0000 0000 0101 1110 0xxx xxxx xxxx xxxx xxxx
|
Multicast Bit
|
0 = Internet Multicast
Taschin Antonio
19
Sovrapposizione di indirizzi
32 Bits
1110
5 Bits
Lost
28 Bits
239.255.0.1
01-00-5e-7f-00-01
25 Bits
23 Bits
48 Bits
Taschin Antonio
20
Sovrapposizione di indirizzi
32 – Indirizzi IP Multicast
224.1.1.1
224.129.1.1
225.1.1.1
225.129.1.1
.
.
.
238.1.1.1
238.129.1.1
239.1.1.1
239.129.1.1
1 - Multicast MAC Address
0x0100.5E01.0101
Taschin Antonio
21
Sovrapposizione di indirizzi
32 – Indirizzi IP Multicast
224.0.0.x
224.129.0.x
225.0.0.x
225.129.0.x
.
.
.
238.0.0.x
238.129.0.x
239.0.0.x
239.129.0.x
1 - Multicast MAC Address
0x0100.5E00.00xx
Taschin Antonio
22
Perché
• Primi anni 90 Steve Deering
• IEEE 16 consecutivi OUI
(Organizational Unique Identifier)
Taschin Antonio
23
Il concetto di Gruppo
1. Insieme di zero o più host identificato da un
indirizzo di classe D
2. Associarsi o Abbandonare
3. Non è statico ma dinamico
4. Non è necessario essere membri di un
gruppo per inviare dati a quel gruppo
5. Per ricevere i dati però bisogna essere
membri del gruppo
Taschin Antonio
24
IGMP
Internet Group Management Protocol
• IGMPv1 RFC1112 obsoleto
• IGMPv2 RFC2236 in uso
• IGMPv3 bozza
Taschin Antonio
25
Pachetto IGMPv1
•Version
•in questo campo viene specificata la versione dell’IGMP
•Type
esistono due tipi di messaggi IGMP:
•1 = Host Membership Query.
•2 = Host Membership Report.
•Unused
• 0 quando viene spedito
•Checksum
•Group Address
Taschin Antonio
26
IGMPv1
• Membership Query
224.0.0.1 ALL-SYSTEMS.MCAST.NET
• Membership Report
• Leave Group
224.0.0.2 ALL-ROUTERS.MCAST.NET
Taschin Antonio
27
IGMPv1—Associarsi a un gruppo
H2
H1
224.1.1.1
H3
Report
IGMPv1
• Per associarsi a un gruppo un PC manda un pacchetto IGMP
report all’indirizzo 224.1.1.1 con TTL 1
Taschin Antonio
28
IGMPv1 — Membership Queries
H2
H1
H3
Membership Query
all’indirizzo 224.0.0.1
IGMPv1
Multicast
Router
• Periodicamente il router invia un pacchetto IGMP di Membership
Query all’indirizzo 224.0.0.1 per aggiornare la tabella dei gruppi
multicast attivi
Taschin Antonio
29
IGMPv1
224.1.1.1
H1
X
Soppresso
#3
224.1.1.1
H2
224.1.1.1
H3
X
Soppresso
Report
#3
#2
Query a
224.0.0.1
#1
IGMPv1
#2
Router manda periodicamente la Membership Query
Solo un membro per gruppo invia il report
#3
Gli altri membri non inviano nulla
#1
Taschin Antonio
30
IGMPv1 — Abbandonare un gruppo
H3
H2
H1
Query a
224.0.0.1
IGMPv1
• Il router invia periodicamente i pacchetti IGMP
• Il PC lascia il gruppo senza segnalarlo
• Il router continua ad inviare le query periodiche
• Il router non riceve nessun report per quel determinato gruppo
• Il gruppo va in time out
Taschin Antonio
31
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
32
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
Taschin Antonio
33
Pacchetto IGMPv2
Type
0x11 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.
IGMPv2—Unirsi a un gruppo
1.1.1.10
H1
H1
224.1.1.1
1.1.1.11
1.1.1.12
H2
H3
H3
Report
1.1.1.1
router
• Il PC che sta per unirsi a un gruppo invia un
messaggio IGMP al gruppo di cui vuol far parte
Taschin Antonio
36
IGMPv2—Unirsi a un gruppo
1.1.1.10
1.1.1.11
1.1.1.12
H1
H1
H2
H3
H3
1.1.1.1
router
Stato IGMP nel router
router>show ip igmp group
IGMP Connected Group Membership
gruppo Address
Interface
Uptime
224.1.1.1
Ethernet0
6d17h
Expires
00:02:31
Taschin Antonio
Last Reporter
1.1.1.11
37
IGMPv2—Querier Election
1.1.1.10
1.1.1.11
1.1.1.12
H1
H2
H3
Query
1.1.1.2
IGMP
Non-Querier
1.1.1.1
IGMP
Querier
IGMPv2
router_b
Query
router
• Inizialmente tutti i router inviano una Query
• Il router con il più basso indirizzo IP viene eletto querier
• Gli altri router diventano “Non-Queries”
Taschin Antonio
38
IGMPv2—Querier Election
Quale router?
router>show ip igmp interface e0
Ethernet0 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
Taschin Antonio
39
IGMPv2—Mantenere un gruppo
1.1.1.10
224.1.1.1
H1
1.1.1.11
224.1.1.1
1.1.1.12
224.1.1.1
H2
X
H3
X
Suppressed
Report
Suppressed
1.1.1.1
Query
IGMPv2
• Il router invia le query periodiche
• Solo un unico membro per gruppo risponde
con un report
• Gli altri membri sopprimono l’invio del report
Taschin Antonio
40
IGMPv2—Abbandonare un
gruppo
1.1.1.10
1.1.1.11
1.1.1.12
H1
H2
H3
1.1.1.1
router
Stato IGMP nel router
router>sh ip igmp group
IGMP Connected Group Membership
Group Address
Interface
Uptime
224.1.1.1
Ethernet0
6d17h
Expires
00:02:31
Taschin Antonio
Last Reporter
1.1.1.11
41
IGMPv2—Abbandonare un
gruppo
1.1.1.10
H1
1.1.1.11
224.1.1.1
Leave Msg
#1 224.0.0.2
1.1.1.12
224.1.1.1
H2
H3
Report a
#3 224.1.1.1
1.1.1.1
router
Group Specific
Query to 224.1.1.1
#2
• H2 lascia il gruppo ed invia un Leave
message
• Il router invia il solito Group specific query
• Uno dei membri rimasti risponde
• Il gruppo resta attivo
Taschin Antonio
42
IGMPv2—Abbandonare un
gruppo
1.1.1.10
1.1.1.11
1.1.1.12
H1
H2
H3
1.1.1.1
router
Stato IGMP nel router
router>sh ip igmp group
IGMP Connected Group Membership
Group Address
Interface
Uptime
224.1.1.1
Ethernet0
6d17h
Expires
00:01:47
Taschin Antonio
Last Reporter
1.1.1.12
43
IGMPv2—Abbandonare un
gruppo
1.1.1.10
H1
1.1.1.11
H2
1.1.1.12
224.1.1.1
H3
Leave M
#1 224.0.0.2
1.1.1.1
router
•
•
•
•
Group Specific
Query to 224.1.1.1
#2
L’ultimo membro rimasto invia un Leave message
Il router invia il solito Group specific query
Il router non riceve nessun report
Il gruppo va in time out
Taschin Antonio
44
IGMPv2—Abbandonare un
gruppo
1.1.1.10
1.1.1.11
1.1.1.12
H1
H2
H3
1.1.1.1
router
Stato IGMP nel router
router>sh ip igmp group
IGMP Connected Group Membership
Group Address
Interface
Uptime
Expires
Taschin Antonio
Last Reporter
45
Comandi
ip 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
46
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
47
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
48
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
49
In dettaglio
• ip sdr cache-timeout <minuti>
• ip sdr listen
• mrinfo
• mstat
• mtrace
Taschin Antonio
50
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
51
Routing Interno
• Principi di routing interno
• Protocolli di routing
• Comandi
Taschin Antonio
52
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
53
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
54
Algoritmi di routing
•
•
•
•
•
Flooding
Spanning Tree
Reverse Path Broadcasting
Truncated Reverse Path Broadcasting
Reverse Path Multicasting
Taschin Antonio
55
Multicast Forwarding
Reverse Path Forwarding (RPF)
• 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
56
Multicast Forwarding
Pacchetto multicast dall’indirizzo
151.10.3.21
S0
S1
S2
E0
Unicast Route Table
Network
Interface
151.10.0.0/16
S1
198.14.32.0/24 S0
204.1.16.0/24
E0
Il pacchetto è arrivato dall’interfaccia
corretta. Ora viene forwardato in tutte
le altre interfaccie.
Taschin Antonio
57
Albero di distribuzione basato
sulla sorgente
Notazione: (S, G) o (1.1.1.1 , 224.2.2.2) e
(1.1.2.1 , 224.2.2.2)
S = Sorgente
G = Gruppo
Indirizzo Sorgente 1.1.1.1
Gruppo 224.2.2.2
A
B
C
Receiver 1
F
D
Indirizzo
Sorgente
1.1.2.1
E
Receiver 2
Taschin Antonio
58
Albero di distribuzione condiviso
Indirizzo Sorgente 1.1.1.1
Indirizzo Gruppo 224.2.2.2
Notazione: (*, G) or (* , 224.2.2.2)
* = Tute le sorgenti
G = gruppo
A
B
D
(Shared Root)
C
Receiver 1
F
Indirizzo
Sorgente
1.1.2.1
E
Receiver 2
Taschin Antonio
59
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
60
Protocolli di routing
Albero basato sulla
sorgente
Albero Condiviso
• Distance Vector
• Core Based Tree
Multicast Routing Protocol
• Multicast Open Shortest
Path First
• Protocol Independent
Multicast - Sparse Mode
• Protocol Independent
Multicast – Dense Mode
Taschin Antonio
61
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
62
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
63
Come funziona il DVMRP
Taschin Antonio
64
Come funziona il DVMRP
Taschin Antonio
65
MOSPF - RFC 1584
Multicast 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
66
MOSPF
• 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
67
Protocolli Dense Mode
Il metodo Flood and Prune
1. Inizialmente viene fatto un fllod
2. Prune dove non c’e’ il gruppo
3. Prune i non SPT
4. Reflooding periodico
Sorgente
No Receivers
A
B
F
D
RPF Fails (Normal)
Utilizzo del SPT
C
Receiver 1
Taschin Antonio
E
Receiver 2
68
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
69
PIM 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
70
Esempio PIM Dense Mode
Sorgente
Link
Data
Control
A
B
G
C
D
F
H
E
I
Receiver 2
Receiver 1
Taschin Antonio
71
Esempio PIM Dense Mode
Sorgente
Inizialmente viene effetuato un flood
dei dati
A
B
G
D
F
H
E
I
Receiver 2
Receiver 1
Taschin Antonio
72
Esempio PIM Dense Mode
Sorgente
Prune dei non Non-RPF
A
B
G
Prune
C
D
F
H
E
I
Receiver 2
Receiver 1
Taschin Antonio
73
Esempio PIM Dense Mode
Sorgente
C e D devono decidire chi
forwarderà il flusso
A
B
G
C
D
F
Asserts
H
E
I
Receiver 2
Receiver 1
Taschin Antonio
74
Esempio PIM Dense Mode
Sorgente
A
Prune di I
Prune di E ignorato
B
Prune
G
C
D
F
H
Prune
E
Join Override
I
Receiver 2
Receiver 1
Taschin Antonio
75
Esempio PIM Dense Mode
Source
Un nuovo Receiver,
I invia un Graft
A
B
G
C
D
F
H
Graft
E
I
Receiver 2
Receiver 1
Receiver 3
Taschin Antonio
76
Esempio PIM Dense Mode
Source
A
B
G
C
D
F
H
E
I
Receiver 1
Receiver 2
Receiver 3
Taschin Antonio
77
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
78
Protocolli Sparse Mode
Meccanismo di Join Esplicito
1. Nessuno riceve il traffico di un gruppo senza un esplicito join
Sorgente 1 2. Utilizzo del Rendezvous
3. Nessun flood periodico
Rendezvous Point
(Shared Root)
A
B
C
Receiver 1
D
F
E
Taschin
NonAntonio
Viewer
Non
Viewers
Utilizza gli alberi condivisi per
default. Ma può switchare
se necessario ai SPT.
79
Esempio PIM Sparse Mode
Link
Data
Control
A
B
D
RP
C
E
Taschin Antonio
80
Esempio PIM Sparse Mode
Receiver 1 manda un Joins
per il gruppo G
C crea lo stato (*, G),
E manda il join al RP
A
B
D
RP
Join
C
E
Receiver 1
Taschin Antonio
81
Esempio PIM Sparse Mode
RP crea lo stato (*, G)
A
B
D
RP
C
E
Receiver 1
Taschin Antonio
82
Esempio PIM Sparse Mode
Sorgente 1 invia il flusso e
A lo registra via unicast su
RP
Sorgente 1
Register
A
B
D
RP
C
E
Receiver 1
Taschin Antonio
83
Esempio PIM Sparse Mode
Rp manda un join a B per ottenere il
flusso nativo
Sorgente 1
Join
A
Join
B
D
RP
C
E
Receiver 1
Taschin Antonio
84
Esempio PIM Sparse Mode
Source 1
Register-Stop
A
B
D
RP
C
E
Receiver 1
Taschin Antonio
85
Esempio PIM Sparse Mode
C invia un Join per il gruppo
(S, G) per unirsi al Shortest
Path Tree (SPT)
Source 1
A
B
D
RP
(S, G) Join
C
E
Receiver 1
Taschin Antonio
86
Esempio PIM Sparse Mode
C invia un msg di Prune fino al RP
RP invia un msg di prune fino alla
sorgente
Source 1
(S, G) Prune
A
B
D
RP
(S, G) RP Prune
C
E
Receiver 1
Taschin Antonio
87
Esempio PIM Sparse Mode
Nuovo receiver
Source 1
A
B
D
RP
(*, G) Join
C
E
Receiver 1
Taschin Antonio
Receiver 2
88
Esempio PIM Sparse Mode
C inserisce E nella OIF
Source 1
A
B
D
RP
C
E
Receiver 1
Taschin Antonio
Receiver 2
89
Esempio PIM Sparse Mode
Source 2 inizia a spedire
D invia il messagio di Register
RP inoltra I dati del msg
Source 1
Register
A
B
D
RP
C
Source 2
E
Receiver 1
Taschin Antonio
Receiver 2
90
Esempio PIM Sparse Mode
Source 1
RP invia un Join a D
Register
A
B
Join
RP
C
D
Source 2
E
Receiver 1
Taschin Antonio
Receiver 2
91
Esempio PIM Sparse Mode
Source 1
RP invia Register-Stop
Register-Stop
A
B
D
RP
C
Source 2
E
Receiver 1
Taschin Antonio
Receiver 2
92
Esempio PIM Sparse Mode
Source 1
A
Sia l’albero condiviso che l’albero
basato sulla sorgente sono in uso
B
D
RP
C
Source 2
E
Receiver 1
Taschin Antonio
Receiver 2
93
Comandi
clear ip dvmrp route
ip pim
clear ip mroute
ip pim accept-rp
clear ip pim auto-rp
ip pim message-interval
ip dvmrp accept-filter
ip pim minimum-vc-rate
ip dvmrp auto-summary
ip pim multipoint-signalling
ip dvmrp default-information
ip pim nbma-mode
ip dvmrp metric
ip pim neighbor-filter
ip dvmrp metric-offset
ip pim query-interval
ip dvmrp output-report-delay
ip pim rp-address
ip dvmrp reject-non-pruners
ip pim rp-announce-filter
ip dvmrp routehog-notification
ip pim send-rp-announce
ip dvmrp route-limit
ip pim send-rp-discovery 94
Taschin Antonio
ip dvmrp summary-address
ip pim spt-threshold
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
95
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
96
In dettaglio
• ip pim query-interval seconds
•
default 30
• ip pim rp-address ip-address [groupaccess-list-number] [override]
• ip dvmrp unicast-routing
Taschin Antonio
97
In dettaglio
• ip mroute source mask [protocol asnumber] {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
98
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
99
Admin-Scoping
Centro Stella
AS Border
Internet
RP Locale
Border A
Border B
Border C
RP Locale
Economia
RP Locale
Taschin Antonio
Ingegneria
100
Admin-Scoping
Centro Stella
Internet
RP Locale
Border A
Router di
frontiera
periferici
Router di
frontiera
periferici
Border B
Border C
RP Locale
Economia
Router di frontiera
RP Locale
Taschin Antonio
Ingegneria
101
Admin-Scoping
Centro Stella
AS Border
Interface Serial0
. . .
ip multicast ttl-threshold 16
ip multicast boundary 10
Internet
RP Locale
access-list 10 deny 239.255.0.0 0.0.255.255 Border A
access-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.255
access-list 10 permit any
Border B
Border C
RP Locale
Economia
RP Locale
Taschin Antonio
Ingegneria
102
Admin-Scoping
Centro Stella
AS Border
To Internet
RP Locale
Border A
Interface Serial0
. . .
ip multicast ttl-threshold 16
ip multicast boundary 10
Border B
Border C
Interface Serial1
. . .
ip multicast ttl-threshold 16
ip multicast boundaryRP
10Locale
RP Locale
access-list 10 deny 239.255.0.0 0.0.255.255
access-list 10 permit any
Economia
Taschin Antonio
Ingegneria
103
Admin-Scoping
Centro Stella
AS Border
To Internet
interface Loopback0
ip address 192.168.10.2 255.255.255.255RP Locale
ip pim send-rp-discovery scope 15
ip pim send-rp-announce Loopback0 scope 15 gruppo 20
access-list 20 permit 239.255.0.0 0.0.255.255Border A
Border B
Border C
RP Locale
Economia
RP Locale
Taschin Antonio
Ingegneria
104
Admin-Scoping
Centro Stella
AS Border
To Internet
RP Locale
interface Loopback0
ip address 192.168.10.1 255.255.255.255
Border
ip pimA send-rp-discovery scope 15
ip pim send-rp-announce Loopback0 scope 15 gruppo 20
access-list 20 permit 239.255.0.0 0.0.255.255
Border B
Border C
RP Locale
Economia
RP Locale
Taschin Antonio
Ingegneria
105
Admin-Scoping
Centro Stella
AS Border
Internet
RP Locale
Border A
Border B
Border C
interface Loopback0
ip address 192.168.10.3 255.255.255.255
ip pim send-rp-discovery scope 15
ip pim send-rp-announce Loopback0 scope 15 gruppo 20
access-list
RP Locale 20 permit 239.255.0.0 0.0.255.255
RP Locale
Economia
Taschin Antonio
Ingegneria
106
Admin-Scoping
Centro Stella
AS Border
Internet
RP Locale
Border A
Interface Serial0
. . .
ip multicast ttl-threshold 128
ip multicast boundary 10
access-list 10 deny 239.0.0.0 0.0.0.255
access-listBorder
10 permit
any
B
Border
C
RP Locale
Economia
RP Locale
Taschin Antonio
Ingegneria
107
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
108
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
109
MSDP Example
Domain E
MSDP Peers
Source Active
Messages
RP
SA
r
SA
Domain C
Join (*, 224.2.2.2)
RP
SA
Domain B SA
SA
RP
SA
SA
SA Message
192.1.1.1, 224.2.2.2
s
RP
SA Message
192.1.1.1, 224.2.2.2
RP
Domain D
Domain A
192.1.1.1, 224.2.2.2
Taschin Antonio
110
MSDP Example
Domain E
MSDP Peers
RP
r
Domain C
RP
Domain B
RP
RP
Domain D
s
RP
Domain A
Taschin Antonio
111
MSDP Example
Domain E
MSDP Peers
RP
Multicast Traffic
r
Domain C
RP
Domain B
RP
RP
Domain D
s
RP
Domain A
Taschin Antonio
112
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
113
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
114
MSDP Configuration
• Configure peers
ip msdp peer <ip-address> [connect-source <i/f>]
• Configure default peer
ip msdp default-peer <ip-address> [prefix-list acl]
• SA caching
ip msdp cache-sa-state [list <acl>]
• Mesh gruppos
ip msdp mesh-gruppo <name> <ip-address>
Taschin Antonio
115
MSDP Configuration (Cont.)
• Filtering
– Can filter SA in/out, gruppos, with
acls or route-maps
• TTL Scoping
ip msdp ttl-threshold <ip-address> <ttl>
• For more configuration commands see:
– ftp://ftpeng.cisco.com/ipmulticast/
msdp-commands
Taschin Antonio
116
Architettura per l’allocazione
degli indirizzi
Taschin Antonio
117
FINE
[email protected]
[email protected]
Taschin Antonio
118