IGMP


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
Standard Title
RFC 1112 Host Extensions for IP Multicasting (defines IGMP Version 1)
RFC 2236 Internet Group Management Protocol, Version 2
IETF draft draft-ietf-idmr-igmp-v3-07.txt Internet Group Management Protocol, Version 3

IGMP Packets

IGMP 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:

  • Maximum response code ”Maximum time before sending a responding report

  • Checksum ”Standard IP checksum

  • Group address ”Set to zero when sending a general query and to the IP multicast address being queried when sending a group-specific or group-and- source-specific query

  • Suppress router-side processing flag

  • Querier's robustness variable

  • Querier's query interval code

  • Number of sources ”Number of source addresses the query contains

  • Source address ”IP unicast source addresses

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:

  • Checksum ”Standard IP checksum

  • Number of group records ”Number of group records the report contains

  • Group record ”The record itself

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 IGMP

IGMP 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 Interval

The 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 Interval

The 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 Interval

The 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 Variable

The 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:

  • Group member interval ”Amount of time that must pass before a multicast router decides there are no more members of a group on a network. This interval is calculated as follows : (robustness variable x query interval) + (1 x query response interval) .

  • Other querier present interval ”Amount of time that must pass before a multicast router decides that there is no longer another multicast router that is the querier. This interval is calculated as follows: (robustness variable x query interval) + (0.5 x query response interval) .

  • Last member query count ”Number of group-specific queries sent before the router assumes the group has no local members. The default number is the value of the robustness variable.

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 Version

By 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 Membership

You 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 IGMP

To disable IGMP on an interface, include the disable statement:

 [edit protocols igmp interface  interface-name  ] disable; 

Tracing IGMP Protocol Traffic

To 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>; } 

For more information about tracing and global tracing options, see the JUNOS technical documentation.

You can specify the following IGMP-specific options in the IGMP flag statement:

  • leave ” Leave-group messages (for IGMP Version 2 only)

  • mtrace ” mtrace packets

  • packets ” All IGMP packets

  • query ” IGMP membership query messages, including general and group-specific queries

  • report ” Membership report messages

To trace the paths of multicast packets, use the mtrace command.



Juniper Networks Field Guide and Reference
Juniper Networks Field Guide and Reference
ISBN: 0321122445
EAN: 2147483647
Year: 2002
Pages: 185

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net