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. Cette section définit la notion d'un hôte "compatible SSM", puis décrit les exigences de l'API et les exigences du protocole SFGMP d'un hôte compatible SSM. Il est important de noter que SSM peut être utilisé par tout hôte qui prend en charge les API de filtrage de source et dont le système d'exploitation prend en charge le SFGMP approprié. Les modifications SFGMP décrites dans cette section font que SSM fonctionne mieux sur un hôte compatible SSM, mais elles ne sont pas des conditions préalables strictes à l'utilisation de 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. La plage d'adresses IPv4 232/8 est actuellement allouée pour SSM par l'IANA [IANA-ALLOCATION]. En IPv6, la plage FF3x::/32 (où 'x' est une valeur de portée de multidiffusion IPv6 valide) est réservée à la sémantique SSM [RFC3306], bien qu'aujourd'hui les allocations SSM soient limitées à FF3x::/96. ([SSM] a une discussion plus approfondie sur ce sujet.) Un hôte qui connaît la plage d'adresses SSM et est capable de lui appliquer la sémantique SSM est décrit comme un hôte "compatible SSM".
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 hôte ou un routeur peut être configuré pour appliquer la sémantique SSM à des adresses autres que celles de la plage allouée par l'IANA. Le module GMP sur un hôte ou un routeur DEVRAIT avoir une option de configuration pour définir la ou les plages d'adresses SSM. Si cette option de configuration existe, elle DOIT par défaut être la plage SSM allouée par l'IANA. Le mécanisme de définition de cette option de configuration DOIT au moins permettre une configuration manuelle. Des mécanismes de protocole pour définir cette option pourront être définis à l'avenir.
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. Si le module IP hôte d'un hôte compatible SSM reçoit une demande non spécifique à la source pour recevoir du trafic de multidiffusion envoyé à une adresse de destination SSM, il DEVRAIT renvoyer une erreur à l'application, comme spécifié dans [MSFAPI] (MODIFICATION). Sur un hôte non compatible SSM, une application qui utilise la mauvaise API (par exemple, "join(G)", "IPMulticastListen(G,EXCLUDE(S1))" pour IGMPv3, ou "IPv6MulticastListen(G,EXCLUDE(S2))" pour MLDv2) pour demander la livraison de paquets envoyés à une adresse SSM ne recevra pas le service demandé, car un routeur compatible SSM (suivant les règles de ce document) refusera de traiter la demande, et l'application ne recevra aucune indication autre qu'un échec de réception du trafic demandé.
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: Cette section définit le comportement du module de protocole SFGMP sur un hôte compatible SSM, y compris deux modifications aux protocoles décrites dans [IGMPv3, MLDv2]. Elle comprend également un certain nombre de clarifications sur les opérations du protocole. Ce faisant, elle documente le comportement d'un hôte compatible SSM en ce qui concerne l'envoi et la réception des types de messages GMP suivants :
- 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 hôte compatible SSM fonctionnant selon [IGMPv3, MLDv2] pourrait envoyer un rapport IGMPv1, IGMPv2 ou MLDv1 pour une adresse SSM lorsqu'il fonctionne en "mode de compatibilité avec une version plus ancienne". Il s'agit d'une condition exceptionnelle (erreur), indiquant que le(s) routeur(s) ne peuvent pas fournir le support SFGMP nécessaire pour SSM, et une erreur est enregistrée lorsque l'hôte entre en mode de compatibilité pour une adresse SSM, comme décrit ci-dessous. Dans cette situation, il est probable que le trafic envoyé à un canal (S,G) ne sera pas livré à un hôte récepteur qui a demandé à recevoir le canal (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] et [MLDv2] spécifient qu'un hôte PEUT permettre à un rapport de version plus ancienne de supprimer son propre enregistrement d'appartenance IGMPv3 ou MLDv2. Un hôte compatible SSM, cependant, NE DOIT PAS permettre que son rapport soit supprimé dans cette situation (MODIFICATION). La suppression de rapports dans ce scénario fournirait une voie à un attaquant pour refuser le service SSM à d'autres hôtes sur le lien.
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. Une implémentation hôte peut signaler plus d'un canal SSM dans un seul rapport, soit en incluant plusieurs sources dans un enregistrement de groupe, soit en incluant plusieurs enregistrements de groupe.
A Group Record for a source-specific destination address may (under normal operation) be any of the following types: Un enregistrement de groupe pour une adresse de destination spécifique à la source peut (en fonctionnement normal) être de l'un des types suivants :
-
MODE_IS_INCLUDE as part of a Current-State Record
-
MODE_IS_INCLUDE dans le cadre d'un enregistrement d'état actuel
-
ALLOW_NEW_SOURCES as part of a State-Change Record
-
ALLOW_NEW_SOURCES dans le cadre d'un enregistrement de changement d'état
-
BLOCK_OLD_SOURCES as part of a State-Change Record
-
BLOCK_OLD_SOURCES dans le cadre d'un enregistrement de changement d'état
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 rapport peut inclure à la fois des adresses de destination SSM et des adresses de destination non spécifiques à la source, c'est-à-dire Any-Source Multicast (ASM), dans le même message.
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. De plus, un enregistrement CHANGE_TO_INCLUDE_MODE peut être envoyé par un hôte dans certains cas, par exemple, lorsque la plage d'adresses SSM est modifiée par configuration. Un routeur devrait traiter un tel enregistrement selon les règles SFGMP normales.
An SSM-aware host SHOULD NOT send any of the following record types for an SSM address. Un hôte compatible SSM NE DEVRAIT PAS envoyer l'un des types d'enregistrement suivants pour une adresse SSM.
-
MODE_IS_EXCLUDE as part of a Current-State Record
-
MODE_IS_EXCLUDE dans le cadre d'un enregistrement d'état actuel
-
CHANGE_TO_EXCLUDE_MODE as part of a Filter-Mode-Change Record
-
CHANGE_TO_EXCLUDE_MODE dans le cadre d'un enregistrement de changement de mode de filtrage
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. Il s'agit d'une MODIFICATION de [IGMPv3, MLDv2], imposant une restriction à son utilisation pour les adresses de destination SSM. La raison est que le mode EXCLUDE ne s'applique pas aux adresses SSM, et un routeur compatible SSM ignorera les demandes MODE_IS_EXCLUDE et CHANGE_TO_EXCLUDE_MODE dans la plage SSM, comme décrit ci-dessous.
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. Si une requête IGMPv1, ou une requête générale IGMPv2 ou MLDv1 est reçue, les spécifications du protocole SFGMP exigent que l'hôte revienne au mode de fonctionnement plus ancien (IGMPv1, IGMPv2 ou MLDv1) sur cette interface. Si cela se produit, l'hôte cessera de signaler les abonnements spécifiques à la source sur cette interface et commencera à utiliser IGMPv1, IGMPv2 ou MLDv1 pour signaler son intérêt pour toutes les adresses de destination SSM, non qualifiées par une adresse source. Par conséquent, la sémantique SSM ne sera plus appliquée à l'adresse de groupe de multidiffusion par le routeur.
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 routeur conforme à ce document ne générerait jamais de requête IGMPv1, IGMPv2 ou MLDv1 pour une adresse dans la plage SSM ; ainsi, cette situation ne se produit que si le routeur n'est pas compatible SSM, ou si l'hôte et le routeur sont en désaccord sur la plage d'adresses SSM (par exemple, s'ils ont des configurations manuelles incohérentes).
A host SHOULD log an error if it receives an IGMPv1, IGMPv2, or MLDv1 query for an SSM address (MODIFICATION). Un hôte DEVRAIT enregistrer une erreur s'il reçoit une requête IGMPv1, IGMPv2 ou MLDv1 pour une adresse 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. Afin d'atténuer ce problème, il doit être administrativement assuré que tous les routeurs sur un réseau à support partagé donné sont conformes à ce document et sont d'accord sur la plage d'adresses 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. Les messages IGMP Leave et MLD Done ne sont pas traités par les hôtes. Les messages IGMPv2 Leave et MLDv1 Done ne devraient pas être envoyés pour une adresse SSM, à moins que l'hôte émetteur ne soit revenu au mode de compatibilité avec une version plus ancienne, avec toutes les mises en garde décrites ci-dessus.
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). Si un hôte reçoit une requête spécifique au groupe IGMPv2 ou MLDv1 pour une adresse dans une plage spécifique à la source configurée, il devrait traiter la requête normalement, selon [IGMPv3, MLDv2], même si le groupe interrogé est une adresse de destination spécifique à la source. La transmission d'une telle requête indique probablement soit que le routeur émetteur n'est pas conforme à ce document, soit qu'il n'est pas configuré avec la ou les mêmes plages d'adresses SSM que l'hôte récepteur. Un hôte DEVRAIT enregistrer une erreur dans ce cas (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]. Si un hôte compatible SSM reçoit une requête SFGMP spécifique au groupe pour une adresse SSM, il doit répondre par un rapport si le groupe correspond à l'adresse de destination spécifique à la source de l'un de ses canaux spécifiques à la source abonnés, comme spécifié dans [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 raison en est que, bien que dans les spécifications actuelles du protocole SFGMP, un routeur n'aurait aucune raison d'en envoyer une, la sémantique d'une telle requête est bien définie dans cette plage et les futures implémentations pourraient avoir des raisons d'envoyer une telle requête. Soyez libéral dans ce que vous acceptez.
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 routeur SFGMP utilise généralement une requête spécifique au groupe et à la source pour interroger un canal SSM qu'un hôte a demandé de quitter via un enregistrement BLOCK_OLD_SOURCES. Un hôte doit répondre à une requête spécifique au groupe et à la source pour laquelle le groupe et la source dans la requête correspondent à n'importe quel canal pour lequel l'hôte a un abonnement, comme requis par [IGMPv3, MLDv2]. L'utilisation d'une adresse SSM ne change pas ce comportement.
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 hôte doit être capable de traiter une requête avec plusieurs sources répertoriées par groupe, comme l'exigent également [IGMPv3, MLDv2]. L'utilisation d'une adresse SSM ne modifie pas le comportement des SFGMP à cet égard.