INTERNET DRAFT S. Biswas IDMR Working Group B. Cain Nortel Networks B. Haberman IBM August 1999 Expires February 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 discovering 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 February 2000 [Page 1] INTERNET-DRAFT IGMP Multicast Router Discovery August 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 types 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 intended first use of these protocol messages is multicast specific. 1.1 Protocol Overview IGMP Multicast Router Discovery consists of three 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 Expires February 2000 [Page 2] INTERNET-DRAFT IGMP Multicast Router Discovery August 1999 routers to solicit Multicast Router Advertisements. The Multicast Router Termination message is sent when a router terminates its multicast routing functions. Multicast routers send Multicast Router Advertisements (hereafter called advertisements) periodically on all interfaces on which multicast forwarding is enabled. 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. Multicast Router Termination messages are sent when a router terminates its multicast routing functions. 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. All IGMP Multicast Router Discovery messages are sent with to the IGMP-MRDISC multicast group (224.0.0.x). Other non-IP forwarding 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 Expires February 2000 [Page 3] INTERNET-DRAFT IGMP Multicast Router Discovery August 1999 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. 2.2.2 Destination Address Router Advertisements are sent to the IGMP-MRDISC multicast address (224.0.0.x). 2.2.3 Time-to-Live The Time-to-Live field MUST be 1. 2.2.4 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. Expires February 2000 [Page 4] INTERNET-DRAFT IGMP Multicast Router Discovery August 1999 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 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. Expires February 2000 [Page 5] INTERNET-DRAFT IGMP Multicast Router Discovery August 1999 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: 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. Expires February 2000 [Page 6] INTERNET-DRAFT IGMP Multicast Router Discovery August 1999 Default: 2 seconds 2.6.4 MaxInitialAdvertisements The maximum number of router advertisements that will be sent on a subnet after a router boots. 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. Expires February 2000 [Page 7] INTERNET-DRAFT IGMP Multicast Router Discovery August 1999 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 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. Expires February 2000 [Page 8] INTERNET-DRAFT IGMP Multicast Router Discovery August 1999 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. 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 Termination 4.1 Overview The Multicast Router Termination message is used to expedite the notification of a change in the status of a routers multicast forwarding functions. 4.2 IP Header Fields 4.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. 4.2.2 Destination Address Multicast Router Termination messages are sent to the IGMP-MRDISC multicast address (224.0.0.x). 4.2.3 Time-to-Live The Time-to-Live field MUST be 1. 4.2.4 Protocol The protocol field is set to IGMP (2). Expires February 2000 [Page 9] INTERNET-DRAFT IGMP Multicast Router Discovery August 1999 4.3 Multicast Router Termination 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4.3.1 Type Field The type field is set to 0x26. 4.3.2 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. 4.4 Sending Multicast Router Termination Messages Multicast Router Termination messages are sent for three reasons : 1. Multicast forwarding is disabled on the interface 2. The interface is administratively disabled 3. The router is gracefully shutdown 4.5 Receiving Multicast Router Termination Messages Upon receiving a termination message, routers will validate the message by the following criteria: 1. Verifying that the IGMP type is 0x26 2. Verifying the IGMP checksum 3. IP Destination Address = IGMP-MRDISC multicast address A termination message not meeting the validity requirements will be silently discarded. 5. Multicast Router Discovery Protocol Constants MAX_RESPONSE_DELAY 2 seconds MAX_SOLICITATION_DELAY 1 second SOLICITATION_INTERVAL 3 seconds MAX_SOLICITATIONS 3 transmissions 6. Mandatory Advertisement Options Expires February 2000 [Page 10] INTERNET-DRAFT IGMP Multicast Router Discovery August 1999 6.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. 6.2 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. IGMP Query Interval field is equal (in seconds) to the configured IGMP "query interval" on the interface from which the advertisement was sent. 6.3 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. Expires February 2000 [Page 11] INTERNET-DRAFT IGMP Multicast Router Discovery August 1999 Robustness Variable is an integer which MUST not be zero [IGMPv2] and is equal to the IGMPv2 robustness variable. 7. IPv6 Support The Multicast Router Discovery function for IPv6 is accomplished using the Neighbor Discovery Protocol for IPv6 [RFC2461] (hereafter called NDP). Specifically, the Router Advertisement message contains new fields to support the discovery of multicast routers. For this reason, the timing mechanisms defined for NDP will be used instead of those defined in this document for IPv4 support. 7.1 Router Advertisement Message The Router Advertisement message contains two new fields to support the multicast router discovery mechanism. The modified message format is : 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 | Code | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Cur Hop Limit |M|O|D|E| Rsrvd | Router Lifetime | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reachable Time | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Retrans Timer | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options ... +-+-+-+-+-+-+-+-+-+-+-+- The two new fields are the 'D' and 'E' bits. All other fields retain their defintions and functions as described in Section 4.2 of the NDP specification [RFC2461]. 7.1.1 Discovery (D) bit The 'D' bit is used by a router to indicate support for the Multicast Router Discovery protocol. A value of '1' indicates that the router supports the discovery protocol. A value of '0' indicates no support. This allows for backwards compatibility of the Router Advertisement message. 7.1.2 Enabled (E) bit The 'E' bit indicates whether multicast routing is enabled on the router's interface. A value of '1' indicates that multicast forwarding is enabled on the router's interface. A value of '0' indicates that multicast forwarding is disabled. Expires February 2000 [Page 12] INTERNET-DRAFT IGMP Multicast Router Discovery August 1999 7.2 Router Solicitations An NDP Router Solicitation message can be sent to solicit a Router Advertisement message in order to determine the multicast forwarding state of a router. The periodic transmission of solicitation messages is outlined in RFC 2461. 8. Acknowledgements ICMP Router Discovery [RFC1256] was used as a general model for IGMP Multicast Router Discovery. 9. 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. [RFC2461] Narten, T., Nordmark, E., and Simpson, W., "Neighbor Discovery IP Version 6 (IPv6)", RFC 2461, December 1998. Expires February 2000 [Page 13] INTERNET-DRAFT IGMP Multicast Router Discovery August 1999 10. 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 Brian Haberman IBM Corporation 800 Park Office Drive Research Triangle Park, NC 27709 EMail: haberman@raleigh.ibm.com Phone: 1-919-254-2673 Expires February 2000 [Page 14]