IPv6 Multicast Listener Discovery Protocol

IPv6 Multicast Listener Discovery (MLD) is used by IPv6 devices to discover multicast listeners (nodes that want to receive multicast packets destined for specific multicast addresses) on directly attached links. There are two versions of MLD: MLD version 1 is based on version 2 of the IGMP for IPv4, and MLD version 2 is based on version 3 of the IGMP for IPv4. IPv6 multicast for Cisco software uses both MLD version 2 and MLD version 1.

Finding Feature Information

Your software release may not support all the features documented in this module. For the latest caveats and feature information, see Bug Search Tool and the release notes for your platform and software release. To find information about the features documented in this module, and to see a list of the releases in which each feature is supported, see the feature information table.

Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to www.cisco.com/​go/​cfn. An account on Cisco.com is not required.

Information About IPv6 Multicast Listener Discovery Protocol

IPv6 Multicast Overview

An IPv6 multicast group is an arbitrary group of receivers that want to receive a particular data stream. This group has no physical or geographical boundaries--receivers can be located anywhere on the Internet or in any private network. Receivers that are interested in receiving data flowing to a particular group must join the group by signaling their local device. This signaling is achieved with the MLD protocol.

Devices use the MLD protocol to learn whether members of a group are present on their directly attached subnets. Hosts join multicast groups by sending MLD report messages. The network then delivers data to a potentially unlimited number of receivers, using only one copy of the multicast data on each subnet. IPv6 hosts that wish to receive the traffic are known as group members.

Packets delivered to group members are identified by a single multicast group address. Multicast packets are delivered to a group using best-effort reliability, just like IPv6 unicast packets.

The multicast environment consists of senders and receivers. Any host, regardless of whether it is a member of a group, can send to a group. However, only the members of a group receive the message.

A multicast address is chosen for the receivers in a multicast group. Senders use that address as the destination address of a datagram to reach all members of the group.

Membership in a multicast group is dynamic; hosts can join and leave at any time. There is no restriction on the location or number of members in a multicast group. A host can be a member of more than one multicast group at a time.

How active a multicast group is, its duration, and its membership can vary from group to group and from time to time. A group that has members may have no activity.

IPv6 Multicast Routing Implementation

Cisco software supports the following protocols to implement IPv6 multicast routing:

  • MLD is used by IPv6 devices to discover multicast listeners (nodes that want to receive multicast packets destined for specific multicast addresses) on directly attached links. There are two versions of MLD:
    • MLD version 1 is based on version 2 of the Internet Group Management Protocol (IGMP) for IPv4.
    • MLD version 2 is based on version 3 of the IGMP for IPv4.
  • IPv6 multicast for Cisco software uses both MLD version 2 and MLD version 1. MLD version 2 is fully backward-compatible with MLD version 1 (described in RFC 2710). Hosts that support only MLD version 1 will interoperate with a device running MLD version 2. Mixed LANs with both MLD version 1 and MLD version 2 hosts are likewise supported.

  • PIM-SM is used between devices so that they can track which multicast packets to forward to each other and to their directly connected LANs.

  • PIM in Source Specific Multicast (PIM-SSM) is similar to PIM-SM with the additional ability to report interest in receiving packets from specific source addresses (or from all but the specific source addresses) to an IP multicast address.

The figure below shows where MLD and PIM-SM operate within the IPv6 multicast environment.

Figure 1. IPv6 Multicast Routing Protocols Supported for IPv6

Multicast Listener Discovery Protocol for IPv6

To start implementing multicasting in the campus network, users must first define who receives the multicast. The MLD protocol is used by IPv6 devices to discover the presence of multicast listeners (for example, nodes that want to receive multicast packets) on their directly attached links, and to discover specifically which multicast addresses are of interest to those neighboring nodes. It is used for discovering local group and source-specific group membership. The MLD protocol provides a means to automatically control and limit the flow of multicast traffic throughout your network with the use of special multicast queriers and hosts.

The difference between multicast queriers and hosts is as follows:

  • A querier is a network device, such as a device, that sends query messages to discover which network devices are members of a given multicast group.

  • A host is a receiver, including devices, that send report messages to inform the querier of a host membership.

A set of queriers and hosts that receive multicast data streams from the same source is called a multicast group. Queriers and hosts use MLD reports to join and leave multicast groups and to begin receiving group traffic.

MLD uses the Internet Control Message Protocol (ICMP) to carry its messages. All MLD messages are link-local with a hop limit of 1, and they all have the alert option set. The alert option implies an implementation of the hop-by-hop option header.

MLD has three types of messages:

  • Query--General, group-specific, and multicast-address-specific. In a query message, the multicast address field is set to 0 when MLD sends a general query. The general query learns which multicast addresses have listeners on an attached link.

Group-specific and multicast-address-specific queries are the same. A group address is a multicast address.

  • Report--In a report message, the multicast address field is that of the specific IPv6 multicast address to which the sender is listening.

  • Done--In a done message, the multicast address field is that of the specific IPv6 multicast address to which the source of the MLD message is no longer listening.

An MLD report must be sent with a valid IPv6 link-local source address, or the unspecified address (::), if the sending interface has not yet acquired a valid link-local address. Sending reports with the unspecified address is allowed to support the use of IPv6 multicast in the Neighbor Discovery Protocol.

For stateless autoconfiguration, a node is required to join several IPv6 multicast groups in order to perform duplicate address detection (DAD). Prior to DAD, the only address the reporting node has for the sending interface is a tentative one, which cannot be used for communication. Therefore, the unspecified address must be used.

MLD states that result from MLD version 2 or MLD version 1 membership reports can be limited globally or by interface. The MLD group limits feature provides protection against denial of service (DoS) attacks caused by MLD packets. Membership reports in excess of the configured limits will not be entered in the MLD cache, and traffic for those excess membership reports will not be forwarded.

MLD provides support for source filtering. Source filtering allows a node to report interest in listening to packets only from specific source addresses (as required to support SSM), or from all addresses except specific source addresses sent to a particular multicast address.

When a host using MLD version 1 sends a leave message, the device needs to send query messages to reconfirm that this host was the last MLD version 1 host joined to the group before it can stop forwarding traffic. This function takes about 2 seconds. This "leave latency" is also present in IGMP version 2 for IPv4 multicast.

MLD Access Group

MLD access groups provide receiver access control in Cisco IPv6 multicast devices. This feature limits the list of groups a receiver can join, and it allows or denies sources used to join SSM channels.

How to Configure IPv6 Multicast Listener Discovery Protocol

Enabling IPv6 Multicast Routing

IPv6 multicast uses MLD version 2. This version of MLD is fully backward-compatible with MLD version 1 (described in RFC 2710). Hosts that support only MLD version 1 will interoperate with a device running MLD version 2. Mixed LANs with both MLD version 1 and MLD version 2 hosts are likewise supported.

Before You Begin

You must first enable IPv6 unicast routing on all interfaces of the device on which you want to enable IPv6 multicast routing .

SUMMARY STEPS

    1.    enable

    2.    configure terminal

    3.    ipv6 multicast-routing [vrf vrf-name]


DETAILED STEPS
     Command or ActionPurpose
    Step 1 enable


    Example:
    Device> enable
     

    Enables privileged EXEC mode.

    • Enter your password if prompted.

     
    Step 2 configure terminal


    Example:
    Device# configure terminal
     

    Enters global configuration mode.

     
    Step 3 ipv6 multicast-routing [vrf vrf-name]


    Example:
    Device(config)# ipv6 multicast-routing
     

    Enables multicast routing on all IPv6-enabled interfaces and enables multicast forwarding for PIM and MLD on all enabled interfaces of the device.

    • IPv6 multicast routing is disabled by default when IPv6 unicast routing is enabled. IPv6 multicast-routing needs to be enabled for IPv6 multicast routing to function.

     

    Customizing and Verifying MLD on an Interface

    SUMMARY STEPS

      1.    enable

      2.    configure terminal

      3.    interface type number

      4.    ipv6 mld join-group [group-address] [[include | exclude] {source-address | source-list [acl]}

      5.    ipv6 mld access-group access-list-name

      6.    ipv6 mld static-group [group-address] [[include| exclude] {source-address | source-list [acl]}

      7.    ipv6 mld query-max-response-time seconds

      8.    ipv6 mld query-timeout seconds

      9.    ipv6 mld query-interval seconds

      10.    end

      11.    show ipv6 mld groups [link-local] [group-name | group-address] [interface-type interface-number] [detail | explicit

      12.    show ipv6 mfib summary

      13.    show ipv6 mld interface [type number


    DETAILED STEPS
       Command or ActionPurpose
      Step 1 enable


      Example:
      Device> enable
       

      Enables privileged EXEC mode.

      • Enter your password if prompted.

       
      Step 2 configure terminal


      Example:
      Device# configure terminal
       

      Enters global configuration mode.

       
      Step 3 interface type number


      Example:
      Device(config)# interface GigabitEthernet 1/0/0
       

      Specifies an interface type and number, and places the device in interface configuration mode.

       
      Step 4 ipv6 mld join-group [group-address] [[include | exclude] {source-address | source-list [acl]}


      Example:
      Device(config-if)# ipv6 mld join-group FF04::12 exclude 2001:DB8::10::11
       

      Configures MLD reporting for a specified group and source.

       
      Step 5 ipv6 mld access-group access-list-name


      Example:
      Device(config-if)# ipv6 access-list acc-grp-1
       

      Allows the user to perform IPv6 multicast receiver access control.

       
      Step 6 ipv6 mld static-group [group-address] [[include| exclude] {source-address | source-list [acl]}


      Example:
      Device(config-if)# ipv6 mld static-group ff04::10 include 100::1
       

      Statically forwards traffic for the multicast group onto a specified interface and cause the interface to behave as if a MLD joiner were present on the interface.

       
      Step 7 ipv6 mld query-max-response-time seconds


      Example:
      Device(config-if)# ipv6 mld query-max-response-time 20
       

      Configures the maximum response time advertised in MLD queries.

       
      Step 8 ipv6 mld query-timeout seconds


      Example:
      Device(config-if)# ipv6 mld query-timeout 130
       

      Configures the timeout value before the device takes over as the querier for the interface.

       
      Step 9 ipv6 mld query-interval seconds


      Example:
      Device(config-if)# ipv6 mld query-interval 60
       

      Configures the frequency at which the Cisco IOS XE software sends MLD host-query messages.

      Caution   

      Changing this value may severely impact multicast forwarding.

       
      Step 10 end


      Example:
      Device(config-if)# end
       

      Exits to privileged EXEC mode.

       
      Step 11 show ipv6 mld groups [link-local] [group-name | group-address] [interface-type interface-number] [detail | explicit


      Example:
      Device# show ipv6 mld groups GigabitEthernet 2/1/0
       

      Displays the multicast groups that are directly connected to the device and that were learned through MLD.

       
      Step 12 show ipv6 mfib summary


      Example:
      Device# show ipv6 mfib summary
       

      Displays summary information about the number of IPv6 Multicast Forwarding Information Base (MFIB) entries (including link-local groups) and interfaces.

       
      Step 13 show ipv6 mld interface [type number


      Example:
      Device# show ipv6 mld interface GigabitEthernet 2/1/0
       

      Displays multicast-related information about an interface.

       

      Disabling MLD Device-Side Processing

      A user might only want specified interfaces to perform IPv6 multicast and will therefore want to turn off MLD device-side processing on a specified interface.

      SUMMARY STEPS

        1.    enable

        2.    configure terminal

        3.    interface type number

        4.    no ipv6 mld router


      DETAILED STEPS
         Command or ActionPurpose
        Step 1 enable


        Example:
        Device> enable
         

        Enables privileged EXEC mode.

        • Enter your password if prompted.

         
        Step 2 configure terminal


        Example:
        Device# configure terminal
         

        Enters global configuration mode.

         
        Step 3 interface type number


        Example:
        Device(config)# interface GigabitEthernet 1/0/0
         

        Specifies an interface type and number, and places the device in interface configuration mode.

         
        Step 4 no ipv6 mld router


        Example:
        Device(config-if)# no ipv6 mld router
         

        Disables MLD device-side processing on a specified interface.

         

        Resetting the MLD Traffic Counters

        SUMMARY STEPS

          1.    enable

          2.    clear ipv6 mld [vrf vrf-name] traffic

          3.    show ipv6 mld [vrf vrf-name] traffic


        DETAILED STEPS
           Command or ActionPurpose
          Step 1 enable


          Example:
          Device> enable
           

          Enables privileged EXEC mode.

          • Enter your password if prompted.

           
          Step 2 clear ipv6 mld [vrf vrf-name] traffic


          Example:
          Device# clear ipv6 mld traffic
           

          Resets all MLD traffic counters.

           
          Step 3 show ipv6 mld [vrf vrf-name] traffic


          Example:
          Device# show ipv6 mld traffic
           

          Displays the MLD traffic counters.

           

          Clearing the MLD Interface Counters

          SUMMARY STEPS

            1.    enable

            2.    clear ipv6 mld [vrf vrf-name] counters interface-type


          DETAILED STEPS
             Command or ActionPurpose
            Step 1 enable


            Example:
            Device> enable
             

            Enables privileged EXEC mode.

            • Enter your password if prompted.

             
            Step 2 clear ipv6 mld [vrf vrf-name] counters interface-type


            Example:
            Device# clear ipv6 mld counters GigabitEthernet1/0/0
             

            Clears the MLD interface counters.

             

            Configuration Examples for IPv6 Multicast Listener Discovery Protocol

            Example: Enabling IPv6 Multicast Routing

            The following example enables multicast routing on all interfaces and also enables multicast forwarding for PIM and MLD on all enabled interfaces of the device.

            Device> enable
            Device# configure terminal
            Device(config)# ipv6 multicast-routing
            

            Example: Configuring the MLD Protocol

            The following example shows how to configure the query maximum response time, the query timeout, and the query interval on GigabitEthernet interface 1/0/0:

            Device> enable
            Device# configure terminal
            Device(config)# interface GigabitEthernet 1/0/0
            
            Device(config-if)# ipv6 mld query-max-response-time  20
            Device(config-if)# ipv6 mld query-timeout 130
            Device(config-if)# ipv6 mld query-interval 60
            
             
            		

            The following example shows how to configure MLD reporting for a specified group and source, allows the user to perform IPv6 multicast receiver access control, and statically forwards traffic for the multicast group onto GigabitEthernet interface 1/0/0:

            Device> enable
            Device# configure terminal
            Device(config)# interface GigabitEthernet 1/0/0
            Device(config)# ipv6 mld join-group FF04::10
            Device(config)# ipv6 mld static-group FF04::10 100::1
            Device(config)# ipv6 mld access-group acc-grp-1
            

            The following example shows information from the show ipv6 mld interface command for GigabitEthernet interface 2/1/0:

            Device# show ipv6 mld interface GigabitEthernet 2/1/1
            
            GigabitEthernet2/1/1 is up, line protocol is up
            Internet address is FE80::205:5FFF:FEAF:2C39/10
            MLD is enabled in interface
            Current MLD version is 2
            MLD query interval is 125 seconds
            MLD querier timeout is 255 seconds
            MLD max query response time is 10 seconds 
            Last member query response interval is 1 seconds
            MLD activity: 25 joins, 17 leaves
            MLD querying router is FE80::205:5FFF:FEAF:2C39 (this system)

            The following example displays the MLD protocol messages received and sent:

            Device# show ipv6 mld traffic 
            
            MLD Traffic Counters
            Elapsed time since counters cleared:00:00:21
            
                                          Received     Sent
            Valid MLD Packets               3           1 
            Queries                         1           0 
            Reports                         2           1 
            Leaves                          0           0         
            Mtrace packets                  0           0         
            
            Errors:
            Malformed Packets                           0         
            Bad Checksums                               0         
            Martian source                              0         
            Packets Received on MLD-disabled Interface  0 

            Example: Disabling MLD Router-Side Processing

            The following example turns off MLD device-side processing on GigabitEthernet interface 1/0/0:

            Device> enable
            Device# configure terminal
            Device(config)# interface GigabitEthernet 1/0/0
            
            Device(config-if)# no ipv6 mld router

            Additional References

            Related Documents

            Related Topic

            Document Title

            IPv6 addressing and connectivity

            IPv6 Configuration Guide

            Cisco IOS commands

            Cisco IOS Master Commands List, All Releases

            IP multicast commands

            Cisco IOS IP Multicast Command Reference

            IPv6 commands

            Cisco IOS IPv6 Command Reference

            Cisco IOS IPv6 features

            Cisco IOS IPv6 Feature Mapping

            Standards and RFCs

            Standard/RFC

            Title

            RFCs for IPv6

            IPv6 RFCs

            MIBs

            MIB

            MIBs Link

            To locate and download MIBs for selected platforms, Cisco IOS releases, and feature sets, use Cisco MIB Locator found at the following URL:

            http:/​/​www.cisco.com/​go/​mibs

            Technical Assistance

            Description

            Link

            The Cisco Support and Documentation website provides online resources to download documentation, software, and tools. Use these resources to install and configure the software and to troubleshoot and resolve technical issues with Cisco products and technologies. Access to most tools on the Cisco Support and Documentation website requires a Cisco.com user ID and password.

            http:/​/​www.cisco.com/​cisco/​web/​support/​index.html

            IPv6 Multicast Listener Discovery Protocol

            The following table provides release information about the feature or features described in this module. This table lists only the software release that introduced support for a given feature in a given software release train. Unless noted otherwise, subsequent releases of that software release train also support that feature.

            Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to www.cisco.com/​go/​cfn. An account on Cisco.com is not required.
            Table 1 Feature Information for IPv6 Multicast Listener Discovery Protocol

            Feature Name

            Releases

            Feature Information

            IPv6 Multicast: Multicast Listener Discovery (MLD) Protocol, Versions 1 and 2

            12.0(26)S

            12.2(18)S

            12.2(25)SG

            12.2(33)SRA

            12.3(2)T

            15.0(1)S

            Cisco IOS XE Release 2.1

            MLD is used by IPv6 routers to discover multicast listeners (nodes that want to receive multicast packets destined for specific multicast addresses) on directly attached links.

            The following commands were introduced or modified: debug ipv6 mld, ipv6 mld join-group, ipv6 mld static-group, ipv6 mld query-interval, ipv6 mld query-max-response-time, ipv6 mld query-timeout, ipv6 mld router, show ipv6 mld groups, show ipv6 mld groups summary, show ipv6 mld interface.

            IPv6 Multicast: MLD Access Group

            12.2(33)SRE

            12.2(50)SY

            12.4(2)T

            15.0(1)S

            Cisco IOS XE Release 2.1

            The MLD access group provides receiver access control in Cisco IPv6 multicast routers.

            The following command was introduced: ipv6 mld access-group.