Passa al contenuto principale

2. Host Requirements for Source-Specific Multicast

This section defines the notion of an "SSM-aware" host and then goes on to describe the API requirements and the SFGMP protocol requirements of an SSM-aware host. It is important to note that SSM can be used by any host that supports source filtering APIs and whose operating system supports the appropriate SFGMP. The SFGMP modifications described in this section make SSM work better on an SSM-aware host, but they are not strict prerequisites for the use of SSM. Questa sezione definisce la nozione di host "SSM-aware" e poi prosegue descrivendo i requisiti API e i requisiti del protocollo SFGMP di un host SSM-aware. È importante notare che SSM può essere utilizzato da qualsiasi host che supporti le API di filtro sorgente e il cui sistema operativo supporti l'SFGMP appropriato. Le modifiche SFGMP descritte in questa sezione fanno funzionare meglio SSM su un host SSM-aware, ma non sono prerequisiti rigorosi per l'uso di SSM.

The 232/8 IPv4 address range is currently allocated for SSM by IANA [IANA-ALLOCATION]. In IPv6, the FF3x::/32 range (where 'x' is a valid IPv6 multicast scope value) is reserved for SSM semantics [RFC3306], although today SSM allocations are restricted to FF3x::/96. ([SSM] has a more thorough discussion of this topic.) A host that knows the SSM address range and is capable of applying SSM semantics to it is described as an "SSM-aware" host. L'intervallo di indirizzi IPv4 232/8 è attualmente assegnato per SSM da IANA [IANA-ALLOCATION]. In IPv6, l'intervallo FF3x::/32 (dove 'x' è un valore di ambito multicast IPv6 valido) è riservato per la semantica SSM [RFC3306], sebbene oggi le allocazioni SSM siano limitate a FF3x::/96. ([SSM] ha una discussione più approfondita su questo argomento.) Un host che conosce l'intervallo di indirizzi SSM ed è in grado di applicare la semantica SSM ad esso è descritto come un host "SSM-aware".

A host or router may be configured to apply SSM semantics to addresses other than those in the IANA-allocated range. The GMP module on a host or router SHOULD have a configuration option to set the SSM address range(s). If this configuration option exists, it MUST default to the IANA-allocated SSM range. The mechanism for setting this configuration option MUST at least allow for manual configuration. Protocol mechanisms to set this option may be defined in the future. Un host o un router può essere configurato per applicare la semantica SSM a indirizzi diversi da quelli nell'intervallo allocato da IANA. Il modulo GMP su un host o router DOVREBBE avere un'opzione di configurazione per impostare l'intervallo/i di indirizzi SSM. Se questa opzione di configurazione esiste, DEVE essere predefinita all'intervallo SSM allocato da IANA. Il meccanismo per impostare questa opzione di configurazione DEVE consentire almeno la configurazione manuale. Meccanismi di protocollo per impostare questa opzione potrebbero essere definiti in futuro.

2.1. API Requirements

If the host IP module of an SSM-aware host receives a non-source-specific request to receive multicast traffic sent to an SSM destination address, it SHOULD return an error to the application, as specified in [MSFAPI] (MODIFICATION). On a non-SSM-aware host, an application that uses the wrong API (e.g., "join(G)", "IPMulticastListen(G,EXCLUDE(S1))" for IGMPv3, or "IPv6MulticastListen(G,EXCLUDE(S2))" for MLDv2) to request delivery of packets sent to an SSM address will not receive the requested service, because an SSM-aware router (following the rules of this document) will refuse to process the request, and the application will receive no indication other than a failure to receive the requested traffic. Se il modulo IP host di un host SSM-aware riceve una richiesta non specifica della sorgente per ricevere traffico multicast inviato a un indirizzo di destinazione SSM, DOVREBBE restituire un errore all'applicazione, come specificato in [MSFAPI] (MODIFICATION). Su un host non SSM-aware, un'applicazione che utilizza l'API sbagliata (ad esempio, "join(G)", "IPMulticastListen(G,EXCLUDE(S1))" per IGMPv3 o "IPv6MulticastListen(G,EXCLUDE(S2))" per MLDv2) per richiedere la consegna di pacchetti inviati a un indirizzo SSM non riceverà il servizio richiesto, perché un router SSM-aware (seguendo le regole di questo documento) rifiuterà di elaborare la richiesta e l'applicazione non riceverà alcuna indicazione oltre a un fallimento nel ricevere il traffico richiesto.

2.2. GMP Requirements

This section defines the behavior of the SFGMP protocol module on an SSM-aware host, including two modifications to the protocols as described in [IGMPv3, MLDv2]. It also includes a number of clarifications of protocol operations. In doing so, it documents the behavior of an SSM-aware host with respect to sending and receiving the following GMP message types: Questa sezione definisce il comportamento del modulo di protocollo SFGMP su un host SSM-aware, incluse due modifiche ai protocolli come descritto in [IGMPv3, MLDv2]. Include anche una serie di chiarimenti sulle operazioni del protocollo. In tal modo, documenta il comportamento di un host SSM-aware rispetto all'invio e alla ricezione dei seguenti tipi di messaggi GMP:

  • IGMPv1/v2 and MLDv1 Reports (2.2.1)
  • IGMPv3 and MLDv2 Reports (2.2.2)
  • IGMPv1 Queries, IGMPv2 and MLDv1 General Queries (2.2.3)
  • IGMPv2 Leave and MLDv1 Done (2.2.4)
  • IGMPv2 and MLDv1 Group Specific Query (2.2.5)
  • IGMPv3 and MLDv2 Group Specific Query (2.2.6)
  • IGMPv3 and MLDv2 Group-and-Source Specific Query (2.2.7)

2.2.1. IGMPv1/v2 and MLDv1 Reports

An SSM-aware host operating according to [IGMPv3, MLDv2] could send an IGMPv1, IGMPv2, or MLDv1 report for an SSM address when it is operating in "older-version compatibility mode." This is an exceptional (error) condition, indicating that the router(s) cannot provide the SFGMP support needed for SSM, and an error is logged when the host enters compatibility mode for an SSM address, as described below. In this situation, it is likely that traffic sent to a channel (S,G) will not be delivered to a receiving host that has requested to receive channel (S,G). Un host SSM-aware che opera secondo [IGMPv3, MLDv2] potrebbe inviare un report IGMPv1, IGMPv2 o MLDv1 per un indirizzo SSM quando opera in "modalità di compatibilità con versioni precedenti". Questa è una condizione eccezionale (errore), che indica che i router non possono fornire il supporto SFGMP necessario per SSM, e viene registrato un errore quando l'host entra in modalità di compatibilità per un indirizzo SSM, come descritto di seguito. In questa situazione, è probabile che il traffico inviato a un canale (S,G) non venga consegnato a un host ricevente che ha richiesto di ricevere il canale (S,G).

[IGMPv3] and [MLDv2] specify that a host MAY allow an older-version report to suppress its own IGMPv3 or MLDv2 Membership Record. An SSM-aware host, however, MUST NOT allow its report to be suppressed in this situation (MODIFICATION). Suppressing reports in this scenario would provide an avenue for an attacker to deny SSM service to other hosts on the link. [IGMPv3] e [MLDv2] specificano che un host PUÒ consentire a un report di versione precedente di sopprimere il proprio record di appartenenza IGMPv3 o MLDv2. Un host SSM-aware, tuttavia, NON DEVE consentire che il suo report venga soppresso in questa situazione (MODIFICATION). La soppressione dei report in questo scenario fornirebbe una via a un aggressore per negare il servizio SSM ad altri host sul collegamento.

2.2.2. IGMPv3 and MLDv2 Reports

A host implementation may report more than one SSM channel in a single report either by including multiple sources within a group record or by including multiple group records. Un'implementazione host può segnalare più di un canale SSM in un singolo report includendo più sorgenti all'interno di un record di gruppo o includendo più record di gruppo.

A Group Record for a source-specific destination address may (under normal operation) be any of the following types: Un record di gruppo per un indirizzo di destinazione specifico della sorgente può (durante il normale funzionamento) essere di uno dei seguenti tipi:

  • MODE_IS_INCLUDE as part of a Current-State Record

  • MODE_IS_INCLUDE come parte di un Current-State Record

  • ALLOW_NEW_SOURCES as part of a State-Change Record

  • ALLOW_NEW_SOURCES come parte di uno State-Change Record

  • BLOCK_OLD_SOURCES as part of a State-Change Record

  • BLOCK_OLD_SOURCES come parte di uno State-Change Record

A report may include both SSM destination addresses and non-source-specific, i.e., Any-Source Multicast (ASM) destination addresses, in the same message. Un report può includere sia indirizzi di destinazione SSM che indirizzi di destinazione non specifici della sorgente, ovvero Any-Source Multicast (ASM), nello stesso messaggio.

Additionally, a CHANGE_TO_INCLUDE_MODE record may be sent by a host in some cases, for instance, when the SSM address range is changed through configuration. A router should process such a record according to the normal SFGMP rules. Inoltre, un record CHANGE_TO_INCLUDE_MODE può essere inviato da un host in alcuni casi, ad esempio, quando l'intervallo di indirizzi SSM viene modificato tramite configurazione. Un router dovrebbe elaborare tale record secondo le normali regole SFGMP.

An SSM-aware host SHOULD NOT send any of the following record types for an SSM address. Un host SSM-aware NON DOVREBBE inviare nessuno dei seguenti tipi di record per un indirizzo SSM.

  • MODE_IS_EXCLUDE as part of a Current-State Record

  • MODE_IS_EXCLUDE come parte di un Current-State Record

  • CHANGE_TO_EXCLUDE_MODE as part of a Filter-Mode-Change Record

  • CHANGE_TO_EXCLUDE_MODE come parte di un Filter-Mode-Change Record

This is a MODIFICATION to [IGMPv3, MLDv2], imposing a restriction on its use for SSM destination addresses. The rationale is that EXCLUDE mode does not apply to SSM addresses, and an SSM-aware router will ignore MODE_IS_EXCLUDE and CHANGE_TO_EXCLUDE_MODE requests in the SSM range, as described below. Questa è una MODIFICATION a [IGMPv3, MLDv2], che impone una restrizione al suo utilizzo per gli indirizzi di destinazione SSM. La logica è che la modalità EXCLUDE non si applica agli indirizzi SSM e un router SSM-aware ignorerà le richieste MODE_IS_EXCLUDE e CHANGE_TO_EXCLUDE_MODE nell'intervallo SSM, come descritto di seguito.

2.2.3. IGMPv1 Queries, IGMPv2 and MLDv1 General Queries

If an IGMPv1 Query, or an IGMPv2 or MLDv1 General Query is received, the SFGMP protocol specifications require the host to revert to the older (IGMPv1, IGMPv2, or MLDv1) mode of operation on that interface. If this occurs, the host will stop reporting source-specific subscriptions on that interface and will start using IGMPv1, IGMPv2, or MLDv1 to report interest in all SSM destination addresses, unqualified by a source address. As a result, SSM semantics will no longer be applied to the multicast group address by the router. Se viene ricevuta una query IGMPv1 o una query generale IGMPv2 o MLDv1, le specifiche del protocollo SFGMP richiedono all'host di tornare alla modalità operativa precedente (IGMPv1, IGMPv2 o MLDv1) su quell'interfaccia. Se ciò accade, l'host smetterà di segnalare le sottoscrizioni specifiche della sorgente su quell'interfaccia e inizierà a utilizzare IGMPv1, IGMPv2 o MLDv1 per segnalare l'interesse per tutti gli indirizzi di destinazione SSM, non qualificati da un indirizzo sorgente. Di conseguenza, la semantica SSM non verrà più applicata all'indirizzo del gruppo multicast dal router.

A router compliant with this document would never generate an IGMPv1, IGMPv2, or MLDv1 query for an address in the SSM range; thus, this situation only occurs either if the router is not SSM-aware, or if the host and the router disagree about the SSM address range (for instance, if they have inconsistent manual configurations). Un router conforme a questo documento non genererebbe mai una query IGMPv1, IGMPv2 o MLDv1 per un indirizzo nell'intervallo SSM; quindi, questa situazione si verifica solo se il router non è SSM-aware o se l'host e il router non sono d'accordo sull'intervallo di indirizzi SSM (ad esempio, se hanno configurazioni manuali incoerenti).

A host SHOULD log an error if it receives an IGMPv1, IGMPv2, or MLDv1 query for an SSM address (MODIFICATION). Un host DOVREBBE registrare un errore se riceve una query IGMPv1, IGMPv2 o MLDv1 per un indirizzo SSM (MODIFICATION).

In order to mitigate this problem, it must be administratively assured that all routers on a given shared-medium network are compliant with this document and are in agreement about the SSM address range. Per mitigare questo problema, deve essere garantito amministrativamente che tutti i router su una determinata rete a mezzo condiviso siano conformi a questo documento e siano d'accordo sull'intervallo di indirizzi SSM.

2.2.4. IGMPv2 Leave and MLDv1 Done

IGMP Leave and MLD Done messages are not processed by hosts. IGMPv2 Leave and MLDv1 Done messages should not be sent for an SSM address, unless the sending host has reverted to older-version compatibility mode, with all the caveats described above. I messaggi IGMP Leave e MLD Done non vengono elaborati dagli host. I messaggi IGMPv2 Leave e MLDv1 Done non dovrebbero essere inviati per un indirizzo SSM, a meno che l'host mittente non sia tornato alla modalità di compatibilità con versioni precedenti, con tutte le avvertenze descritte sopra.

2.2.5. IGMPv2 and MLDv1 Group Specific Query

If a host receives an IGMPv2 or MLDv1 Group Specific Query for an address in any configured source-specific range, it should process the query normally, as per [IGMPv3, MLDv2], even if the group queried is a source-specific destination address. The transmission of such a query likely indicates either that the sending router is not compliant with this document or that it is not configured with the same SSM address range(s) as the receiving host. A host SHOULD log an error in this case (MODIFICATION). Se un host riceve una query specifica del gruppo IGMPv2 o MLDv1 per un indirizzo in qualsiasi intervallo specifico della sorgente configurato, dovrebbe elaborare la query normalmente, come da [IGMPv3, MLDv2], anche se il gruppo interrogato è un indirizzo di destinazione specifico della sorgente. La trasmissione di tale query indica probabilmente che il router mittente non è conforme a questo documento o che non è configurato con lo stesso intervallo/i di indirizzi SSM dell'host ricevente. Un host DOVREBBE registrare un errore in questo caso (MODIFICATION).

2.2.6. IGMPv3 and MLDv2 Group-Specific Query

If an SSM-aware host receives an SFGMP Group-Specific Query for an SSM address, it must respond with a report if the group matches the source-specific destination address of any of its subscribed source-specific channels, as specified in [IGMPv3, MLDv2]. Se un host SSM-aware riceve una query specifica del gruppo SFGMP per un indirizzo SSM, deve rispondere con un report se il gruppo corrisponde all'indirizzo di destinazione specifico della sorgente di uno qualsiasi dei suoi canali specifici della sorgente sottoscritti, come specificato in [IGMPv3, MLDv2].

The rationale for this is that, although in the current SFGMP protocol specifications a router would have no reason to send one, the semantics of such a query are well-defined in this range and future implementations may have reason to send such a query. Be liberal in what you accept. La logica è che, sebbene nelle attuali specifiche del protocollo SFGMP un router non avrebbe motivo di inviarne una, la semantica di tale query è ben definita in questo intervallo e le future implementazioni potrebbero avere motivo di inviare tale query. Sii liberale in ciò che accetti.

2.2.7. IGMPv3 and MLDv2 Group-and-Source-Specific Query

An SFGMP router typically uses a Group-and-Source-Specific Query to query an SSM channel that a host has requested to leave via a BLOCK_OLD_SOURCES record. A host must respond to a Group-and-Source-Specific Query for which the group and source in the query match any channel for which the host has a subscription, as required by [IGMPv3, MLDv2]. The use of an SSM address does not change this behavior. Un router SFGMP utilizza in genere una query specifica per gruppo e sorgente per interrogare un canale SSM che un host ha richiesto di lasciare tramite un record BLOCK_OLD_SOURCES. Un host deve rispondere a una query specifica per gruppo e sorgente per la quale il gruppo e la sorgente nella query corrispondono a qualsiasi canale per il quale l'host ha una sottoscrizione, come richiesto da [IGMPv3, MLDv2]. L'uso di un indirizzo SSM non modifica questo comportamento.

A host must be able to process a query with multiple sources listed per group, again as required by [IGMPv3, MLDv2]. The use of an SSM address does not modify the behavior of the SFGMPs in this regard. Un host deve essere in grado di elaborare una query con più sorgenti elencate per gruppo, sempre come richiesto da [IGMPv3, MLDv2]. L'uso di un indirizzo SSM non modifica il comportamento degli SFGMP a questo riguardo.