Zum Hauptinhalt springen

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. Dieser Abschnitt definiert den Begriff eines "SSM-fähigen" Hosts und beschreibt anschließend die API-Anforderungen und die SFGMP-Protokollanforderungen eines SSM-fähigen Hosts. Es ist wichtig zu beachten, dass SSM von jedem Host verwendet werden kann, der Quellfilter-APIs unterstützt und dessen Betriebssystem das entsprechende SFGMP unterstützt. Die in diesem Abschnitt beschriebenen SFGMP-Änderungen sorgen dafür, dass SSM auf einem SSM-fähigen Host besser funktioniert, sind jedoch keine strengen Voraussetzungen für die Verwendung von 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. Der IPv4-Adressbereich 232/8 ist derzeit von der IANA für SSM zugewiesen [IANA-ALLOCATION]. In IPv6 ist der Bereich FF3x::/32 (wobei 'x' ein gültiger IPv6-Multicast-Bereichswert ist) für SSM-Semantik reserviert [RFC3306], obwohl SSM-Zuweisungen heute auf FF3x::/96 beschränkt sind. ([SSM] enthält eine ausführlichere Diskussion dieses Themas.) Ein Host, der den SSM-Adressbereich kennt und in der Lage ist, SSM-Semantik darauf anzuwenden, wird als "SSM-fähiger" Host bezeichnet.

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. Ein Host oder Router kann so konfiguriert werden, dass er SSM-Semantik auf andere Adressen als die im IANA-zugewiesenen Bereich anwendet. Das GMP-Modul auf einem Host oder Router SOLLTE eine Konfigurationsoption haben, um den/die SSM-Adressbereich(e) festzulegen. Wenn diese Konfigurationsoption vorhanden ist, MUSS sie standardmäßig auf den von der IANA zugewiesenen SSM-Bereich eingestellt sein. Der Mechanismus zum Einstellen dieser Konfigurationsoption MUSS zumindest eine manuelle Konfiguration ermöglichen. Protokollmechanismen zum Einstellen dieser Option können in Zukunft definiert werden.

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. Wenn das Host-IP-Modul eines SSM-fähigen Hosts eine nicht quellenspezifische Anforderung zum Empfang von Multicast-Verkehr erhält, der an eine SSM-Zieladresse gesendet wird, SOLLTE es einen Fehler an die Anwendung zurückgeben, wie in [MSFAPI] (MODIFICATION) spezifiziert. Auf einem nicht SSM-fähigen Host erhält eine Anwendung, die die falsche API verwendet (z. B. "join(G)", "IPMulticastListen(G,EXCLUDE(S1))" für IGMPv3 oder "IPv6MulticastListen(G,EXCLUDE(S2))" für MLDv2), um die Zustellung von Paketen anzufordern, die an eine SSM-Adresse gesendet werden, den angeforderten Dienst nicht, da ein SSM-fähiger Router (der den Regeln dieses Dokuments folgt) die Verarbeitung der Anforderung verweigert und die Anwendung außer dem Nichterhalt des angeforderten Verkehrs keinen Hinweis erhält.

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: Dieser Abschnitt definiert das Verhalten des SFGMP-Protokollmoduls auf einem SSM-fähigen Host, einschließlich zweier Änderungen an den Protokollen, wie in [IGMPv3, MLDv2] beschrieben. Er enthält auch eine Reihe von Klarstellungen zu Protokolloperationen. Dabei dokumentiert er das Verhalten eines SSM-fähigen Hosts in Bezug auf das Senden und Empfangen der folgenden GMP-Nachrichtentypen:

  • 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). Ein SSM-fähiger Host, der gemäß [IGMPv3, MLDv2] arbeitet, könnte einen IGMPv1-, IGMPv2- oder MLDv1-Bericht für eine SSM-Adresse senden, wenn er im "Kompatibilitätsmodus für ältere Versionen" arbeitet. Dies ist ein außergewöhnlicher (Fehler-)Zustand, der darauf hinweist, dass der/die Router die für SSM erforderliche SFGMP-Unterstützung nicht bieten können, und es wird ein Fehler protokolliert, wenn der Host in den Kompatibilitätsmodus für eine SSM-Adresse wechselt, wie unten beschrieben. In dieser Situation ist es wahrscheinlich, dass Verkehr, der an einen Kanal (S,G) gesendet wird, nicht an einen empfangenden Host zugestellt wird, der den Empfang von Kanal (S,G) angefordert hat.

[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] und [MLDv2] legen fest, dass ein Host zulassen KANN, dass ein Bericht einer älteren Version seinen eigenen IGMPv3- oder MLDv2-Mitgliedschaftsdatensatz unterdrückt. Ein SSM-fähiger Host DARF jedoch NICHT zulassen, dass sein Bericht in dieser Situation unterdrückt wird (MODIFICATION). Das Unterdrücken von Berichten in diesem Szenario würde einem Angreifer die Möglichkeit geben, anderen Hosts auf dem Link den SSM-Dienst zu verweigern.

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. Eine Host-Implementierung kann mehr als einen SSM-Kanal in einem einzigen Bericht melden, indem entweder mehrere Quellen in einen Gruppendatensatz aufgenommen werden oder indem mehrere Gruppendatensätze aufgenommen werden.

A Group Record for a source-specific destination address may (under normal operation) be any of the following types: Ein Gruppendatensatz für eine quellenspezifische Zieladresse kann (im Normalbetrieb) einer der folgenden Typen sein:

  • MODE_IS_INCLUDE as part of a Current-State Record

  • MODE_IS_INCLUDE als Teil eines Current-State Record

  • ALLOW_NEW_SOURCES as part of a State-Change Record

  • ALLOW_NEW_SOURCES als Teil eines State-Change Record

  • BLOCK_OLD_SOURCES as part of a State-Change Record

  • BLOCK_OLD_SOURCES als Teil eines 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. Ein Bericht kann sowohl SSM-Zieladressen als auch nicht quellenspezifische, d. h. Any-Source Multicast (ASM)-Zieladressen, in derselben Nachricht enthalten.

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. Zusätzlich kann in einigen Fällen ein CHANGE_TO_INCLUDE_MODE-Datensatz von einem Host gesendet werden, beispielsweise wenn der SSM-Adressbereich durch Konfiguration geändert wird. Ein Router sollte einen solchen Datensatz gemäß den normalen SFGMP-Regeln verarbeiten.

An SSM-aware host SHOULD NOT send any of the following record types for an SSM address. Ein SSM-fähiger Host SOLLTE KEINEN der folgenden Datensatztypen für eine SSM-Adresse senden.

  • MODE_IS_EXCLUDE as part of a Current-State Record

  • MODE_IS_EXCLUDE als Teil eines Current-State Record

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

  • CHANGE_TO_EXCLUDE_MODE als Teil eines 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. Dies ist eine MODIFIKATION zu [IGMPv3, MLDv2], die eine Einschränkung für deren Verwendung für SSM-Zieladressen auferlegt. Der Grund dafür ist, dass der EXCLUDE-Modus nicht für SSM-Adressen gilt und ein SSM-fähiger Router MODE_IS_EXCLUDE- und CHANGE_TO_EXCLUDE_MODE-Anforderungen im SSM-Bereich ignoriert, wie unten beschrieben.

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. Wenn eine IGMPv1-Abfrage oder eine allgemeine IGMPv2- oder MLDv1-Abfrage empfangen wird, erfordern die SFGMP-Protokollspezifikationen, dass der Host auf dieser Schnittstelle in den älteren Betriebsmodus (IGMPv1, IGMPv2 oder MLDv1) zurückkehrt. Wenn dies geschieht, hört der Host auf, quellenspezifische Abonnements auf dieser Schnittstelle zu melden, und beginnt mit der Verwendung von IGMPv1, IGMPv2 oder MLDv1, um Interesse an allen SSM-Zieladressen zu melden, ohne durch eine Quelladresse qualifiziert zu sein. Infolgedessen wird die SSM-Semantik vom Router nicht mehr auf die Multicast-Gruppenadresse angewendet.

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). Ein Router, der diesem Dokument entspricht, würde niemals eine IGMPv1-, IGMPv2- oder MLDv1-Abfrage für eine Adresse im SSM-Bereich generieren; daher tritt diese Situation nur auf, wenn der Router nicht SSM-fähig ist oder wenn der Host und der Router sich über den SSM-Adressbereich nicht einig sind (z. B. wenn sie inkonsistente manuelle Konfigurationen haben).

A host SHOULD log an error if it receives an IGMPv1, IGMPv2, or MLDv1 query for an SSM address (MODIFICATION). Ein Host SOLLTE einen Fehler protokollieren, wenn er eine IGMPv1-, IGMPv2- oder MLDv1-Abfrage für eine SSM-Adresse empfängt (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. Um dieses Problem zu mildern, muss administrativ sichergestellt werden, dass alle Router in einem gegebenen Shared-Medium-Netzwerk diesem Dokument entsprechen und sich über den SSM-Adressbereich einig sind.

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. IGMP Leave- und MLD Done-Nachrichten werden von Hosts nicht verarbeitet. IGMPv2 Leave- und MLDv1 Done-Nachrichten sollten nicht für eine SSM-Adresse gesendet werden, es sei denn, der sendende Host ist in den Kompatibilitätsmodus für ältere Versionen zurückgekehrt, mit allen oben beschriebenen Einschränkungen.

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). Wenn ein Host eine gruppenspezifische IGMPv2- oder MLDv1-Abfrage für eine Adresse in einem konfigurierten quellenspezifischen Bereich empfängt, sollte er die Abfrage normal gemäß [IGMPv3, MLDv2] verarbeiten, auch wenn die abgefragte Gruppe eine quellenspezifische Zieladresse ist. Die Übertragung einer solchen Abfrage deutet wahrscheinlich darauf hin, dass der sendende Router nicht mit diesem Dokument konform ist oder dass er nicht mit denselben SSM-Adressbereichen wie der empfangende Host konfiguriert ist. Ein Host SOLLTE in diesem Fall einen Fehler protokollieren (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]. Wenn ein SSM-fähiger Host eine gruppenspezifische SFGMP-Abfrage für eine SSM-Adresse empfängt, muss er mit einem Bericht antworten, wenn die Gruppe mit der quellenspezifischen Zieladresse eines seiner abonnierten quellenspezifischen Kanäle übereinstimmt, wie in [IGMPv3, MLDv2] spezifiziert.

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. Der Grund dafür ist, dass, obwohl in den aktuellen SFGMP-Protokollspezifikationen ein Router keinen Grund hätte, eine solche Abfrage zu senden, die Semantik einer solchen Abfrage in diesem Bereich gut definiert ist und zukünftige Implementierungen möglicherweise einen Grund haben, eine solche Abfrage zu senden. Seien Sie liberal in dem, was Sie akzeptieren.

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. Ein SFGMP-Router verwendet typischerweise eine gruppen- und quellenspezifische Abfrage, um einen SSM-Kanal abzufragen, den ein Host über einen BLOCK_OLD_SOURCES-Datensatz verlassen wollte. Ein Host muss auf eine gruppen- und quellenspezifische Abfrage antworten, bei der Gruppe und Quelle in der Abfrage mit einem Kanal übereinstimmen, für den der Host ein Abonnement hat, wie von [IGMPv3, MLDv2] gefordert. Die Verwendung einer SSM-Adresse ändert dieses Verhalten nicht.

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. Ein Host muss in der Lage sein, eine Abfrage mit mehreren pro Gruppe aufgelisteten Quellen zu verarbeiten, wie wiederum von [IGMPv3, MLDv2] gefordert. Die Verwendung einer SSM-Adresse ändert das Verhalten der SFGMPs in dieser Hinsicht nicht.