IP 멀티캐스트가 활성화되었는지 확인하는 방법

IP 멀티캐스트가 활성화되었는지 확인하는 방법

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

관련 정보