Multicast in an Ethernet network explained:
There are tons of multicast posts that talk about Multicast routing at IP level. But how exactly does multicast behave in an Ethernet environment? This series tries to answer that question.
- Part I: Ethernet Multicast (this post)
- Part II: IP Multicast
- Part III: IGMP snooping
- Part IV: Lab, multicast practice
The purpose of Ethernet multicast is to allow frames to be targeted to more than one destination. The mechanism behind Ethernet multicast is very rudimentary. An Ethernet multicast frame is simply flooded throughout the Ethernet (broadcast) domain. The receiving end-host decides if it is interested in the multicast frame. Usually an application will program the host network stack to listen to one or more multicast addresses. Be aware that in this context Ethernet multicast applications are meant, not IP multicast applications! An application can be anything ranging from low level network control protocols to end-user applications.
Ethernet multicast uses no subscription mechanisms like IGMP which is used for IP multicast. IGMP snooping will not affect Ethernet multicast flooding (read more about IGMP snooping in part III).
Ethernet denotes unicast from multicast by the individual/group (I/G) bit in the first byte of the Ethernet destination address (MAC address). If the I/G bit is set to one, the frame is marked for multicast processing (flooding).
In other words: if the first byte of the destination MAC address is an even number then it is a unicast frame. If it’s an odd number then it’s a multicast frame. Setting the I/G bit of the source MAC address is not allowed according to the Ethernet standards.
What about an Ethernet broadcast? A broadcast is a multicast, it is handled exactly the same by the Ethernet network. It is flooded throughout the Ethernet (broadcast) domain. The difference is at host side. All hosts must listen to broadcast frames. A broadcast is a multicast targeted to all hosts in the Ethernet (broadcast) domain. A broadcast frame is send to the reserved destination MAC address FF-FF-FF-FF-FF-FF.
Every Ethernet multicast application can be uniquely identified by its multicast address(es). When a company or organization requests an Organizationally Unique Identifier (OUI) aka vendor block from IEEE then a 2^25 address block will be assigned. The first 2^24 addresses are used for Unicast. The last 2^24 addresses are used for multicast.
For example Cisco registered the following OUI: 00-00-0C. Cisco uses the 00-00-0C-xx-xx-xx range for unicast and the 01-00-0C-xx-xx-xx range for Ethernet multicast.
But, there are some exceptions to the flooding rule. Some Ethernet Multicast frames aren’t flooded throughout the Ethernet broadcast domain. These frames are Ethernet Multicast frames targeted towards bridges (Ethernet switches). These frames are used by various protocols like STP and LACP. A well-known Ethernet multicast range that contains MAC addresses that aren’t flooded (by 802.1D compliant bridges) is 01-80-C2.
The 01-80-C2 multicast range is used by several network protocols developed or under control of IEEE. The following two bullets are copied from the IEEE document “Standard Group MAC Addresses: A Tutorial Guide”:
- IEEE 802.1D MAC Bridge Filtered MAC Group Addresses: 01-80-C2-00-00-00 to 01-80-C2-00-00-0F; MAC frames that have a destination MAC address within this range are not relayed by MAC bridges conforming to IEEE 802.1D.
- Standard MAC Group Addresses: 01-80-C2-00-00-10 to 01-80-C2-FF-FF-FF; MAC frames that have a destination MAC address within this range may be relayed by MAC bridges conforming to IEEE 802.1D.
But these are not the only MAC addresses that aren’t flooded. For example CDP multicast frames (01-00-0C-CC-CC-CC) aren’t flooded, assuming the bridge understands the CDP protocol.
Read how IP multicast builds on top of Ethernet multicast in part II.
The opinions expressed in this blog are my own views and not those of Cisco.