Zum Hauptinhalt springen

7. Interoperation mit IGMPv1 und IGMPv2

IGMPv3-Hosts und -Router interoperieren mit Hosts und Routern, die noch nicht auf IGMPv3 aktualisiert wurden. Diese Kompatibilität wird durch die periodischen Membership Query-Nachrichten aufrechterhalten, die vom Querier multicast werden, und durch die Version 1- und Version 2-Membership Report-Nachrichten, die von älteren Hosts multicast werden.

7.1. IGMPv3-Host-Betrieb

Das Verhalten eines IGMPv3-Hosts hängt davon ab, ob der Querier im Netzwerk IGMPv3, IGMPv2 oder IGMPv1 spricht.

7.1.1. Query-Versionsunterscheidungen

Die IGMP-Version einer Membership Query-Nachricht wird wie folgt bestimmt:

  1. IGMPv1 Query: Länge = 8 Oktette, Max Resp Code = 0.
  2. IGMPv2 Query: Länge = 8 Oktette, Max Resp Code > 0.
  3. IGMPv3 Query: Länge >= 12 Oktette.

7.1.2. Verhalten in Anwesenheit älterer Querier

Ein IGMPv3-Host kann in ein Netzwerk platziert werden, in dem der Querier noch nicht auf IGMPv3 aktualisiert wurde. Der Host muss diese Möglichkeit berücksichtigen.

  • IGMPv1 Querier Present: Wenn ein IGMPv3-Host eine IGMPv1 Query empfängt, muss er mit IGMPv1 Reports antworten. Quellfilterung wird nicht unterstützt.
  • IGMPv2 Querier Present: Wenn ein IGMPv3-Host eine IGMPv2 Query empfängt, muss er mit IGMPv2 Reports antworten. Quellfilterung wird nicht unterstützt.
  • IGMPv3 Querier Present: Wenn ein IGMPv3-Host eine IGMPv3 Query empfängt, antwortet er mit IGMPv3 Reports. Quellfilterung wird unterstützt.

Der Host verwaltet eine Kompatibilitätsmodus-Variable für jede Schnittstelle, die aktualisiert wird, wann immer eine Query empfangen wird. Wenn eine ältere Query empfangen wird, wechselt der Host in den entsprechenden Kompatibilitätsmodus und setzt einen Timer. Wenn der Timer abläuft, wechselt der Host zurück in den IGMPv3-Modus.

7.2. IGMPv3-Router-Betrieb

Das Verhalten eines IGMPv3-Routers hängt davon ab, ob ältere Hosts oder Router im Netzwerk vorhanden sind.

7.2.1. Vorhandensein älterer Hosts

Ein IGMPv3-Router kann IGMPv1- oder IGMPv2-Reports von älteren Hosts empfangen.

  • IGMPv1 Report Received: Der Router verhält sich so, als hätte er einen IGMPv3 IS_EX({}) Report für die Gruppe erhalten. Er muss auch alle Leave Group-Nachrichten für diese Gruppe ignorieren (da IGMPv1 keine Leave-Nachrichten hat).
  • IGMPv2 Report Received: Der Router verhält sich so, als hätte er einen IGMPv3 IS_EX({}) Report für die Gruppe erhalten.

Wenn ältere Hosts vorhanden sind, muss der Router möglicherweise die IGMPv3-spezifische Verarbeitung (wie quellenspezifische Queries) für die betroffenen Gruppen unterdrücken, um die Kompatibilität sicherzustellen.

7.2.2. Vorhandensein älterer Router

Wenn sich ein IGMPv3-Router in einem Netzwerk mit älteren Routern befindet, bestimmt der Querier-Wahlprozess (Abschnitt 6.1), welcher Router der Querier wird.

  • Wenn ein IGMPv1-Router vorhanden ist und der Querier wird, müssen alle Router (einschließlich IGMPv3-Router) als IGMPv1-Router agieren.
  • Wenn ein IGMPv2-Router vorhanden ist und der Querier wird, müssen alle Router als IGMPv2-Router agieren.
  • Wenn ein IGMPv3-Router der Querier wird, sendet er IGMPv3-Queries. Ältere Router sehen diese als ungültige IGMPv1/v2-Queries (oder handhaben sie, wenn sie teilweise kompatibel sind), aber im Allgemeinen sollten IGMPv3-Router so konfiguriert werden, dass sie im IGMPv1- oder IGMPv2-Modus laufen, wenn sie mit älteren Routern koexistieren müssen, die IGMPv3-Pakete nicht handhaben können.

7.3. Mischung von Version 1-, 2- und 3-Hosts

Es ist möglich, eine Mischung aus IGMPv1-, IGMPv2- und IGMPv3-Hosts im selben Netzwerk zu haben.

  • Wenn der Querier IGMPv3 ist, sendet er IGMPv3-Queries.
  • IGMPv3-Hosts antworten mit IGMPv3-Reports.
  • IGMPv2-Hosts antworten mit IGMPv2-Reports.
  • IGMPv1-Hosts antworten mit IGMPv1-Reports.

Der IGMPv3-Router muss alle diese Report-Typen handhaben. Für Gruppen mit IGMPv1- oder IGMPv2-Mitgliedern muss der Router die Gruppe effektiv als im EXCLUDE-Modus mit einer leeren Quellliste behandeln (d.h. "sende mir alles für diese Gruppe"), da ältere Hosts keine Quellfilter angeben können.