Configuring IGMP Proxy

Prerequisites for IGMP Proxy

  • All devices on the IGMP UDL have the same subnet address. If all devices on the UDL cannot have the same subnet address, the upstream device must be configured with secondary addresses to match all of the subnets to which the downstream devices are attached.

  • IP multicast is enabled and the PIM interfaces are configured. When you are configuring PIM interfaces for IGMP proxy, use PIM sparse mode (PIM-SM) when the interface is operating in a sparse-mode region and you are running static RP, bootstrap (BSR), or Auto-RP with the Auto-RP listener capability.

Information About IGMP Proxy

IGMP Proxy

An IGMP proxy enables hosts in a unidirectional link routing (UDLR) environment that are not directly connected to a downstream router to join a multicast group sourced from an upstream network.

The figure below illustrates a sample topology that shows two UDLR scenarios:

  • Traditional UDL routing scenario--A UDL device with directly connected receivers.

  • IGMP proxy scenario--UDL device without directly connected receivers.

IGMP UDLs are needed on the upstream and downstream devices.


Note


Although the following illustration and example uses routers in the configuration, any device (router or switch) can be used.


Scenario 1 - Traditional UDLR Scenario (UDL Device with Directly Connected Receivers)

For scenario 1, no IGMP proxy mechanism is needed. In this scenario, the following sequence of events occurs:

  1. User 2 sends an IGMP membership report requesting interest in group G.

  2. Router B receives the IGMP membership report, adds a forwarding entry for group G on LAN B, and proxies the IGMP report to Router A, which is the UDLR upstream device.

  3. The IGMP report is then proxied across the Internet link.

  4. Router A receives the IGMP proxy and maintains a forwarding entry on the unidirectional link.

Scenario 2 - IGMP Proxy Scenario (UDL Device without Directly Connected Receivers)

For scenario 2, the IGMP proxy mechanism is needed to enable hosts that are not directly connected to a downstream device to join a multicast group sourced from an upstream network. In this scenario, the following sequence of events occurs:

  1. User 1 sends an IGMP membership report requesting interest in group G.

  2. Router C sends a PIM Join message hop-by-hop to the RP (Router B).

  3. Router B receives the PIM Join message and adds a forwarding entry for group G on LAN B.

  4. Router B periodically checks its mroute table and proxies the IGMP membership report to its upstream UDL device across the Internet link.

  5. Router A creates and maintains a forwarding entry on the unidirectional link (UDL).

In an enterprise network, it is desirable to be able to receive IP multicast traffic via satellite and forward the traffic throughout the network. With unidirectional link routing (UDLR) alone, scenario 2 would not be possible because receiving hosts must be directly connected to the downstream device, Router B. The IGMP proxy mechanism overcomes this limitation by creating an IGMP report for (*, G) entries in the multicast forwarding table. To make this scenario functional, therefore, you must enable IGMP report forwarding of proxied (*, G) multicast static route (mroute) entries (using the ip igmp mroute-proxy command) and enable the mroute proxy service (using the ip igmp proxy-service command) on interfaces leading to PIM-enabled networks with potential members.


Note


Because PIM messages are not forwarded upstream, each downstream network and the upstream network have a separate domain.


Scenario 3 - IGMP Proxy Scenario without UDLR

For scenario 3, the IGMP proxy mechanism is used to enable hosts to receive traffic from an upstream network, without using a UDLR link. In this scenario, the following sequence of events occurs:

  1. The host is in PIM Domain 1 and sends an IGMP membership report (a join request) to Router D requesting interest in group G. Router D converts the IGMP Join to a PIM join and sends it to Router C. This request should now be sent upstream, from Router C to Router A. The routers are in two different PIM domains (not PIM neighbors) and are connected through a GRE tunnel instead.

  2. Router C converts the PIM join message to an IGMP proxy join so that it can be forwarded to the GRE tunnel endpoint, which is Router A.


    Note


    IGMP proxy joins can be transferred across 1 hop only.

    In the figure below, the GRE tunnel provides this single hop between Router C and Router A (bypassing Router B).

    In the absence of a GRE tunnel, devices from different PIM domains must have directly (back-to-back) connected interfaces.
  3. After the IGMP proxy join reaches Router A, it is forwarded to the source device as a PIM join message.

How to Configure IGMP Proxy

Configuring the Upstream UDL Device for IGMP UDLR

Perform this task to configure the upstream UDL device for IGMP UDLR.

Procedure

  Command or Action Purpose

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

Enters interface configuration mode.

  • For the type and number arguments, specify the interface to be used as the UDL on the upstream device.

Step 4

ip igmp unidirectional-link

Example:


Device(config-if)# ip igmp unidirectional-link

Configures IGMP on the interface to be unidirectional for IGMP UDLR.

Step 5

end

Example:


Device(config-if)# end

Ends the current configuration session and returns to privileged EXEC mode.

Configuring the Downstream UDL Device for IGMP UDLR with IGMP Proxy Support

Perform this task to configure the downstream UDL device for IGMP UDLR with IGMP proxy support.

Procedure

  Command or Action Purpose

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 0/0/0

Enters interface configuration mode.

  • For the type and number arguments, specify the interface to be used as the UDL on the downstream device for IGMP UDLR.

Step 4

ip igmp unidirectional-link

Example:


Device(config-if)# ip igmp unidirectional-link

Configures IGMP on the interface to be unidirectional for IGMP UDLR.

Step 5

exit

Example:


Device(config-if)# exit

Exits interface configuration mode and returns to global configuration mode.

Step 6

interface type number

Example:


Device(config)# interface gigabitethernet 1/0/0

Enters interface configuration mode.

  • For the type and number arguments, select an interface that is facing the nondirectly connected hosts.

Step 7

ip igmp mroute-proxy type number

Example:


Device(config-if)# ip igmp mroute-proxy loopback 0 

Enables IGMP report forwarding of proxied (*, G) multicast static route (mroute) entries.

  • This step is performed to enable the forwarding of IGMP reports to a proxy service interface for all (*, G) forwarding entries in the multicast forwarding table.

  • In this example, the ip igmp mroute-proxy command is configured on Gigabit Ethernet interface 1/0/0 to request that IGMP reports be sent to loopback interface 0 for all groups in the mroute table that are forwarded to Gigabit Ethernet interface 1/0/0.

Step 8

exit

Example:


Device(config-if)# exit

Exits interface configuration mode and returns to global configuration mode.

Step 9

interface type number

Example:


Device(config)# interface loopback 0

Enters interface configuration mode for the specified interface.

  • In this example, loopback interface 0 is specified.

Step 10

ip igmp helper-address udl interface-type interface-number

Example:


Device(config-if)# ip igmp helper-address udl gigabitethernet 0/0/0

Configures IGMP helpering for UDLR.

  • This step allows the downstream device to helper IGMP reports received from hosts to an upstream device connected to a UDL associated with the interface specified for the interface-type and interface-number arguments.

  • In the example topology, IGMP helpering is configured over loopback interface 0 on the downstream device. Loopback interface 0, thus, is configured to helper IGMP reports from hosts to an upstream device connected to Gigabit Ethernet interface 0/0/0.

Step 11

ip igmp proxy-service

Example:


Device(config-if)# ip igmp proxy-service 

Enables the mroute proxy service.

  • When the mroute proxy service is enabled, the device periodically checks the static mroute table for (*, G) forwarding entries that match interfaces configured with the ip igmp mroute-proxy command (see Step 7) based on the IGMP query interval. Where there is a match, one IGMP report is created and received on this interface.

Note

 

The ip igmp proxy-service command is intended to be used with the ip igmp helper-address (UDL) command.

  • In this example, the ip igmp proxy-service command is configured on loopback interface 0 to enable the forwarding of IGMP reports out the interface for all groups on interfaces registered through the ip igmp mroute-proxy command (see Step 7).

Step 12

end

Example:


Device(config-if)# end

Ends the current configuration session and returns to privileged EXEC mode.

Step 13

show ip igmp interface

Example:


Device# show ip igmp interface

(Optional) Displays multicast-related information about an interface.

Step 14

show ip igmp udlr

Example:


Device# show ip igmp udlr

(Optional) Displays UDLR information for directly connected multicast groups on interfaces that have a UDL helper address configured.

Configuring the Downstream Device for IGMP Proxy Join without UDLR

Perform this task to configure the downstream device for IGMP Proxy without UDLR.

(Referring to the figure above, all the steps are configured on Router C)

Procedure

  Command or Action Purpose

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

Enters interface configuration mode.

For the type and number arguments, specify the interface that is facing the host.

Step 4

ip igmp mroute-proxy type number

Example:

Device(config-if)# ip igmp mroute-proxy loopback 0 

Enables the forwarding of IGMP reports to the specified proxy service interface, for forwarding of all proxied (*, G) multicast static route (mroute) entries in the multicast forwarding table.

In the step example, loopback interface 0 is such a proxy service interface.

Step 5

exit

Example:

Device(config-if)# exit

Exits interface configuration mode and returns to global configuration mode.

Step 6

interface type number

Example:

Device(config)# interface loopback 0

Enters interface configuration mode for the specified proxy service interface.

In the step example, loopback interface 0 is specified.

Step 7

ip igmp helper-address ip-address

Example:

Device(config-if)# ip igmp helper-address 10.0.0.2

Configures IGMP helper for IGMP proxy join.

For the ip-address argument, specify the ip address of the upstream device to which the IGMP proxy join should reach.

In the example topology, the IGMP helper is configured over loopback interface 0 on the downstream device (Router C).

This command configures loopback interface 0 to help convert the PIM joins received from Router D to IGMP proxy joins and transfer them to the upstream device (Router A).

Step 8

ip igmp proxy-service

Example:

Device(config-if) ip igmp proxy-service

Enables the mroute proxy service.

When the mroute proxy service is enabled, the device periodically checks the static mroute table for (*, G) forwarding entries that match interfaces configured with the ip igmp mroute-proxy command (see Step 7) based on the IGMP query interval. Where there is a match, one IGMP report is created and received on this interface.

Note

 

The ip igmp proxy-service command is intended to be used with the ip igmp helper-address command.

Step 9

end

Example:

Device(config-if)# end

Ends the current configuration session and returns to privileged EXEC mode.

Step 10

show ip igmp interface

Example:

Device# show ip igmp interface

(Optional) Displays multicast-related information about an interface.

Configuration Examples for IGMP Proxy

Example: Configuring the Upstream UDL Device for IGMP UDLR

The following example shows how to configure the upstream UDL device for IGMP UDLR:


interface gigabitethernet 0/0/0 
ip address 10.1.1.1 255.255.255.0 
ip pim sparse-mode 
! 
interface gigabitethernet 1/0/0 
ip address 10.2.1.1 255.255.255.0 
ip pim sparse-mode 
ip igmp unidirectional-link 
! 
interface gigabitethernet 2/0/0 
ip address 10.3.1.1 255.255.255.0 

Example: Configuring the Downstream UDL Device for IGMP UDLR with IGMP Proxy Support

The following example shows how to configure the downstream UDL device for IGMP UDLR with IGMP proxy support:


ip pim rp-address 10.5.1.1 5 
access-list 5 permit 239.0.0.0 0.255.255.255 
! 
interface loopback 0 
ip address 10.7.1.1 255.255.255.0 
ip pim sparse-mode 
ip igmp helper-address udl ethernet 0 
ip igmp proxy-service 
! 
interface gigabitethernet 0/0/0 
ip address 10.2.1.2 255.255.255.0 
ip pim sparse-mode 
ip igmp unidirectional-link 
! 
interface gigabitethernet 1/0/0 
ip address 10.5.1.1 255.255.255.0 
ip pim sparse-mode 
ip igmp mroute-proxy loopback 0 
! 
interface gigabitethernet 2/0/0 
ip address 10.6.1.1 255.255.255.0 

Example: Configuring the Downstream Device for IGMP Proxy Join without UDLR

The following example shows how to configure the downstream device for IGMP proxy without UDLR:


interface Loopback0
ip address 2.2.2.2 255.255.0.0
ip pim sparse-dense-mode
ip igmp helper-address 99.99.99.1
ip igmp proxy-service
ip ospf 1 area 0
!

Additional References for IGMP Proxy

The following sections provide references related to customizing IGMP.

Related Documents

Related Topic

Document Title

For complete syntax and usage information for the commands used in this chapter.

See the IP Multicast Routing Commands section of theCommand Reference (Catalyst 9600 Series Switches)

Standards and RFCs

Standard/RFC

Title

RFC 1112

Host extensions for IP multicasting

RFC 2236

Internet Group Management Protocol, Version 2

RFC 3376

Internet Group Management Protocol, Version 3

Feature History for IGMP Proxy

This table provides release and related information for the features explained in this module.

These features are available in all the releases subsequent to the one they were introduced in, unless noted otherwise.

Release

Feature

Feature Information

Cisco IOS XE Gibraltar 16.11.1

IGMP Proxy

An IGMP proxy enables hosts in a unidirectional link routing (UDLR) environment that are not directly connected to a downstream router to join a multicast group sourced from an upstream network.

Cisco IOS XE Gibraltar 16.12.1

IGMP Proxy without UDLR

The IGMP proxy enables hosts to receive traffic from an upstream network, without using a UDLR link.

Cisco IOS XE Cupertino 17.7.1

IGMP Proxy

IGMP Proxy without UDLR

IGMP Proxy for multiple upstream interfaces

These features were implemented on supervisor modules C9400X-SUP-2 and C9400X-SUP-2XL, which were introduced in this release.

Use the Cisco Feature Navigator to find information about platform and software image support. To access Cisco Feature Navigator, go to http://www.cisco.com/go/cfn.