J'ai des scripts qui exécutent des tests de multidiffusion IP ; cependant, mes scripts échouent sur une machine Linux particulière.
Je sais que je peux regarder CONFIG_IP_MULTICAST
dans le fichier de configuration du noyau pour déterminer si le noyau a été compilé avec ceci. Cependant, il serait plus facile de signaler les exigences manquantes dans mon script si je pouvais regarder /proc
ou sysctl
et obtenez la réponse.
Existe-t-il un moyen de savoir si IP Multicast a été compilé dans le noyau sans regarder CONFIG_IP_MULTICAST
?
Réponse acceptée :
Il semble que la plupart des noyaux (post v1) prennent en charge la multidiffusion par défaut ou ont activé CONFIG_IP_MULTICAST lors de la compilation. Pour vérifier si le noyau compilé et en cours d'exécution s'abonne à un groupe de multidiffusion, j'utiliserais netstat -g
.
Il semble que la plupart des noyaux (post v1) prennent en charge la multidiffusion par défaut.
[[email protected] module]# grep CONFIG_IP_MULTICAST /usr/src/kernels/2.6.18-274.7.1.el5-i686/.config
CONFIG_IP_MULTICAST=y
[[email protected] module]# netstat -g
IPv6/IPv4 Group Memberships
Interface RefCnt Group
--------------- ------ ---------------------
lo 1 all-systems.mcast.net
eth0 1 224.0.0.251
eth0 1 all-systems.mcast.net
Je vois que l'interface eth0 sur mon hôte pense que son groupe mcast de base 224.0.0.251 est abonné. Alternativement, si je ping le groupe ou le réseau et que tous les réseaux hôtes activés pour la multidiffusion connus me sont renvoyés, je dirais que la multidiffusion fonctionne sur l'hôte.
Pouvez-vous essayer netstat -g
ou cat /proc/net/igmp
et voir s'il renvoie des groupes sur votre hôte ?