Ich habe Skripte, die IP-Multicast-Tests ausführen; Meine Skripte schlagen jedoch auf einem bestimmten Linux-Rechner fehl.
Ich weiß, dass ich CONFIG_IP_MULTICAST
anschauen kann in der Kernel-Konfigurationsdatei, um festzustellen, ob der Kernel damit kompiliert wurde. Es wäre jedoch einfacher, fehlende Anforderungen in meinem Skript zu kennzeichnen, wenn ich in /proc
nachsehen könnte oder sysctl
und erhalten Sie die Antwort.
Gibt es eine Möglichkeit herauszufinden, ob IP Multicast in den Kernel kompiliert wurde, ohne auf CONFIG_IP_MULTICAST
zu schauen ?
Akzeptierte Antwort:
Es scheint, dass die meisten Kernel (nach v1) Multicast standardmäßig unterstützen oder CONFIG_IP_MULTICAST beim Kompilieren aktiviert haben. Um zu überprüfen, ob der kompilierte und laufende Kernel eine Multicast-Gruppe abonniert, würde ich netstat -g
verwenden .
Es scheint, dass die meisten Kernel (nach v1) standardmäßig Multicast unterstützen.
[[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
Ich sehe, dass die eth0-Schnittstelle auf meinem Host denkt, dass sie die abonnierte 224.0.0.251-Basis-Mcast-Gruppe ist. Wenn ich alternativ die Gruppe oder das Netzwerk pinge und dann alle bekannten Multicast-fähigen Host-Netzwerke an mich zurückgegeben werden, würde ich sagen, dass Multicast auf dem Host funktioniert.
Können Sie netstat -g oder
cat /proc/net/igmp
und prüfen Sie, ob es Gruppen auf Ihrem Host zurückgibt?