Para habilitar o encaminhamento de quadros Ethernet multicast, é necessário desabilitar o rastreamento multicast em /sys/devices/virtual/net/<br_name>/bridge/multicast_snooping
.
Eu tenho uma topologia de rede em que o "Dell PE860" executa um comutador virtual do Linux br0
:
Agora,seeuenviarumquadroEthernetparatransmitiroendereçodo"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
.. então eu vejo este quadro em ambas as máquinas virtuais como deveria. Se eu enviar um quadro Ethernet para o endereço MAC que não é conhecido na tabela de endereços MAC br0
, o br0
também se comportará corretamente e inundará o quadro para todas as portas esperadas no ponto em que o quadro entrou ( eth1
neste exemplo). No entanto, se eu enviar um quadro multicast do "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
.. então, por algum motivo, o Linux virtual-switch não o inunda em todas as portas (exceto aquela em que o quadro veio). Por que? Eu esperaria que o switch manipulasse quadros de multicast exatamente como quadros de broadcast.
Para habilitar o encaminhamento de quadros Ethernet multicast, é necessário desabilitar o rastreamento multicast em /sys/devices/virtual/net/<br_name>/bridge/multicast_snooping
.
O multicast é enviado apenas para o port da noiva que se juntou ao grupo multicast. Portanto, a menos que haja um cliente interessado nos dados multicast em uma porta e tenha enviado uma mensagem igmp join para a ponte, ele não encaminhará o quadro mutlicast para a porta.
A espionagem multicast pode ser desativada em /sys/devices/virtual/net/<br_name>/bridge/multicast_snooping