The documentation set for this product strives to use bias-free language. For the purposes of this documentation set, bias-free is defined as language that does not imply discrimination based on age, disability, gender, racial identity, ethnic identity, sexual orientation, socioeconomic status, and intersectionality. Exceptions may be present in the documentation due to language that is hardcoded in the user interfaces of the product software, language used based on RFP documentation, or language that is used by a referenced third-party product. Learn more about how Cisco is using Inclusive Language.
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:
User 2 sends an IGMP membership report requesting interest in group G.
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.
The IGMP report is then proxied across the Internet link.
Router A receives the IGMP proxy and maintains a forwarding entry on the unidirectional link.
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:
User 1 sends an IGMP membership report requesting interest in group G.
Router C sends a PIM Join message hop-by-hop to the RP (Router B).
Router B receives the PIM Join message and adds a forwarding entry for group G on LAN B.
Router B periodically checks its mroute table and proxies the IGMP membership report to its upstream UDL device across the
Internet link.
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 ipigmpmroute-proxy command) and enable the mroute proxy service (using the ipigmpproxy-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:
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.
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.
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
configureterminal
Example:
Device# configure terminal
Enters global configuration mode.
Step 3
interfacetypenumber
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
ipigmpunidirectional-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
configureterminal
Example:
Device# configure terminal
Enters global configuration mode.
Step 3
interfacetypenumber
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
ipigmpunidirectional-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
interfacetypenumber
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
ipigmpmroute-proxytypenumber
Example:
Device(config-if)# ip igmp mroute-proxy loopback 0
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, theipigmpmroute-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
interfacetypenumber
Example:
Device(config)# interface loopback 0
Enters interface configuration mode for the specified interface.
In this example, loopback interface 0 is specified.
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
ipigmpproxy-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 ipigmpmroute-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 ipigmpproxy-service command is intended to be used with the ipigmphelper-address (UDL) command.
In this example, the ipigmpproxy-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 ipigmpmroute-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
showipigmpinterface
Example:
Device# show ip igmp interface
(Optional) Displays multicast-related information about an interface.
Step 14
showipigmpudlr
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
interfacetype 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-proxytype 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
interfacetype 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-addressip-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.
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.