Tuesday, 24 March 2015

MLD (multicast listener discovery) snooping

Introduction:

In IPv4 multicast group membership is managed through Internet Group Management Protocol (IGMP).Internet Group Management Protocol (IGMP) is a protocol that manages host membership in IP multicast group. A specific host listens on a specific IP multicast address and receives all packets to that IP address. In IPv6, multicast group management is accomplished with a set of ICMPv6 messages that comprise the Multicast Listener Discovery (MLD) protocol.

MLD Basic Overview:

MLDv1 is similar to IGMPv2 and MLDv2 similar to IGMPv3.Like IGMP, MLDv2 is backward compatible to MLDv1.For cisco switches, MLD snooping provides the same functionality as IGMP snooping in IPv4.It provides information to the switch about which connected hosts are member of a specific group so that switch can make decision about whether, and on which interface, to allow traffic for that group.

MLD is automatically enabled when you perform one of the following configuration tasks on an interface:
•Enable PIM6
•Statically bind a local multicast group
•Enable link-local group reports

MLD uses three different types of messages:
1) Multicast Listener Query: The Query message type has two subtypes.
->The General Query issued by routers to discover the entire multicast groups that listeners on the link are subscribed to.
-> Multicast-Address-Specific Query: issued by routers to discover whether there are any local link subscribers (listeners) to a particular multicast address. Only routers send queries, and usually there is only one router that acts as a querier on each link.
2) Multicast Listener Report: An unsolicited Report message is sent by any node when it begins listening to a multicast address; Report messages are generated in response to a Query message sent by a router(either a query for a specific multicast address or a general query).
3) Multicast 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.

The figure below shows where MLD operate within the IPv6 multicast environment.
1

Configuration Overview:


A) Configuring MLD Snooping:

To enable MLD snooping globally, perform this task:
Router(config)# ipv6 mld snooping
Router(config)# end
Router# show ipv6 mld interface vlan 100 | include globally
  MLD snooping is globally enabled
Router#

To enable MLD snooping in a VLAN, perform this task:

Router# interface vlan 125
Router(config-if)# ipv6 mld snooping
Router(config-if)# end
Router# show ipv6 mld interface vlan 125 | include snooping
  MLD snooping is globally enabled
  MLD snooping is enabled on this interface
  MLD snooping fast-leave is enabled and querier is enabled
  MLD snooping explicit-tracking is enabled
  MLD snooping last member query response interval is 1000 ms
  MLD snooping report-suppression is disabled
Router#

B) Configures MLD reporting for a specified group and source.
Router(config)#int fa0/0
Router(config-if)# ipv6 mld join-group FF04::12 exclude 2001::1

C) To allow the user to perform IPv6 multicast receiver access control:  
Router(config)#int fa0/0
Router(config-if)# ipv6 access-list (Acl_Name)

D) To statically forward 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.
Router(config)#int fa0/0
Router(config-if)# ipv6 mld static-group ff04::10 include 100::1

E) Configures the maximum response time advertised in MLD queries.
Router(config)#int fa0/0
Router(config-if)# ipv6 mld query-max-response-time 20

F) Configures the timeout value before the device takes over as the querier for the interface.
Router(config)#int fa0/0
Router(config-if)# ipv6 mld query-timeout 130  

G) Configures the frequency to sends MLD host-query messages.  
Router(config)#int fa0/0
Router(config-if)# ipv6 mld query-interval 60

H)Verification Command:

-> To displays multicast-related information about an interface
Router#show ipv6 mld interface fa0/0

-> To displays the multicast groups that are directly connected to the device and that were learned through MLD.
Router#Show ipv6 mld groups

J) To reset the MLD :
Router#clear ipv6 mld ?
  counters  Clear interface counters
  group     Delete group cache entries
  traffic   Clear traffic counters

Reference:

Multicast Listener Discovery Version 2 (MLDv2) for IPv6
Configuring MLD