INTERNET DRAFT S. Biswas IDMR Working Group B. Cain Nortel Networks draft-ietf-idmr-igmp-mrdisc-01.txt February 1999 Expires August 1999 IGMP Multicast Router Discovery STATUS OF THIS MEMO This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet- Drafts as reference material or to cite them other than as work in progress. The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. Abstract Companies have been proposing "IGMP snooping" type schemes for layer-2 bridging devices. A method for discovery multicast capable routers is necessary for these schemes. An IGMP query message is inadequate for discoverying multicast routers as one querier is elected. In order to "discover" multicast routers, we introduce two new types of IGMP messages: Multicast Router Advertisement and Multicast Router Solicitation. These two messages can be used by any device which listens to IGMP to discovery multicast routers. Multicast ROuter Solicitation messages may be used by any network device (e.g. layer-2 switch) to solicit discovery messages from multicast routers. Expires August 1999 [Page 1] INTERNET-DRAFT IGMP Multicast Router Discovery February 1999 1. Introduction Multicast router discovery messages are useful for discovering multicast capable routers. This capability is useful in a layer-2 bridging domain with "IGMP snooping" type of schemes. By listening to multicast router discovery messages, layer-2 devices can determine where to send multicast source data and IGMP Host Membership Reports [RFC1112] [IGMPv2]. Multicast source data and IGMP Host Membership Reports must be received by all multicast routers on a segment. Using IGMP Host Membership Queries to discover multicast routers is not useful because of query suppression in IGMP. Unlike ICMP router discovery messages [RFC1256], multicast router discovery advertisements should not be listened to by hosts. Hosts need not know the identity of multicast routers. The use of the multicast router advertisement is not precluded from being used for other purposes. Extensible options have been included in the advertisement message for future enhancements. The following are justifications for inventing another router discovery protocol: 1. Using ICMP router discovery is not an appropriate solution for multicast router discovery because: 1.) It may confuse hosts listening to ICMP router advertisements; unicast and multicast topologies may not be congruent. 2.) It is desirable to have advertisements sent to a special link- local group address. 3.) There is no way to tell from a ICMP router advertisement if a router is running a multicast routing protocol. 2. By making multicast router discovery messages extensible and sending messages to a special address, future enhancements can be made. 3. By inventing a generic IP layer message, multiple type of messages per link layer are not needed (i.e. including this functionality as part of IP is better than inventing N discovery protocols for N layer-2 technologies). Although multicast router discovery messages could be sent as ICMP messages, IGMP was chosen because IGMP snooping switches already snoop IGMP messages and because the first use of these messages is multicast specific. 1.1 Protocol Overview IGMP Multicast Router Discovery consists of two messages for discovering multicast routers. The Multicast Router Advertisement is sent by routers to advertise IP multicast forwarding enabled on an interface. The Multicast Router Solicitation is used by routers to solicit Multicast Router Advertisements. Expires August 1999 [Page 2] INTERNET-DRAFT IGMP Multicast Router Discovery February 1999 Multicast routers send Multicast Router Advertisements (hereafter called advertisements) periodically on all interfaces on which multicast forwarding is enabled. These messages are sent to the IGMP-MRDISC multicast group. Multicast Router Advertisements are also sent in response to Multicast Router Solicitations (hereafter called solicitations). These are sent to solicit a response of Multicast Router Advertisements from all multicast routers on a subnet. Solicitations are sent to the IGMP-MRDISC multicast group. Multicast Router Solicitations are sent whenever a router wishes to discover multicast routers on a directly attached subnet. All IGMP Multicast Router Discovery messages are sent with an IP TLL of 1 and contain the IP Router Alert Option [RFC2113] in their IP header. Other non-router networking devices (e.g. layer-2 switches) may send Multicast Router Solicitations to solicit Multicast Router Advertisements. 2. Multicast Router Advertisement 2.1 Overview Multicast Router Advertisements are sent periodically on all router interfaces on which multicast forwarding is enabled. They are also sent in response to Multicast Router Solicitations. Router advertisements are sent upon expiration of a periodic timer, when a router starts up, and when a router interface (that has IP multicast forwarding enabled) initializes/restarts. Advertisements are sent as IGMP messages to the IGMP-MRDISC multicast address (224.0.0.x) and should be rate-limited. Router advertisements may contain any number of options. Two options are defined in this document and MUST be supported by any implementation of IGMP multicast router discovery. These options are described in Section 5. Additional options may be defined as needed by future work. 2.2 IP Header Fields 2.2.1 Source Address An IP address belonging to the interface from which this message is sent. If multiple source addresses are configured on an interface, then the one chosen is implementation dependent. Expires August 1999 [Page 3] INTERNET-DRAFT IGMP Multicast Router Discovery February 1999 2.2.1 Destination Address Router Advertisements are sent to the IGMP-MRDISC multicast address (224.0.0.x). 2.2.2 Time-to-Live The Time-to-Live field MUST be 1. 2.2.3 Protocol The protocol field is set to IGMP (2). 2.3 Multicast Router Advertisement Message Format 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Ad. Interval | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Unused | Number of Options (N) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option [1] (TLV encoded) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option [...] (TLV encoded) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option [N] (TLV encoded) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2.3.1 Type Field The type field is set to 0x24. 2.3.2 Advertisement Interval This specifies the periodic time interval at which Multicast Router Advertisements are sent in units of seconds. This value is set to the configured MaxAdvertisementInterval variable. 2.3.3 Checksum The 16-bit one's complement of the one's complement sum of the IGMP message, starting with the IGMP type. For computing the checksum, the Checksum field is set to 0. 2.3.4 Number of Options (N) The number of options contained in the router advertisement. If no options are sent this field MUST be set to 0. 2.3.5 Option[1..N] Options are encoded as TLV in the following manner: @ 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | Value | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ If the Number of Options field is not zero, all options MUST be examined by a receiver. No strict ordering of options is enforced. Type: Set to option type being advertised Length: Length in bytes of Value field Value: Option dependent value 2.4 Sending Multicast Router Advertisements Router Advertisements are sent when the following events occur: 1. When the a periodic advertisement interval timer expires. Note that it is not strictly periodic because the advertisement interval is a random number between MaxAdvertisementInterval and MinAdvertisementInterval. (Default Value: 7-10 seconds). 2. After waiting for a random delay less than MaxInitialAdvertisementInterval when an interface first comes up, is (re)initialized, or IGMP Multicast Router Discovery is enabled. A router may send up to a maximum of MaxInitialAdvertisements advertisements, waiting for a random delay less than MaxInitialAdvertisementInterval between each successive advertisement. This is to prevent an implosion of router advertisements. An example of this occuring would be when many routers are powered on at the same time. 3. When a solicitation is received, a router advertisement is sent in response with a random delay less than MAX_RESPONSE_DELAY. If a solicitation is received while an advertisement is pending (because of a recent solicitation), that solicitation will be ignored. Whenever an advertisement is sent, the periodic advertisement interval timer may be reset. 2.5 Receiving Multicast Router Advertisements Upon receiving a router advertisement, routers will validate the message by the following criteria: Expires August 1999 [Page 4] INTERNET-DRAFT IGMP Multicast Router Discovery February 1999 1. Verifying that the IGMP type is 0x24 2. Verifying the IGMP checksum 3. IP Destination Address = IGMP-MRDISC multicast address A router advertisement not meeting the validity requirements will be silently discarded. Routers MUST process all options, discarding options that are not recognized. If a router advertisement is not received for a particular neighbor within NeighborDeadInterval time interval, then the neigbor is considered to be unreachable. 2.6 Multicast Router Advertisement Configuration Variables A router that implements multicast router discovery MUST allow for the following variables to be configured by system management; default values are specified so as to make it unnecessary to configure any of these variables in many cases. For each interface the following configurable variables are defined: 2.6.1 MaxAdvertisementInterval The maximum time allowed between sending router advertisements from the interface, in seconds. Must be no less than 2 seconds and no greater than 180 seconds. Default: 20 seconds. 2.6.2 MinAdvertisementInterval The minimum time allowed between sending unsolicited router advertisements from the interface, in seconds. Must be no less than 3 seconds and no greater than MaxAdvertisementInterval. Default: 0.75 * MaxAdvertisementInterval 2.6.3 MaxInitialAdvertisementInterval The first router advertisement out of an interface is sent after waiting for a random interval less than this variable. This will prevent a flood of router advertisements when many routers start up at the same time. Default: 2 seconds 2.6.4 MaxInitialAdvertisements The maximum number of router advertisements that will be sent on a subnet after a router boots. Expires August 1999 [Page 5] INTERNET-DRAFT IGMP Multicast Router Discovery February 1999 Default: 3 2.6.5 NeighborDeadInterval The maximum time allowed before declaring that a neighbor can can be declared "dead". This variable is defined in seconds. In order for all routers to have a consistent state, it is necessary for the MaxAdvertisementInterval to be configured the same on all routers per subnet. Default: 3 * MaxAdvertisementInterval 3. Multicast Router Solicitation 3.1 Overview Multicast Router Solitications are used to solicit Multicast Router Advertisements. These messages are used when a router (or other device) wishes to discover multicast routers. Upon receiving a solicitation on an interface with IP multicast forwarding enabled, router will respond with an advertisement. Router solicitations may be sent when a router starts up, when a router interface (re)initializes, or when IGMP Multicast Router Discovery is enabled. Solicitations are sent as IGMP messages to the IGMP-MRDISC multicast address (224.0.0.x) and should be rate-limited. 3.2 IP Header Fields 3.2.1 Source Address An IP address belonging to the interface from which this message is sent. If multiple source addresses are configured on an interface, then the one chosen is implementation dependent. If the solicitation is being sent from a device which does not have an IP address (i.e. non-managed layer-2 switch), then the source address should be set to all zeros. 3.2.2 Destination Address Solicitation messages are sent to the IGMP-MRDISC multicast address (224.0.0.x). 3.2.3 Time-to-Live The time-to-live field MUST be 1. 3.2.4 Protocol Expires August 1999 [Page 6] INTERNET-DRAFT IGMP Multicast Router Discovery February 1999 The protocol field is set to IGMP (2). 3.3 Multicast Router Solicitation Message Format 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Reserved | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3.3.1 Type Field The type field is set to 0x25. 3.3.2 Reserved Field Sent as 0; ignored on reception. 3.3.3 Checksum The 16-bit one's complement of the one's complement sum of the IGMP message, starting with the IGMP type. For computing the checksum, the Checksum field is set to 0. 3.4 Sending Multicast Router Solicitations Router solicitations are sent when the following events occur: 1. After waiting for a random delay less than SOLICITATION_INTERVAL when an interface first comes up, is (re)initialized, or IGMP Multicast Router Discovery is enabled. A router may send up to a maximum of MAX_SOLICITATIONS, waiting for a random delay less than SOLICITATION_INTERVAL between each successive solicitation. 2. Optionally, for an implementation specific event. Solicitations MUST be rate-limited; no more than MAX_SOLICITATIONS MUST be sent in SOLICITATION_INTERVAL seconds. 3.5 Receiving Multicast Router Solicitations Upon receiving a router solicitation, routers will validate the message by: 1. Verifying that the IGMP type is 0x25 2. Verifying the IGMP checksum 3. IP Destination Address = IGMP-MRDISC multicast address A router solicitation not meeting the validity requirements will be silently discarded. Expires August 1999 [Page 7] INTERNET-DRAFT IGMP Multicast Router Discovery February 1999 Solicitation message IP source addresses MUST NOT be used as part of the validity check. 3.6 Multicast Router Solicitation Configuration Variables There are no configurable variables with respect to router solicitations. 4. Multicast Router Discovery Protocol Constants MAX_RESPONSE_DELAY 2 seconds MAX_SOLICITATION_DELAY 1 second SOLICITATION_INTERVAL 3 seconds MAX_SOLICITATIONS 3 transmissions 5. Mandatory Advertisement Options 5.1 Overview of Options The following options MUST be supported by an implementation of IGMP Multicast Router Disovery: Query Interval Advertisement Option and Robustness Variable Advertisement Option. These options advertise specific IGMP variables and are sent in an advertisement depending on the version of IGMP enabled on an interface. Although no requirements exist for multicast routers at this time, it is assumed that all multicast routers support the IGMP protocol. 5.1 Query Interval Advertisement Option 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type=1 | Length=2 | IGMP Query Interval | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ If a multicast router has any version of IGMP [RFC1112] enabled on an interface on which IGMP Multicast Router Discovery is also enabled, it MUST send all advertisements with the Query Interval Advertisement Option. This option contains the IGMP "Query Interval" configured on the interface on which advertisements are sent. This option is sent regardless of whether the router is currently the IGMP querier for the subnet. This option is sent regardless of what version of IGMP the router is running. Expires August 1999 [Page 8] INTERNET-DRAFT IGMP Multicast Router Discovery February 1999 IGMP Query Interval field is equal (in seconds) to the configured IGMP "query interval" on the interface from which the advertisement was sent. 5.2 Robustness Variable Advertisement Option 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type=2 | Length=2 | Robustness Variable | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ If a multicast router has IGMPv2 [IGMPv2] or IGMPv3 [IGMPv3] enabled on an interface on which IGMP Multicast Router Discovery is also enabled, it MUST send all advertisements with the Robustness Variable Advertisement Option. This option contains the IGMP "Robustness Variable" configured on the interface on which advertisements are sent. This option is sent regardless of whether the router is currently the IGMP querier for the subnet. This option may be omitted if IGMPv1 is enabled on the interface. Robustness Variable is an integer which MUST not be zero [IGMPv2] and is equal to the IGMPv2 robustness variable. 6. Acknowledgements ICMP Router Discovery [RFC1256] was used as a general model for IGMP Multicast Router Discovery. 7. References [RFC1256] Deering, S., "ICMP Router Discovery Messages", RFC 1256, September 1991. [RFC1112] Deering, S., "Host Extensions for IP Multicasting", RFC 1112, August 1989. [IGMPv2] Fenner, W., "Internet Group Management Protocol, Version 2", Internet-Draft, November 1997. [IGMPv3] Cain, B., Deering, S., Thyagarajan, A., "Internet Group Management Protocol, Version 3", Internet-Draft, November 1997. [RFC2113] Katz, D., "IP Router Alert Option," RFC 2113, April 1996. Expires August 1999 [Page 9] INTERNET-DRAFT IGMP Multicast Router Discovery February 1999 8. Authors' Addresses Shantam Biswas Nortel Networks 600 Technology Park Drive Billerica, MA 01821 EMail: sbiswas@baynetworks.com Phone: 1-978-916-8048 Brad Cain Nortel Networks 3 Federal Street Billerica, MA 01821 EMail: bcain@baynetworks.com Phone: 1-978-916-1316 Expires August 1999 [Page 10] INTERNET-DRAFT IGMP Multicast Router Discovery February 1999