Networking
我如何知道是否啟用了 IP 多播
我有執行 IP 多播測試的腳本;但是,我的腳本在特定的 linux 機器上失敗了。
我知道我可以
CONFIG_IP_MULTICAST
在核心配置文件中查看以確定核心是否是用這個編譯的。但是,如果我可以查看/proc
或sysctl
獲得答案,那麼在我的腳本中標記缺失的要求會更容易。有沒有辦法不查看 IP Multicast 是否已編譯到核心中
CONFIG_IP_MULTICAST
?
似乎大多數核心(v1 後)預設支持多播,或者在編譯時啟用了 CONFIG_IP_MULTICAST。要檢查編譯和執行的核心是否訂閱了任何多播組,我會使用
netstat -g
.似乎大多數核心(後 v1)預設支持多播。
[root@centos module]# grep CONFIG_IP_MULTICAST /usr/src/kernels/2.6.18-274.7.1.el5-i686/.config CONFIG_IP_MULTICAST=y [root@centos 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
我看到主機上的 eth0 介面認為它訂閱了 224.0.0.251 basic mcast group。或者,如果我 ping 組或網路,然後所有已知的啟用多播的主機網路都返回給我,我會說多播正在主機上工作。您可以嘗試
netstat -g
或cat /proc/net/igmp
查看它是否返回主機上的任何組嗎?
在你的 linux 機器上:
ip maddr show
給出:@4Gtest ~]$ ip maddr show 1: lo inet 224.0.0.1 inet6 ff02::1 2: p3p1 link 01:00:5e:00:00:01 link 33:33:00:00:00:01 link 33:33:ff:bd:7e:0f link 01:00:5e:00:00:fb link 01:00:5e:7f:ff:05 inet 224.127.255.5 inet 224.0.0.251 inet 224.0.0.1 inet6 ff02::1:ffbd:7e0f inet6 ff02::1