Network Working Group S. Deering, Editor
Request for Comments: 1256 Xerox PARC
September 1991
ICMP Router Discovery Messages
Status of this Memo
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.
Abstract
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.
Table of Contents
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
1. Terminology
The following terms have a precise meaning when used in this
document:
system a device that implements the Internet Protocol, IP [9].
router a system that forwards IP datagrams, as specified
Router Discovery Working Group [Page 1]
RFC 1256 ICMP Router Discovery Messages September 1991
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.
host any system that is not a router.
multicast unless otherwise qualified, means the use of either IP
multicast [4] or IP broadcast [6] service.
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.
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].
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.
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.
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.
neighboring having an IP address belonging to the same subnet.
Router Discovery Working Group [Page 2]
RFC 1256 ICMP Router Discovery Messages September 1991
2. Protocol Overview
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.
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.)
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.
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
Router Discovery Working Group [Page 3]
RFC 1256 ICMP Router Discovery Messages September 1991
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.
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.
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.
Router Discovery Working Group [Page 4]
RFC 1256 ICMP Router Discovery Messages September 1991
3. Message Formats
ICMP Router Advertisement Message
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] |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| . |
| . |
| . |
IP Fields:
Source Address An IP address belonging to the interface
from which this message is sent.
Destination Address The configured AdvertisementAddress or the
IP address of a neighboring host.
Time-to-Live 1 if the Destination Address is an IP
multicast address; at least 1 otherwise.
ICMP Fields:
Type 9
Code 0
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.
Router Discovery Working Group [Page 5]
RFC 1256 ICMP Router Discovery Messages September 1991
Num Addrs The number of router addresses advertised
in this message.
Addr Entry Size The number of 32-bit words of information
per each router address (2, in the version
of the protocol described here).
Lifetime The maximum number of seconds that the
router addresses may be considered valid.
Router Address[i], The sending router's IP address(es) on the
i = 1..Num Addrs interface from which this message is sent.
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.
ICMP Router Solicitation Message
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IP Fields:
Source Address An IP address belonging to the interface
from which this message is sent, or 0.
Destination Address The configured SolicitationAddress.
Time-to-Live 1 if the Destination Address is an IP
multicast address; at least 1 otherwise.
ICMP Fields:
Type 10
Code 0
Router Discovery Working Group [Page 6]
RFC 1256 ICMP Router Discovery Messages September 1991
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.
Reserved Sent as 0; ignored on reception.
4. Router Specification
4.1. Router Configuration Variables
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.
For each multicast interface:
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.)
Default: 224.0.0.1 if the router supports IP multicast
on the interface, else 255.255.255.255
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.
Default: 600 seconds
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.
Default: 0.75 * MaxAdvertisementInterval
Router Discovery Working Group [Page 7]
RFC 1256 ICMP Router Discovery Messages September 1991
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.
Default: 3 * MaxAdvertisementInterval
For each of the router's IP addresses on its multicast interfaces:
Advertise
A flag indicating whether or not the address is to be
advertised.
Default: TRUE
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.
Default: 0
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).
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
Router Discovery Working Group [Page 8]
RFC 1256 ICMP Router Discovery Messages September 1991
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.
4.2. Message Validation by Routers
A router must silently discard any received Router Solicitation
messages that do not satisfy the following validity checks:
- 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.)
- ICMP Checksum is valid.
- ICMP Code is 0.
- ICMP length (derived from the IP length) is 8 or more
octets.
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.
A solicitation that passes the validity checks is called a "valid
solicitation".
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.
4.3. Router Behavior
The router joins the all-routers IP multicast group (224.0.0.2) on
all interfaces on which the router supports IP multicast.
Router Discovery Working Group [Page 9]
RFC 1256 ICMP Router Discovery Messages September 1991
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:
- In the destination address field of the IP header: the
interface's configured AdvertisementAddress.
- In the Lifetime field: the interface's configured
AdvertisementLifetime.
- 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.)
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.)
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.
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
Router Discovery Working Group [Page 10]
RFC 1256 ICMP Router Discovery Messages September 1991
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.
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.
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:
- enabling the interface, if it had been administratively
disabled and it has one or more addresses whose Advertise
flag is TRUE, or
- 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
- 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.
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).
An interface may also cease to be an advertising interface, through
actions of system management such as:
- administratively disabling the interface,
Router Discovery Working Group [Page 11]
RFC 1256 ICMP Router Discovery Messages September 1991
- shutting down the system, or disabling the IP forwarding
capability (i.e., changing the system from being a router
to being a host), or
- setting the Advertise flags of all of the interface's
addresses to FALSE.
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).
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.
5. Host Specification
5.1. Host Configuration Variables
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.
For each multicast interface:
PerformRouterDiscovery
A flag indicating whether or not the host is to perform
ICMP router discovery on the interface.
Default: TRUE
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.)
Router Discovery Working Group [Page 12]
RFC 1256 ICMP Router Discovery Messages September 1991
Default: 224.0.0.2 if the host supports IP multicast on
the interface, else 255.255.255.255
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:
RouterAddress
An IP address of a default router.
Default: (none)
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.
Default: 0
5.2. Message Validation by Hosts
A host must silently discard any received Router Advertisement
messages that do not satisfy the following validity checks:
- ICMP Checksum is valid.
- ICMP Code is 0.
- ICMP Num Addrs is greater than or equal to 1.
- ICMP Addr Entry Size is greater than or equal to 2.
Router Discovery Working Group [Page 13]
RFC 1256 ICMP Router Discovery Messages September 1991
- ICMP length (derived from the IP length) is greater than or
equal to 8 + (Num Addrs * Addr Entry Size * 4) octets.
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.
An advertisement that passes the validity checks is called a "valid
advertisement".
A host must silently discard any received Router Solicitation
messages.
5.3. Host Behavior
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.
A host never sends a Router Advertisement message.
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.
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.
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:
- If the address is not already present in the host's default
Router Discovery Working Group [Page 14]
RFC 1256 ICMP Router Discovery Messages September 1991
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.
- 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.
- 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.)
Whenever the timer expires in any entry that was created as a result
of a received advertisement, that entry is discarded.
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.
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.
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
Router Discovery Working Group [Page 15]
RFC 1256 ICMP Router Discovery Messages September 1991
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.
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:
- The interface is initialized at system startup time.
- The interface is reinitialized after a temporary interface
failure or after being temporarily disabled by system
management.
- The system changes from being a router to being a host, by
having its IP forwarding capability turned off by system
management.
- The PerformRouterDiscovery flag for the interface is
changed from FALSE to TRUE by system management.
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.
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.)
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.
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
Router Discovery Working Group [Page 16]
RFC 1256 ICMP Router Discovery Messages September 1991
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.
6. Protocol Constants
Router constants:
MAX_INITIAL_ADVERT_INTERVAL 16 seconds
MAX_INITIAL_ADVERTISEMENTS 3 transmissions
MAX_RESPONSE_DELAY 2 seconds
Host constants:
MAX_SOLICITATION_DELAY 1 second
SOLICITATION_INTERVAL 3 seconds
MAX_SOLICITATIONS 3 transmissions
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.
All protocol constants are subject to change in future revisions of
the protocol.
7. Security Considerations
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.
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
Router Discovery Working Group [Page 17]
RFC 1256 ICMP Router Discovery Messages September 1991
digital signatures or some other form of authentication information
to the advertisements, to enable hosts to verify their authenticity.
This is FOR FURTHER STUDY.
References
[1] Braden, R., Editor, "Requirements for Internet Hosts --
Communication Layers", RFC 1122, USC/Information Sciences
Institute, October 1989.
[2] Braden, R., and J. Postel, "Requirements for Internet Gateways",
RFC 1009, USC/Information Sciences Institute, June 1987.
[3] Croft, B, and J. Gilmore, "Bootstrap Protocol (BOOTP)", RFC 951,
Stanford and SUN Microsystems, September 1985.
[4] Deering, S., "Host Extensions for IP Multicasting", RFC 1112,
Stanford University, August 1989.
[5] Finlayson, R., Mann, T., Mogul J., and M. Theimer, "A Reverse
Address Resolution Protocol", RFC 903, Stanford University, June
1984.
[6] Mogul, J., "Broadcasting Internet Datagrams", RFC 919, Stanford
University, October 1984.
[7] Mogul J., and J. Postel, "Internet Standard Subnetting
Procedure", RFC 950, USC/Information Sciences Institute, August
1985.
[8] Piscitello D., and J. Lawrence, "Transmission of IP datagrams
over the SMDS Service", RFC 1209, Bell Communications Research,
March, 1991.
[9] Postel, J., "Internet Protocol - DARPA Internet Program Protocol
Specification", RFC 791, DARPA, September 1981.
[10] Postel, J., "Internet Control Message Protocol - DARPA Internet
Program Protocol Specification", RFC 792, USC/Information
Sciences Institute, September 1981.
[11] Reynolds, J., "BOOTP Vendor Information Extensions", RFC 1084,
USC/Information Sciences Institute, December 1988.
Router Discovery Working Group [Page 18]
RFC 1256 ICMP Router Discovery Messages September 1991
Author's Address
Stephen E. Deering
Xerox Palo Alto Research Center
3333 Coyote Hill Road
Palo Alto, CA 94304
Phone: (415) 494-4839
EMail: deering@xerox.com
Or send comments to gw-discovery@gregorio.stanford.edu.
Router Discovery Working Group [Page 19]