리눅스 멀티 캐스트 예제

Linux 호스트에서 멀티캐스트 서비스에 액세스하려면 네트워크 인터페이스, 호스트의 기본 경로 및 클래스 D 트래픽에 대한 경로를 구성해야 합니다. 다음은 예입니다: 참고: Linux 기반 라우터에서 멀티캐스트 전달에 대한 일반적인 문제는 rp_filter입니다. 대부분의 시스템은 기본적으로 이 것을 `엄격` 모드로 설정되어 DDOS 공격으로부터 보호하므로 pimd 및 mrouted에 큰 문제가 발생할 수 있습니다. 멀티캐스트 소스에 대한 역방향 경로를 결정할 수 없는 경우 커널에 의해 프레임이 삭제됩니다. 자세한 내용은 아래 FAQ를 참조하십시오. IP_MULTICAST_TTL: 나가는 멀티캐스트 데이터그램에 대한 IP 헤더에서 TTL(라이브 시간)을 설정합니다. 기본적으로 1로 설정됩니다. TTL 0은 모든 하위 네트워크에서 전송되지 않습니다. TTL이 1보다 큰 멀티캐스트 데이터그램은 첫 번째 하위 네트워크에 연결된 하나 이상의 멀티캐스트 라우터가 있는 경우 둘 이상의 하위 네트워크에 전달될 수 있습니다. 규칙에 따라 Linux 장치 이름은 0부터 시작하여 위쪽으로 계산됩니다. 예를 들어 두 개의 이더넷 카드를 실행하는 시스템에는 /dev/eth0 및 /dev/eth1이라는 레이블이 있는 두 개의 장치가 있을 수 있습니다. Linux는 패킷을 전달하고 두 네트워크 간에 간단한 라우터 역할을 하도록 구성될 수 있지만 이 기능은 멀티캐스트 데이터 패킷을 지원하지 않습니다.

이러한 패킷을 네트워크에서 전달 및 라우팅하려면 먼저 시스템에 멀티캐스트 라우팅 소프트웨어를 설치해야 합니다. 가상 컴퓨터와 가상 네트워킹을 설정할 때 호스트가 고려해야 할 여러 가지 함정과 몇 가지 요구 사항이 있습니다. 지적해야 하는 가장 중요한 것은 Linux 브리징 코드의 IGMP 스누핑 코드의 버그입니다: 브리지는 특수 사례 224.0.0.* 를 잘 처리하지만 해당 세그먼트 외부의 모든 알려지지 않은 멀티캐스트 스트림도 모든 멀티캐스트에 있는 것처럼 전달되어야 합니다. 라우터. 이 리눅스 3.13 커널 브리지 코드에서 현재 IGMP 스누핑 코드와 함께 작동 하지 않습니다 때문에 스누핑을 사용 하지 않도록 설정 해야 합니다. 또는, 리눅스와 시스템에서 실행 하는 경우 송신으로 프레임을 변경할 수 있습니다: 중복/다중 멀티 캐스트 라우터 하나 와 네트워크에서 IGMP 쿼리기 선거에만 의존할 수 없습니다.