IP Multicast / IGMP

1. Function Overview

Multicast is the process of duplicating a single IP packet and sending it to multiple specific receivers, and is used, for example, to distribute data to numerous devices in audio and video streaming.
In multicast data distribution, the multicast sender only needs to transmit a single packet, thereby reducing the load on the server acting as the sender and also reducing the bandwidth load.

IGMP (Internet Group Management Protocol) allows you to determine which multicast receivers on a LAN are joined to which multicast groups by having those receivers notify the multicast router of their joining, maintaining, or leaving multicast groups. IGMP is generally used in combination with a multicast routing protocol such as PIM (Protocol Independent Multicast), and the multicast router controls the forwarding destination of multicast packets based on the information notified by multicast receivers via IGMP.
Multicast packets are flooded to all ports in the same VLAN by the L2 switch, but by using the IGMP Snooping function, packets of the corresponding group can be distributed only to ports connected to devices that want to receive the multicast packets.

The diagram below shows how IGMP works. Within a multicast network, multicast traffic is routed by a multicast routing protocol such as PIM.
When the multicast router to which the multicast receiver is connected receives a request from the multicast receiver to join a multicast group, it forwards the multicast traffic to the VLAN interface to which the multicast receiver belongs.

image

The diagram below shows how the IGMP proxy function works. The IGMP proxy function forwards IGMP messages without enabling multicast routing protocols such as PIM.
This proxy function allows multicast packets distributed from an upstream multicast router to be forwarded to downstream multicast receivers.

image

2. Definition of Terms Used

IGMP (Internet Group Management Protocol)

This is a protocol to control multicast groups.
The multicast router can determine which hosts on the LAN are members of the multicast group, and the hosts can communicate which multicast group they belong to.
There are three protocol versions, respectively defined by IGMPv1 (RFC1112), IGMPv2 (RFC2236) and IGMPv3 (RFC3376). This product supports IGMPv2 and IGMPv3.

Upstream Interface

The interface on which the multicast sender resides.

Downstream Interface

The interface on which multicast receivers exist.

SSM (Source Specific Multicast) Mapping

A function that allows hosts that only support IGMPv1 or IGMPv2 to receive only multicast traffic from specific senders by associating multicast groups with the source addresses of multicast senders.

3. Function Details

The IGMP operating specifications are outlined below:

3.1. Basic IGMP Configuration

  1. IGMP is enabled/disabled on the VLAN interface.
    The initial settings for the default VLAN (VLAN #1) and the initial settings after a VLAN is generated are both disabled.
    You can enable IGMP with the ip igmp command. Additionally, enabling PIM automatically enables IGMP as well.
    When enabling IGMP, enable the system-wide IP multicast routing function (disabled by default) with the ip multicast-routing command.
    Also, use the multicast command to enable the multicast routing function (enabled by default) for each port.

  2. This product supports IGMP v2/v3, and the IGMP version can be changed using the ip igmp version command.
    The default setting is IGMPv3.

3.2. Joining, Maintaining, and Leaving Multicast Groups

  1. A multicast router with IGMP enabled acts as a Querier and periodically sends General Queries to check whether any multicast receivers exist.
    A multicast receiver that receives a General Query sends a Report message to request to join the multicast group.
    Reports may also be sent spontaneously by multicast receivers. When a multicast router receives a report, it forwards multicast traffic to the VLAN interface to which the multicast receiver belongs.
    The transmission interval for General Queries is set using the ip igmp query-interval command.
    The maximum response time for General Query is set using the ip igmp query-max-response-time command.

  2. When a multicast receiver participating in a multicast group leaves the group, it does so by sending a Leave message in IGMPv2 or a Report containing the leave information in IGMPv3.
    When a multicast router receives a leave message from a multicast receiver, it sends multiple Group-Specific Queries to confirm that there are no other multicast receivers for that group.
    This product floods Group-Specific Queries to all ports on the same VLAN.
    If there is no response to a Group-Specific Query, it is determined that there are no multicast receivers for that group, and the IGMP group membership entry is deleted.
    The transmission interval for Group-Specific Queries is configured using the ip igmp last-member-query-interval command.
    The number of Group-Specific Query transmissions is set using the ip igmp last-member-query-count.

  3. If there are multiple Queriers on the same VLAN, the multicast router with the smallest IP address becomes the Querier, and the other Queriers stop sending queries.
    If the Querier stops sending queries for any reason, another multicast router will take over its role.
    The waiting time for a querier to take over after another querier has stopped sending queries is set by the ip igmp querier-timeout command.
    In environments where packets are likely to be lost due to network congestion, etc., setting the value of the ip igmp robustness-variable command to a larger value will increase robustness against packet loss.

  4. IGMPv2 allows the immediate removal of IGMP group membership entries upon receiving a Leave message by using the Immediate Leave function.
    If the IGMP group membership entry is deleted when there are other multicast receivers on the same VLAN, multicast traffic will be no longer forwarded, so do not enable the Immediate leave function.
    As for the Immediate Leave function, the initial settings for the default VLAN (VLAN #1) and the initial settings after a VLAN is generated are both disabled.
    The Immediate Leave function is configured using the ip igmp immediate-leave command.

  5. Report/Leave messages are checked for their source address by default, and are discarded if the source address is different from the address range of the subnet to which the interface belongs.
    To allow IGMP messages to be received from different subnets, use the ip igmp check source-address disable command.
    Note that if the source address is 0.0.0.0, it will always be accepted regardless of the ip igmp check source-address configuration.

  6. Using IPv4 access lists allows you to restrict the multicast receivers that can join a multicast group.
    Use the ip igmp access-group to restrict multicast receivers.

  7. The maximum number of IGMP group memberships can be changed using the ip igmp limit command.

  8. To statically add IGMP group membership entries to a VLAN interface, use the ip igmp static-group command.
    When a static entry is added, it is assumed that there is always a multicast receiver on the target VLAN interface, and multicast traffic is forwarded to that VLAN.
    However, the device itself does not receive multicast traffic and does not send reports.

  9. Dynamically registered IGMP group membership entries can be deleted using the clear ip igmp command.
    Note that entries added statically using the ip igmp static-group command will not be deleted.

  10. IGMP group membership information can be checked using the show ip igmp groups command.

  11. Information about VLAN interfaces with IGMP enabled can be checked using the show ip igmp interface command.

3.3. SSM Mapping Function

IGMPv3 allows you to receive multicast traffic only from specific multicast senders by including the multicast sender’s address in the Report. However, IGMPv2 cannot specify multicast senders.
The SSM (Source Specific Multicast) mapping function allows you to associate multicast groups with multicast senders, so that even IGMPv2 multicast receivers can receive multicast traffic only from specific multicast senders.
The SSM mapping function is enabled by default.
The SSM mapping function can be enabled or disabled using the ip igmp ssm-map command.
The association between multicast groups and multicast senders is configured using the ip igmp ssm-map static command. This product allows you to use the entire multicast group as an SSM range, not just the standard SSM range (232.0.0.0/8).

3.4. IGMP Proxy Function

By using the IGMP proxy function, you can forward multicast traffic received from an upstream multicast router to multicast receivers without running a multicast routing protocol.
The IGMP proxy function requires you to configure the upstream interface (where the multicast sender resides) and the downstream interface (where the multicast receiver resides).
The upstream interface for the IGMP proxy is configured using the*ip igmp proxy-service* command.
The downstream interface for the IGMP proxy is configured using the*ip igmp mroute-proxy* command.
You can specify multiple downstream interfaces for one upstream interface.
However, multicast routing such as PIM cannot be enabled on an interface that uses the IGMP proxy function.

4. Related Commands

Related commands are indicated below.
For details on the commands, refer to the Command Reference. For PIM-related commands, see IP Multicast / PIM.

  • List of IP Multicast-Related Commands

    Operations Operating commands

    Enable/disable IP multicast routing

    ip multicast-routing

    Enable/disable multicast packet L3 forwarding

    multicast

    Configuring static unicast routes for RPF checks

    ip mroute

    Maximum entry count setting for IP multicast routing table

    ip multicast-route-limit

    Display IP multicast routing table information

    show ip mroute

    Display information about virtual interfaces for IP multicast

    show ip mvif

    Display RPF information for multicast sender addresses

    show ip rpf

    Delete an entry from the IP multicast routing table

    clear ip mroute

  • IGMP-Related Command List

    Operations Operating commands

    Enable/disable IGMP

    ip igmp

    Set IGMP version

    ip igmp version

    Setting the IGMP General Query transmission interval

    ip igmp query-interval

    Setting the maximum response time for IGMP General Queries

    ip igmp query-max-response-time

    Setting the IGMP Group-Specific Query transmission interval

    ip igmp last-member-query-interval

    Setting the IGMP Group-Specific Query transmission frequency

    ip igmp last-member-query-count

    Setting the waiting time until it determines that there are no other Queriers

    ip igmp querier-timeout

    Setting the IGMP packet loss robustness

    ip igmp robustness-variable

    Configuring immediate leave from IGMP

    ip igmp immediate-leave

    Enable/disable IGMP message source address checking

    ip igmp check source-address

    Setting restrictions on joinable multicast groups

    ip igmp access-group

    Setting the maximum number of registered multicast groups

    ip igmp limit

    Setting IGMP static multicast group members

    ip igmp static-group

    Enable/disable IGMP SSM mapping function

    ip igmp ssm-map

    Configuring static entries for IGMP SSM mappings

    ip igmp ssm-map static

    IGMP proxy downstream interface configuration

    ip igmp mroute-proxy

    Configuring the downstream interface for IGMP proxy

    ip igmp proxy-service

    Show IGMP multicast receiver information

    show ip igmp groups

    Show IGMP related information for an interface

    show ip igmp interface

    Display IGMP SSM mapping information

    show ip igmp ssm-map

    Display IGMP proxy information for an interface

    show ip igmp proxy

    Clear IGMP group membership entries

    clear ip igmp

5. Examples of Command Execution

5.1. IGMP Configuration

When distributing data by multicast, IGMP and PIM are generally used together for configuration.
The following describes a configuration example when using IGMP and PIM Dense-mode.
Note that VLAN settings and IP settings are assumed to be already configured. For details on VLAN and IP settings, see "Command Execution Examples" in "IP Multicast: PIM"

image

  1. Enable IP multicast routing.

    Yamaha(config)# ip multicast-routing
  2. Configure IGMP and PIM settings for VLAN #10 and VLAN #20.

    Yamaha(config)#interface vlan10,vlan20
    Yamaha(config-if)#ip pim dense-mode (1)
    Yamaha(config-if)#ip igmp enable (2)
    1 Enable PIM-DM on VLAN #10 and VLAN #20
    2 Enable IGMP on VLAN #10 and VLAN #20
  3. Confirm the information for the multicast recipient.

    Yamaha#show ip igmp groups
    IGMP Connected Group Membership
    Group Address    Interface            Uptime     Expires   State    Last Reporter
    239.0.0.1        vlan10               00:01:46   00:03:07  Active   192.168.10.1
    Yamaha#
  • To disable multicast routing on each VLAN interface, remove the IGMP and PIM configurations.

  1. Remove IGMP and PIM configurations on VLAN #10 and # VLAN #20.

    Yamaha(config)#interface vlan10,vlan20
    Yamaha(config-if)#no ip pim dense-mode (1)
    Yamaha(config-if)#no ip igmp enable (2)
    1 Disable PIM-DM for VLAN #10 and VLAN #20
    2 Disable IGMP on VLAN #10 and VLAN #20

5.2. Configuring IGMP Proxy

The IGMP proxy function enables the upstream interface (multicast router side) to operate as an IGMP host and the downstream interface (multicast receiver side) to operate as an IGMP querier, forwarding multicast traffic received from the upstream multicast router to the multicast receiver side.
The following describes a configuration example for IGMP proxy.
Note that VLAN settings and IP settings are assumed to be already configured. For details on VLAN and IP settings, see "Command Execution Examples" in "IP Multicast: PIM"

image

  1. Enable IP multicast routing.

    Yamaha(config)# ip multicast-routing
  2. Configure IGMP for VLAN #20 and set it as the upstream interface for the IGMP proxy.

    Yamaha(config)#interface vlan20
    Yamaha(config-if)#ip igmp proxy-service (1)
    Yamaha(config-if)#ip igmp enable (2)
    1 Specify VLAN #20 as the upstream interface for the IGMP proxy.
    2 Enable IGMP for VLAN #20
  3. Configure IGMP for VLAN #10 and set it as the downstream interface for the IGMP proxy. At this point, specify VLAN #20 for the upstream interface.

    Yamaha(config)#interface vlan10
    Yamaha(config-if)#ip igmp mroute-proxy vlan20 (1)
    Yamaha(config-if)#ip igmp enable (2)
    1 Specify VLAN #10 as the downstream interface for the IGMP proxy and VLAN #20 as the upstream interface.
    2 Enable IGMP for VLAN #10
  4. Check the IGMP proxy information.

    Yamaha#show ip igmp proxy groups
    IGMP Connected Proxy Group Membership
    Group Address    Interface            State     Member state
    239.0.0.1        vlan20               Active    Delay

When using the IGMP proxy function, multiple downstream interfaces can be linked to one upstream interface.
Also, if IGMP Snooping is enabled, packets of the corresponding group are distributed only to the ports to which the devices that want to receive multicast packets are connected.