IGMP Proxy Configuration
In some simple tree topologies, it is not necessary to configure complex multicast routing protocols, such as PIM, on the boundary devices. It is sufficient to learn and proxy the group membership information and simply forward multicast packets based upon that information. Using IGMP forwarding (RFC 4605) to replicate multicast traffic on devices such as the edge boxes can greatly simplify the design and implementation of those devices. By not supporting more complicated multicast routing protocol such as Protocol Independent Multicast (PIM), it reduces not only the cost of the devices but also the operational overhead. Another advantage is that it makes the proxy devices independent of the multicast routing protocol used by the core network routers.
IGMP proxy can be used in such topologies instead of PIM. With IGMP proxy configured, the device serves as a proxy for the downstream hosts to send IGMP messages, maintain group memberships, and implement multicast forwarding based on the memberships. In this case, each boundary device configured with IGMP proxying is a host but no longer a PIM neighbor to the upstream device.
A device with IGMP proxy configured maintains a group membership database, which stores the group memberships on all the downstream interfaces. Each entry comprises the multicast address, filter mode, and source list. Such an entry is a collection of members in the same multicast group on each downstream interface.
A proxy device performs host functions on the upstream interface based on the database. It responds to queries according to the information in the database or sends join/leave messages when the database changes. On the other hand, the proxy device performs router functions on the downstream interfaces by participating in the querier election, sending queries, and maintaining memberships based on the reports.
Terminology
Following is a brief description of terms and concepts used to describe the IGMP Proxy:
Upstream interface
Also referred to as the proxy interface. A proxy interface is an interface on which IGMP proxy service is configured. It is in the direction toward the root of the multicast forwarding tree. An upstream interface acts as a host running IGMP; therefore, it is also called host interface.
Downstream interface
An interface that is running IGMP and in the direction contrary to the root of the multicast forwarding tree. A downstream interface acts as a router running IGMP; therefore, it is also called router interface.
Member State
State of the associated group address and interface.
• Idle - Interface has not yet responded to a group membership query or general query for this group.
• Delay - Interface has responded to the latest group membership query or general query for this group.
IGMP-Proxy Configuration Steps
This section provides the configuration steps for configuring IGMP Proxy and example for a relevant scenario.
• Enable IGMP Proxy service on the upstream interface.
• Enable IGMP mroute configuration on the downstream interface.
• Enable IGMP proxy unsolicited report interval on the proxy interface. The proxy group membership reports are forwarded to the upstream router in this unsolicited report interval time. This is an optional parameter in which the default value of 1 sec is considered for forwarding proxy groups to upstream router.
Note: Configure IP addresses on all the interfaces used in the topology.
Unicast routing protocol should be configured in the PIM domain.
Topology
In this network topology, Router 1 acts as a proxying router to the upstream router Router 2 in which PIM domain is present. Also the source address is 172.31.1.52 and the group address is set to 224.0.1.3.
Note: Any PIM mode (PIM-SM,PIM-DM,PIM-SMDM) should be enabled on all the interfaces in the PIM domain.
Here in this example default value for unsolicited report interval is considered.
IGMP Proxy Topology
In this example, Routers 2 and 3 are running PIM and Router1 is the IGMP Proxying router.
• Host ends an IGMP membership report to Subnet 1.
• Downstream interface on Router1 received IGMP reports from host and updates the proxy interface.
• IGMP Proxying router (Router1) maintains the group membership information and forwards the received report to the upstream router (Router2).
• Source then sends a data packet for group.
• When the data packet reaches Router1, it forwards via the interface, eth2, because it has an IGMP join requested for Multicast traffic.
Enabling IP Multicast Routing
Enable IP multicast routing on all of the PIM routers inside the PIM domain:
#configure terminal | Enter Configure mode. |
(config)# ip multicast-routing | Enable IP multicast routing. |
(config)#commit | Commit the transaction. |
Enabling Proxy upstream interface
Enable IGMP proxy service on the interface in which the interface is in the direction toward the root of the multicast forwarding tree. In this example eth1 is the upstream interface which acts as an IGMP host.
#configure terminal | Enter Configure mode. |
(config)#interface eth1 | Enter interface mode. |
(config-if)#ip address 192.168.1.57/24 | Assign IP address to an interface |
(config-if)#ip igmp proxy-service | Enable IGMP proxy service on the upstream interface. |
(config-if)#commit | Commit the transaction. |
(config)#exit | Exit Configure mode. |
Enabling Proxy downstream interface
Enable IGMP mroute proxy on the interface in which the interface is in the direction contrary to the root of the multicast forwarding tree. In this example eth2 is the downstream interface which is connected to receiver.
#configure terminal | Enter Configure mode. |
(config)#interface eth2 | Enter Interface mode |
(config-if)#ip address 192.168.10.57/24 | Assign IP address to an interface |
(config-if)#ip igmp mroute-proxy eth1 | Enable IGMP mroute proxy on the downstream interface and specify the upstream proxy interface name. |
(config-if)#commit | Commit the transaction. |
(config)#exit | Exit Configure mode. |
Validation
Here is the same configuration for IGMP Proxying router.
hostname Router1
!
interface lo
!!
ip multicast-routing
!
interface eth0
!
interface eth1
ip address 192.168.1.57/24
no shutdown
ip igmp proxy-service
!
interface eth2
ip address 192.168.10.57/24
no shutdown
ip igmp mroute-proxy eth1
!
IGMP proxy interface
The following output displays the IGMP Proxy interface information.
Router1#show ip igmp interface
Interface eth1 (Index 3)
IGMP Enabled, Active, Version 3 (default), proxy-service
IGMP host version 3
Internet address is 192.168.1.57
Unsolicited Report Interval is 1000 milliseconds
Interface eth2 (Index 4)
IGMP Enabled, Active, Querier, Version 3 (default)
IGMP mroute-proxy interface is eth1
Internet address is 192.168.10.57
IGMP interface has 1 group-record states
IGMP Interface statistics:
v1-reports: 0
v2-reports: 1, v2-leaves: 0
v3-reports: 0
IGMP query interval is 125 seconds
IGMP Startup query interval is 31 seconds
IGMP Startup query count is 2
IGMP querier timeout is 255 seconds
IGMP max query response time is 10 seconds
Group Membership interval is 260 seconds
IGMP Last member query count is 2
Last member query response interval is 1000 milliseconds
IGMP proxy
The following output displays the IGMP proxy information.
Router1#show ip igmp proxy
Interface eth2 (Index 4)
Administrative status: enabled
Operational status: up
Upstream interface is eth1
Number of multicast groups: 1
IGMP proxy groups
The following output displays the IGMP proxy group membership information.
Router1#show ip igmp proxy groups
IGMP Connected Proxy Group Membership
Group Address Interface State Member state
224.0.1.3 eth1 Active Delay
IP Multicast Routing Table
The show ip mroute command displays the IP multicast routing table.
Router1#show ip mroute
IP Multicast Routing Table
Flags: I - Immediate Stat, T - Timed Stat, F - Forwarder installed
B - BIDIR
Timers: Uptime/Stat Expiry
Interface State: Interface (TTL)
(172.31.1.52, 224.0.1.3), uptime 00:00:05
Owner IGMP-Proxy-Service, Flags: F
Incoming interface: eth1
Outgoing interface list:
eth2 (1)
Enabling Unsolicited report interval
Enable IGMP proxy unsolicited report interval on the upstream interface. The proxy group membership reports are forwarded to the upstream router in this unsolicited report interval time.
#configure terminal | Enter Configure mode. |
(config)#interface eth1 | Enter Interface mode |
(config-if)#ip igmp proxy unsolicited-report-interval 20000 | Enable IGMP proxy unsolicited report interval value on the upstream interface. |
(config-if)#commit | Commit the transaction. |
(config)#exit | Exit Configure mode. |
Validation
Here is the same configuration for IGMP Proxying router.
hostname Router1
!
interface eth0
!
interface eth1
ip address 192.168.1.57/24
ip igmp proxy-service
ip igmp proxy unsolicited-report-interval 20000
!
interface eth2
ip address 192.168.10.57/24
ip igmp mroute-proxy eth1
!
interface lo
!
!
ip multicast-routing
!
IGMP proxy Unsolicited report interval
The following output displays the IGMP proxy unsolicited report interval information.
Router1#show ip igmp interface eth1
Interface eth1 (Index 3)
IGMP Enabled, Active, Version 3 (default), proxy-service
IGMP host version 3
Internet address is 192.168.1.57
Unsolicited Report Interval is 20000 milliseconds
IGMP proxy group with unsolicited report interval
The following output displays the IGMP proxy group membership information when the proxy unsolicited report interval is configured to specific value.
Router1#show ip igmp proxy groups
IGMP Connected Proxy Group Membership
Group Address Interface State Member state
224.0.1.3 eth1 Active Idle
IP Multicast Routing Table
The show ip mroute command displays the IP multicast routing table.
Router1#show ip mroute
IP Multicast Routing Table
Flags: I - Immediate Stat, T - Timed Stat, F - Forwarder installed
B - BIDIR
Timers: Uptime/Stat Expiry
Interface State: Interface (TTL)
(172.31.1.52, 224.0.1.3), uptime 00:00:05
Owner IGMP-Proxy-Service, Flags: F
Incoming interface: eth1
Outgoing interface list:
eth2 (1)