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]
MrWaloo création
multicast [Le 11/09/2022, 11:47] (Version actuelle)
moths-art 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)
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>​
  • multicast.1228910486.txt.gz
  • Dernière modification: Le 18/04/2011, 14:54
  • (modification externe)