저는 멀티캐스트가 작동하는지 테스트하기 위해 Ubuntu에서 socat을 사용하려는 Linux 초보자입니다.
실제로는 약간 "너무 좋다"(또는 기본적인 것을 오해했습니다)
내 네트워크는 다음과 같습니다(ifconfig, 약어).
ens33 - 192.168.2.10
lo - 127.0.0.1
vboxnet0 - 5 - 192.168.56.1 and up to 192.168.1.1
vboxnet6 - 192.168.1.1
vboxnet7 - 10.0.1.1
vboxnet8 - 192.88.99.1
수신기와 같은 두 개의 콘솔에서 socat을 시작합니다 .
socat -d -d UDP-RECVFROM:6666,ip-add-membership=233.168.0.100:192.68.56.1:ens33,fork EXEC:hostname
보내는 사람
socat -d -d STDIO UDP4-DATAGRAM:233.18.0.100:6666,range=192.168.56.100/30
일치하는 한 멀티캐스트 주소로 무엇을 선택하는지는 중요하지 않습니다.
작동하려면 수신기의 인터페이스를 지정해야 합니다.
처음에 말했듯이 수신자가 메시지를 수신하는 것이 문제입니다.
내가 올바르게 기억한다면, 그렇게 해서는 안 됩니다. 왜냐하면 내가 정의한 범위가 아니기 때문입니다. 즉, IP가 무엇이든 수신자는 항상 패킷을 수신한다는 192.168.56.100/30
의미입니다 .192.168.56.101 - 192.168.56.103
range
이것이 실제로 무엇을 하는지 제가 오해한 걸까요 ?
내가 무엇을 놓치고 있나요?
나는 이것이 동일한 장치(라우터)에 있는 것과 관련이 있다고 생각합니다.
답변1
멀티캐스트가 정상적으로 작동하고 있습니다.
실제로 멀티캐스트 주소를 수신하도록 인터페이스에 신호를 보내는 경우 기본 인터페이스를 인터페이스의 IP 주소가 아닌 해당 주소와 연결하게 됩니다.
따라서 동일한 물리적/가상 미디어/네트워크를 공유하는 한 멀티캐스트 주소와 연결된 모든 인터페이스는 멀티캐스트 전송을 수신합니다.