Linux 가상 스위치의 멀티캐스트 프레임

Linux 가상 스위치의 멀티캐스트 프레임

"Dell PE860"이 Linux 가상 스위치를 실행하는 네트워크 토폴로지가 있습니다 br0.

Linux 브리지 다이어그램

이제 "IBM ThinkCentre"에서 브로드캐스트 주소로 이더넷 프레임을 보내면:

17:10:23.569021 00:a1:ff:01:02:05 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 34: 127.0.0.1 > 127.0.0.1:  ip-proto-0 0

..그러면 두 가상 머신 모두에서 이 프레임을 볼 수 있습니다. br0MAC 주소 테이블에서 알 수 없는 MAC 주소로 이더넷 프레임을 보내는 경우 br0에도 정상적으로 작동하며 프레임이 들어오는 모든 포트( eth1이 예에서는)에 프레임을 플러딩합니다. 그러나 "IBM ThinkCentre"에서 멀티캐스트 프레임을 보내는 경우:

17:17:05.513283 00:a1:ff:01:02:05 > 01:33:44:55:66:77, ethertype IPv4 (0x0800), length 34: 127.0.0.1 > 127.0.0.1:  ip-proto-0 0

..그러면 어떤 이유로 Linux 가상 스위치가 이를 모든 포트(프레임이 나온 포트 제외)에 플러딩하지 않습니다. 왜 이런 일이 발생합니까? 나는 스위치가 브로드캐스트 프레임을 처리하는 것과 같은 방식으로 멀티캐스트 프레임을 처리하기를 원합니다.

답변1

멀티캐스트 이더넷 프레임 전달을 활성화하려면 아래에서 멀티캐스트 청취를 비활성화해야 합니다 /sys/devices/virtual/net/<br_name>/bridge/multicast_snooping.

답변2

멀티캐스트는 멀티캐스트 그룹에 가입한 신부 포트로만 전송됩니다. 따라서 클라이언트가 포트의 멀티캐스트 데이터에 관심이 있고 igmp 조인 메시지를 브리지에 보내지 않는 한 멀티캐스트 프레임은 포트로 전달되지 않습니다.

다음 상황에서는 멀티캐스트 청취가 비활성화될 수 있습니다./sys/devices/virtual/net/<br_name>/bridge/multicast_snooping

관련 정보