IGMP “Internet Group Message Protocol” ist eine Erweiterung des Internet Protocols (IPv4). Mit IGMP ist IP-Multicasting (Gruppenkommunikation) möglich. IP-Multicasting ist die Verteilung von IP-Paketen mit einer Ziel-IP-Adresse an mehrere Stationen gleichzeitig. Das Gegenstück von IGMP von IPv4 ist bei IPv6 MLD (Multicast Listener Discovery).
Das Internet Group Message Protocol wird benutz um Hosts zu ermöglichen, die Teilnehmerliste für Multicast-Gruppentelegramme im Netz bekannt zu geben.
Router und Switches lernen beim Empfang von IGMP Membership Requests, welche der angeschlossenen Geräte zu einer Multicast-Gruppe gehören. Wird ein Multicast für eine Gruppe empfangen, wird die Nachricht nur an den entsprechenden Ports, die zu dieser Multicastgruppe gehören weitergeleitet, die anderen Ports sehen diese Nachrichten nicht.
Wenn keine Multicast-Filterung mit IGMP vorgenommen wird, werden die Multicast-Nachrichten auf allen Ports versendet. Dieses Multicast-Filtering ist umso wichtiger, je größer die Netzwerke sind. In großen Netzstrukturen mit kaskadierten Switches wird eine unnötig hohe Netzlast in der Domäne entstehen oder einige Geräte werden möglicherweise überfordert, wenn sie permanent auf Multicastverkehr reagieren müssen, der nicht für sie bestimmt ist.
Wird ein Gerät auf einen anderen Switchport gesteckt würde der Switch die Multicast-Nachrichten zum falschen Port senden und das Gerät würde keine Multicast-Nachrichten mehr erhalten. Um das zu verhindern, fordert beim IGMP Snooping (ein) zerntrales Gerät iterativ alle Endgeräte auf, ihre Multicast-Gruppenzugehörigkeit bekanntzugeben, der sogenannte IGMP Querier. Die Antworten auf Querier-Anfragen (IGMP Reports) veranlassen die Switche ihre Membership-Listen entsprechen zu aktualisieren.
Es gibt 3 IGMP-Versionen:
Version 1 (RFC 1112) kannte nur zwei Nachrichtentypen: Host Membership Query und Host Membership Report. Der Router kann mit IGMPv1 periodisch alle Hosts fragen, welche Gruppen sie denn empfangen möchten, und Hosts können als Antwort oder spontan pro Gruppe einen Report abschicken.
Bei Version 1 kann ein Host eine Gruppe nicht verlassen, er kann nur warten, bis der Router das nächste Mal eine Anfrage stellt und dann keinen Report mehr abschicken.
Version 2 (RFC 2236) fügt eine Nachricht dazu, mit der man Groups verlassen kann, und spezifiziert eine Methode, wie mehr als ein Multicast-Router in einem Ethernet koexistieren können.
Dabei wird der Router mit der kleineren IP-Nummer als Querier ausgewählt, d.h. fortan wird nur noch dieser Host Reports anfordern. Der andere Router übernimmt wieder,
wenn der erste eine Anfrage nicht rechtzeitig gestellt hat (und damit ausgefallen zu sein scheint).
Version 3 erlaubt die Angabe von ACLs zur Sender-Auswahl. Ein Host kann beim Beitritt zu einer Gruppe erklären, daß er nur Traffic von einem bestimmten Sender empfangen möchte (oder einer Liste von Sendern), oder er kann Sender explizit ausschließen.
LINKS:
RFC 1112 – Host Extensions for IP Multicasting
RFC 2236 – Internet Group Management Protocol, Version 2
RFC 3376 – Internet Group Management Protocol, Version 3
RFC 2933 – Internet Group Management Protocol MIB
IPv4 Multicast Address Space Registry
Multicast-Routing-Protokolle
Distance Vector Multicast Routing Protocol (DVMRP)
Multicast Open Shortest Path First (MOSPF)
Protocol Independent Multicast (PIM)