멀티캐스트 그룹에 가입하려면 Linux 내장 또는 오픈 소스 프로그램이 필요합니까?

멀티캐스트 그룹에 가입하려면 Linux 내장 또는 오픈 소스 프로그램이 필요합니까?

나는 멀티캐스트 패킷을 캡처하기 위해 tcpdump를 사용하고 있으며 tcpdump가 패킷을 "볼" 수 있도록 멀티캐스트 피드에 참여하기 위한 사용자 정의 프로그램을 코딩해야 했습니다. netcat이나 다른 응용 프로그램이 대신 이 기능을 수행할 수 있는지 궁금하십니까?

답변1

이 답변은 철회되었습니다.

답변2

socat을 사용하여 그룹을 구독할 수 있습니다. 이는 L2 및 L3 구독 모두에 잘 작동합니다.

socat STDIO  UDP4-DATAGRAM:239.101.1.68:8889,\
  ip-add-membership=239.0.1.68:10.100.201.1

239.0.1.68이는 주소가 있는 인터페이스를 사용하여 그룹을 구독합니다 10.100.201.1. 비트 UDP4-DATAGRAM:239.101.1.68:8889는 socat이 모든 것을 stdout으로 출력하는 것을 방지하기 위해 데이터를 수신해서는 안 되는 더미 그룹 및 udp 포트의 패킷을 수신합니다. 대신 페이로드를 stdout으로 보내려면 해당 그룹과 포트를 구독하려는 실제 그룹과 포트로 변경하세요.

ip-add-membership여러 그룹을 동시에 구독하려면 여러 개의 쉼표로 구분된 지시어를 지정할 수 있습니다. socat이 종료되면 IGMP 구독도 지워지는 것 같습니다.

답변3

답변 외에도 socat여기에 강력한 솔루션이 있습니다.smcroute. 이 애플리케이션은 데몬으로 실행되며 즉시 제어할 수 있습니다.

smcroutectl join eth0 239.1.1.27
smcroutectl leave eth0 239.1.1.27

답변4

FRR의 pimd에서는 다음을 수행할 수 있습니다.

interface vlan2000
 ip address A.B.C.D/24
 ip igmp
 ip igmp join 239.0.110.219
 ip igmp join 239.0.110.220
 ip igmp version 2

관련 정보