MLD

MLD overview

Multicast Listener Discovery (MLD) is the IPv6 version of IGMP and belongs to the Source Specific Multicast (SSM) service model (see IPv6 PIM models for more information). The purpose of MLD is to allow each IPv6 router to discover the presence of multicast listeners on its directly attached links, and to discover specifically which multicast groups are of interest to those neighboring nodes.

MLD is a sub-protocol of ICMPv6. MLD message types are a subset of the set of ICMPv6 messages, and MLD messages are identified in IPv6 packets by a preceding Next Header value of 58. All MLD messages are sent with a link-local IPv6 source address, a Hop Limit of 1, and an IPv6 Router Alert option in the Hop-by-Hop Options header.

MLDv1

Similar to IGMPv2, MLDv1 reports only include the multicast group addresses that listeners are interested in, and do not include the source addresses. To work with the PIM-SSM model, a similar SSM translation function is required when MLDv1 is used.

SSM translation allows an IGMPv2 device to join an SSM multicast network through the router that provides such a translation capability. Currently SSM translation can done at a box level, but this does not allow a per-interface translation to be specified. SSM translation per interface offers the ability to have a same (*,G) mapped to two different (S,G) on two different interfaces to provide flexibility.

MLDv2

MLDv2 is backward compatible with MLDv1 and adds the ability for a node to report interest in listening to packets with a particular multicast group only from specific source addresses or from all sources except for specific source addresses.

Configuring MLD with CLI

This section provides information to configure MLD using the command line interface.

MLD configuration overview

The routers use MLD to manage membership for a multicast session. MLD is not enabled by default. When enabled, at least one interface must be specified in the MLD context as MLD is an interface function. Creating an interface enables MLD. Traffic can only flow away from the router to an MLD interface and to and from a PIM interface. A router directly connected to a source must have PIM enabled on the interface to that source. The traffic travels in a network from PIM interface to PIM interface and arrives finally on an MLD enabled interface.

The MLD CLI context allows you to specify an existing IP interface and modify the interface-specific parameters. Static MLD group memberships can be configured to test multicast forwarding without a receiver host. When MLD static group membership is enabled, data is forwarded to an interface without receiving membership reports from host members.

When static MLD group entries on point-to-point links that connect routers to a rendezvous point (RP) are configured, the static MLD group entries do not generate join messages toward the RP. When a host wants to receive multicast sessions it sends a join message for each multicast group it wants to join. Then, a leave message may be sent for each multicast group it no longer needs to participate with.

A multicast router keeps a list of multicast group memberships for each attached network, and an interval timer for each membership. Hosts issue a Multicast Group Membership Report when they want to receive a multicast session. The reports are sent to all multicast routers.

Basic MLD configuration

Perform the following basic multicast configuration tasks:

  1. Required: Enable MLD.
  2. Required: Configure MLD interfaces.
  3. Optional: Specify the MLD version on the interface.
  4. Optional: Configure static (S,G)/(*,G).
  5. Optional: Configure SSM translation.

Configuring MLD

Enabling MLD

Use the commands in the following context to configure and enable MLD for the router.

configure router mld

The following example shows a basic configuration with MLD enabled.

MD-CLI
[ex:/configure router "Base" mld]
A:admin@node-2# info
    ...
    admin-state enable
    group-if-query-source-address
    query-interval 125
    query-last-member-interval 1
    query-response-interval 10
    robust-count 2
    ... 
classic CLI
A:node-2>config>router>mld# info 
----------------------------------------------
        ...
        no grp-if-query-src-ip
        query-interval 125
        query-last-listener-interval 1
        query-response-interval 10
        robust-count 2
        no shutdown
----------------------------------------------

Configuring MLD interfaces

Use the commands in the following context to configure MLD interfaces for the router.

configure router mld interface

The following example shows interfaces configured for MLD.

MD-CLI
[ex:/configure router "2" mld]
A:admin@node-2# info
    ...
    interface "lax-sjc" {
        admin-state enable
    }
    interface "lax-vls" {
        admin-state enable
    }
    interface "pl-ix" {
        admin-state enable
    }
 ...
classic CLI
A:node-2>config>router>mld# info
----------------------------------------------
           ...
            interface "lax-sjc"
                no shutdown
            exit
            interface "lax-vls"
                no shutdown
            exit
            interface "pl-ix"
                no shutdown
            exit
           ...
----------------------------------------------

Configuring MLD static multicast

This task describes how to configure a static multicast group with a source IP address or (*,G) entry for an MLD interface.
  1. Use the following command to configure an MLD static multicast group for the router.
    configure router mld interface static group grp-ipv6-address
    Static group configuration (MD-CLI)
    [ex:/configure router "Base" mld]
    A:admin@node-2# info
        ...
        interface "lax-vls" {
            static {
                group ff0e::db8:7 { } 
            }
        }
        interface "lax-sjc" {
            static {
                group ff0e::db8:9 { } 
            }
        }
        ...
    Static group configuration (classic CLI)
    A:node-2>config>router>mld# info
    ----------------------------------------------
            ...
            interface "lax-vls"
                static
                    group ff0e::db8:7
                exit
            exit
            interface "lax-sjc"
                static
                    group ff0e::db8:9
                exit
            exit
            ...
    ----------------------------------------------
  2. Configure a source or (*,G) entry for the static multicast group.
    1. Use the following command to configure a source for the static group.
      configure router mld interface static group source ipv6-address
      Static group source configuration (MD-CLI)
      [ex:/configure router "Base" mld]
      A:admin@node-2# info
          ...
           interface "lax-vls" {
              static {
                  group ff0e::db8:7 {
                      source 2001:db8::1 { }
                  }
              }
          }
          ...
      Static group source configuration (classic CLI)
      A:node-2>config>router>mld# info
      ----------------------------------------------
              ...
              interface "lax-vls"
                  static
                      group ff0e::db8:7
                          source 2001:db8::1
                      exit
                  exit
              exit
              ...
      ----------------------------------------------
    2. Use the following command to configure a (*,G) entry for the static group.
      configure router mld interface static group starg
      Static group (*,G) entry configuration (MD-CLI)
      [ex:/configure router "Base" mld]
      A:admin@node-2# info
          ...
          interface "lax-sjc" {
              static {
                  group ff0e::db8:9 {
                      starg
                  }
              }
          }
          ...
      Static group (*,G) entry configuration (classic CLI)
      A:node-2>config>router>mld# info
      ----------------------------------------------
              ...
              interface "lax-sjc"
                  static
                      group ff0e::db8:9
                          starg
                      exit
                  exit
              exit
              ...
      ----------------------------------------------

Configuring SSM translation

Use commands in the following context to configure SSM translation for MLD.

configure router mld ssm-translate

The following example displays the command usage to configure MLD for the router.

Note: The group range is not created until the source is specified.
MD-CLI
[ex:/configure router "Base" mld]
A:admin@node-2# info
    ...
    ssm-translate {
        group-range start ff0e::db8:7 end ff0e::db8:9 {
            source 2001:db8::1 { }
        }
    }    
    ...
classic CLI
A:node-2>config>router>mld# info
----------------------------------------------
        ...
        ssm-translate
            grp-range ff0e::db8:7 ff0e::db8:9
                source 2001:db8::1
            exit
        exit
        ...
----------------------------------------------

Disabling MLD

MLD is enabled by default. Use the following command to disable MLD:

  • MD-CLI
    configure router mld admin-state disable
  • classic CLI
    configure router mld shutdown