Internet Group Management Protocol (IGMP) manages the membership of hosts and routers in multicast groups. IP hosts use IGMP to report their multicast group memberships to any immediately neighboring multicast routers. Multicast routers use IGMP to learn, for each of their attached physical networks, which groups have members . IGMP is also used as the transport for several related multicast protocols (for example, DVMRP and PIM Version 1). IGMP is an integral part of IP and must be enabled on all routers and hosts that want to receive IP multicasts. For each attached network, a multicast router can be either a querier or a nonquerier. The querier router periodically sends general query messages to solicit group membership information. Hosts on the network that are members of a multicast group send report messages. When a host leaves a group, it sends a leave group message. IGMP Version 3 supports inclusion lists, which provide the ability to specify which sources can send to a multicast group. This type of multicast group is called a source specific multicast (SSM), and its multicast address is 232.0.0.0/8 . Exclusion mode works in a way opposite to inclusion lists, allowing any source but the ones listed to send to the SSM group. IGMP Version 3 supports source filtering. For example, a router can specify particular routers from which it does, or does not, receive traffic. With IGMP Version 3, a multicast router can learn which sources are of interest to neighboring routers. IGMP Version 3 interoperates with Versions 1 and 2 of the protocol. However, to remain compatible with older IGMP hosts and routers, IGMP Version 3 routers must also implement Versions 1 and 2 of the protocol. The following membership report record types are supported for IGMP Version 3: mode is allowed, allow new sources, and block old sources. Table 9.9 lists the IGMP standards supported by the JUNOS software. Table 9.9. IGMP Standards Supported by JUNOS Software
IGMP PacketsIGMP Version 3 messages are encapsulated in IPv4 datagrams, with an IP protocol number of 2. Routers send IGMP Version 3 membership query messages to query the multicast reception state of neighboring interfaces. They contain the following fields:
Routers send IGMP Version 3 membership report messages to report to neighboring routers the current multicast reception state, or changes in the multicast reception state, of their interfaces. These messages contain the following fields:
IGMP Version 3 also supports the following message types: IGMP Version 1 membership report messages, IGMP Version 2 membership report messages, and IGMP Version 3 leave group messages. Configuring IGMPIGMP is automatically enabled on all broadcast interfaces when you configure PIM or DVMRP. You can configure it explicitly by including the following statements: [edit protocols] igmp { interface interface-name { disable; static { group group { source source ; } } version version ; } query-interval seconds ; query-last-member-interval seconds ; query-response-interval seconds ; robust-count number ; traceoptions { file name <replace> <size size > <files number > <no-stamp> <(world-readable no-world-readable)>; flag flag < flag-modifier > <disable>; } } IGMP Version 3 supports SSM groups. By default, the SSM group multicast address is limited to the IP address range 232.0.0.0 to 232.255.255.255 . To configure additional SSM groups, include the following statements: [edit] routing-options { multicast { ssm-groups { address ; } } } Modifying the IGMP Host-Query Message IntervalThe IGMP querier router periodically sends general host-query messages. These messages solicit group membership information and are sent to the all-systems multicast group address, 224.0.0.1 . By default, host-query messages are sent every 125 seconds. You might want to change this interface to tune the number of IGMP messages sent on the subnet. To modify this interval, include the query-interval statement. The interval can range from 1 through 1,024 seconds. [edit protocols igmp] query-interval seconds ; Modifying the IGMP Query Response IntervalThe query response interval is the maximum amount of time that can elapse between when the querier router sends a host-query message and when it receives a response from a host. Varying this interval allows you to tune the burstiness of IGMP messages on the subnet. By default, the query response interval is 10 seconds. To modify this interval, include the query-response-interval statement. The interval can range from 1 through 1,024 seconds and must be less than the host-query message interval. [edit protocols igmp] query-response-interval seconds ; Modifying the Last-Member Query IntervalThe last-member query interval is the maximum amount of time between group-specific query messages, including those sent in response to leave-group messages. You might lower this interval to reduce the amount of time it takes a router to detect the loss of the last member of a group. The default last-member query interval is 1 second. To modify this interval, include the query-last-member-interval statement. The interval can range from 1 through 1,024 seconds. [edit protocols igmp] query-last-member-interval seconds ; Modifying the Robustness VariableThe IGMP robustness variable provides fine-tuning to allow for expected packet loss on a subnet. The value of the robustness variable is used in calculating the following IGMP message intervals:
By default, the robustness variable is set to 2. You might want to increase this value if you expect a subnet to be lossy. To change the value of the robustness variable, include the robust-count statement. The number can range from 2 through 10. [edit protocols igmp] robust-count number ; Changing the IGMP VersionBy default, the JUNOS software runs IGMP Version 2. To change to Version 3, include the version statement: [edit protocols igmp interface interface-name ] version 3; When routers are running different versions of IGMP, they negotiate the lowest common version of IGMP that is supported by hosts on their subnet and operate in that version. If you already configured the router to use IGMP Version 1 and then configure it to use IGMP Version 2, the router continues to use Version 1 from one to six minutes, then switches to Version 2. Enabling IGMP Static Group MembershipYou can create IGMP static group membership to test multicast forwarding without a receiver host. When you enable IGMP static group membership, data is forwarded to an interface without receiving membership reports from host members. To configure IGMP static membership, include the static statement. Then specify the group, or the group and its sources. Specify a unique address for each group. [edit protocols igmp interface interface-name ] static { group group { source source ; } } Disabling IGMPTo disable IGMP on an interface, include the disable statement: [edit protocols igmp interface interface-name ] disable; Tracing IGMP Protocol TrafficTo trace IGMP protocol traffic, specify IGMP-specific options by including the traceoptions statement: [edit protocols igmp] traceoptions { file name <replace> <size size > <files number > <no-stamp> <(world-readable no-world-readable)>; flag flag < flag-modifier > <disable>; }
You can specify the following IGMP-specific options in the IGMP flag statement:
To trace the paths of multicast packets, use the mtrace command. |