Outils pour utilisateurs

Outils du site


cours:informatique:fun_mooc:objectif_ipv6_mines_telecom:150_adresses_multicast

Les adresses multicast

Les adresses multicast, également appelées adresses de groupes, permettent de communiquer avec un ensemble d'interfaces. Le datagramme émis avec une destination multicast sera réceptionné par toutes les interfaces abonnées au groupe de multicast.

C'est une manière efficace de s'adresser à un ensemble de machines. Une communication multicast est une communication dans laquelle un même paquet de données peut être envoyé à un groupe de récepteurs. Dans le modèle IPv6 une station peut potentiellement émettre un paquet multicast vers n'importe quel groupe. Le multicast évite la duplication des datagrammes au niveau de la source et minimise l'utilisation de la bande passante au niveau du réseau. Le service de multicast est insensible à l'accroissement du nombre de membres et à leur localisation. Les usages sont multiples et en pleine expension: distribution logicielle, visioconférences et enseignement à distance, télé et radio diffusion etc.

Pour le multicast on distingue 2 modèles de communication:

  • ASM pour Any-Source Multicast dans lequel un récepteur s'abonne à un groupe et reçoit les données émises par n'importe quelle source de ce groupe. Ce modèle convient par exemple pour une visioconférence où les participants ne sont pas connus à l'avance.
  • SSM pour Source Specefic Multicast, dans ce cas les sources sont déterminées à l'avance. Les récepteurs s’abonnent à un groupe et un ensemble de sources. Se modèle s'applique par exemple à la diffusion radio.

Structure de l'adresse multicast

Les adresses multicast sont dérivées du préfixe ff00::/8 (tous les bits à 1 sur l'octet de poids fort).

8 bits 4 bits 4 bits 112 bits
ff 0RPT portée Identifiant de groupe

Un champ drapeaux de 4 bits (0RPT):

  • 0: réservé, non attribué
  • R, P: définissent différents types d'adresses multicast définies par la suite
  • T (temporaire) Vaut 1 si adresse est temporaire. Vaut 0 si l' adresse est permanente et gérée/allouée par l'IANA. Lorsque le multicast sera déployé à grande échelle, certains organismes pourraient avoir des émissions permanentes.

Le champ de portée sur 4 bits (scope) permet de limiter l'étendue de diffusion de l'adresse de multicast ipv6. Cela permet de le confinement des datagrammes dans une zone déterminée:

hexa étendue
0x0 Réservé
0x1 interface locale
0x2 lien local
0x3 Realm-local
0x4 Admin-local
0x5 site local
0x8 organisation locale
0xE portée globale
0xF Réservé

Lorsque l'adresse multicast est permanente (gérée par l'IANA) avec le bit T=0 elle a un sens quelle que soit sont étendue: sont identifiant de groupe est réservé pour toutes les portées. Dans l'exemple ci dessous l'identifiant du groupe des serveurs de temps (0x101) est définit pour toutes les portées.

Adresse multicast Population concernée
ff01::101 Tous les serveurs NTP de l'interface
ff02::101 Tous les serveurs NTP du lien
ff05::101 Tous les serveurs NTP du site
ff02::101 Tous les serveurs NTP de l'Internet

Mais tous les services n'ont pas d'identifiant de groupe valide pour toutes les portées. Certains identifiants de groupes multicast prédéfinis ne sont valides que sur un nombre limité de portées.

  • L'identifiant de groupe multicast 0x0 est réservé et ne peut pas être utilisé (les adresses ff0x:: sont invalides quelque soit la portée x)
  • L'identifiant de groupe multicast 0x1 concerne tous les nœuds mais sa portée est limité aux interfaces et au lien (ff01::1 pour toutes les interfaces du noeud et ff02::1 pour tous les nœuds du lien local). On ne peut donc pas diffuser sur l'ensemble des noeuds de l'Internet: précaution nécessaire pour éviter les attaques DoS massives et globales.
  • L'identifiant de groupe multicast 0x2 concerne l'ensemble des routeurs (ff01::2 pour tous les routeurs du noeud; ff02::2 tous les routeurs du lien local; ff05::2 tous les routeurs du site. Là encore, on ne peut donc pas diffuser sur l'ensemble des routeurs de l'internet.

Adresse de multicast sollicité

L'adresse de multicast sollicité est un type d'adresse multicast prédéfini. IPv6 interdit l'utilisation de la diffusion générale (broadcast) lorsque le multicast est disponible. Ainsi les protocoles de découverte du voisinage faisant la correspondance entre adresses IPv6 et adresses MAC doivent utiliser une adresse de multicast. Pour être plus efficace, au lieu d'utiliser l'adresse ff02::1 qui correspond a l'adresse de tous les équipements sur le lien local; l'utilisation des adresses sollicités permet de réduire considérablement le nombre d'équipements qui recevront la requête de découverte de voisins.

L'adresse multicast sollicité est construite par un préfixe ff02::1:ff00:0/104 appliqué devant les 24 bits de poids faible de l'adresse unicast ou anycat du nœud. Une équipement, à partir de chacune de ses adresses unicast construit une adresse de multicast sollicité et écoute les paquets émis pour cette adresse.

Ces adresses multicast sollicités sont utilisés par les protocoles de détection d'adresses dupliquées et de voisins qui sont abordés dans le wiki [todo link].

Plusieurs équipement sur le lien peuvent avoir la même adresse de multicast sollicité, mais dans la pratique, la probabilité de trouver sur un même lien physique deux équipements avec les 3 derniers octets d'adresse physique identique est faible. Cela permet donc de limiter le nombre d'équipements qui traiteront la requête de sollicitation de voisins.

Correspondance entre adresses multicast et adresses de niveau 2

Le RFC-3307 précise la correspondance entre les adresses IPv6 multicast et les adresses de niveau 2. Ainsi sur un réseau Ethernet de niveau 2, le datagramme IPv6 de multicast est encapsulé dans une trame Ethernet. L'adresse matérielle MAC de destination de la trame Ethernet est déduite à partir de l'adresse multicast de destination en concaténant le préfixe réservé MAC 33:33 aux 4 derniers octets de l'adresse de multicast IPv6.

Adresses de multicast temporaire

Une adresse de multicast temporaire à son drapeau T=1. A l'inverse des adresses multicast permanentes, une adresse multicast temporaire n'a de signification que dans la portée donnée.

Ainsi une adresse multicast ff15::999 utilisée par un site (scope 0x5) n'as aucune relation avec l'adresse multicast identique ff15::999 utilisée par un autre site.

Il existe plusieurs types d'adresses multicast temporaires:

  • les adresses multicast générales;
  • les adresses multicast dérivées d'un préfixe unicast IPv6;
  • les adresses multicast temporaires embarquant un point de rendez-vous;
  • les adresses multicast à source spécifique.

Adresses multicast temporaires générales

Les bits (0,R,P) du champ drapeaux valent 0 et le bit T=1. Il n'y a pas de recommandation particulière pour l'utilisation de ces adresses. Un scénario d'utilisation peut être une visioconférence ponctuelle.

Le RFC-3306 définit une méthode pour dériver une adresse multicast IPv6 à partir d'un préfixe unicast:

  • Les bits du champs drapeaux valent 0=0,R=0,P=1,T=1)
  • Le champ scope est initialisé selon les besoins
  • Le champ res (reservé) sur 8 bits est à 0
  • Le champ Plen (Prefix lenth) sur 8 bits donne la taille du préfixe unicast utilisé pour en dériver une adresse multicast.
  • Le champ préfixe contient la valeur effective du préfixe réseau utilisé pour en dériver une adresse multicast.
  • Le champ identifiant de groupe multicast a une taille de 32bits et contient la valeur du groupe.

Pour illustrer la construction d'une adresse multicast générale prenons l'adresse unicast 2001:660::/32

préfixe multicast drapeaux scope reservé Plen Préfixe ID groupe
0xff 0011 xxxx 00000000 0x20 0x2001 0x0660 0xaabb 0xccdd
  • Le champ Plen contient la longueur du préfixe unicast: 32 bits = 0x20
  • Les identifiants pour le groupe multicast pourront être définis sur les 32 bits de poids faibles désignées ici par aabb:ccdd

on obtient ainsi l'adresse multicast de la forme ff3x:20:2001:660::aabb:ccdd

Adresse multicast Embedded-RP

La RFC-3618 définit une méthode pour inclure l'adresse de rendez-vous servant à la construction de l'arbre de multicast directement dans l'adresse de multicast IPv6

Par exemple, pour un point de rendez vous avec l'adresse unicast 2001:660:3307:125::3/64

Pour dériver l'adresse multicast embarquant ce point de rendez-vous:

  • Préfixe multicast 0xff sur l'octet de poids fort;
  • les bits du champ drapeaux ont les valeurs 0=0,R=1,P=1,T=1
  • champ réservé (sur 4 bits) vaut 0x0
  • Le champ RP (sur 4bits) contient les 4 derniers bits du point de Rendez-vous, pour cet exemple RP=0x3
  • Plen (sur 8bits) : longueur du préfixe réseau du point de rendez vous, ici 64bits = 0x40
  • préfixe du point de rendez-vous, ici 2001:660:3705:125
  • identifiant du groupe multicast sur les 32 bits de poids faibles.
préfixe multicast drapeaux scope reservé RP Plen Préfixe ID groupe
0xff 0111 xxxx 0x0 0x3 0x40 0x2001 0x660 0x3705 0x125 0xaabb 0xccdd

On obtient alors une adresse multicast embedded-rp de la forme ff7x:340:2001:660:3705:125:aabb:ccdd

Adresse SSM

Les adresses SSM Source Specific Multicast sont également décrite dans le RFC-3306: elles utilisent le préfixe reservé ff3x::/32 cependant seules les adresses dérivées du préfixe ff3x::/96 devront être utilisées dans un premier temps. Ce sont des adresses multicast basées sur le préfixe unicast où les champ Plen et prefixe sont positionnés à 0.

cours/informatique/fun_mooc/objectif_ipv6_mines_telecom/150_adresses_multicast.txt · Dernière modification : 2021/02/01 21:51 de 127.0.0.1