Le Multicast-HOWTO est (relativement) ancien et peut être, pour
cette raison, inexacte ou peut induire en erreur par endroits.
Avant que vous ne puissiez faire du routage multidistribution,
le noyau Linux a besoin d'être configuré pour supporter le type de
routage multidistribution que vous voulez faire. Ceci, à son tour,
exige une décision quant au choix du protocole de routage
multidistribution que vous vous préparez à utiliser. Il y a
essentiellement quatre types "communs" de protocoles : DVMRP
(la version multidistribution du protocol RIP unicast), MOSPF (la
même chose, mais pour OSPF), PIM-SM ("Protocol Independant
Multicasting - Sparse Mode", qui suppose que les utilisateurs de
n'importe quel groupe multidistribution sont dispersés plutôt que
regroupés) et PIM-DM (le même, mais "Dense Mode", qui suppose qu'il
y aura un regroupement significatif des utilisateurs d'un même
groupe multidistribution).
On pourra noter que ces options n'apparaissent pas dans le noyau
Linux. Ceci s'explique par le fait que le protocole lui-même est
géré par une application de routage, comme Zebra, mrouted ou pind.
Cependant, vous devez avoir une bonne idée de ce que vous allez
utiliser, de manière à sélectionner les bonnes options dans le
noyau.
Pour tout routage multidistribution, vous avez forcément besoin
de sélectionner les options "multicasting" et "multicasting
routing". Ceci est suffisant pour DVMRP et MOSPF. Dans le cas de
PIM, vous devez également valider les options PIMv1 ou PIMv2
suivant que le réseau que vous connectez utilise la version 1 ou 2
du protocole PIM.
Une fois que tout cela a été réalisé, et que votre nouveau noyau
a été compilé, vous verrez au démarrage que IGMP est inclus dans la
liste des protocoles IP. Celui-ci est un protocole permettant de
gérer les groupes multidistribution. Au moment de la rédaction,
Linux ne supportait que les versions 1 et 2 de IGMP, bien que la
version 3 existe et ait été documentée. Ceci ne va pas vraiment
nous affecter dans la mesure où IGMPv3 est encore trop récent pour
que ses fonctionnalités supplémentaires soient largement utilisées.
Puisque IGMP s'occupe des groupes, seules les fonctionnalités
présentes dans la plus simple version de IGMP gérant un groupe
entier vont être utilisées. IGMPv2 sera dans la plupart des cas
utilisés, bien que IGMPv1 puissent encore être rencontré.
Jusque-là, c'est bon. Nous avons activé la multidistribution.
Nous devons dire au noyau de l'utiliser concrêtement. Nous allons
donc démarrer le routage. Ceci signifie que nous ajoutons un réseau
virtuel de multidistribution à la table du routeur :
ip route add 224.0.0.0/4 dev eth0
(En supposant bien sûr, que vous diffusez à travers eth0 !
Remplacez-le par le périphérique de votre choix, si
nécessaire.)
Maintenant, dire à Linux de transmettre les paquets...
echo 1 > /proc/sys/net/ipv4/ip_forward
Arrivé ici, il se peut que vous vous demandiez si ceci va faire
quelque chose. Donc, pour tester notre connexion, nous pinguons le
groupe par défaut, 224.0.0.1, pour voir si des machines sont
présentes. Toutes les machines du réseau local avec la
multidistribution activée devrait répondre, mais rien
d'autre. Vous remarquerez qu'aucune des machines qui répondent ne
le fait avec l' adresse IP 224.0.0.1. Quelle surprise ! :)
Ceci est une adresse de groupe (une "diffusion" pour les abonnés)
et tous les membres du groupe répondront avec leur propre adresse,
et non celle du groupe.
ping -c 2 224.0.0.1
Maintenant, vous êtes prêt à faire du vrai routage
multidistribution. Bien, supposons que vous avez deux réseaux à
router l'un vers l'autre. At this point, you're ready to do actual
multicast routing. Well, assuming that you have two networks to
route between.