home *** CD-ROM | disk | FTP | other *** search
/ Handbook of Infosec Terms 2.0 / Handbook_of_Infosec_Terms_Version_2.0_ISSO.iso / text / rfcs / rfc1256.txt < prev    next >
Text File  |  1996-05-07  |  44KB  |  535 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                 S. Deering, Editor Request for Comments: 1256                                    Xerox PARC                                                           September 1991 
  8.  
  9.                       ICMP Router Discovery Messages 
  10.  
  11. Status of this Memo 
  12.  
  13.    This RFC specifies an IAB standards track protocol for the Internet    community, and requests discussion and suggestions for improvements.    Please refer to the current edition of the "IAB Official Protocol    Standards" for the standardization state and status of this protocol.    This document is a product of the IETF Router Discovery Working    Group.  Distribution of this memo is unlimited. 
  14.  
  15. Abstract 
  16.  
  17.    This document specifies an extension of the Internet Control Message    Protocol (ICMP) to enable hosts attached to multicast or broadcast    networks to discover the IP addresses of their neighboring routers. 
  18.  
  19. Table of Contents 
  20.  
  21.    1. Terminology                                                      1    2. Protocol Overview                                                3    3. Message Formats                                                  5    4. Router Specification                                             7         4.1. Router Configuration Variables                            7         4.2. Message Validation by Routers                             9         4.3. Router Behavior                                           9    5. Host Specification                                              12         5.1. Host Configuration Variables                             12         5.2. Message Validation by Hosts                              13         5.3. Host Behavior                                            14    6. Protocol Constants                                              17    7. Security Considerations                                         17    References                                                         18    Author's Address                                                   19 
  22.  
  23. 1. Terminology 
  24.  
  25.    The following terms have a precise meaning when used in this    document: 
  26.  
  27.    system        a device that implements the Internet Protocol, IP [9]. 
  28.  
  29.    router        a system that forwards IP datagrams, as specified 
  30.  
  31.  
  32.  
  33. Router Discovery Working Group                                  [Page 1] 
  34.  RFC 1256             ICMP Router Discovery Messages       September 1991 
  35.  
  36.                   in [2].  This does not include systems that, though                  capable of IP forwarding, have that capability turned                  off.  Nor does it include systems that do IP forwarding                  only insofar as required to obey IP Source Route                  options. 
  37.  
  38.    host          any system that is not a router. 
  39.  
  40.    multicast     unless otherwise qualified, means the use of either IP                  multicast [4] or IP broadcast [6] service. 
  41.  
  42.    link          a communication facility or medium over which systems                  can communicate at the link layer, i.e., the protocol                  layer immediately below IP.  The term "physical                  network" has sometimes been used (imprecisely) for                  this. Examples of links are LANs (possibly bridged to                  other LANs), wide-area store-and-forward networks,                  satellite channels, and point-to-point links. 
  43.  
  44.    multicast link                  a link over which IP multicast or IP broadcast service                  is supported.  This includes broadcast media such as                  LANs and satellite channels, single point-to-point                  links, and some store-and-forward networks such as SMDS                  networks [8]. 
  45.  
  46.    interface     a system's attachment point to a link.  It is possible                  (though unusual) for a system to have more than one                  interface to the same link.  Interfaces are uniquely                  identified by IP unicast addresses; a single interface                  may have more than one such address. 
  47.  
  48.    multicast interface                  an interface to a multicast link, that is, an interface                  to a link over which IP multicast or IP broadcast                  service is supported. 
  49.  
  50.    subnet        either a single subnet of a subnetted IP network [7] or                  a single non-subnetted IP network, i.e., the entity                  identified by an IP address logically ANDed with its                  assigned subnet mask.  More than one subnet may exist                  on the same link. 
  51.  
  52.    neighboring   having an IP address belonging to the same subnet. 
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60. Router Discovery Working Group                                  [Page 2] 
  61.  RFC 1256             ICMP Router Discovery Messages       September 1991 
  62.  
  63.  2. Protocol Overview 
  64.  
  65.    Before a host can send IP datagrams beyond its directly-attached    subnet, it must discover the address of at least one operational    router on that subnet. Typically, this is accomplished by reading a    list of one or more router addresses from a (possibly remote)    configuration file at startup time.  On multicast links, some hosts    also discover router addresses by listening to routing protocol    traffic.  Both of these methods have serious drawbacks: configuration    files must be maintained manually -- a significant administrative    burden -- and are unable to track dynamic changes in router    availability; eavesdropping on routing traffic requires that hosts    recognize the particular routing protocols in use, which vary from    subnet to subnet and which are subject to change at any time.  This    document specifies an alternative router discovery method using a    pair of ICMP [10] messages, for use on multicast links.  It    eliminates the need for manual configuration of router addresses and    is independent of any specific routing protocol. 
  66.  
  67.    The ICMP router discovery messages are called "Router Advertisements"    and "Router Solicitations".  Each router periodically multicasts a    Router Advertisement from each of its multicast interfaces,    announcing the IP address(es) of that interface.  Hosts discover the    addresses of their neighboring routers simply by listening for    advertisements.  When a host attached to a multicast link starts up,    it may multicast a Router Solicitation to ask for immediate    advertisements, rather than waiting for the next periodic ones to    arrive; if (and only if) no advertisements are forthcoming, the host    may retransmit the solicitation a small number of times, but then    must desist from sending any more solicitations.  Any routers that    subsequently start up, or that were not discovered because of packet    loss or temporary link partitioning, are eventually discovered by    reception of their periodic (unsolicited) advertisements.  (Links    that suffer high packet loss rates or frequent partitioning are    accommodated by increasing the rate of advertisements, rather than    increasing the number of solicitations that hosts are permitted to    send.) 
  68.  
  69.    The router discovery messages do not constitute a routing protocol:    they enable hosts to discover the existence of neighboring routers,    but not which router is best to reach a particular destination.  If a    host chooses a poor first-hop router for a particular destination, it    should receive an ICMP Redirect from that router, identifying a    better one. 
  70.  
  71.    A Router Advertisement includes a "preference level" for each    advertised router address.  When a host must choose a default router    address (i.e., when, for a particular destination, the host has not 
  72.  
  73.  
  74.  
  75. Router Discovery Working Group                                  [Page 3] 
  76.  RFC 1256             ICMP Router Discovery Messages       September 1991 
  77.  
  78.     been redirected or configured to use a specific router address), it    is expected to choose from those router addresses that have the    highest preference level (see Section 3.3.1 in the Host Requirements    -- Communication Layers RFC [1]).  A network administrator can    configure router address preference levels to encourage or discourage    the use of particular routers as default routers. 
  79.  
  80.    A Router Advertisement also includes a "lifetime" field, specifying    the maximum length of time that the advertised addresses are to be    considered as valid router addresses by hosts, in the absence of    further advertisements.  This is used to ensure that hosts eventually    forget about routers that fail, become unreachable, or stop acting as    routers. 
  81.  
  82.    The default advertising rate is once every 7 to 10 minutes, and the    default lifetime is 30 minutes.  This means that, using the default    values, the advertisements are not sufficient as a mechanism for    "black hole" detection, i.e., detection of failure of the first hop    of an active path -- ideally, black holes should be detected quickly    enough to switch to another router before any transport connections    or higher-layer sessions time out.  It is assumed that hosts already    have mechanisms for black hole detection, as required by [1].  Hosts    cannot depend on Router Advertisements for this purpose, since they    may be unavailable or administratively disabled on any particular    link or from any particular router.  Therefore, the default    advertising rate and lifetime values were chosen simply to make the    load imposed on links and hosts by the periodic multicast    advertisements negligible, even when there are many routers present.    However, a network administrator who wishes to employ advertisements    as a supplemental black hole detection mechanism is free to configure    smaller values. 
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  Router Discovery Working Group                                  [Page 4] 
  103.  RFC 1256             ICMP Router Discovery Messages       September 1991 
  104.  
  105.  3. Message Formats 
  106.  
  107.     ICMP Router Advertisement Message 
  108.  
  109.        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            |       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+       |   Num Addrs   |Addr Entry Size|           Lifetime            |       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+       |                       Router Address[1]                       |       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+       |                      Preference Level[1]                      |       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+       |                       Router Address[2]                       |       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+       |                      Preference Level[2]                      |       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+       |                               .                               |       |                               .                               |       |                               .                               | 
  110.  
  111.     IP Fields: 
  112.  
  113.       Source Address        An IP address belonging to the interface                             from which this message is sent. 
  114.  
  115.       Destination Address   The configured AdvertisementAddress or the                             IP address of a neighboring host. 
  116.  
  117.       Time-to-Live          1 if the Destination Address is an IP                             multicast address; at least 1 otherwise. 
  118.  
  119.     ICMP Fields: 
  120.  
  121.       Type                  9 
  122.  
  123.       Code                  0 
  124.  
  125.       Checksum              The  16-bit one's complement of the one's                             complement sum of the ICMP message, start-                             ing with the ICMP Type.  For computing the                             checksum, the Checksum field is set to 0. 
  126.  
  127.  
  128.  
  129.  Router Discovery Working Group                                  [Page 5] 
  130.  RFC 1256             ICMP Router Discovery Messages       September 1991 
  131.  
  132.        Num Addrs             The number of router addresses advertised                             in this message. 
  133.  
  134.       Addr Entry Size       The number of 32-bit words of information                             per each router address (2, in the version                             of the protocol described here). 
  135.  
  136.       Lifetime              The maximum number of seconds that the                             router addresses may be considered valid. 
  137.  
  138.       Router Address[i],    The sending router's IP address(es) on the        i = 1..Num Addrs     interface from which this message is sent. 
  139.  
  140.       Preference Level[i],  The preferability of each Router Address[i]        i = 1..Num Addrs     as a default router address, relative to                             other router addresses on the same subnet.                             A signed, twos-complement value; higher                             values mean more preferable. 
  141.  
  142.     ICMP Router Solicitation Message 
  143.  
  144.        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            |       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+       |                           Reserved                            |       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
  145.  
  146.     IP Fields: 
  147.  
  148.       Source Address        An IP address belonging to the interface                             from which this message is sent, or 0. 
  149.  
  150.       Destination Address   The configured SolicitationAddress. 
  151.  
  152.       Time-to-Live          1 if the Destination Address is an IP                             multicast address; at least 1 otherwise. 
  153.  
  154.     ICMP Fields: 
  155.  
  156.       Type                  10 
  157.  
  158.       Code                  0 
  159.  
  160.  
  161.  
  162.  Router Discovery Working Group                                  [Page 6] 
  163.  RFC 1256             ICMP Router Discovery Messages       September 1991 
  164.  
  165.        Checksum              The  16-bit one's complement of the one's                             complement sum of the ICMP message, start-                             ing with the ICMP Type.  For computing the                             checksum, the Checksum field is set to 0. 
  166.  
  167.       Reserved              Sent as 0; ignored on reception. 
  168.  
  169.  4. Router Specification 
  170.  
  171. 4.1. Router Configuration Variables 
  172.  
  173.    A router that implements the ICMP router discovery messages 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. 
  174.  
  175.    For each multicast interface: 
  176.  
  177.    AdvertisementAddress                  The IP destination address to be used for multicast                  Router Advertisements sent from the interface.  The                  only permissible values are the all-systems multicast                  address, 224.0.0.1, or the limited-broadcast address,                  255.255.255.255.  (The all-systems address is preferred                  wherever possible, i.e., on any link where all                  listening hosts support IP multicast.) 
  178.  
  179.                  Default: 224.0.0.1 if the router supports IP multicast                  on the interface, else 255.255.255.255 
  180.  
  181.    MaxAdvertisementInterval                  The maximum time allowed between sending multicast                  Router Advertisements from the interface, in seconds.                  Must be no less than 4 seconds and no greater than 1800                  seconds. 
  182.  
  183.                  Default: 600 seconds 
  184.  
  185.    MinAdvertisementInterval                  The minimum time allowed between sending unsolicited                  multicast Router Advertisements from the interface, in                  seconds.  Must be no less than 3 seconds and no greater                  than MaxAdvertisementInterval. 
  186.  
  187.                  Default: 0.75 * MaxAdvertisementInterval 
  188.  
  189.  
  190.  
  191.  
  192.  
  193. Router Discovery Working Group                                  [Page 7] 
  194.  RFC 1256             ICMP Router Discovery Messages       September 1991 
  195.  
  196.     AdvertisementLifetime                  The value to be placed in the Lifetime field of Router                  Advertisements sent from the interface, in seconds.                  Must be no less than MaxAdvertisementInterval and no                  greater than 9000 seconds. 
  197.  
  198.                  Default: 3 * MaxAdvertisementInterval 
  199.  
  200.     For each of the router's IP addresses on its multicast interfaces: 
  201.  
  202.    Advertise                  A flag indicating whether or not the address is to be                  advertised. 
  203.  
  204.                  Default: TRUE 
  205.  
  206.    PreferenceLevel                  The preferability of the address as a default router                  address, relative to other router addresses on the same                  subnet.  A 32-bit, signed, twos-complement integer,                  with higher values meaning more preferable.  The                  minimum value (hex 80000000) is used to indicate that                  the address, even though it may be advertised, is not                  to be used by neighboring hosts as a default router                  address. 
  207.  
  208.                  Default: 0 
  209.  
  210.    The case in which it is useful to configure an address with a    preference level of hex 80000000 (rather than simply setting its    Advertise flag to FALSE) is when advertisements are being used for    "black hole" detection, as mentioned in Section 2.  In particular, a    router that is to be used to reach only specific IP destinations    could advertise its address with a preference level of hex 80000000    (so that neighboring hosts will not use it as a default router for    reaching arbitrary IP destinations) and a non-zero lifetime (so that    neighboring hosts that have been redirected or configured to use it    can detect its failure by timing out the reception of its    advertisements). 
  211.  
  212.    It has been suggested that, when the preference level of an address    has not been explicitly configured, a router could set it according    to the metric of the router's "default route" (if it has one), rather    than defaulting it to zero as suggested above.  Thus, a router with a    better metric for its default route would advertise a higher    preference level for its address.  (Note that routing metrics that    are encoded such that "lower is better" would have to be inverted 
  213.  
  214.  
  215.  
  216. Router Discovery Working Group                                  [Page 8] 
  217.  RFC 1256             ICMP Router Discovery Messages       September 1991 
  218.  
  219.     before being used as preference levels in Router Advertisement    messages.)  Such a strategy might reduce the amount of ICMP Redirect    traffic on some links by making it more likely that a host's first    choice router for reaching an arbitrary destination is also the best    choice.  On the other hand, Redirect traffic is rarely a significant    load on a link, and there are some cases where such a strategy would    result in more Redirect traffic, not less (for example, on links from    which the most frequently chosen destinations are best reached via    routers other than the one with the best default route).  This    document makes no recommendation concerning this issue, and    implementors are free to try such a strategy, as long as they also    support static configuration of preference levels as specified above. 
  220.  
  221. 4.2. Message Validation by Routers 
  222.  
  223.    A router must silently discard any received Router Solicitation    messages that do not satisfy the following validity checks: 
  224.  
  225.       - IP Source Address is either 0 or the address of a neighbor         (i.e., an address that matches one of the router's own         addresses on the arrival interface, under the subnet mask         associated with that address.) 
  226.  
  227.       - ICMP Checksum is valid. 
  228.  
  229.       - ICMP Code is 0. 
  230.  
  231.       - ICMP length (derived from the IP length) is 8 or more         octets. 
  232.  
  233.    The contents of the ICMP Reserved field, and of any octets beyond the    first 8, are ignored.  Future, backward-compatible changes to the    protocol may specify the contents of the Reserved field or of    additional octets at the end of the message; backward-incompatible    changes may use different Code values. 
  234.  
  235.    A solicitation that passes the validity checks is called a "valid    solicitation". 
  236.  
  237.    A router may silently discard any received Router Advertisement    messages.  Any other action on reception of such messages by a router    (for example, as part of a "peer discovery" process) is beyond the    scope of this document. 
  238.  
  239. 4.3. Router Behavior 
  240.  
  241.    The router joins the all-routers IP multicast group (224.0.0.2) on    all interfaces on which the router supports IP multicast. 
  242.  
  243.  
  244.  
  245. Router Discovery Working Group                                  [Page 9] 
  246.  RFC 1256             ICMP Router Discovery Messages       September 1991 
  247.  
  248.     The term "advertising interface" refers to any functioning and    enabled multicast interface that has at least one IP address whose    configured Advertise flag is TRUE.  From each advertising interface,    the router transmits periodic, multicast Router Advertisements,    containing the following values: 
  249.  
  250.       - In the destination address field of the IP header: the         interface's configured AdvertisementAddress. 
  251.  
  252.       - In the Lifetime field: the interface's configured         AdvertisementLifetime. 
  253.  
  254.       - In the Router Address[i] and Preference Level[i] fields:         all of the interface's addresses whose Advertise flags are         TRUE, along with their corresponding PreferenceLevel         values.  (In the unlikely event that not all addresses fit         in a single advertisement, as constrained by the MTU of the         link, multiple advertisements are sent, with each except         the last containing as many addresses as can fit.) 
  255.  
  256.    The advertisements are not strictly periodic: the interval between    subsequent transmissions is randomized to reduce the probability of    synchronization with the advertisements from other routers on the    same link. This is done by maintaining a separate transmission    interval timer for each advertising interface.  Each time a multicast    advertisement is sent from an interface, that interface's timer is    reset to a uniformly-distributed random value between the interface's    configured MinAdvertisementInterval and MaxAdvertisementInterval;    expiration of the timer causes the next advertisement to be sent from    the interface, and a new random value to be chosen.  (It is    recommended that routers include some unique value, such as one of    their IP or link-layer addresses, in the seed used to initialize    their pseudo-random number generators.  Although the randomization    range is configured in units of seconds, the actual randomly-chosen    values should not be in units of whole seconds, but rather in units    of the highest available timer resolution.) 
  257.  
  258.    For the first few advertisements sent from an interface (up to    MAX_INITIAL_ADVERTISEMENTS), if the randomly chosen interval is    greater than MAX_INITIAL_ADVERT_INTERVAL, the timer should be set to    MAX_INITIAL_ADVERT_INTERVAL instead.  Using this smaller interval for    the initial advertisements increases the likelihood of a router being    discovered quickly when it first becomes available, in the presence    of possible packet loss. 
  259.  
  260.    In addition to the periodic, unsolicited advertisements, a router    sends advertisements in response to valid solicitations received on    any of its advertising interfaces.  A router may choose to unicast 
  261.  
  262.  
  263.  
  264. Router Discovery Working Group                                 [Page 10] 
  265.  RFC 1256             ICMP Router Discovery Messages       September 1991 
  266.  
  267.     the response directly to the soliciting host's address (if it is not    zero), or multicast it to the interface's configured    AdvertisementAddress; in the latter case, the interface's interval    timer is reset to a new random value, as with unsolicited    advertisements.  A unicast response may be delayed, and a multicast    response must be delayed, for a small random interval not greater    than MAX_RESPONSE_DELAY, in order to prevent synchronization with    other responding routers, and to allow multiple, closely-spaced    solicitations to be answered with a single multicast advertisement. 
  268.  
  269.    If a router receives a solicitation sent to an IP broadcast address,    on an interface whose configured AdvertisementAddress is an IP    multicast address, the router may send its response to the IP    broadcast address instead of the configured IP multicast address.    Such an event indicates a configuration inconsistency, and should be    logged for possible corrective action by the network administrator. 
  270.  
  271.    It should be noted that an interface may become an advertising    interface at times other than system startup, as a result of recovery    from an interface failure or through actions of system management    such as: 
  272.  
  273.       - enabling the interface, if it had been administratively         disabled and it has one or more addresses whose Advertise         flag is TRUE, or 
  274.  
  275.       - enabling IP forwarding capability (i.e., changing the         system from being a host to being a router), when the         interface has one or more addresses whose Advertise flag is         TRUE, or 
  276.  
  277.       - setting the Advertise flag of one or more of the         interface's addresses to TRUE (or adding a new address with         a TRUE Advertise flag), when previously the interface had         no address whose Advertise flag was TRUE. 
  278.  
  279. In such cases, the router must commence transmission of periodic advertisements on the new advertising interface, limiting the first few advertisements to intervals no greater than MAX_INITIAL_ADVERT_INTERVAL. In the case of a host becoming a router, the system must also join the all-routers IP multicast group on all interfaces on which the router supports IP multicast (whether or not they are advertising interfaces). 
  280.  
  281. An interface may also cease to be an advertising interface, through actions of system management such as: 
  282.  
  283.       - administratively disabling the interface, 
  284.  
  285.  
  286.  
  287.  Router Discovery Working Group                                 [Page 11] 
  288.  RFC 1256             ICMP Router Discovery Messages       September 1991 
  289.  
  290.        - shutting down the system, or disabling the IP forwarding         capability (i.e., changing the system from being a router         to being a host), or 
  291.  
  292.       - setting the Advertise flags of all of the interface's         addresses to FALSE. 
  293.  
  294.    In such cases, it is recommended (but not required) that the router    transmit a final multicast advertisement on the interface, identical    to its previous transmission but with a Lifetime field of zero.  In    the case of a router becoming a host, the system must also depart    from the all-routers IP multicast group on all interfaces on which    the router supports IP multicast (whether or not they had been    advertising interfaces). 
  295.  
  296.    When the Advertise flag of one or more of an interface's addresses    are set to FALSE by system management, but there remain other    addresses on that interface whose Advertise flags are TRUE, it is    recommended that the router send a single multicast advertisement    containing only those address whose Advertise flags were set to    FALSE, with a Lifetime field of zero. 
  297.  
  298. 5. Host Specification 
  299.  
  300. 5.1. Host Configuration Variables 
  301.  
  302.    A host that implements the ICMP router discovery messages 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. 
  303.  
  304.    For each multicast interface: 
  305.  
  306.    PerformRouterDiscovery                  A flag indicating whether or not the host is to perform                  ICMP router discovery on the interface. 
  307.  
  308.                  Default: TRUE 
  309.  
  310.    SolicitationAddress                  The IP destination address to be used for sending                  Router Solicitations from the interface.  The only                  permissible values are the all-routers multicast                  address, 224.0.0.2, or the limited-broadcast address,                  255.255.255.255.  (The all-routers address is preferred                  wherever possible, i.e., on any link where all                  advertising routers support IP multicast.) 
  311.  
  312.  
  313.  
  314.  Router Discovery Working Group                                 [Page 12] 
  315.  RFC 1256             ICMP Router Discovery Messages       September 1991 
  316.  
  317.                   Default: 224.0.0.2 if the host supports IP multicast on                  the interface, else 255.255.255.255 
  318.  
  319.    The Host Requirements -- Communication Layers RFC [1], Section    3.3.1.6, specifies that each host implementation must support a    configurable list of default router addresses.  The purpose of the    ICMP router discovery messages is to eliminate the need to configure    that list in hosts attached to multicast links.  On non-multicast    links, and on multicast links for which ICMP router discovery is not    (yet) supported by the routers or is administratively disabled, it    will continue to be necessary to configure the default router list in    each host.  Each entry in the list contains (at least) the following    configurable variables: 
  320.  
  321.    RouterAddress                  An IP address of a default router. 
  322.  
  323.                  Default: (none) 
  324.  
  325.    PreferenceLevel                  The preferability of the RouterAddress as a default                  router address, relative to other router addresses on                  the same subnet.  The Host Requirements RFC does not                  specify how this value is to be encoded; to allow the                  preference level to be conveyed in a Router                  Advertisement or configured by system management, it is                  here specified that it be encoded as a 32-bit, signed,                  twos-complement integer, with higher values meaning                  more preferable.  The minimum value (hex 80000000) is                  reserved to mean that the address is not to be used as                  a default router address, i.e., it is to be used only                  for specific IP destinations, of which the host has                  been informed by ICMP Redirect or configuration. 
  326.  
  327.                  Default: 0 
  328.  
  329. 5.2. Message Validation by Hosts 
  330.  
  331.    A host must silently discard any received Router Advertisement    messages that do not satisfy the following validity checks: 
  332.  
  333.       - ICMP Checksum is valid. 
  334.  
  335.       - ICMP Code is 0. 
  336.  
  337.       - ICMP Num Addrs is greater than or equal to 1. 
  338.  
  339.       - ICMP Addr Entry Size is greater than or equal to 2. 
  340.  
  341.  
  342.  
  343. Router Discovery Working Group                                 [Page 13] 
  344.  RFC 1256             ICMP Router Discovery Messages       September 1991 
  345.  
  346.        - ICMP length (derived from the IP length) is greater than or         equal to 8 + (Num Addrs * Addr Entry Size * 4) octets. 
  347.  
  348.    The contents of any additional words of per-address information    (i.e., other than the Router Address and Preference Level fields),    and the contents of any octets beyond the first 8 + (Num Addrs * Addr    Entry Size * 4) octets, are ignored.  Future, backward-compatible    changes to the protocol may specify additional per-address    information words, or additional octets at the end of the message;    backward-incompatible changes may use different Code values. 
  349.  
  350.    An advertisement that passes the validity checks is called a "valid    advertisement". 
  351.  
  352.    A host must silently discard any received Router Solicitation    messages. 
  353.  
  354. 5.3. Host Behavior 
  355.  
  356.    On any interface on which the host supports IP multicast, the host    will be a member of the all-systems IP multicast group (224.0.0.1).    This occurs automatically, as specified in [4]; no explicit action is    required on the part of the router discovery protocol implementation. 
  357.  
  358.    A host never sends a Router Advertisement message. 
  359.  
  360.    A host silently discards any Router Advertisement message that    arrives on an interface for which the host's configured    PerformRouterDiscovery flag is FALSE, and it never sends a Router    Solicitation on such an interface. 
  361.  
  362.    A host cannot process an advertisement until it has determined its    own IP address(es) and subnet mask(s) for the interface on which the    advertisement is received.  (On some links, a host may be able to use    some combination of BOOTP [3], RARP [5], or ICMP Address Mask    messages [7] to discover its own address and mask.)  While waiting to    learn the address and mask of an interface, a host may save any valid    advertisements received on that interface for later processing; this    allows router discovery and address/mask discovery to proceed in    parallel. 
  363.  
  364.    To process an advertisement, a host scans the list of router    addresses contained in it. It ignores any non-neighboring addresses,    i.e., addresses that do not match one of the host's own addresses on    the arrival interface, under the subnet mask associated with that    address.  For each neighboring address, the host does the following: 
  365.  
  366.       - If the address is not already present in the host's default 
  367.  
  368.  
  369.  
  370. Router Discovery Working Group                                 [Page 14] 
  371.  RFC 1256             ICMP Router Discovery Messages       September 1991 
  372.  
  373.          router list, a new entry is added to the list, containing         the address along with its accompanying preference level         and a timer initialized to the Lifetime value from the         advertisement. 
  374.  
  375.       - If the address is already present in the host's default         router list as a result of a previously-received         advertisement, its preference level is updated and its         timer is reset to the values in the newly-received         advertisement. 
  376.  
  377.       - If the address is already present in the host's default         router list as a result of system configuration, no change         is made to its preference level; there is no timer         associated with a configured address.  (Note that any         router addresses acquired from the "Gateway" subfield of         the vendor extensions field of a BOOTP packet [11] are         considered to be configured addresses; they are assigned         the default preference level of zero, and they do not have         an associated timer.  Note further that any address found         in the "giaddr" field of a BOOTP packet [3] identifies a         BOOTP forwarder which is not necessarily an IP router; such         an address should not be installed in the host's default         router list.) 
  378.  
  379.    Whenever the timer expires in any entry that was created as a result    of a received advertisement, that entry is discarded. 
  380.  
  381.    To limit the storage needed for the default router list, a host may    choose not to store all of the router addresses discovered via    advertisements.  If so, the host should discard those addresses with    lower preference levels in favor of those with higher levels.  It is    desirable to retain more than one default router address in the list    so that, if the current choice of default router is discovered to be    down, the host may immediately choose another default router, without    having to wait for the next advertisement to arrive. 
  382.  
  383.    Any router address advertised with a preference level of hex 80000000    is not to be used by the host as default router address; such an    address may be omitted from the default router list, unless its timer    is being use as a "black-hole" detection mechanism, as discussed in    Section 4.1. 
  384.  
  385.    It should be understood that preference levels learned from    advertisements do not affect any of the host's cached route entries.    For example, if the host has been redirected to use a particular    router address to reach a specific IP destination, it continues to    use that router address for that destination, even if it discovers 
  386.  
  387.  
  388.  
  389. Router Discovery Working Group                                 [Page 15] 
  390.  RFC 1256             ICMP Router Discovery Messages       September 1991 
  391.  
  392.     another router address with a higher preference level.  Preference    levels influence the choice of router only for an IP destination for    which there is no cached or configured route, or whose cached route    points to a router that is subsequently discovered to be dead or    unreachable. 
  393.  
  394.    A host is permitted (but not required) to transmit up to    MAX_SOLICITATIONS Router Solicitation messages from any of its    multicast interfaces after any of the following events: 
  395.  
  396.       - The interface is initialized at system startup time. 
  397.  
  398.       - The interface is reinitialized after a temporary interface         failure or after being temporarily disabled by system         management. 
  399.  
  400.       - The system changes from being a router to being a host, by         having its IP forwarding capability turned off by system         management. 
  401.  
  402.       - The PerformRouterDiscovery flag for the interface is         changed from FALSE to TRUE by system management. 
  403.  
  404.    The IP destination address of the solicitations is the configured    SolicitationAddress for the interface.  The IP source address may    contain zero if the host has not yet determined an address for the    interface; otherwise it contains one of the interface's addresses. 
  405.  
  406.    If a host does choose to send a solicitation after one of the above    events, it should delay that transmission for a random amount of time    between 0 and MAX_SOLICITATION_DELAY.  This serves to alleviate    congestion when many hosts start up on a link at the same time, such    as might happen after recovery from a power failure.  (It is    recommended that hosts include some unique value, such as one of    their IP or link-layer addresses, in the seed used to initialize    their pseudo-random number generators.  Although the randomization    range is specified in units of seconds, the actual randomly-chosen    value should not be in units of whole seconds, but rather in units of    the highest available timer resolution.) 
  407.  
  408.    A host may also choose to further postpone its solicitations,    subsequent to one of the above events, until the first time it needs    to use a default router. 
  409.  
  410.    Upon receiving a valid advertisement containing at least one    neighboring address whose preference level is other than hex    80000000, subsequent to one of the above events, the host must desist    from sending any solicitations on that interface (even if none have 
  411.  
  412.  
  413.  
  414. Router Discovery Working Group                                 [Page 16] 
  415.  RFC 1256             ICMP Router Discovery Messages       September 1991 
  416.  
  417.     been sent yet), until the next time one of the above events occurs.    The small number of retransmissions of a solicitation, which are    permitted if no such advertisement is received, should be sent at    intervals of SOLICITATION_INTERVAL seconds, without randomization. 
  418.  
  419. 6. Protocol Constants 
  420.  
  421.    Router constants: 
  422.  
  423.          MAX_INITIAL_ADVERT_INTERVAL       16 seconds 
  424.  
  425.          MAX_INITIAL_ADVERTISEMENTS        3 transmissions 
  426.  
  427.          MAX_RESPONSE_DELAY                2 seconds 
  428.  
  429.    Host constants: 
  430.  
  431.          MAX_SOLICITATION_DELAY            1 second 
  432.  
  433.          SOLICITATION_INTERVAL             3 seconds 
  434.  
  435.          MAX_SOLICITATIONS                 3 transmissions 
  436.  
  437.    Additional protocol constants are defined with the message formats in    Section 3, and with the router and host configuration variables in    Sections 4.1 and 5.1. 
  438.  
  439.    All protocol constants are subject to change in future revisions of    the protocol. 
  440.  
  441. 7. Security Considerations 
  442.  
  443.    This extension of ICMP makes it possible for any system attached to a    link to masquerade as a default router for hosts attached to that    link.  Any traffic sent to such an imposter is vulnerable to    eavesdropping, to denial of forwarding service, and to modification    by insertion, deletion, or alteration of packets.  It should be noted    that, on most multicast or broadcast links on which this protocol is    expected to operate, eavesdropping is already possible by any system    attached to the link, and the Address Resolution Protocol (ARP) used    on those links offers a similar opportunity for service denial and    message stream modification.  For environments where those threats    are deemed unacceptable, there are configuration variables to disable    dynamic router discovery by hosts. 
  444.  
  445.    The Router Advertisement message format is defined so as to allow    additional information to be added to the message in a backward-    compatible manner.  One possible use of that capability is to add 
  446.  
  447.  
  448.  
  449. Router Discovery Working Group                                 [Page 17] 
  450.  RFC 1256             ICMP Router Discovery Messages       September 1991 
  451.  
  452.     digital signatures or some other form of authentication information    to the advertisements, to enable hosts to verify their authenticity.    This is FOR FURTHER STUDY. 
  453.  
  454. References 
  455.  
  456.    [1] Braden, R., Editor, "Requirements for Internet Hosts --        Communication Layers", RFC 1122, USC/Information Sciences        Institute, October 1989. 
  457.  
  458.    [2] Braden, R., and J. Postel, "Requirements for Internet Gateways",        RFC 1009, USC/Information Sciences Institute, June 1987. 
  459.  
  460.    [3] Croft, B, and J. Gilmore, "Bootstrap Protocol (BOOTP)", RFC 951,        Stanford and SUN Microsystems, September 1985. 
  461.  
  462.    [4] Deering, S., "Host Extensions for IP Multicasting", RFC 1112,        Stanford University, August 1989. 
  463.  
  464.    [5] Finlayson, R., Mann, T., Mogul J., and M. Theimer, "A Reverse        Address Resolution Protocol", RFC 903, Stanford University, June        1984. 
  465.  
  466.    [6] Mogul, J., "Broadcasting Internet Datagrams", RFC 919, Stanford        University, October 1984. 
  467.  
  468.    [7] Mogul J., and J. Postel, "Internet Standard Subnetting        Procedure", RFC 950, USC/Information Sciences Institute, August        1985. 
  469.  
  470.    [8] Piscitello D., and J. Lawrence, "Transmission of IP datagrams        over the SMDS Service", RFC 1209, Bell Communications Research,        March, 1991. 
  471.  
  472.    [9] Postel, J., "Internet Protocol - DARPA Internet Program Protocol        Specification", RFC 791, DARPA, September 1981. 
  473.  
  474.   [10] Postel, J., "Internet Control Message Protocol - DARPA Internet        Program Protocol Specification", RFC 792, USC/Information        Sciences Institute, September 1981. 
  475.  
  476.   [11] Reynolds, J., "BOOTP Vendor Information Extensions", RFC 1084,        USC/Information Sciences Institute, December 1988. 
  477.  
  478.  
  479.  
  480.  
  481.  
  482.  
  483.  
  484.  Router Discovery Working Group                                 [Page 18] 
  485.  RFC 1256             ICMP Router Discovery Messages       September 1991 
  486.  
  487.  Author's Address 
  488.  
  489.        Stephen E. Deering        Xerox Palo Alto Research Center        3333 Coyote Hill Road        Palo Alto, CA  94304 
  490.  
  491.        Phone: (415) 494-4839 
  492.  
  493.        EMail: deering@xerox.com 
  494.  
  495.        Or send comments to gw-discovery@gregorio.stanford.edu. 
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.   
  530.  
  531.  
  532.  
  533.  Router Discovery Working Group                                 [Page 19] 
  534.  
  535.