Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
multicast [Le 10/12/2008, 13:01] – création MrWaloomulticast [Le 11/09/2022, 11:47] (Version actuelle) – Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) moths-art
Ligne 1: Ligne 1:
 +{{tag>multicast ipv6 reseau }}
 +
 +----
 +
 ====== Le multicast ====== ====== Le multicast ======
  
 ===== Définition ===== ===== Définition =====
-Le [[http://fr.wikipedia.org/wiki/Multicast|multicast]], ou multidiffusion, permet la diffusion vers plusieurs partenaires sur un réseau. Ces partenaires ont, en plus de leur adresse IP de classe A, B ou C (adresse privée), une adresse de multicast : **l'adresse de groupe**. Cette adresse est de classe D, c'est à dire qu'elle se trouve dans la plage allant de 224.0.0.0 jusqu'à 239.255.255.255.+Le [[https://fr.wikipedia.org/wiki/Multicast|multicast]], ou multidiffusion, permet la diffusion vers plusieurs partenaires sur un réseau. Ces partenaires ont, en plus de leur adresse IP de classe A, B ou C (adresse privée), une adresse de multicast : **l'adresse de groupe**. Cette adresse est de classe D, c'est à dire qu'elle se trouve dans la plage allant de 224.0.0.0 jusqu'à 239.255.255.255
 + 
 +Lorsqu'une application s'adresse à une adresse de groupe, tous les éléments du réseau (ordinateur, imprimante, switch managable, routeur, etc.) qui font partie de ce groupe réceptionnent la trame TCP/IP.
  
 Pour simplifier on peut dire que le multicast est un broadcast sélectif. Pour simplifier on peut dire que le multicast est un broadcast sélectif.
  
 ===== Mise en place d'un multicast statique ===== ===== Mise en place d'un multicast statique =====
-<note>On parle de multicast statique lorsque, dans un même réseau, on défini une adresse de groupe pour atteindre certains PC.\\ +<note>Il est beaucoup question de multicast dans le domaine de la diffusion audio et/ou vidéo ou encore du routage, ce n'est pas ce qui est détaillé ici((c'est un appel à contribution, si vous avez des connaissances dans ces domaines et si le cœur vous en dit, enrichissez cette documentation)).</note> 
-Il est beaucoup question de multicast dans le domaine de la diffusion audio et/ou vidéo ou encore du routage, ce n'est pas ce qui est détaillé ici.</note>+ 
 +==== Définition ==== 
 +On parle de multicast statique lorsque, dans un même réseau, on **définit** une adresse de groupe pour atteindre certains éléments du réseau.\\ 
 +C'est à dire que les différents éléments du réseau sont configurés pour accepter des trames TCP/IP adressées à une adresse de groupe. 
 + 
 +On peut imaginer, par exemple, un cluster de PC au sein d'un réseau. Pour la communication entre ces PC, sachant que le nombre de PC pourrait être amené à varier, le plus simple est de définir une adresse unique à laquelle tous les PC du cluster répondent : une adresse de groupe ⇒ le multicast est né.\\ 
 +Le fait de n'avoir qu'une seule adresse permet de ne pas avoir à gérer la liste des adresses IP de tous les PC du cluster. Il suffit qu'un PC fasse partie du groupe multicast pour faire partie du cluster.\\ 
 +En parlant de cluster, le multicast est utilisable pour [[:heartbeat]]
  
 ==== Configuration du noyau Linux ==== ==== Configuration du noyau Linux ====
-Le noyau Linux que vous utilisé doit être compilé avec l'option CONFIG_IP_MULTICAST activée. pour le vérifier : +Le noyau Linux que vous utilisez doit être compilé avec l'option CONFIG_IP_MULTICAST activée. pour le vérifier : 
-<code>cat /boot/config-`uname -r` | grep CONFIG_IP_MULTICAST +<code>cat /boot/config-`uname -r` | grep CONFIG_IP_MULTICAST</code> 
-CONFIG_IP_MULTICAST=y</code>+<file>CONFIG_IP_MULTICAST=y</file>
 Si CONFIG_IP_MULTICAST=n, vous devez recompiler votre noyau en activant cette option ou en installer une version avec cette option activée. Si CONFIG_IP_MULTICAST=n, vous devez recompiler votre noyau en activant cette option ou en installer une version avec cette option activée.
  
 +==== Activation de la fonctionnalité multicast ====
 Par défaut Ubuntu est configuré de sorte de ne pas activer les fonctions multicast. Pour vérifier cela : Par défaut Ubuntu est configuré de sorte de ne pas activer les fonctions multicast. Pour vérifier cela :
-<code>sysctl net.ipv4.icmp_echo_ignore_broadcasts +<code>sysctl net.ipv4.icmp_echo_ignore_broadcasts</code> 
-net.ipv4.icmp_echo_ignore_broadcasts = 1</code+<file>net.ipv4.icmp_echo_ignore_broadcasts = 1</file
-Les fonctionnalités multicast sont déactivées.\\+Les fonctionnalités multicast sont désactivées.\\
 Pour les activer : Pour les activer :
-<code>sudo sysctl net.ipv4.icmp_echo_ignore_broadcasts=0 +<code>sudo sysctl net.ipv4.icmp_echo_ignore_broadcasts=0</code> 
-net.ipv4.icmp_echo_ignore_broadcasts = 0</code>+<file>net.ipv4.icmp_echo_ignore_broadcasts = 0</file>
 Vérifions que le multicast est fonctionnel : Vérifions que le multicast est fonctionnel :
-<code>ping 224.0.0.1 -c 3 +<code>ping 224.0.0.1 -c 3</code> 
-PING 224.0.0.1 (224.0.0.1) 56(84) bytes of data.+<file>PING 224.0.0.1 (224.0.0.1) 56(84) bytes of data.
 64 bytes from 192.168.1.141: icmp_seq=1 ttl=64 time=0.037 ms 64 bytes from 192.168.1.141: icmp_seq=1 ttl=64 time=0.037 ms
 64 bytes from 192.168.1.200: icmp_seq=1 ttl=64 time=1.94 ms (DUP!) 64 bytes from 192.168.1.200: icmp_seq=1 ttl=64 time=1.94 ms (DUP!)
Ligne 34: Ligne 48:
 --- 224.0.0.1 ping statistics --- --- 224.0.0.1 ping statistics ---
 3 packets transmitted, 3 received, +2 duplicates, 0% packet loss, time 1999ms 3 packets transmitted, 3 received, +2 duplicates, 0% packet loss, time 1999ms
-rtt min/avg/max/mdev = 0.024/0.760/1.949/0.898 ms +rtt min/avg/max/mdev = 0.024/0.760/1.949/0.898 ms</file> 
-</code+ 
--> **Explications :** l'adrese IP 224.0.0.1 est une adresse pour atteindre tous les partenaires du réseau qui "savent faire" du multicast.\\ +-> **Explications :** l'adresse IP 224.0.0.1 est une adresse pour atteindre tous les partenaires du réseau qui gèrent du multicast.\\ 
-l'adresse IP de mon PC est 192.168.1.141, mon PC répond. Mais l'adresse 192.168.1.200 répond aussi au ping, c'est mon routeur ADSL, il "sait faire" du multicast et donc il répond à l'adresse 224.0.0.1 lui aussi.+l'adresse IP de mon PC est 192.168.1.141, mon PC répond. Mais l'adresse 192.168.1.200 répond aussi au ping, c'est mon routeur ADSL, il gère le multicast et donc il répond à l'adresse 224.0.0.1 lui aussi. 
 + 
 +Pour faire en sorte que cette modification reste même après un redémarrage, il faut éditer le fichier **/etc/sysctl.conf** et remplacer 
 +<file># Ignore ICMP broadcasts 
 +#net.ipv4.icmp_echo_ignore_broadcasts = 1</file> 
 +par 
 +<file># Ignore ICMP broadcasts 
 +net.ipv4.icmp_echo_ignore_broadcasts = 0</file>
  
 ==== Comment rejoindre une adresse de groupe multicast statique ==== ==== Comment rejoindre une adresse de groupe multicast statique ====
 <note>Pour le multicast statique privé, la plage d'adresses de groupe à utiliser va de 239.0.0.1 à 239.255.255.254.</note> <note>Pour le multicast statique privé, la plage d'adresses de groupe à utiliser va de 239.0.0.1 à 239.255.255.254.</note>
-<note>Dès qu'un partenaire du réseau a rejoin une adresse de groupe multicast, celle-ci devient "fonctionnelle", il n'y a pas de procédure de création d'adresse de groupe.</note> +<note>Dès qu'un partenaire du réseau a rejoint une adresse de groupe multicast, celle-ci devient « fonctionnelle », il n'y a pas de procédure de création d'adresse de groupe.</note> 
-L'outil qui sert à rejoindre une adresse de groupe multicast est [[http://www.cschill.de/smcroute/|smcroute]]. Il se lance comme un daemon et gère le multicast. +L'outil qui sert à rejoindre une adresse de groupe multicast est [[http://www.cschill.de/smcroute/|smcroute]]. Il se lance comme un daemon et gère le multicast.\\ 
-<code># sudo apt-get install smcroute</code> +[[:tutoriel:comment_installer_un_paquet|Installez le paquet]] smcroute
-Pour rejoindre (//join//) l'adresse de groupe 239.0.0.10 + 
-<code>sudo smcroute -j eth0 239.0.0.10</code> +Pour rejoindre (//Join//) l'adresse de groupe 239.0.0.10 
-Pour quiter (//leave//) l'adresse de groupe 239.0.0.10 +<code>sudo smcroute -j eth0 239.0.0.10</code> 
-<code>sudo smcroute -l eth0 239.0.0.10</code>+Pour quiter (//Leave//) l'adresse de groupe 239.0.0.10 
 +<code>sudo smcroute -l eth0 239.0.0.10</code>
  
-<note important>Pour faire en sorte que le PC rejoigne une adresse de groupe à chaque démarrage, il faut ajouter la commande "smcroute -j ..." dans le fichier /etc/smcroute/startup.sh.</note>+<note important>Pour faire en sorte que le PC rejoigne une adresse de groupe à chaque démarrage, il faut ajouter la commande "smcroute -j ..." dans le fichier **/etc/smcroute/startup.sh**.</note>
  
 === Exemple === === Exemple ===
-Pour l'exemple, j'ai utilisé une machine virtuelle dans VMware-player qui est membre de l'adresse de groupe 239.0.0.10. J'ai fait en sorte que la carte virtuelle vmnet8 qui relie mon PC au PC virtuel dans VMware-player rejoigne la même adresse de groupe, puis j'ai "pinger" cette adresse pour vérifier.\\ +Pour l'exemple, j'ai utilisé une machine virtuelle dans VMware-player qui est membre de l'adresse de groupe 239.0.0.10. J'ai fait en sorte que la carte virtuelle vmnet8 qui relie mon PC au PC virtuel dans VMware-player rejoigne la même adresse de groupe, puis j'ai « pingué » cette adresse pour vérifier.\\ 
-Avant l'opération, seul le PC virtuel répond au ping. Puis mon PC rejoin l'adresse de groupe. Et enfin les 2 PC répondent au ping. +Avant l'opération, seul le PC virtuel répond au ping. Puis mon PC rejoint l'adresse de groupe. Et enfin les 2 PC répondent au ping. 
-<code>ping 239.0.0.10 -c 3 -I vmnet8 +<code>ping 239.0.0.10 -c 3 -I vmnet8</code> 
-PING 239.0.0.10 (239.0.0.10) from 192.168.214.1 vmnet8: 56(84) bytes of data.+<file>PING 239.0.0.10 (239.0.0.10) from 192.168.214.1 vmnet8: 56(84) bytes of data.
 64 bytes from 192.168.214.10: icmp_seq=1 ttl=64 time=0.602 ms 64 bytes from 192.168.214.10: icmp_seq=1 ttl=64 time=0.602 ms
 64 bytes from 192.168.214.10: icmp_seq=2 ttl=64 time=0.303 ms 64 bytes from 192.168.214.10: icmp_seq=2 ttl=64 time=0.303 ms
Ligne 62: Ligne 84:
 --- 239.0.0.10 ping statistics --- --- 239.0.0.10 ping statistics ---
 3 packets transmitted, 3 received, 0% packet loss, time 1999ms 3 packets transmitted, 3 received, 0% packet loss, time 1999ms
-rtt min/avg/max/mdev = 0.303/0.440/0.602/0.123 ms +rtt min/avg/max/mdev = 0.303/0.440/0.602/0.123 ms</file> 
-sudo smcroute -j vmnet8 239.0.0.10 +<code>sudo smcroute -j vmnet8 239.0.0.10 
-ping 239.0.0.10 -c 3 -I vmnet8 +ping 239.0.0.10 -c 3 -I vmnet8</code> 
-PING 239.0.0.10 (239.0.0.10) from 192.168.214.1 vmnet8: 56(84) bytes of data.+<file>PING 239.0.0.10 (239.0.0.10) from 192.168.214.1 vmnet8: 56(84) bytes of data.
 64 bytes from 192.168.214.1: icmp_seq=1 ttl=64 time=0.042 ms 64 bytes from 192.168.214.1: icmp_seq=1 ttl=64 time=0.042 ms
 64 bytes from 192.168.214.10: icmp_seq=1 ttl=64 time=0.329 ms (DUP!) 64 bytes from 192.168.214.10: icmp_seq=1 ttl=64 time=0.329 ms (DUP!)
Ligne 74: Ligne 96:
 --- 239.0.0.10 ping statistics --- --- 239.0.0.10 ping statistics ---
 3 packets transmitted, 3 received, +2 duplicates, 0% packet loss, time 1999ms 3 packets transmitted, 3 received, +2 duplicates, 0% packet loss, time 1999ms
-rtt min/avg/max/mdev = 0.042/0.158/0.329/0.138 ms</code>+rtt min/avg/max/mdev = 0.042/0.158/0.329/0.138 ms</file>
  
 ===== Affectation standard d’adresses de multidiffusion ===== ===== Affectation standard d’adresses de multidiffusion =====
-([[www.vije.net/ressources/informatique/reseaux/ip.pdf|source]]) +==== IPv4 ==== 
-^Adresse ^Description ^ +([[http://www.vije.net/ressources/informatique/reseaux/ip.pdf|source]]) 
-|224.0.0.0|Adresse de base (réservée)+^Adresse ^Description ^ Adresse ^Description ^ 
-|224.0.0.1|Tous les systèmes multicast sur ce sous-réseau+|224.0.0.0|Adresse de base (réservée)| 224.0.1.14|IETF-2-AUDION
-|224.0.0.2|Tous les routeurs multicast sur ce sous-réseau+|224.0.0.1|Tous les systèmes multicast sur ce sous-réseau| 224.0.1.15|IETF-2-VIDEO
-|224.0.0.3|Non affecté+|224.0.0.2|Tous les routeurs multicast sur ce sous-réseau| 224.0.1.16|MUSIC-SERVICE
-|224.0.0.4|Routeurs DVMRP| +|224.0.0.3|Non affecté| 224.0.1.17|SEANET-TELEMETRY
-|224.0.0.5|Tous les routeurs OSPFIGP| +|224.0.0.4|Routeurs DVMRP| 224.0.1.18|SEANET-IMAGE
-|224.0.0.6|Routeurs spécifiés OSPFIGP+|224.0.0.5|Tous les routeurs OSPFIGP| 224.0.1.19|MLOADD
-|224.0.0.7|Routeurs ST| +|224.0.0.6|Routeurs spécifiés OSPFIGP| 224.0.1.20|Expérimentations privées
-|224.0.0.8|Hôtes ST+|224.0.0.7|Routeurs ST| 224.0.1.21|DVMRP on MOSPF
-|224.0.0.9|Routeurs RIP2| +|224.0.0.8|Hôtes ST| 224.0.1.22|SVRLOC
-|224.0.0.10|IGRP+|224.0.0.9|Routeurs RIP2| 224.0.1.23|XINGTV
-|224.0.0.11|Agents mobiles| +|224.0.0.10|IGRP| 224.0.1.24|Microsoft-ds
-|224.0.0.12-255|Non affectés+|224.0.0.11|Agents mobiles| 224.0.1.25|Nbc-pro
-|224.0.1.0|Groupes de gestionnaires VMTP| +|224.0.0.13|Tous les routeurs multicast qui support le protocole PIM-SM sur ce réseau|224.0.1.26|Nbc-pnf
-|224.0.1.1|Network Time Protocol+|224.0.0.14-255|Non affectés| 224.0.1.27-255|Non affectés
-|224.0.1.2|SGI-Dogfight| +|224.0.1.0|Groupes de gestionnaires VMTP| 224.0.2.1|Groupe « rwho » (BSD, non officiel)
-|224.0.1.3|Rwhod+|224.0.1.1|Network Time Protocol| 224.0.2.2|SUN RPC PMAPPROC_CALLIT
-|224.0.1.4|VNP| +|224.0.1.2|SGI-Dogfight 224.0.3.0-255|Service générique RFE
-|224.0.1.5|Artificial Horizons-Aviator+|224.0.1.3|Rwhod| 224.0.4.0-255|Conférences individuelles RFE
-|224.0.1.6|Name Service Server| +|224.0.1.4|VNP| 224.0.5.0-127|Groupes CDPD
-|224.0.1.7|AUDIONEWS+|224.0.1.5|Artificial Horizons-Aviator| 224.0.5.128-255|Non affectés| 
-|224.0.1.8|Service d’informations SUN NIS+| +|224.0.1.6|Name Service Server| 224.0.6.0-127|Projet ISIS de Cornell
-|224.0.1.9|Multicast transport protocol+|224.0.1.7|AUDIONEWS| 224.0.6.128-255|Non affecté
-|224.0.1.10|IETF-1-LOW-AUDIO| +|224.0.1.8|Service d’informations SUN NIS+ 224.1.0.0-255.255|Groupes multidiffusion ST| 
-|224.0.1.11|IETF-1-AUDION+|224.0.1.9|Multicast transport protocol| 224.2.0.0-255.255|Appels conférences multimédias| 
-|224.0.1.12|IETF-1-VIDEO| +|224.0.1.10|IETF-1-LOW-AUDIO| 224.252.0.0-255.255.255|Groupes transcient DIS| 
-|224.0.1.13|IETF-2-LOW-AUDIO+|224.0.1.11|IETF-1-AUDION|  232.0.0.0-255.255.255|Groupes transcient VMTP
-|224.0.1.14|IETF-2-AUDION| +|224.0.1.12|IETF-1-VIDEO|  | | 
-|224.0.1.15|IETF-2-VIDEO+|224.0.1.13|IETF-2-LOW-AUDIO| |
-|224.0.1.16|MUSIC-SERVICE| +
-|224.0.1.17|SEANET-TELEMETRY+
-|224.0.1.18|SEANET-IMAGE| +
-|224.0.1.19|MLOADD+
-|224.0.1.20|Expérimentations privées| +
-|224.0.1.21|DVMRP on MOSPF+
-|224.0.1.22|SVRLOC| +
-|224.0.1.23|XINGTV+
-|224.0.1.24|Microsoft-ds| +
-|224.0.1.25|Nbc-pro+
-|224.0.1.26|Nbc-pnf| +
-|224.0.1.27-255|Non affectés| +
-|224.0.2.1|Groupe « rwho » (BSD, non officiel)| +
-|224.0.2.2|SUN RPC PMAPPROC_CALLIT| +
-|224.0.3.0-255|Service générique RFE| +
-|224.0.4.0-255|Conférences individuelles RFE+
-|224.0.5.0-127|Groupes CDPD| +
-|224.0.5.128-255|Non affectés+
-|224.0.6.0-127|Projet ISIS de Cornell| +
-|224.0.6.128-255|Non affecté| +
-|224.1.0.0-255.255|Groupes multidiffusion ST| +
-|224.2.0.0-255.255|Appels conférences multimédias| +
-|224.252.0.0-255.255.255|Groupes transcient DIS| +
-|232.0.0.0-255.255.255|Groupes transcient VMTP|+
  
 +==== IPv6 ====
 +
 +Masque de réseau multicast en IPV6:** ff00::/8**
 +Ajoutez ceci a vos règles ip6tables pour en profiter
 +
 +<code>
 +ip6tables -A INPUT -d ff00::/8 -j ACCEPT
 +</code>
 +Et éventuellement
 +<code>
 +ip6tables -A OUTPUT -s ff00::/8 -j ACCEPT
 +</code>