I gestori della rete chiedono spesso se è possibile vincolare il traffico multicast su uno switch quando l'origine multicast e i ricevitori multicast si trovano tutti sulla stessa VLAN, e quali sono i requisiti per raggiungere questo obiettivo, in particolare se è richiesto un router.
La risposta è sì, è possibile e nella maggior parte dei casi è richiesto un router.
Nota: a partire da CatOS 7.1 e versioni successive sugli switch Catalyst serie 6500/6000, è disponibile una nuova funzionalità chiamata interrogatore snooping IGMP (Internet Group Management Protocol). Con questa funzione, non è più necessario un router per vincolare il traffico multicast quando l'origine multicast e tutti i ricevitori si trovano sulla stessa VLAN. Il querier dello snooping IGMP consente lo snooping IGMP all'interno di una VLAN in cui non sono configurati PIM (Protocol Independent Multicast) e IGMP perché non è necessario instradare il traffico multicast.
I lettori di questo documento devono essere a conoscenza di quanto segue:
Di seguito sono riportati i requisiti di base per limitare il traffico multicast su uno switch quando l'origine multicast e tutti i ricevitori si trovano sulla stessa VLAN:
Lo snooping di Cisco Group Management Protocol (CGMP) o IGMP (Internet Group Management Protocol) deve essere abilitato sullo switch. Il protocollo GMRP (GARP Multicast Registration Protocol), un altro meccanismo per vincolare il multicast sui dispositivi di livello 2, non è preso in considerazione in questo contesto.
Il router deve avere il PIM (Protocol-Independent Multicast) abilitato sull'interfaccia connessa alla VLAN in cui si trovano l'origine e i ricevitori.
Se si utilizza il protocollo CGMP, il router deve avere il protocollo CGMP abilitato sull'interfaccia connessa alla VLAN in cui si trovano l'origine e i ricevitori.
Nota: non è necessario abilitare il routing multicast (usando il comando di configurazione globale ip multicast-routing) sul router se si desidera limitare i multicast su una singola VLAN e non si intende inoltrare il traffico multicast ad altre interfacce o subnet (il router lamenterà che è necessario abilitare il routing multicast quando si abilita il protocollo PIM sull'interfaccia del router, ma questo avviso può essere ignorato in questa applicazione).
Questo documento spiega come limitare il traffico multicast sugli switch Catalyst con CatOS. Per limitare il traffico multicast sugli switch Catalyst 4000 e 6000 con software di sistema Cisco IOS® (modalità nativa), consultare i seguenti documenti:
Descrizione e configurazione dello snooping IGMP su Catalyst 4000
Configurazione dello snooping IGMP sugli switch Catalyst 6500/6000
Per creare gli esempi riportati in questo documento, sono stati usati i seguenti dispositivi in un ambiente lab:
Router per switch Catalyst 4908G-L3 con Cisco IOS 12.0(7)W5(15d)
Switch Catalyst 4003 con software Catalyst OS 5.5(2)
Switch Catalyst 6009 con software Catalyst OS 5.5(2)
Switch Catalyst 5509 con software Catalyst OS 5.5(2)
Per la funzione IGMP Snooping Querier, due switch Catalyst serie 6500/6000 con 8.1(3) e 7.6(2a)
Due router aggiuntivi (in questo caso uno switch Catalyst 2948G-L3 e uno switch Cisco 7000) che fungono da ricevitori multicast (host)
Generatore di traffico (SmartBits 2000) in grado di trasmettere flussi IP multicast
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
Gli snooping CGMP e IGMP sono supportati sugli switch Catalyst nel modo seguente:
Famiglia Catalyst 4000: Solo CGMP
Famiglia Catalyst 6000: Solo snooping IGMP
Famiglia Catalyst 5000: Snooping IGMP (con Supervisor Engine III/IIIF con NFFC o NFFC II, o con Supervisor Engine IIG/IIG) e CGMP
Per ulteriori informazioni, inclusi i requisiti hardware e software specifici, vedere la documentazione sul multicast per Catalyst 4000/5000 e Catalyst 6000.
Le configurazioni descritte in questo documento sono state implementate in un ambiente lab isolato. valutare attentamente eventuali conseguenze derivanti dall'uso di una configurazione o di un comando sulla rete.
Per ulteriori informazioni sulle convenzioni usate, consultare il documento Cisco sulle convenzioni nei suggerimenti tecnici.
Nell'esempio viene mostrato un ambiente di rete di base in cui le origini multicast e i ricevitori multicast si trovano sulla stessa VLAN. Il comportamento desiderato è che lo switch vincolerà l'inoltro multicast solo alle porte che richiedono il flusso multicast.
La topologia di rete di questo esempio è illustrata nella Figura 1.
Figura 1: Esempio di CGMP - Parte 1
Il generatore di traffico sta inviando un flusso di pacchetti UDP multicast da 1 Mbps all'indirizzo di gruppo 239.10.10.10 sulla VLAN 50 (porta 3/19 di Catalyst 4003).
Il router 4908G-L3 è connesso allo switch Catalyst 4003 sulla porta 3/1 nella VLAN 50. La seguente configurazione viene applicata all'interfaccia Gigabit Ethernet1 (notare che non è presente un comando ip multicast-routing configurato a livello globale, in quanto il router non sta instradando il traffico multicast attraverso le sue interfacce):
interface GigabitEthernet1 ip address 192.168.50.11 255.255.255.0 ip pim dense-mode ip cgmp
Sullo switch Catalyst 4003 i comandi CGMP e CGMP fastleave sono abilitati (impostare cgmp enable e cgmp leave enable enable ).
Al Catalyst 4003 sono collegati due host (ricevitori multicast). L'host A è connesso alla porta 3/3 nella VLAN 50. L'host B è connesso alla porta 3/12 sulla VLAN 50. Questi host sono in realtà router configurati come stazioni terminali, ossia non sono configurati routing o altre funzioni simili. L'host A ha un'interfaccia configurata con l'indirizzo IP 192.168.50.13/24, mentre l'host B ha un'interfaccia configurata con l'indirizzo IP 192.168.50.75/24. Più avanti in questo esempio, gli host verranno aggiunti al gruppo multicast utilizzando il comando di configurazione dell'interfaccia di join-group ip igmp.
L'output seguente viene generato dallo switch Catalyst 4908G-L3 quando il generatore di traffico sta trasmettendo all'indirizzo di gruppo 239.10.10.10 nella VLAN 50, ma sullo switch non sono presenti ricevitori:
4908g-l3# show ip pim interface Address Interface Version/Mode Nbr Query DR Count Intvl 192.168.50.11 GigabitEthernet1 v2/Dense 0 30 192.168.50.11 4908g-l3#show ip igmp interface gig 1 GigabitEthernet1 is up, line protocol is up Internet address is 192.168.50.11/24 IGMP is enabled on interface Current IGMP version is 2 CGMP is enabled on interface IGMP query interval is 60 seconds IGMP querier timeout is 120 seconds IGMP max query response time is 10 seconds Last member query response interval is 1000 ms Inbound IGMP access group is not set IGMP activity: 2 joins, 1 leaves Multicast routing is enabled on interface Multicast TTL threshold is 0 Multicast designated router (DR) is 192.168.50.11 (this system) IGMP querying router is 192.168.50.11 (this system) Multicast groups joined: 224.0.1.40 queue_counter 2579 periodic_counter 77065 dmvrp_counter 0 timer_couter 77065 ast ray 0 4908g-l3# show ip mroute IP Multicast Routing Table Flags: D - Dense, S - Sparse, C - Connected, L - Local, P - Pruned R - RP-bit set, F - Register flag, T - SPT-bit set, J - Join SPT X - Proxy Join Timer Running Outgoing Interface Flags: H - Hardware switched Timers: Uptime/Expires Interface state: Interface, Next-Hop or VCD, State/Mode (*, 239.10.10.10), 00:02:15/00:02:59, RP 0.0.0.0, flags: DJC Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: GigabitEthernet1, Forward/Dense, 00:02:15/00:00:00 (192.168.50.50, 239.10.10.10), 00:02:16/00:00:43, flags: PCT Incoming interface: GigabitEthernet1, RPF nbr 0.0.0.0 Outgoing interface list: Null 4908g-l3#
Si noti l'output in grassetto:
L'output del comando show ip pim interface visualizza l'interfaccia Gigabit Ethernet 1 con indirizzo IP 192.168.50.11 e l'interfaccia PIM-DenseMode (PIM-DM) in esecuzione.
Il comando show ip igmp interface gig 1 mostra che sull'interfaccia sono abilitati IGMP e CGMP e che PIM è in esecuzione sull'interfaccia.
Il comando show ip route mostra che il router ha una voce (origine, gruppo) per 239.10.10.10, originata da 192.168.50.50 (generatore di traffico). Si noti che l'elenco delle interfacce in uscita è Null. Infatti, il router non sta effettivamente eseguendo il routing multicast sulle proprie interfacce. Serve solo a monitorare le entrate e le uscite IGMP della VLAN 50 e a inviare messaggi CGMP allo switch.
L'output seguente viene generato dallo switch Catalyst 4003 su cui il generatore di traffico sta trasmettendo all'indirizzo di gruppo 239.10.10.10 nella VLAN 50 ma sullo switch non sono presenti ricevitori:
4003> (enable) show cgmp leave CGMP: enabled CGMP leave: enabled 4003> (enable) show multicast router Port Vlan ---------- ---------------- 3/1 50 Total Number of Entries = 1 '*' - Configured '+' - RGMP-capable 4003> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-00-01-28 3/1 50 01-00-5e-0a-0a-0a 3/1 Total Number of Entries = 2 4003> (enable)
Si noti l'output in grassetto:
L'output del comando show cgmp leave mostra che i comandi CGMP e CGMP fast leave sono abilitati sullo switch.
Il comando show multicast router mostra che lo switch riconosce un router multicast sulla porta 3/1 nella VLAN 50 (4908G-L3).
Il comando show multicast group mostra che lo switch limita il traffico destinato all'indirizzo MAC 01-00-5e-0a-0a-0a (l'indirizzo MAC multicast a cui mappa 239.10.10.10) nella VLAN 50 alla sola porta 3/1, la porta del router multicast.
A questo punto, configurare l'host A e l'host B come ricevitori multicast per l'indirizzo di gruppo 239.10.10.10. A tale scopo, usare il comando di configurazione dell'interfaccia di join-gruppo ip igmp.
Host A (Catalyst 2948G-L3 connesso all'interfaccia Fast Ethernet 13):
HostA# configure terminal Enter configuration commands, one per line. End with CNTL/Z. HostA(config)# interface fastethernet13 HostA(config-if)# ip igmp join-group 239.10.10.10 HostA(config-if)# ^Z HostA# show ip igmp group IGMP Connected Group Membership Group Address Interface Uptime Expires Last Reporter 239.10.10.10 FastEthernet13 00:00:05 never 192.168.50.13 HostA#
Host B (Cisco 7000 connesso all'interfaccia Ethernet1/0):
HostB# configure terminal Enter configuration commands, one per line. End with CNTL/Z. HostB(config)# interface ethernet1/0 HostB(config-if)# ip igmp join-group 239.10.10.10 HostB(config-if)# ^Z HostB# show ip igmp group IGMP Connected Group Membership Group Address Interface Uptime Expires Last Reporter 239.10.10.10 Ethernet1/0 00:00:10 never 192.168.50.75 HostB#
L'output seguente viene generato dallo switch Catalyst 4003 dopo che l'host A e l'host B sono stati aggiunti al gruppo multicast 239.10.10.10:
4003> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-00-01-28 3/1 50 01-00-5e-0a-0a-0a 3/1,3/3,3/12 Total Number of Entries = 2 4003> (enable)
Notare che lo switch sta inoltrando il traffico per la porta 01-00-5e-0a-0a-0a (239.10.10.10) sulle porte 3/3 (host A) e 3/12 (host B) nella VLAN 50.
Ora l'host A lascia il gruppo multicast:
HostA# configure terminal Enter configuration commands, one per line. End with CNTL/Z. HostA(config)# interface fastethernet13 HostA(config-if)# no ip igmp join-group 239.10.10.10 HostA(config-if)# ^Z HostA#
Lo switch rimuove la porta 3/3 dalla tabella di inoltro multicast per 01-00-5e-0a-0a-0a:
4003> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-00-01-28 3/1 50 01-00-5e-0a-0a-0a 3/1,3/12 Total Number of Entries = 2 4003> (enable)
A questo punto, il generatore di traffico inizia a inviare un ulteriore flusso multicast da 1 Mbps destinato a 239.85.85.85 (indirizzo MAC 01-00-5e-55-55-55). Vedere la Figura 2.
Figura 2: Esempio di CGMP - Parte 2
L'output seguente mostra la tabella di routing multicast su Catalyst 4908G-L3:
4908g-l3# show ip mroute IP Multicast Routing Table Flags: D - Dense, S - Sparse, C - Connected, L - Local, P - Pruned R - RP-bit set, F - Register flag, T - SPT-bit set, J - Join SPT X - Proxy Join Timer Running Outgoing Interface Flags: H - Hardware switched Timers: Uptime/Expires Interface state: Interface, Next-Hop or VCD, State/Mode (*, 239.85.85.85), 00:01:35/00:02:59, RP 0.0.0.0, flags: DP Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: Null (192.168.50.50, 239.85.85.85), 00:01:36/00:01:23, flags: PT Incoming interface: GigabitEthernet1, RPF nbr 0.0.0.0 Outgoing interface list: Null (*, 239.10.10.10), 00:01:36/00:02:59, RP 0.0.0.0, flags: DP Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: Null (192.168.50.50, 239.10.10.10), 00:01:36/00:01:23, flags: PT Incoming interface: GigabitEthernet1, RPF nbr 0.0.0.0 Outgoing interface list: Null 4908g-l3#
Si noti che per ogni flusso multicast sono presenti una voce (S,G) e una voce (*,G).
Su Catalyst 4003, la tabella di inoltro multicast ha il seguente aspetto:
4003> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-00-01-28 3/1 50 01-00-5e-0a-0a-0a 3/1,3/12 50 01-00-5e-55-55-55 3/1 Total Number of Entries = 3 4003> (enable)
Notare che lo switch ha aggiunto una voce per 01-00-5e-55-55-55 sulla porta 3/1 (la porta del router) nella VLAN 50.
A questo punto, l'host A e l'host B si uniscono al gruppo 239.85.85.85 usando il comando di configurazione dell'interfaccia ip igmp join-group 239.85.85.85. Di seguito è riportata la tabella di inoltro multicast dello switch dopo l'aggiunta dell'host A e dell'host B al gruppo:
4003> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-00-01-28 3/1 50 01-00-5e-0a-0a-0a 3/1,3/12 50 01-00-5e-55-55-55 3/1,3/3,3/12 Total Number of Entries = 3 4003> (enable)
Notare che lo switch ha aggiunto le porte 3/3 e 3/12 nella voce per 01-00-5e-55-55-55 nella VLAN 50.
Nell'esempio viene mostrato un altro ambiente di rete di base in cui le origini multicast e i ricevitori multicast si trovano tutti nella stessa VLAN. Il comportamento desiderato è che gli switch vincoleranno l'inoltro multicast solo alle porte che richiedono il flusso multicast.
La topologia di rete di questo esempio è illustrata nella Figura 3.
Figura 3: Esempio di snooping IGMP parte 1
Il generatore di traffico sta inviando un flusso di pacchetti UDP multicast da 1 Mbps all'indirizzo di gruppo 239.10.10.10 sulla VLAN 50 (porta 3/13 di Catalyst 6009).
Il router 4908G-L3 è collegato allo switch Catalyst 6009 sulla porta 1/1. Il collegamento è configurato come trunk VLAN. La seguente configurazione viene applicata all'interfaccia secondaria Gigabit Ethernet 1.50 (notare che non è presente un comando ip multicast-routing configurato a livello globale, in quanto il router non sta instradando il traffico multicast attraverso le sue interfacce):
interface GigabitEthernet1.50 encapsulation isl 50 ip address 192.168.50.11 255.255.255.0 ip pim dense-mode
Si noti che il comando di configurazione dell'interfaccia ip cgmp non è richiesto quando si utilizza solo lo snooping IGMP sugli switch di layer 2.
Sugli switch Catalyst 6009 e Catalyst 5509 lo snooping IGMP e il fast leave IGMP sono abilitati (impostare igmp enable e igmp fastleave enable ). Catalyst 6009 si connette tramite un collegamento trunk sulla porta 4/1 allo switch Catalyst 5509 sulla porta 2/1.
Nell'esempio sono presenti due host (ricevitori multicast). L'host A è collegato a Catalyst 6009 sulla porta 3/37 nella VLAN 50. L'host B è collegato a Catalyst 5509 sulla porta 3/9 nella VLAN 50. Come nell'esempio CGMP, questi host sono in realtà router configurati come stazioni terminali (ossia non sono configurati routing o altre funzioni simili). L'host A ha un'interfaccia configurata con l'indirizzo IP 192.168.50.13/24, mentre l'host B ha un'interfaccia configurata con l'indirizzo IP 192.168.50.75/24. Più avanti in questo esempio, gli host verranno aggiunti al gruppo multicast utilizzando il comando di configurazione dell'interfaccia di join-group ip igmp.
L'output seguente viene generato dallo switch Catalyst 4908G-L3 quando il generatore di traffico sta trasmettendo all'indirizzo di gruppo 239.10.10.10 nella VLAN 50, ma sullo switch non sono presenti ricevitori:
4908g-l3# show ip pim interface Address Interface Version/Mode Nbr Query DR Count Intvl 192.168.50.11 Gi1.50 v2/Dense 0 30 192.168.50.11 4908g-l3# show ip igmp interface gig1.50 Gi1.50 is up, line protocol is up Internet address is 192.168.50.11/24 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 Last member query response interval is 1000 ms Inbound IGMP access group is not set IGMP activity: 3 joins, 2 leaves Multicast routing is enabled on interface Multicast TTL threshold is 0 Multicast designated router (DR) is 192.168.50.11 (this system) IGMP querying router is 192.168.50.11 (this system) Multicast groups joined: 224.0.1.40 queue_counter 85 periodic_counter 4777 dmvrp_counter 0 timer_couter 4777 astray 0 4908g-l3# show ip mroute IP Multicast Routing Table Flags: D - Dense, S - Sparse, C - Connected, L - Local, P - Pruned R - RP-bit set, F - Register flag, T - SPT-bit set, J - Join SPT X - Proxy Join Timer Running Outgoing Interface Flags: H - Hardware switched Timers: Uptime/Expires Interface state: Interface, Next-Hop or VCD, State/Mode (*, 239.10.10.10), 00:02:10/00:02:59, RP 0.0.0.0, flags: DP Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: Null (192.168.50.50, 239.10.10.10), 00:02:11/00:00:48, flags: PT Incoming interface: GigabitEthernet1.50, RPF nbr 0.0.0.0 Outgoing interface list: Null 4908g-l3#
L'output in grassetto viene spiegato più dettagliatamente di seguito.
L'output del comando show ip pim interface visualizza l'interfaccia Gigabit Ethernet 1 con indirizzo IP 192.168.50.11 e l'interfaccia PIM-DenseMode (PIM-DM) in esecuzione.
Il comando show ip igmp interface gig 1.50 mostra che il protocollo IGMP è abilitato, che il protocollo CGMP è disabilitato sull'interfaccia e che il protocollo PIM è in esecuzione sull'interfaccia.
Il comando show ip route mostra che il router ha una voce (origine, gruppo) per 239.10.10.10, originata da 192.168.50.50 (il generatore di traffico). Si noti che l'elenco delle interfacce in uscita è Null. Infatti, il router non sta effettivamente eseguendo il routing multicast sulle proprie interfacce. Serve solo a monitorare le join e le foglie IGMP nella VLAN 50.
L'output seguente viene generato dallo switch Catalyst 6009 su cui il generatore di traffico sta trasmettendo all'indirizzo di gruppo 239.10.10.10 nella VLAN 50 ma sullo switch non sono presenti ricevitori:
Cat6009> (enable) show multicast protocols status IGMP enabled IGMP fastleave enabled RGMP disabled GMRP disabled Cat6009> (enable) show multicast router Port Vlan ---------- ---------------- 1/1 50 Total Number of Entries = 1 '*' - Configured '+' - RGMP-capable Cat6009> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-00-01-28 1/1 50 01-00-5e-0a-0a-0a 1/1 Total Number of Entries = 2 Cat6009> (enable)
L'output in grassetto viene spiegato più dettagliatamente di seguito.
L'output dello stato show multicast protocols mostra che i comandi IGMP e IGMP fast leave sono abilitati sullo switch.
Il comando show multicast router mostra che lo switch riconosce un router multicast sulla porta 1/1 nella VLAN 50 (4908G-L3).
Il comando show multicast group mostra che lo switch limita il traffico destinato all'indirizzo MAC 01-00-5e-0a-0a-0a (l'indirizzo MAC multicast a cui mappa 239.10.10.10) nella VLAN 50 alla sola porta 1/1, la porta del router multicast.
L'output seguente viene generato dallo switch Catalyst 5509 su cui il generatore di traffico sta trasmettendo all'indirizzo di gruppo 239.10.10.10 nella VLAN 50 ma sullo switch non sono presenti ricevitori:
Cat5509> (enable) show multicast protocols status CGMP disabled IGMP enabled IGMP fastleave enabled RGMP disabled GMRP disabled Cat5509> (enable) show multicast router Port Vlan ---------- ---------------- 2/1 50 Total Number of Entries = 1 '*' - Configured '+' - RGMP-capable Cat5509> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- Total Number of Entries = 0 Cat5509> (enable)
L'output in grassetto viene spiegato più dettagliatamente di seguito.
L'output dello stato show multicast protocols mostra che i comandi IGMP e IGMP fast leave sono abilitati sullo switch.
Il comando show multicast router mostra che lo switch riconosce un router multicast sulla porta 2/1 nella VLAN 50 (questo è il trunk dello switch 6009).
Il comando show multicast group mostra che lo switch non riconosce alcun gruppo multicast. Infatti, poiché lo switch 6009 vincola già il traffico multicast solo alla porta del router, lo switch 5509 non riceve il traffico destinato all'indirizzo MAC 01-00-5e-0a-0a-0a nella VLAN 50.
A questo punto, configurare l'host A (connesso alla 6009 nella VLAN 50 sulla porta 3/37) come ricevitore multicast per l'indirizzo di gruppo 239.10.10.10 immettendo il comando di configurazione dell'interfaccia ip igmp join-group 239.10.10.10.
Il seguente output viene generato dallo switch Catalyst 6009 dopo l'aggiunta dell'host A al gruppo multicast 239.10.10.10:
Cat6009> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-00-01-28 1/1 50 01-00-5e-0a-0a-0a 1/1,3/37 Total Number of Entries = 2 Cat6009> (enable)
Si noti che la porta 3/37 è stata aggiunta alla tabella di inoltro multicast per il gruppo multicast. La tabella di inoltro dello switch Catalyst 5509 non è stata modificata (nessuna voce multicast) perché Catalyst 6009 impedisce ancora al traffico multicast di attraversare il collegamento trunk allo switch 5509.
A questo punto, configurare l'host B (connesso allo switch 5509 nella VLAN 50 sulla porta 3/9) come ricevitore multicast per l'indirizzo di gruppo 239.10.10.10 immettendo il comando di configurazione dell'interfaccia ip igmp join-group 239.10.10.10.
Il seguente output viene generato dallo switch Catalyst 6009 dopo l'aggiunta dell'host B al gruppo multicast 239.10.10.10:
Cat6009> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-00-01-28 1/1 50 01-00-5e-0a-0a-0a 1/1,3/37,4/1 Total Number of Entries = 2 Cat6009> (enable)
Notare che Catalyst 6009 ha aggiunto la porta 4/1 (la porta trunk su Catalyst 5509) alla tabella di inoltro per il gruppo multicast.
Il seguente output viene generato dallo switch Catalyst 5509 dopo l'aggiunta dell'host B al gruppo multicast 239.10.10.10:
Cat5509> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-0a-0a-0a 2/1,3/9 Total Number of Entries = 1 Cat5509> (enable)
Notare che Catalyst 5509 ha aggiunto una voce di inoltro multicast per il gruppo multicast (MAC 01-00-5e-0a-0a-0a) e ha incluso la porta trunk (2/1) e la porta Host B (3/9).
A questo punto, l'host A lascia il gruppo multicast (usando il comando di configurazione dell'interfaccia no ip igmp join-group 239.10.10.10).
Il modello 6009 rimuove la porta 3/37 dalla tabella di inoltro multicast per 01-00-5e-0a-0a-0a:
Cat6009> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-00-01-28 1/1 50 01-00-5e-0a-0a-0a 1/1,4/1 Total Number of Entries = 2 Cat6009> (enable)
La tabella di inoltro multicast 5509 rimane invariata.
Ora, il generatore di traffico inizia a trasmettere un secondo flusso di pacchetti UDP multicast da 1 Mbps all'indirizzo di gruppo 239.85.85.85 (indirizzo MAC 01-00-5e-55-55-55). Vedere la Figura 4.
Figura 4: Esempio di snooping IGMP parte 2
Lo switch 4908G-L3 crea una voce (*,G) e una voce (S,G) per il nuovo indirizzo di gruppo:
4908g-l3# show ip mroute IP Multicast Routing Table Flags: D - Dense, S - Sparse, C - Connected, L - Local, P - Pruned R - RP-bit set, F - Register flag, T - SPT-bit set, J - Join SPT X - Proxy Join Timer Running Outgoing Interface Flags: H - Hardware switched Timers: Uptime/Expires Interface state: Interface, Next-Hop or VCD, State/Mode (*, 239.85.85.85), 00:00:37/00:02:59, RP 0.0.0.0, flags: DP Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: Null (192.168.50.50, 239.85.85.85), 00:00:38/00:02:21, flags: PT Incoming interface: GigabitEthernet1.50, RPF nbr 0.0.0.0 Outgoing interface list: Null (*, 239.10.10.10), 00:13:44/00:02:59, RP 0.0.0.0, flags: DJC Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: GigabitEthernet1.50, Forward/Dense, 00:13:44/00:00:00 (192.168.50.50, 239.10.10.10), 00:00:38/00:02:21, flags: PCT Incoming interface: GigabitEthernet1.50, RPF nbr 0.0.0.0 Outgoing interface list: Null 4908g-l3#
Lo switch 6009 crea una voce di inoltro solo dell'origine per il nuovo indirizzo MAC multicast che include solo la porta del router multicast (1/1) nella VLAN 50:
t6009> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-00-01-28 1/1 50 01-00-5e-0a-0a-0a 1/1,4/1 50 01-00-5e-55-55-55 1/1 Total Number of Entries = 3 Cat6009> (enable)
A questo punto, l'host A e l'host B si uniscono al gruppo 239.85.85.85 usando il comando di configurazione dell'interfaccia ip igmp join-group 239.85.85.85.
Il seguente output viene generato dallo switch Catalyst 6009 dopo che l'host A e l'host B sono stati aggiunti al gruppo multicast 239.85.85.85:
Cat6009> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-00-01-28 1/1 50 01-00-5e-0a-0a-0a 1/1,4/1 50 01-00-5e-55-55-55 1/1,3/37,4/1 Total Number of Entries = 3 Cat6009> (enable)
Notare che lo switch ha aggiunto le porte 3/37 (host A) e 4/1 (il trunk sullo switch 5509) nella voce per 01-00-5e-55-55-55 nella VLAN 50.
Il seguente output viene generato dallo switch Catalyst 5509 dopo che l'host A e l'host B sono stati aggiunti al gruppo multicast 239.85.85.85:
Cat5509> (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 50 01-00-5e-0a-0a-0a 2/1,3/9 50 01-00-5e-55-55-55 2/1,3/9 Total Number of Entries = 2 Cat5509> (enable)
Notare che lo switch ha aggiunto una voce per 01-00-5e-55-55-55 nella VLAN 50 e ha aggiunto la porta 2/1 (il trunk alla 6009) e la porta 3/9 (host B).
In precedenza, quando l'origine e i ricevitori si trovavano sulla stessa VLAN e si voleva garantire che il traffico multicast venisse inviato solo ai ricevitori interessati al traffico, era necessario abilitare il PIM sull'interfaccia del router corrispondente alla VLAN e usare lo snooping CGMP o IGMP.
A partire dalla versione 7.1 di CatOS sugli switch Catalyst serie 6500/6000, è disponibile una nuova funzionalità chiamata IGMP snooping querier. Questa funzione abilita lo snooping IGMP all'interno di una VLAN in cui PIM e IGMP non sono configurati perché il traffico multicast non deve essere inviato ad altre VLAN. Se non è presente alcun router multicast sulla VLAN su cui si desidera indirizzare il traffico multicast tra l'origine e i ricevitori, è necessario abilitare la funzione di query sullo snooping IGMP per garantire il corretto funzionamento.
Quando la funzione Query su IGMP è configurata per una determinata VLAN, lo switch invia query generali IGMP ogni 125 secondi e resta in ascolto di altre query generali da altri switch. Se sono presenti più switch con il querier IGMP abilitato per una determinata VLAN, è in corso un processo di selezione per determinare quale switch continuerà a fungere da querier. Gli altri switch che hanno perso l'elezione, avviano un timer e se non si sentono query in quel periodo, ci sarà una rielezione per un nuovo interrogante.
Per verificare questa funzione, vengono usati due switch Catalyst 6000, uno con software CatOS versione 8.1(3) e l'altro con software CatOS versione 7.6(2a). La topologia è illustrata di seguito.
Figura 5: Esempio di query IGMP
L'origine e i ricevitori si trovano tutti sulla VLAN 9. Il querier IGMP è abilitato su entrambi gli switch.
Didju (enable) set igmp querier enable 9 IGMP querier is enabled for VLAN(s) 9 Cust (enable) set igmp querier enable 9 IGMP querier is enabled for VLAN(s) 9
Questa configurazione è già sufficiente per il funzionamento di questa funzionalità, ma è ancora possibile eseguire alcune operazioni di ottimizzazione.
Cust (enable) set igmp querier 9 ? qi Query Interval for the vlan(s) oqi Other Querier Interval for the vlan(s)
L'opzione Intervallo query, che per impostazione predefinita è di 125 secondi, specifica la frequenza con cui l'opzione selezionata invia query generali IGMP.
L'opzione Other Querier Interval, che per impostazione predefinita è 300 secondi, specifica il tempo di attesa di un'opzione in stato non interrogante per una query generale dall'opzione interrogante. Se la query generale non viene ricevuta nell'intervallo di tempo configurato dall'opzione del query selezionata, l'opzione del query candidata diventa un'opzione del query. Questa funzionalità è simile a un "timer inattivo".
Per controllare lo stato corrente di IGMP Querier su entrambi gli switch:
Cust (enable) show igmp querier information 9 VLAN Querier State Query Tx Count QI (seconds) OQI (seconds) ---- --------------------- -------------- ------------ ------------- 9 QUERIER 4 125 300 Cust (enable) Didju (enable) show igmp querier information VLAN Querier Address Querier State Query Tx Count QI (sec) OQI (sec) ---- --------------- --------------------- -------------- -------- -------- 9 0.0.0.0 NON-QUERIER 0 125 300 Didju (enable)
Dagli output sopra riportati, è possibile notare che è stato selezionato lo switch denominato "Cust", che l'intervallo di query è di 125 secondi e che il "timer inattivo" sul non-querier è di 300 secondi.
Nell'esempio, la sorgente multicast invia il traffico al gruppo 239.10.10.10, che corrisponde sul layer 2 all'indirizzo MAC 01-00-5E-0A-0A-0A.
Controllare le porte aggiunte da IGMP al gruppo multicast.
Didju (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 9 01-00-5e-0a-0a-0a 2/7-8 Total Number of Entries = 1 Didju (enable) !--- Port 2/7 is the port connected to PC 1 and !--- Port 2/8 connects to Cust, the second 6000.
In Cliente, viene visualizzato quanto segue:
Cust (enable) show multicast group VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 9 01-00-5e-0a-0a-0a 3/13-14 Total Number of Entries = 1 Cust (enable) !--- Port 3/13 connects to PC 2 and 3/14 to Didju.
Nel comando show multicast router viene visualizzata un'indicazione del percorso del router che esegue l'interrogazione IGMP.
Su Cust, lo switch selezionato come interrogatore IGMP non mostra alcun output, come mostrato di seguito.
Cust (enable) show multicast router Port Vlan -------------- ---------------- Total Number of Entries = 0 '*' - Configured '+' - RGMP-capable '#' - Channeled Port '$' - IGMP-V3 Router '@' - IGMP-Querier Router Cust (enable)
Sul secondo interruttore Didju, si può vedere quanto segue:
Didju (enable) show multicast router Port Vlan -------------- ---------------- 2/7 @ 9 Total Number of Entries = 1 '*' - Configured '+' - RGMP-capable '#' - Channeled Port '$' - IGMP-V3 Router '@' - IGMP-Querier Router Didju (enable)
In questo caso, la porta del router multicast è la porta 2/7 (la porta che si connette a Cust) e, tramite il segno '@', indica che viene utilizzata la funzione IGMP Querier.