1. Introduction
The IEEE bridge standard [BRIDGE] specifies how LAN packets are 'bridged', or as is more commonly used today, switched between LAN segments. The operation of a switch with respect to multicast packets can be summarized as follows. When processing a packet whose destination MAC address is a multicast address, the switch will forward a copy of the packet into each of the remaining network interfaces that are in the forwarding state in accordance with [BRIDGE]. The spanning tree algorithm ensures that the application of this rule at every switch in the network will make the packet accessible to all nodes connected to the network. Lo standard IEEE bridge [BRIDGE] specifica come i pacchetti LAN vengono 'collegati' (bridged), o come viene più comunemente usato oggi, commutati tra segmenti LAN. Il funzionamento di uno switch rispetto ai pacchetti multicast può essere riassunto come segue. Quando elabora un pacchetto il cui indirizzo MAC di destinazione è un indirizzo multicast, lo switch inoltrerà una copia del pacchetto in ciascuna delle restanti interfacce di rete che sono nello stato di inoltro in conformità con [BRIDGE]. L'algoritmo spanning tree garantisce che l'applicazione di questa regola a ogni switch nella rete renderà il pacchetto accessibile a tutti i nodi collegati alla rete.
This behaviour works well for broadcast packets that are intended to be seen or processed by all connected nodes. In the case of multicast packets, however, this approach could lead to less efficient use of network bandwidth, particularly when the packet is intended for only a small number of nodes. Packets will be flooded into network segments where no node has any interest in receiving the packet. While nodes will rarely incur any processing overhead to filter packets addressed to unrequested group addresses, they are unable to transmit new packets onto the shared media for the period of time that the multicast packet is flooded. In general, significant bandwidth can be wasted by flooding. Questo comportamento funziona bene per i pacchetti broadcast che sono destinati a essere visti o elaborati da tutti i nodi collegati. Nel caso dei pacchetti multicast, tuttavia, questo approccio potrebbe portare a un uso meno efficiente della larghezza di banda della rete, in particolare quando il pacchetto è destinato solo a un piccolo numero di nodi. I pacchetti verranno inondati (flooded) in segmenti di rete in cui nessun nodo ha interesse a ricevere il pacchetto. Sebbene i nodi raramente subiscano un sovraccarico di elaborazione per filtrare i pacchetti indirizzati a indirizzi di gruppo non richiesti, non sono in grado di trasmettere nuovi pacchetti sui media condivisi per il periodo di tempo in cui il pacchetto multicast viene inondato. In generale, una larghezza di banda significativa può essere sprecata dall'inondazione.
In recent years, a number of commercial vendors have introduced products described as "IGMP snooping switches" to the market. These devices do not adhere to the conceptual model that provides the strict separation of functionality between different communications layers in the ISO model, and instead utilize information in the upper level protocol headers as factors to be considered in processing at the lower levels. This is analogous to the manner in which a router can act as a firewall by looking into the transport protocol's header before allowing a packet to be forwarded to its destination address. Negli ultimi anni, un certo numero di fornitori commerciali ha introdotto sul mercato prodotti descritti come "switch IGMP snooping". Questi dispositivi non aderiscono al modello concettuale che prevede la rigorosa separazione delle funzionalità tra i diversi livelli di comunicazione nel modello ISO, e utilizzano invece le informazioni nelle intestazioni dei protocolli di livello superiore come fattori da considerare nell'elaborazione ai livelli inferiori. Ciò è analogo al modo in cui un router può agire come firewall esaminando l'intestazione del protocollo di trasporto prima di consentire l'inoltro di un pacchetto al suo indirizzo di destinazione.
In the case of IP multicast traffic, an IGMP snooping switch provides the benefit of conserving bandwidth on those segments of the network where no node has expressed interest in receiving packets addressed to the group address. This is in contrast to normal switch behavior where multicast traffic is typically forwarded on all interfaces. Nel caso del traffico IP multicast, uno switch IGMP snooping offre il vantaggio di conservare la larghezza di banda su quei segmenti della rete in cui nessun nodo ha espresso interesse a ricevere pacchetti indirizzati all'indirizzo del gruppo. Questo è in contrasto con il normale comportamento dello switch in cui il traffico multicast viene tipicamente inoltrato su tutte le interfacce.
Many switch datasheets state support for IGMP snooping, but no recommendations for this exist today. It is the authors' hope that the information presented in this document will supply this foundation. Molte schede tecniche degli switch dichiarano il supporto per l'IGMP snooping, ma oggi non esistono raccomandazioni per questo. È speranza degli autori che le informazioni presentate in questo documento forniscano questa base.
The recommendations presented here are based on the following information sources: The IGMP specifications [RFC1112], [RFC2236] and [IGMPv3], vendor-supplied technical documents [CISCO], bug reports [MSOFT], discussions with people involved in the design of IGMP snooping switches, MAGMA mailing list discussions, and on replies by switch vendors to an implementation questionnaire. Le raccomandazioni qui presentate si basano sulle seguenti fonti di informazione: le specifiche IGMP [RFC1112], [RFC2236] e [IGMPv3], documenti tecnici forniti dai fornitori [CISCO], segnalazioni di bug [MSOFT], discussioni con persone coinvolte nella progettazione di switch IGMP snooping, discussioni sulla mailing list MAGMA e risposte dei fornitori di switch a un questionario di implementazione.
Interoperability issues that arise between different versions of IGMP are not the focus of this document. Interested readers are directed to [IGMPv3] for a thorough description of problem areas. I problemi di interoperabilità che sorgono tra diverse versioni di IGMP non sono il fulcro di questo documento. I lettori interessati sono indirizzati a [IGMPv3] per una descrizione approfondita delle aree problematiche.
The suggestions in this document are based on IGMP, which applies only to IPv4. For IPv6, Multicast Listener Discovery [MLD] must be used instead. Because MLD is based on IGMP, we do not repeat the entire description and recommendations for MLD snooping switches. Instead, we point out the few cases where there are differences from IGMP. I suggerimenti in questo documento si basano su IGMP, che si applica solo a IPv4. Per IPv6, deve essere utilizzato invece il Multicast Listener Discovery [MLD]. Poiché MLD si basa su IGMP, non ripetiamo l'intera descrizione e le raccomandazioni per gli switch MLD snooping. Invece, segnaliamo i pochi casi in cui ci sono differenze rispetto a IGMP.
Note that the IGMP snooping function should apply only to IPv4 multicasts. Other multicast packets, such as IPv6, might be suppressed by IGMP snooping if additional care is not taken in the implementation as mentioned in the recommendations section. Si noti che la funzione IGMP snooping dovrebbe applicarsi solo ai multicast IPv4. Altri pacchetti multicast, come IPv6, potrebbero essere soppressi dall'IGMP snooping se non viene prestata ulteriore attenzione nell'implementazione come menzionato nella sezione delle raccomandazioni.