I have a network topology where in "Dell PE860" runs a Linux virtual-switch br0:

Linux bridge drawing

Now if I send an Ethernet frame to broadcast address from "IBM ThinkCentre":

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

..then I see this frame in both virtual-machines as I should. If I send an Ethernet frame to MAC address which is not know in br0 MAC address table, then the br0 also behaves correctly and floods the frame to all ports expect to one where the frame came in(eth1 in this example). However, if I send a multicast frame from "IBM ThinkCentre":

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

..then for some reason Linux virtual-switch does not flood it to all the ports(except the one where the frame came in from). Why is that so? I would expect that switch handles multicast frames exactly like broadcast frames.


In order to enable forwarding of multicast Ethernet frames, one needs to disable multicast snooping under /sys/devices/virtual/net/<br_name>/bridge/multicast_snooping.


Multicast is send only to those port of the bride that have joined the multicast group. So unless there is a client interested in the multicast data on a port and has send an igmp join message to the bridge does not forward the mutlicast frame to the port.

Multicast snooping can be disabled under /sys/devices/virtual/net/<br_name>/bridge/multicast_snooping

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.