멀티캐스트 그룹을 만들고 메시지를 보내는 방법은 무엇입니까?

멀티캐스트 그룹을 만들고 메시지를 보내는 방법은 무엇입니까?

3대의 컴퓨터로 구성된 멀티캐스트 그룹을 생성한 다음 모든 컴퓨터에 ping을 실행하고 싶습니다. Linux CLI에서 이 작업을 어떻게 수행할 수 있습니까?

답변1

당신은 그것을 사용할 수 있습니다socat문서에 설명된 대로 이를 달성하기 위한 명령은 다음과 같습니다.

예 3: 멀티캐스트 피어

멀티캐스트 발신자와 수신자는 socat 주소로 결합될 수 있습니다. 이를 통해 프로세스는 대칭적으로 통신하는 로컬 네트워크의 서로 다른 호스트에서 시작될 수 있으므로 각 프로세스는 다른 모든 프로세스에서 수신한 메시지를 보낼 수 있습니다.

socat STDIO UDP4-DATAGRAM:224.1.0.1:6666,bind=:6666,range=192.168.10.0/24,ip-add-membership=224.1.0.1:192.168.10.2

이 명령은 호스트 192.168.10.2에 유효합니다. 해당 주소를 호스트의 특정 인터페이스 주소에 맞게 조정합니다.

따라서 소스 유효성 검사나 인터페이스 선택에 신경 쓰지 않고(따라서 IPv4의 기본 경로를 따르며, 라우터는 LAN 측을 사용하기 위해 추가 옵션이 필요할 수 있음) 더 간단한 예를 들어 각 시스템에서 이 명령을 실행하거나 : reuseaddrmulticast Secondary를 사용합니다. 로컬 해당 복제 데이터) 동일한 LAN 내에서 통신을 달성하려면:

socat - UDP4-DATAGRAM:239.255.255.245:6666,bind=:6666,ip-add-membership=239.255.255.245:0.0.0.0,reuseaddr

물론 멀티캐스트는 표준 라우터에 의해 라우팅되지 않습니다. 여러 LAN으로 확장해야 하는 경우 멀티캐스트 라우터를 설정해야 하며 이는 이 답변의 범위를 벗어납니다.

IPv6만 지원하는 간단한 도구는 찾기가 더 어렵습니다. IPv6 주소 변환을 사용하는 위의 예에서는 동일한 효과를 얻으려면 원래의 setockopt 값을 전달해야 합니다. 첫 번째 시스템 인터페이스의 주소는 ff05::db8:1:2입니다(다음루오)이므로 인덱스는 2(시스템 기본값)입니다.IPv6는 오류가 발생하기 쉽습니다.), 이는 읽기가 덜한 명령입니다.

socat - 'UDP6-DATAGRAM:[ff05::db8:1:2]:6666,bind=:6666,setsockopt=41:17:i2,setsockopt=41:20:xff0500000000000000000db800010002i2,reuseaddr'

관련 정보