< Home

MLD Snooping

Fundamentals

On an IPv6 multicast network shown in Figure 1, the layer 2 switch at the edge of the access layer forwards multicast data packets received from the upstream router to receiver hosts. If MLD snooping is not configured, the switch broadcasts multicast data packets. With MLD snooping configured, the switch listens on MLD messages exchanged between the outer and hosts, and analyzes packet information (such as packet type, group address, and receiving interface) to create and maintain a Layer 2 multicast forwarding table. Multicast data packets are then forwarded to specific hosts based on the Layer 2 multicast forwarding table.

Figure 1 Before and after MLD snooping is configured

Concepts

In Figure 2, the router connects to a multicast source, the two switches run MLD snooping, and hosts A to C are receiver hosts (group members).

Figure 2 MLD snooping ports

The following table describes the port roles shown in Figure 2.

Table 1 MLD snooping ports

Port Role

Function

Generation

Router port

NOTE:

A router port is a port of a Layer 2 multicast device connected to an upstream multicast router.

Receives multicast packets from a Layer 3 multicast device such as a designated router (DR) or MLD querier.

  • A port becomes a dynamic router port when it receives an MLD General Query message or IPv6 PIM Hello message with any source address except 0::0. IPv6 PIM Hello messages are sent from a PIM interface on a Layer 3 multicast device to discover and maintain neighbor relationships.

  • A static router port is manually configured.

Member port (member of a multicast group)

Forwards multicast data to receiver hosts.

  • A Layer 2 multicast device sets a port as a dynamic member port when the port receives an MLD Report message.

  • A static member port is manually configured.

Router ports and member ports are outbound interfaces in Layer 2 multicast forwarding entries. A router port is an upstream interface, and a member port is a downstream interface. Port information learned through protocol packets is saved as dynamic entries, and port information manually configured is saved as static entries.

In addition to outbound interfaces, each Layer 2 multicast forwarding entry contains the following:
  • Multicast group address: a multicast IP address or a multicast MAC address mapped from a multicast IP address. In MAC address-based forwarding mode, multicast data may be forwarded to hosts that do not require the data because multiple IP addresses are mapped to the same MAC address. The IP address-based forwarding mode can prevent this problem.
  • VLAN ID: specifies a Layer 2 broadcast domain. When multicast VLAN is configured, the inbound VLAN ID is the multicast VLAN ID, and the outbound VLAN ID is a user VLAN ID. If multicast VLAN is not configured, both the inbound and outbound VLAN IDs are the ID of the VLAN to which member hosts belong. For details about multicast VLAN, see Understanding Multicast VLAN Replication.

Implementation

The following table describes how a Layer 2 multicast device running MLD snooping processes various MLD messages and creates Layer 2 multicast forwarding entries.

Table 2 MLD message processing by MLD snooping

MLD Message

MLD Working Phase

Processing Method

MLD General Query message

General query

The MLD querier periodically sends General Query messages to all hosts and the router (FF02::1) on the local network segment, to check which multicast groups have members on the network segment.

A Layer 2 device forwards an MLD General Query message to all ports excluding the port that has received the messages. This port is treated as follows:
  • If the port is included in the router port list, the device resets the aging timer of the router port.
  • If the port is not in the router port list, the device adds it to the router port list and starts the aging timer.
NOTE:

By default, the Layer 2 device sets the aging time to 180 seconds when the router port receives an MLD General Query message. This is a configurable variable.

MLD Report message

Membership report

Report messages are sent in two scenarios:
  • Upon receiving an MLD General Query message, a member responds with an MLD Report message.
  • Upon joining a multicast group, a member sends an MLD Report message to the MLD querier.
A Layer 2 device forwards an MLD Report message to all router ports in a VLAN. The device obtains the multicast group address from the Report message and performs the following operations on the port that has received the message:
  • If the multicast group matches no forwarding entry, the Layer 2 device creates a forwarding entry, adds the port to the outbound interface list as a dynamic member port, and starts the aging timer.
  • If the multicast group matches a forwarding entry but the port is not in the outbound interface list, the Layer 2 device adds the port to the outbound interface list as a dynamic member port, and starts the aging timer.
  • If the multicast group matches a forwarding entry and the port is in the router port list, the Layer 2 device resets the aging timer.
NOTE:

Aging time of a dynamic router port = Robustness variable x General query interval + Maximum response time for General Query messages

MLD Done message

Leave of group members

There are two phases:

  • Members send MLD Done messages to notify the MLD querier that they have left a multicast group.
  • Upon receiving an MLD Done message, the MLD querier obtains the multicast group address and sends a Multicast-Address-Specific Query or Multicast-Address-and-Source-Specific Query message to the multicast group, to check whether there are other members of the group on the local network segment.
The Layer 2 device determines whether the multicast group matches a forwarding entry and whether the port that receives the message is in the outbound interface list.
  • If no forwarding entry matches the multicast group or the outbound interface list of the matching entry does not contain the receiving port, the Layer 2 device drops the MLD Leave message.
  • If the multicast group matches a forwarding entry and the port is in the outbound interface list, the Layer 2 device forwards the MLD Leave message to all router ports in the VLAN.
The following assumes that the port receiving an MLD Leave message is a dynamic member port. Within the aging time of the member port:
  • If the port receives MLD Report messages in response to the Multicast-Address-Specific Query message, the Layer 2 device knows that the multicast group has members connected to the port and resets the aging timer.
  • If the port receives no MLD Report message in response to the Multicast-Address-Specific Query message, no member of the multicast group exists under the interface. Then the Layer 2 device deletes the port from the outbound interface list when the aging time is reached.

Multicast-Address-Specific Query/Multicast-Address-and-Source-Specific Query message

A Multicast-Address-Specific Query or Multicast-Address-and-Source-Specific Query message is forwarded to the ports connected to members of specific groups.

When a Layer 2 device receives an IPv6 PIM Hello message, it forwards the message through all ports excluding the one that has received the Hello message. This port is treated as follows:
  • If the port is included in the router port list, the device resets its aging timer.
  • If the port is not in the router port list, the device adds it to the router port list and starts the aging timer.

When a Layer 2 device receives an IPv6 PIM Hello message, it sets the aging time of the router port to the Holdtime value contained in the Hello message.

If a static router port is configured, the Layer 2 device forwards received MLD Report and Done messages to the static router port. If a static member port is configured for a multicast group, the Layer 2 device adds the port to the outbound interface list for that multicast group.

When a Layer 2 multicast forwarding table has been created, the Layer 2 device searches the multicast forwarding table for outbound interfaces of multicast data packets based on VLAN IDs and destination addresses (IPv6 group addresses). If outbound interfaces are found for a packet, the Layer 2 device forwards the packet to all the member ports of the multicast group. If no outbound interface is found, the Layer 2 device drops the packet or broadcasts the packet in the VLAN.

Copyright © Huawei Technologies Co., Ltd.
Copyright © Huawei Technologies Co., Ltd.
Next topic >