Aller au contenu principal

6. Protocole pour les routeurs multicast

Le but d'IGMP est de permettre à chaque routeur multicast d'apprendre, pour chacun de ses réseaux directement attachés, quelles adresses multicast ont des auditeurs sur ce réseau. IGMPv3 permet également à un routeur multicast d'apprendre quelles sources intéressent les auditeurs.

6.1. Conditions pour l'élection du Querier

IGMPv3 s'accorde avec IGMPv2 sur le fait qu'il ne devrait y avoir qu'un seul Querier par réseau. Cependant, les Queriers IGMPv3 et IGMPv2 peuvent coexister sur le même réseau. Le protocole d'élection est le même que dans IGMPv2:

  1. Initialement, chaque routeur multicast démarre en tant que Querier sur chacun de ses réseaux attachés.
  2. Si un routeur multicast entend un message Query d'un routeur avec une adresse IP inférieure, il doit devenir un Non-Querier sur ce réseau.
  3. Si un routeur multicast n'a pas entendu de message Query d'un routeur avec une adresse IP inférieure pendant [Other Querier Present Interval], il reprend le rôle de Querier.

6.2. Action du Querier lors de la réception d'une Query

Lorsqu'un Querier reçoit un message Query, il vérifie l'adresse IP source de la Query.

  1. Si l'adresse IP source est inférieure à sa propre adresse IP, le routeur devient un Non-Querier.
  2. Si l'adresse IP source est supérieure à sa propre adresse IP, le routeur continue d'être le Querier.
  3. Si l'adresse IP source est égale à sa propre adresse IP, la Query est ignorée (c'est une réflexion ou une boucle).

6.3. Envoi de Queries

Le Querier envoie périodiquement des General Queries pour solliciter des informations d'appartenance. Il envoie également des Group-Specific ou Group-and-Source-Specific Queries lorsqu'il reçoit certains types de State Change Reports.

6.3.1. General Queries

Le Querier envoie périodiquement des General Queries à l'adresse multicast all-systems (224.0.0.1). L'[Query Interval] par défaut est de 125 secondes.

Les General Queries sont utilisées pour rafraîchir les informations d'appartenance pour tous les groupes et sources.

6.3.2. Group-Specific Queries

Lorsque le Querier reçoit un State Change Report indiquant qu'un système a quitté un groupe (par exemple, un changement de mode de filtre de EXCLUDE à INCLUDE, ou un changement de liste source bloquant une source), il envoie une Group-Specific Query à l'adresse du groupe.

Cette Query est utilisée pour déterminer s'il reste des systèmes intéressés par le groupe.

6.3.3. Group-and-Source-Specific Queries

Lorsque le Querier reçoit un State Change Report indiquant qu'un système n'est plus intéressé par des sources spécifiques pour un groupe (par exemple, bloquer des sources spécifiques), il envoie une Group-and-Source-Specific Query.

Cette Query est utilisée pour déterminer s'il reste des systèmes intéressés par ces sources spécifiques.

6.4. Réception de Reports

Les routeurs multicast enregistrent l'état de réception pour chaque groupe et source en fonction des Reports qu'ils reçoivent. L'état est maintenu par interface.

6.4.1. Réception de Current State Records

Lorsqu'un routeur reçoit un Current State Record, il met à jour ses minuteurs de groupe/source.

  • Si l'enregistrement est MODE_IS_INCLUDE, le routeur rafraîchit les minuteurs pour les sources listées.
  • Si l'enregistrement est MODE_IS_EXCLUDE, le routeur rafraîchit le minuteur de groupe et les minuteurs pour les sources exclues (le cas échéant).

6.4.2. Réception de Filter-Mode-Change Records

Lorsqu'un routeur reçoit un Filter-Mode-Change Record, il met à jour le mode de filtre et les minuteurs.

  • CHANGE_TO_INCLUDE_MODE: Le routeur passe en mode INCLUDE s'il ne l'était pas déjà, et met à jour les minuteurs source.
  • CHANGE_TO_EXCLUDE_MODE: Le routeur passe en mode EXCLUDE et met à jour le minuteur de groupe.

6.4.3. Réception de Source-List-Change Records

Lorsqu'un routeur reçoit un Source-List-Change Record, il met à jour les minuteurs source.

  • ALLOW_NEW_SOURCES: Le routeur ajoute les nouvelles sources à sa liste et démarre leurs minuteurs.
  • BLOCK_OLD_SOURCES: Le routeur peut interroger pour voir si d'autres systèmes ont encore besoin de ces sources avant de les supprimer.

6.5. Commutation du mode de filtre du routeur

Le mode de filtre du routeur pour un groupe passe entre INCLUDE et EXCLUDE en fonction de l'état du minuteur de groupe et des minuteurs source.

  • Si le minuteur de groupe est en cours d'exécution, le mode de filtre est EXCLUDE.
  • Si le minuteur de groupe expire, le mode de filtre passe à INCLUDE.

6.6. Action lors de la réception d'un message Group Leave (IGMPv2)

Si un routeur reçoit un message IGMPv2 Leave Group, il agit comme s'il avait reçu un State Change Report indiquant un changement vers le mode INCLUDE (quitter effectivement le groupe) pour le groupe spécifié dans le message Leave. Cela permet aux routeurs IGMPv3 d'interopérer avec les hôtes IGMPv2.