OcNOS-SP : Multicast Guide : Multicast Configuration Guide : IGMP Configuration
IGMP Configuration
This chapter describes how to configure Internet Group Management Protocol (IGMP).
The Internet Group Management Protocol (IGMP) is used by IP hosts to report their multicast group memberships to any immediately-neighboring multicast routers.
Using the information obtained through IGMP, the router maintains a list of multicast group on a per-interface basis. The routers that receive these IGMP packets send multicast data that they receive for requested groups out the network segment of the known receivers.
By default, when PIM is enabled on an interface, IGMP version 3 is enabled. IGMP can be enabled on an interface explicitly.
IGMP Versions
OcNOS supports IGMPv2 and IGMPv3, as well as IGMPv1 report reception. By default, OcNOS enables IGMPv3 when PIM is enabled on an interface.
IGMPv3 includes the following key changes from IGMPv2:
Support for Source-Specific Multicast (SSM), which builds shortest path trees from each receiver to the source, through the following feature:
Host messages that can specify both the group and the source.
The multicast state that is maintained for groups and sources, not just for groups as in IGMPv2.
Hosts no longer perform report suppression, which means that hosts always send IGMP membership reports when an IGMP query message is received.
IGMP Operation
IGMP works on the premise of three major packets exchange between IGMP enabled routers and hosts, interested in joining a particular group.
IGMP Query Operation
Once IGMP is enabled or pim is enabled (which enables igmpv3), on any interface it starts sending Query message, which is called general query to the all-hosts multicast group at 224.0.0.1 periodically to discover whether any hosts want to receive multicast data.
OcNOS elects a router as the IGMP querier on a subnet if it has the lowest IP address. As long as a router continues to receive query messages from a router with a lower IP address, it resets a timer that is based on its querier timeout value. If the querier timer of a router expires, it becomes the designated querier. If that router later receives a host query message from a router with a lower IP address, it drops its role as the designated querier and sets its querier timer again.
In the figure below Router-1 eth2 sends query every query-interval. Since Router1-eth2 IP address is less than Router-2 eth2, Router-1 eth2 becomes querier on the LAN.
IGMP Membership Report Operation
When a host receives a query from the local router it sends a Host Membership Report for all the multicast groups for which it wants to receive multicast traffic. This is called solicited membership report.
When a host joins a new group, the host immediately sends a Membership Report to inform a local router that it wants to receive multicast traffic for the group it has just joined without waiting to receive a Query. This is called unsolicited membership report.
In the figure below Host-1 and Host-2 sends membership reports to Router-1 eth2 for all the multicast groups for which they want to receive multicast traffic. Upon reception of membership report Router-1 maintains an IGMP group table containing multicast group-address, interface name on which it receives the report.
IGMP Leave Operation
When a multicast host leaves a group, a host that runs IGMPv2 or later sends an IGMP leave message. To check if this host is the last host to leave the group, the router sends an IGMP query (Called as Group-specific-query) message and starts a timer that you can configure called the last member query response interval. If no reports are received before the timer expires, the software removes the group state. The router continues to send multicast traffic for a group until its state is removed.
In the figure below Host-1 and Host-2 sends leave message to Router-1 eth2 for all the multicast groups for which they don’t want to receive multicast traffic. In response to leave message Router-1 eth2 sends an group-specific-query message before removing the multicast group address from the IGMP table.
Topology
The procedures in this section use the topology in Figure 1-1.
IGMP Topology
IGMP Configuration
The following example shows IGMP configuration on Router1.
Configuring IGMP Version
The configuration that follows shows how IGMP version can be configured.
 
#configure terminal
Enter configure mode.
(config)#ip multicast-routing
Enable IP multicast routing
(config)#interface eth2
Enter interface mode.
(config-if)#ip address 10.1.1.10/24
Assign IP address to an interface
(config-if)#ip igmp version 2
Enable IGMP version as v2.
(config-if)#commit
Commit the transaction.
(config)#exit
Exit Configure mode.
Validation
Enter the commands listed in this section to confirm the previous configurations.
#show running-config
!
no service password-encryption
!
hostname rtr1
!
ip multicast-routing
!
!
interface eth2
ip address 10.1.1.10/24
no shutdown
ip igmp version 2
Configuring IGMP Parameters
The configuration that follows shows how IGMP parameters can be configured.
 
#configure terminal
Enter configure mode.
(config)#ip multicast-routing
Enable IP multicast routing
(config)#interface eth2
Enter interface mode
(config-if)#ip igmp access-group 1
Configures a access-list policy to control the multicast groups that hosts on the subnet serviced by an interface can join.
(config-if)#ip igmp immediate-leave
group-list 1
Enables the device to remove the group entry from the multicast routing table immediately upon receiving a leave message for the group.
(config-if#ip igmp join-group 224.1.1.1
Statically binds a multicast group to the outgoing interface
(config-if)# ip igmp last-member-query-count 7
Sets the query count used when the software starts up.
(config-if)# ip igmp last-member-query-interval 25500
Sets the query interval used when the software starts up.
(config-if)#ip igmp limit 100
Configure Max Allowed State on this interface
(config-if)#ip igmp querier-timeout 300
Sets the querier timeout that the router uses when deciding to take over as the querier.
(config-if)#ip igmp query-interval 200
Sets the frequency at which the router sends IGMP host query messages.
(config-if)#ip igmp query-max-response-time 150
Sets the response time advertised in IGMP queries.
(config-if)#ip igmp ra-option
Enable ra-option.
(config-if)#ip igmp robustness-variable 4
Sets the robustness variable.
(config-if)#ip igmp startup-query-count 4
Sets the query count used when the router starts up.
(config-if)# ip igmp startup-query-interval 50
Sets the query interval used when the router starts up.
(config-if)# ip igmp static-group 225.1.1.1
Statically binds a multicast group to the outgoing interface.
(config-if)#commit
Commit the transaction.
(config)#exit
Exit Configure mode.
Validation
Enter the commands listed in this section to confirm the previous configurations.
Rtr1#show running-config
!
no service password-encryption
!
hostname rtr1
!
!
ip multicast-routing
!
!
interface eth2
ip address 10.1.1.10/24
no shutdown
ip igmp access-group 1
ip igmp immediate-leave group-list 1
ip igmp last-member-query-count 7
ip igmp limit 100
ip igmp join-group 224.1.1.1
ip igmp static-group 225.1.1.1
ip igmp last-member-query-interval 25500
ip igmp querier-timeout 300
ip igmp query-interval 200
ip igmp query-max-response-time 150
ip igmp startup-query-interval 50
ip igmp startup-query-count 4
ip igmp robustness-variable 4
ip igmp ra-option
ip igmp version 2
!!
 
Rtr1#show ip igmp interface eth2
Interface eth2 (Index 4)
IGMP Enabled, Active, Querier, Configured for version 2
Internet address is 10.1.1.10
IGMP interface limit is 100
IGMP interface has 2 group-record states
IGMP Interface statistics:
v1-reports: 0
v2-reports: 0, v2-leaves: 0
v3-reports: 0
IGMP query interval is 200 seconds
IGMP Startup query interval is 50 seconds
IGMP Startup query count is 4
IGMP querier timeout is 300 seconds
IGMP max query response time is 150 seconds
Group Membership interval is 950 seconds
IGMP Last member query count is 7
Last member query response interval is 25500 milliseconds
Here is the sample configuration on Router-1 with all the IGMP related commands configured.
Rtr1#show running-config
!
no service password-encryption
!
hostname rtr1
!
!
ip domain-lookup
!
ip multicast-routing
!
ip pim register-rp-reachability
ip pim crp-cisco-prefix
!
interface lo
ip address 127.0.0.1/8
ip address 1.1.1.57/32 secondary
ipv6 address ::1/128
no shutdown
!
interface eth0
ip address 10.12.48.179/24
no shutdown
!
interface eth1
ip address 192.168.1.27/24
no shutdown
ip igmp version 2
!
interface eth2
ip address 10.1.1.10/24
no shutdown
ip igmp access-group 1
ip igmp immediate-leave group-list 1
ip igmp last-member-query-count 7
ip igmp limit 100
ip igmp join-group 224.1.1.1
ip igmp static-group 225.1.1.1
ip igmp last-member-query-interval 25500
ip igmp querier-timeout 300
ip igmp query-interval 200
ip igmp query-max-response-time 150
ip igmp startup-query-interval 50
ip igmp startup-query-count 4
ip igmp robustness-variable 4
ip igmp ra-option
ip igmp version 2
!
line con 0
login
line vty 0 16
exec-timeout 0 0
login
line vty 17 39
login
!
End
 
IGMP Group Table after IGMPV2 Membership Report is received
IGMP group table is populated at router by virtue of either static join is configured on interface or dynamic report is being received on the interface.
The show ip igmp group command displays the IGMP group table. In this table, the following fields are defined.
 
Table 1-1: IGMP group table after IGMPV2 membership report
Group address
Displays the Multicast Group for which report is received.
Interface
Interface name on which Membership report is received.
Uptime
Duration since the report is received.
Expiry
Time frame in which the multicast group is going to expire.
Last Reporter
Host address from where the report is generated.
 
Rtr1#show ip igmp groups
IGMP Connected Group Membership
Group Address Interface Uptime Expires State Last Reporter
224.0.1.3 eth2 00:10:06 00:03:43 Active 10.1.1.52
224.1.1.1 eth2 01:54:53 static Active 0.0.0.0
225.1.1.1 eth2 00:17:22 static Active 0.0.0.0
 
Rtr1#show ip igmp groups detail
IGMP Connected Group Membership Details
Flags: (M - SSM Mapping, R - Remote, L - Local,
SG - Static Group, SS - Static Source)
Interface: eth2
Group: 224.0.1.3
Flags: R
Uptime: 00:10:06
Group mode: Exclude (Expires: 00:03:43)
State: Active
Last reporter: 10.1.1.52
Source list is empty
 
Flags: (M - SSM Mapping, R - Remote, L - Local,
SG - Static Group, SS - Static Source)
Interface: eth2
Group: 224.1.1.1
Flags: L
Uptime: 01:54:59
Group mode: Exclude (Static)
State: Active
Last reporter: 0.0.0.0
Source list is empty
 
Flags: (M - SSM Mapping, R - Remote, L - Local,
SG - Static Group, SS - Static Source)
Interface: eth2
Group: 225.1.1.1
Flags: SG
Uptime: 00:17:28
Group mode: Exclude (Static)
State: Active
Last reporter: 0.0.0.0
Source list is empty
 
IGMP Group Table after IGMPV3 Membership report is received
IGMP group table is populated at router by virtue of either static join is configured on interface or dynamic report is being received on the interface. Here IGMPV3 should be configured on the interface (by default IGMPv3 will be enabled if pim is configured on the interface).
The show ip igmp group command displays the IGMP group table. In this table, the following fields are defined.
 
Table 1-2: IGMP group table after IGMPV3 membership
Group address
Displays the Multicast Group for which report is received.
Interface
Interface name on which Membership report is received.
Uptime
Duration since the report is received.
Expiry
Time frame in which the multicast group is going to expire.
Last Reporter
Host address from where the report is generated.
 
rtr6#show ip igmp groups
IGMP Connected Group Membership
Group Address Interface Uptime Expires Last Reporter
224.0.1.3 eth2 00:08:50 00:02:10 192.168.10.52
rtr6#show ip igmp groups detail
IGMP Connected Group Membership Details
 
Flags: (M - SSM Mapping, R - Remote, L - Local,
SG - Static Group, SS - Static Source)
Interface: eth2
Group: 224.0.1.3
Flags: R
Uptime: 00:08:50
Group mode: Exclude (Expires: 00:04:57)
Last reporter: 192.168.10.52
Group source list: (R - Remote, M - SSM Mapping, S - Static, L - Local)
 
Exclude Source List :
Source Address Uptime v3 Exp Fwd Flags
1.2.3.4 00:08:50 stopped No R
 
For IGMPV3 report source list specifies which source to be included or exclude based on the membership report sent by the hosts.
 
In the above show command, Source address 1.2.3.4 is excluded to send Multicast data for group 224.0.1.3