IGMP snooping consiste, pour un commutateur Ethernet, à optimiser la diffusion des trames de multidiffusion (multicast) en observant le trafic IGMP. Le nom de ce procédé vient de l'anglais to snoop, fouiner.

IGMP dans un réseau local : les hôtes indiquent au routeur requérant les groupes de multidiffusion auxquels ils souscrivent. Le commutateur observe le trafic IGMP.

Fonctionnement

modifier

Quand IGMP snooping n'est pas pris en charge, le commutateur traite les trames de multidiffusion (multicast), identifiées par le bit I/G mis à 1 dans l'adresse MAC de destination, comme des trames de diffusion (broadcast), c'est-à-dire en les répliquant sur tous les ports du VLAN à l'exception du port émetteur.

IGMP snooping (RFC 4541[1]) est une optimisation du fonctionnement des commutateurs Ethernet qui relaient des trames en multidiffusion.

IGMP snooping existe en deux versions, l'une est dite passive, car elle n'intervient pas dans le trafic IGMP, l'autre est dite proxy et filtre les requêtes IGMP.

S'il existe des hôtes en version 1 ou 2 dans le sous-réseau, la version passive ne peut pas fonctionner en raison de la suppression de rapport : un hôte qui observe un rapport en provenance d'un autre hôte pour un groupe auquel il souscrit n'enverra pas de rapport, le commutateur ne peut donc pas déterminer que celui-ci a souscrit à ce groupe[2].

Dans la version proxy, le commutateur identifie le requérant et ne diffuse pas les rapports entre les hôtes membres du groupe, forçant ceux-ci à s'identifier individuellement vis-à-vis du commutateur.

Quand le commutateur doit transmettre un paquet destiné à un groupe multicast, le commutateur ne le relaiera qu'aux membres du groupe dans le sous-réseau qu'il a pu identifier grâce aux rapports, ainsi qu'au requérant.

Pour ne pas interférer avec d'autres protocoles, le commutateur doit cependant s'abstenir de filtrer les paquets destinés aux adresses 224.0.0.0/24.

IGMP snooping sans requérant

modifier

S'il n'y a pas de requérant dans le sous-réseau et que IGMP snooping est activé, les rapports ne sont émis qu'au moment où un hôte rejoint ou quitte un groupe.

L'état correspondant arrive à expiration après quelques minutes, ce qui interrompt le flux multicast.

Certains commutateurs disposent de la fonction de requérant pour cette raison[2].

Interopérabilité avec IGMPv3

modifier

Des problèmes d'interopérabilité surviennent lorsqu'un commutateur IGMP snooping v2 coexiste avec des hôtes et routeurs requérants qui implémentent IGMP v3[3]. Dans ce cas, il est recommandé que le requérant soit forcé en v2[4].

Notes et références

modifier