IP 멀티 캐스트가 활성화되어 있는지 어떻게 알 수 있습니까


19

IP 멀티 캐스트 테스트를 실행하는 스크립트가 있습니다. 그러나 내 스크립트는 특정 Linux 시스템에서 실패합니다.

CONFIG_IP_MULTICAST커널 구성 파일에서 커널이 이것으로 컴파일되었는지 확인할 수 있음을 알고 있습니다 . 그러나 대답 을 /proc보거나 sysctl얻을 수 있다면 스크립트에서 누락 된 요구 사항을 표시하는 것이 더 쉬울 것입니다.

IP 멀티 캐스트가 보지 않고 커널로 컴파일되었는지 확인하는 방법이 CONFIG_IP_MULTICAST있습니까?

답변:


18

대부분의 커널 (v1 이후)은 기본적으로 멀티 캐스트를 지원하거나 컴파일하는 동안 CONFIG_IP_MULTICAST가 활성화되어있는 것 같습니다. 컴파일되고 실행중인 커널이 멀티 캐스트 그룹을 구독하는지 확인하려면을 사용 netstat -g합니다.

대부분의 커널 (post 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 그룹을 구독한다고 생각합니다. 또는 그룹이나 네트워크를 핑한 다음 알려진 모든 멀티 캐스트 가능 호스트 네트워크가 나에게 반환되면 멀티 캐스트가 호스트에서 작동한다고 말할 수 있습니다. 시도 netstat -g하거나 cat /proc/net/igmp호스트의 그룹을 반환하는지 확인할 수 있습니까 ?


1
그러나 해당 박스가 연결된 라우터가 멀티 캐스트를 지원하는지 어떻게 알 수 있습니까?
Nils

1
멀티 캐스팅-발신자는 유니 캐스트 주소에서 멀티 캐스트 그룹 주소로 단일 데이터 그램을 전송하고 중개 라우터는 복사본을 만들어 해당 멀티 캐스트 그룹에 가입 한 모든 수신자에게 전송합니다.
Nikhil Mulley

3
그렇다면, 라우터는 멀티 캐스팅을 지원해야합니다. 그러나 발신자 / 수신자에게는 IGMP와 라우터 인 PIM (Protocol Independent Multicast)에서 작동합니다. PIM, 일반적으로 활성화 및 멀티 캐스트 그룹을 지원하는 라우터-224.0.0.0/4 멀티 캐스트 그룹 및 확인 otherend에서 수신기가 data.Ify를 수신하는 경우에 다른 쪽 끝 및 전송 데이터를 그룹의 다른 PC의 청취를 넣어보십시오, 라우터 네트워크는 온라인 지원 multicasting.Few 도구를 수행합니다 imj.ucsb.edu/mcast_detective (창)
Nikhil Mulley

20

리눅스 박스에서 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

1
인터페이스에 뮤티 캐스트 그룹을 추가하는 방법은 무엇입니까?
AR

8
# 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

8
그 언급해야한다 ifconfig지금은 리눅스에서 사용되지 않는 ... 우리가 사용되어야 iproute2유틸리티를.
Mike Pennington

7
2 년이 지났지 만 우리는 여전히 사용하고 있습니다ifconfig
Askar

1
@oscar하지만 iproute2의ip 다른 유틸리티가 (와 달리 ) Linux 커널 네트워킹 코드의 최근 변경 사항을 반영 하고 있기 때문에 좋은 일이 아닙니다 . ifconfig
pevik

6

ip명령을 사용하면 다음을 통해 인터페이스가 멀티 캐스트 가능한지 확인할 수 있습니다.

ip link show eth0 | grep MULTICAST

멀티 캐스트를 활성화 또는 비활성화하려면 다음을 사용할 수 있습니다.

sudo ip link set dev eth0 multicast [on|off] 
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.