IP 멀티캐스트 테스트를 실행하는 스크립트가 있지만 특정 Linux 상자에서는 스크립트가 실패합니다.
CONFIG_IP_MULTICAST
커널이 이 파일로 컴파일되었는지 확인하기 위해 커널 구성 파일을 볼 수 있다는 것을 알고 있습니다 . 그러나 OR을 보고 답을 얻을 수 있다면 스크립트에서 누락된 요구 사항을 표시하는 것이 더 쉬울 것입니다 /proc
.sysctl
IP 멀티캐스트가 커널에 컴파일되어 있는지 확인하지 않고 확인할 수 있는 방법이 있습니까 CONFIG_IP_MULTICAST
?
답변1
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
답변2
대부분의 커널(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 기본 mcast 그룹에 가입되어 있다고 생각합니다. 또한 그룹이나 네트워크에 대해 ping을 실행하고 알려진 모든 멀티캐스트 지원 호스트 네트워크가 응답하면 해당 호스트에서 멀티캐스트가 작동하고 있다고 말할 것입니다. 호스트에 그룹이 반환되는지 시험해 볼 netstat -g
수 있나요 ?cat /proc/net/igmp
답변3
# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0C:29:F1:FF:EA
inet addr:78.46.74.27 Bcast:78.46.74.31 Mask:255.255.255.224
inet6 addr: fe80::20c:29ff:fef1:ffea/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5339836 errors:0 dropped:0 overruns:0 frame:0
TX packets:5486444 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:820300389 (782.2 MiB) TX bytes:1929979381 (1.7 GiB)
Base address:0x1400 Memory:e8820000-e8840000
멀티캐스트 비활성화:
ifconfig eth0 -multicast
결과:
# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0C:29:F1:FF:EA
inet addr:78.46.74.27 Bcast:78.46.74.31 Mask:255.255.255.224
inet6 addr: fe80::20c:29ff:fef1:ffea/64 Scope:Link
UP BROADCAST MTU:1500 Metric:1
RX packets:5339836 errors:0 dropped:0 overruns:0 frame:0
TX packets:5486444 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:820300389 (782.2 MiB) TX bytes:1929979381 (1.7 GiB)
Base address:0x1400 Memory:e8820000-e8840000
멀티캐스트가 인터페이스에 존재하지 않습니다.
멀티캐스트 활성화:
ifconfig eth0 multicast
답변4
핑을 사용하여 설정을 테스트하려면 멀티캐스트 핑을 무시하는 옵션을 비활성화해야 합니다.
sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=0