RFC 4861
RFC 4861
[Errata]
Updated by: 5942, 6980, 7048, 7527, 7559, 8028, DRAFT STANDARD
8319, 8425 Errata Exist
Abstract
Table of Contents
1. Introduction ....................................................4
2. Terminology .....................................................4
2.1. General ....................................................4
2.2. Link Types .................................................8
2.3. Addresses ..................................................9
2.4. Requirements ..............................................10
3. Protocol Overview ..............................................10
3.1. Comparison with IPv4 ......................................14
3.2. Supported Link Types ......................................16
3.3. Securing Neighbor Discovery Messages ......................18
4. Message Formats ................................................18
4.1. Router Solicitation Message Format ........................18
4.2. Router Advertisement Message Format .......................19
4.3. Neighbor Solicitation Message Format ......................22
4.4. Neighbor Advertisement Message Format .....................23
4.5. Redirect Message Format ...................................26
4.6. Option Formats ............................................28
4.6.1. Source/Target Link-layer Address ...................28
4.6.2. Prefix Information .................................29
4.6.3. Redirected Header ..................................31
4.6.4. MTU ................................................32
5. Conceptual Model of a Host .....................................33
5.1. Conceptual Data Structures ................................33
5.2. Conceptual Sending Algorithm ..............................36
5.3. Garbage Collection and Timeout Requirements ...............37
6. Router and Prefix Discovery ....................................38
6.1. Message Validation ........................................39
6.1.1. Validation of Router Solicitation Messages .........39
6.1.2. Validation of Router Advertisement Messages ........39
6.2. Router Specification ......................................40
6.2.1. Router Configuration Variables .....................40
6.2.2. Becoming an Advertising Interface ..................45
6.2.3. Router Advertisement Message Content ...............45
6.2.4. Sending Unsolicited Router Advertisements ..........47
6.2.5. Ceasing To Be an Advertising Interface .............47
6.2.6. Processing Router Solicitations ....................48
6.2.7. Router Advertisement Consistency ...................50
6.2.8. Link-local Address Change ..........................50
6.3. Host Specification ........................................51
6.3.1. Host Configuration Variables .......................51
6.3.2. Host Variables .....................................51
6.3.3. Interface Initialization ...........................52
6.3.4. Processing Received Router Advertisements ..........53
6.3.5. Timing out Prefixes and Default Routers ............56
6.3.6. Default Router Selection ...........................56
6.3.7. Sending Router Solicitations .......................57
Narten, et al. Standards Track [Page 2]
1. Introduction
2. Terminology
2.1. General
anycast address
- an identifier for a set of interfaces (typically
belonging to different nodes). A packet sent to an
anycast address is delivered to one of the interfaces
identified by that address (the "nearest" one,
according to the routing protocol's measure of
distance). See [ADDR-ARCH].
link-layer address
- a link-layer identifier for an interface. Examples
include IEEE 802 addresses for Ethernet links.
reachability
- whether or not the one-way "forward" path to a neighbor
is functioning properly. In particular, whether
packets sent to a neighbor are reaching the IP layer on
the neighboring machine and are being processed
properly by the receiving IP layer. For neighboring
routers, reachability means that packets sent by a
node's IP layer are delivered to the router's IP layer,
and the router is indeed forwarding packets (i.e., it
is configured as a router, not a host). For hosts,
reachability means that packets sent by a node's IP
layer are delivered to the neighbor host's IP layer.
random delay
- when sending out messages, it is sometimes necessary to
delay a transmission for a random amount of time in
order to prevent multiple nodes from transmitting at
exactly the same time, or to prevent long-range
periodic transmissions from synchronizing with each
other [SYNC]. When a random component is required, a
node calculates the actual delay in such a way that the
computed delay forms a uniformly distributed random
value that falls between the specified minimum and
maximum delay times. The implementor must take care to
ensure that the granularity of the calculated random
component and the resolution of the timer used are both
high enough to ensure that the probability of multiple
nodes delaying the same amount of time is small.
multicast capable
- a link that supports a native mechanism at the link
layer for sending packets to all (i.e., broadcast)
or a subset of all neighbors.
variable MTU - a link that does not have a well-defined MTU (e.g.,
IEEE 802.5 token rings). Many links (e.g.,
Ethernet) have a standard MTU defined by the link-
layer protocol or by the specific document
describing how to run IP over the link layer.
asymmetric reachability
- a link where non-reflexive and/or non-transitive
reachability is part of normal operation. (Non-
reflexive reachability means packets from A reach B,
but packets from B don't reach A. Non-transitive
reachability means packets from A reach B, and
packets from B reach C, but packets from A don't
reach C.) Many radio links exhibit these
properties.
2.3. Addresses
link-local address
- a unicast address having link-only scope that can be
used to reach neighbors. All interfaces on routers
MUST have a link-local address. Also, [ADDRCONF]
requires that interfaces on hosts have a link-local
address.
unspecified address
- a reserved address value that indicates the lack of an
address (e.g., the address is unknown). It is never
used as a destination address, but may be used as a
source address if the sender does not (yet) know its
own address (e.g., while verifying an address is unused
during stateless address autoconfiguration [ADDRCONF]).
The unspecified address has a value of 0:0:0:0:0:0:0:0.
Note that this specification does not strictly comply with the
consistency requirements in [ADDR-SEL] for the scopes of source and
destination addresses. It is possible in some cases for hosts to use
a source address of a larger scope than the destination address in
the IPv6 header.
2.4. Requirements
The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD,
SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL, when they appear in this
document, are to be interpreted as described in [KEYWORDS].
3. Protocol Overview
asymmetric reachability
- Neighbor Discovery detects the absence of
symmetric reachability; a node avoids paths to a
neighbor with which it does not have symmetric
connectivity.
This section introduces message formats for all messages used in this
specification.
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options ...
+-+-+-+-+-+-+-+-+-+-+-+-
IP Fields:
Source Address
An IP address assigned to the sending interface, or
the unspecified address if no address is assigned
to the sending interface.
Destination Address
Typically the all-routers multicast address.
ICMP Fields:
Type 133
Code 0
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| Reserved | Router Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reachable Time |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Retrans Timer |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options ...
+-+-+-+-+-+-+-+-+-+-+-+-
IP Fields:
Source Address
MUST be the link-local address assigned to the
interface from which this message is sent.
Destination Address
Typically the Source Address of an invoking Router
Solicitation or the all-nodes multicast address.
ICMP Fields:
Type 134
Code 0
Checksum The ICMP checksum. See [ICMPv6].
Cur Hop Limit 8-bit unsigned integer. The default value that
should be placed in the Hop Count field of the IP
header for outgoing IP packets. A value of zero
means unspecified (by this router).
Router Lifetime
16-bit unsigned integer. The lifetime associated
with the default router in units of seconds. The
field can contain values up to 65535 and receivers
should handle any value, while the sending rules in
Section 6 limit the lifetime to 9000 seconds. A
Lifetime of 0 indicates that the router is not a
default router and SHOULD NOT appear on the default
Possible options:
Prefix Information
These options specify the prefixes that are on-link
and/or are used for stateless address
autoconfiguration. A router SHOULD include all its
on-link prefixes (except the link-local prefix) so
that multihomed hosts have complete prefix
information about on-link destinations for the
links to which they attach. If complete
information is lacking, a host with multiple
interfaces may not be able to choose the correct
outgoing interface when sending traffic to its
neighbors.
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Target Address +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options ...
+-+-+-+-+-+-+-+-+-+-+-+-
IP Fields:
Source Address
Either an address assigned to the interface from
which this message is sent or (if Duplicate Address
Detection is in progress [ADDRCONF]) the
unspecified address.
Destination Address
Either the solicited-node multicast address
corresponding to the target address, or the target
address.
Hop Limit 255
ICMP Fields:
Type 135
Code 0
Possible options:
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|R|S|O| Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Target Address +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options ...
+-+-+-+-+-+-+-+-+-+-+-+-
IP Fields:
Source Address
An address assigned to the interface from which the
advertisement is sent.
Destination Address
For solicited advertisements, the Source Address of
an invoking Neighbor Solicitation or, if the
solicitation's Source Address is the unspecified
address, the all-nodes multicast address.
ICMP Fields:
Type 136
Code 0
Target Address
For solicited advertisements, the Target Address
field in the Neighbor Solicitation message that
prompted this advertisement. For an unsolicited
advertisement, the address whose link-layer address
has changed. The Target Address MUST NOT be a
multicast address.
Possible options:
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Target Address +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Destination Address +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options ...
+-+-+-+-+-+-+-+-+-+-+-+-
IP Fields:
Source Address
MUST be the link-local address assigned to the
interface from which this message is sent.
Destination Address
The Source Address of the packet that triggered the
redirect.
ICMP Fields:
Type 137
Code 0
Target Address
An IP address that is a better first hop to use for
the ICMP Destination Address. When the target is
the actual endpoint of communication, i.e., the
destination is a neighbor, the Target Address field
MUST contain the same value as the ICMP Destination
Address field. Otherwise, the target is a better
first-hop router and the Target Address MUST be the
router's link-local address so that hosts can
uniquely identify routers.
Destination Address
The IP address of the destination that is
redirected to the target.
Possible options:
Target link-layer address
The link-layer address for the target. It SHOULD
be included (if known). Note that on NBMA links,
hosts may rely on the presence of the Target Link-
Layer Address option in Redirect messages as the
means for determining the link-layer addresses of
neighbors. In such cases, the option MUST be
included in Redirect messages.
Redirected Header
As much as possible of the IP packet that triggered
the sending of the Redirect without making the
redirect packet exceed the minimum MTU specified in
[IPv6].
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 | ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ ... ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Fields:
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 | Link-Layer Address ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Fields:
Type
1 for Source Link-layer Address
2 for Target Link-layer Address
Link-Layer Address
The variable length link-layer address.
Description
The Source Link-Layer Address option contains the
link-layer address of the sender of the packet. It
is used in the Neighbor Solicitation, Router
Solicitation, and Router Advertisement packets.
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 | Prefix Length |L|A| Reserved1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Valid Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Preferred Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Prefix +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Fields:
Type 3
Length 4
Valid Lifetime
32-bit unsigned integer. The length of time in
seconds (relative to the time the packet is sent)
that the prefix is valid for the purpose of on-link
determination. A value of all one bits
(0xffffffff) represents infinity. The Valid
Lifetime is also used by [ADDRCONF].
Preferred Lifetime
32-bit unsigned integer. The length of time in
seconds (relative to the time the packet is sent)
that addresses generated from the prefix via
stateless address autoconfiguration remain
preferred [ADDRCONF]. A value of all one bits
(0xffffffff) represents infinity. See [ADDRCONF].
Description
The Prefix Information option provide hosts with
on-link prefixes and prefixes for Address
Autoconfiguration. The Prefix Information option
appears in Router Advertisement packets and MUST be
silently ignored for other messages.
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 | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
~ IP header + data ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Fields:
Type 4
IP header + data
The original packet truncated to ensure that the
size of the redirect message does not exceed the
minimum MTU required to support IPv6 as specified
in [IPv6].
Description
The Redirected Header option is used in Redirect
messages and contains all or part of the packet
that is being redirected.
4.6.4. MTU
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 | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MTU |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Fields:
Type 5
Length 1
Description
The MTU option is used in Router Advertisement
messages to ensure that all nodes on a link use the
same MTU value in those cases where the link MTU is
not well known.
Neighbor Cache
- A set of entries about individual neighbors to
which traffic has been sent recently. Entries are
keyed on the neighbor's on-link unicast IP address
and contain such information as its link-layer
address, a flag indicating whether the neighbor is
a router or a host (called IsRouter in this
document), a pointer to any queued packets waiting
for address resolution to complete, etc. A
Neighbor Cache entry also contains information used
by the Neighbor Unreachability Detection algorithm,
including the reachability state, the number of
unanswered probes, and the time the next Neighbor
Unreachability Detection event is scheduled to take
place.
Destination Cache
- A set of entries about destinations to which
traffic has been sent recently. The Destination
Cache includes both on-link and off-link
destinations and provides a level of indirection
into the Neighbor Cache; the Destination Cache maps
a destination IP address to the IP address of the
next-hop neighbor. This cache is updated with
information learned from Redirect messages.
Implementations may find it convenient to store
additional information not directly related to
Neighbor Discovery in Destination Cache entries,
such as the Path MTU (PMTU) and round-trip timers
maintained by transport protocols.
Note also that other protocols (e.g., Mobile IPv6) might add
additional conceptual data structures. An implementation is at
liberty to implement such data structures in any way it pleases. For
example, an implementation could merge all conceptual data structures
into a single routing table.
To limit the storage needed for the Destination and Neighbor Caches,
a node may need to garbage-collect old entries. However, care must
be taken to ensure that sufficient space is always present to hold
the working set of active entries. A small cache may result in an
excessive number of Neighbor Discovery messages if entries are
discarded and rebuilt in quick succession. Any Least Recently Used
(LRU)-based policy that only reclaims entries that have not been used
A node should retain entries in the Default Router List and the
Prefix List until their lifetimes expire. However, a node may
garbage-collect entries prematurely if it is low on memory. If not
all routers are kept on the Default Router list, a node should retain
at least two entries in the Default Router List (and preferably more)
in order to maintain robust connectivity for off-link destinations.
This section describes router and host behavior related to the Router
Discovery portion of Neighbor Discovery. Router Discovery is used to
locate neighboring routers as well as learn prefixes and
configuration parameters related to stateless address
autoconfiguration.
Prefix Discovery is the process through which hosts learn the ranges
of IP addresses that reside on-link and can be reached directly
without going through a router. Routers send Router Advertisements
that indicate whether the sender is willing to be a default router.
Router Advertisements also contain Prefix Information options that
list the set of prefixes that identify on-link IP addresses.
- The IP Hop Limit field has a value of 255, i.e., the packet
could not possibly have been forwarded by a router.
- ICMP Code is 0.
The contents of any defined options that are not specified to be used
with Router Solicitation messages MUST be ignored and the packet
processed as normal. The only defined option that may appear is the
Source Link-Layer Address option.
- The IP Hop Limit field has a value of 255, i.e., the packet
could not possibly have been forwarded by a router.
- ICMP Code is 0.
The contents of any defined options that are not specified to be used
with Router Advertisement messages MUST be ignored and the packet
processed as normal. The only defined options that may appear are
the Source Link-Layer Address, Prefix Information and MTU options.
The default values for some of the variables listed below may be
overridden by specific documents that describe how IPv6 operates over
different link layers. This rule simplifies the configuration of
Neighbor Discovery over link types with widely differing performance
characteristics.
Default: FALSE
AdvSendAdvertisements
A flag indicating whether or not the router sends
periodic Router Advertisements and responds to
Router Solicitations.
Default: FALSE
MaxRtrAdvInterval
The maximum time allowed between sending
unsolicited multicast Router Advertisements from
the interface, in seconds. MUST be no less than 4
seconds and no greater than 1800 seconds.
Default: 600 seconds
MinRtrAdvInterval
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 .75 *
MaxRtrAdvInterval.
AdvManagedFlag
The TRUE/FALSE value to be placed in the "Managed
address configuration" flag field in the Router
Advertisement. See [ADDRCONF].
Default: FALSE
AdvOtherConfigFlag
The TRUE/FALSE value to be placed in the "Other
configuration" flag field in the Router
Advertisement. See [ADDRCONF].
Default: FALSE
Default: 0
AdvReachableTime
The value to be placed in the Reachable Time field
in the Router Advertisement messages sent by the
router. The value zero means unspecified (by this
router). MUST be no greater than 3,600,000
milliseconds (1 hour).
Default: 0
Default: 0
AdvCurHopLimit
The default value to be placed in the Cur Hop Limit
field in the Router Advertisement messages sent by
the router. The value should be set to the current
diameter of the Internet. The value zero means
unspecified (by this router).
AdvDefaultLifetime
The value to be placed in the Router Lifetime field
of Router Advertisements sent from the interface,
in seconds. MUST be either zero or between
MaxRtrAdvInterval and 9000 seconds. A value of
zero indicates that the router is not to be used as
a default router. These limits may be overridden
by specific documents that describe how IPv6
operates over different link layers. For instance,
in a point-to-point link the peers may have enough
information about the number and status of devices
at the other end so that advertisements are needed
less frequently.
Default: 3 * MaxRtrAdvInterval
AdvPrefixList
A list of prefixes to be placed in Prefix
Information options in Router Advertisement
messages sent from the interface.
AdvValidLifetime
The value to be placed in the Valid
Lifetime in the Prefix Information option,
in seconds. The designated value of all
1's (0xffffffff) represents infinity.
Implementations MAY allow AdvValidLifetime
to be specified in two ways:
AdvOnLinkFlag
The value to be placed in the on-link flag
("L-bit") field in the Prefix Information
option.
Default: TRUE
AdvPreferredLifetime
The value to be placed in the Preferred
Lifetime in the Prefix Information option,
in seconds. The designated value of all
1's (0xffffffff) represents infinity. See
[ADDRCONF] for details on how this value is
used. Implementations MAY allow
AdvPreferredLifetime to be specified in two
ways:
AdvAutonomousFlag
The value to be placed in the Autonomous
Flag field in the Prefix Information
option. See [ADDRCONF].
Default: TRUE
- In the options:
A router MAY choose not to include some or all options when sending
unsolicited Router Advertisements. For example, if prefix lifetimes
are much longer than AdvDefaultLifetime, including them every few
advertisements may be sufficient. However, when responding to a
Router Solicitation or while sending the first few initial
In such cases, the router SHOULD transmit one or more (but not more
than MAX_FINAL_RTR_ADVERTISEMENTS) final multicast Router
Advertisements on the interface with a Router Lifetime field of zero.
In the case of a router becoming a host, the system SHOULD 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). In addition, the host MUST ensure that
subsequent Neighbor Advertisement messages sent from the interface
have the Router flag set to zero.
- Cur Hop Limit values (except for the unspecified value of zero
other inconsistencies SHOULD be logged to system network
management).
node will ignore Redirect messages that are believed to have been
sent by a router other than the current first-hop router. Thus, the
source address used in Router Advertisements sent by a particular
router must be identical to the target address in a Redirect message
when redirecting to that router.
None.
BaseReachableTime
A base value used for computing the random
ReachableTime value.
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. However, a host MUST retain at least two router
addresses and SHOULD retain more. Default router selections are made
whenever communication to a destination appears to be failing. Thus,
the more routers on the list, the more likely an alternative working
router can be found quickly (e.g., without having to wait for the
next advertisement to arrive).
If the received Cur Hop Limit value is non-zero, the host SHOULD set
its CurHopLimit variable to the received value.
If the received Reachable Time value is non-zero, the host SHOULD set
its BaseReachableTime variable to the received value. If the new
value differs from the previous value, the host SHOULD re-compute a
new random ReachableTime value. ReachableTime is computed as a
uniformly distributed random value between MIN_RANDOM_FACTOR and
MAX_RANDOM_FACTOR times the BaseReachableTime. Using a random
component eliminates the possibility that Neighbor Unreachability
Detection messages will synchronize with each other.
In most cases, the advertised Reachable Time value will be the same
in consecutive Router Advertisements, and a host's BaseReachableTime
rarely changes. In such cases, an implementation SHOULD ensure that
a new random value gets re-computed at least once every few hours.
If the MTU option is present, hosts SHOULD copy the option's value
into LinkMTU so long as the value is greater than or equal to the
minimum link MTU [IPv6] and does not exceed the maximum LinkMTU value
specified in the link-type-specific document (e.g., [IPv6-ETHER]).
Prefix Information options that have the "on-link" (L) flag set
indicate a prefix identifying a range of addresses that should be
considered on-link. Note, however, that a Prefix Information option
For each Prefix Information option with the on-link flag set, a host
does the following:
- If the prefix is not already present in the Prefix List, and the
Prefix Information option's Valid Lifetime field is non-zero,
create a new entry for the prefix and initialize its
invalidation timer to the Valid Lifetime value in the Prefix
Information option.
Whenever the invalidation timer expires for a Prefix List entry, that
entry is discarded. No existing Destination Cache entries need be
updated, however. Should a reachability problem arise with an
existing Neighbor Cache entry, Neighbor Unreachability Detection will
perform any needed recovery.
Cycling through the router list in this case ensures that all
available routers are actively probed by the Neighbor
Unreachability Detection algorithm. A request for a default
router is made in conjunction with the sending of a packet to a
router, and the selected router will be probed for reachability
as a side effect.
- The IP Hop Limit field has a value of 255, i.e., the packet
could not possibly have been forwarded by a router.
- ICMP Code is 0.
The contents of any defined options that are not specified to be used
with Neighbor Solicitation messages MUST be ignored and the packet
processed as normal. The only defined option that may appear is the
Source Link-Layer Address option.
- The IP Hop Limit field has a value of 255, i.e., the packet
could not possibly have been forwarded by a router.
- ICMP Code is 0.
The contents of any defined options that are not specified to be used
with Neighbor Advertisement messages MUST be ignored and the packet
processed as normal. The only defined option that may appear is the
Target Link-Layer Address option.
When a node has a unicast packet to send to a neighbor, but does not
know the neighbor's link-layer address, it performs address
resolution. For multicast-capable interfaces, this entails creating
a Neighbor Cache entry in the INCOMPLETE state and transmitting a
Neighbor Solicitation message targeted at the neighbor. The
solicitation is sent to the solicited-node multicast address
corresponding to the target address.
A valid Neighbor Solicitation that does not meet any of the following
requirements MUST be silently discarded:
If the Source Address is the unspecified address, the node MUST NOT
create or update the Neighbor Cache entry.
After any updates to the Neighbor Cache, the node sends a Neighbor
Advertisement response as described in the next section.
7.2.4. Sending Solicited Neighbor Advertisements
Once the appropriate Neighbor Cache entry has been located, the
specific actions taken depend on the state of the Neighbor Cache
entry, the flags in the advertisement, and the actual link-layer
address supplied.
- It sets the IsRouter flag in the cache entry based on the Router
flag in the received advertisement.
- The IsRouter flag in the cache entry MUST be set based on the
Router flag in the received advertisement. In those cases
where the IsRouter flag changes from TRUE to FALSE as a result
of this update, the node MUST remove that router from the
Default Router List and update the Destination Cache entries
for all destinations using that neighbor as a router as
specified in Section 7.3.3. This is needed to detect when a
node that is used as a router stops forwarding packets due to
being configured as a host.
The above rules ensure that the cache is updated either when the
Neighbor Advertisement takes precedence (i.e., the Override flag is
set) or when the Neighbor Advertisement refers to the same link-layer
address that is currently recorded in the cache. If none of the
above apply, the advertisement prompts future Neighbor Unreachability
Detection (if it is not already in progress) by changing the state in
the cache entry.
Under limited circumstances, a router MAY proxy for one or more other
nodes, that is, through Neighbor Advertisements indicate that it is
willing to accept packets not explicitly addressed to itself. For
example, a router might accept packets on behalf of a mobile node
that has moved off-link. The mechanisms used by proxy are
essentially the same as the mechanisms used with anycast addresses.
8. Redirect Function
A host MUST silently discard any received Redirect message that does
not satisfy all of the following validity checks:
- The IP Hop Limit field has a value of 255, i.e., the packet
could not possibly have been forwarded by a router.
- ICMP Code is 0.
A host MUST NOT consider a redirect invalid just because the Target
Address of the redirect is not covered under one of the link's
prefixes. Part of the semantics of the Redirect message is that the
Target Address is on-link.
- In the options:
A router MUST limit the rate at which Redirect messages are sent, in
order to limit the bandwidth and processing costs incurred by the
Redirect messages when the source does not correctly respond to the
Redirects, or the source chooses to ignore unauthenticated Redirect
messages. More details on the rate-limiting of ICMP error messages
can be found in [ICMPv6].
If the Target and Destination Addresses are the same, the host MUST
treat the Target as on-link. If the Target Address is not the same
as the Destination Address, the host MUST set IsRouter to TRUE for
the target. If the Target and Destination Addresses are the same,
however, one cannot reliably determine whether the Target Address is
a router. Consequently, newly created Neighbor Cache entries should
set the IsRouter flag to FALSE, while existing cache entries should
leave the flag unchanged. If the Target is a router, subsequent
Neighbor Advertisement or Router Advertisement messages will update
IsRouter accordingly.
Redirect messages apply to all flows that are being sent to a given
destination. That is, upon receipt of a Redirect for a Destination
Address, all Destination Cache entries to that address should be
updated to use the specified next-hop, regardless of the contents of
the Flow Label field that appears in the Redirected Header option.
recognized. A node MUST NOT ignore valid options just because the ND
message contains unrecognized ones.
The option MUST NOT depend on the presence or absence of any other
options. The semantics of an option should depend only on the
information in the fixed part of the ND packet and on the
information contained in the option itself.
Router constants:
MAX_INITIAL_RTR_ADVERT_INTERVAL 16 seconds
MAX_INITIAL_RTR_ADVERTISEMENTS 3 transmissions
MAX_FINAL_RTR_ADVERTISEMENTS 3 transmissions
MIN_DELAY_BETWEEN_RAS 3 seconds
MAX_RA_DELAY_TIME .5 seconds
Host constants:
MAX_RTR_SOLICITATION_DELAY 1 second
RTR_SOLICITATION_INTERVAL 4 seconds
MAX_RTR_SOLICITATIONS 3 transmissions
Node constants:
MAX_MULTICAST_SOLICIT 3 transmissions
MAX_UNICAST_SOLICIT 3 transmissions
MAX_ANYCAST_DELAY_TIME 1 second
MAX_NEIGHBOR_ADVERTISEMENT 3 transmissions
DELAY_FIRST_PROBE_TIME 5 seconds
MIN_RANDOM_FACTOR .5
MAX_RANDOM_FACTOR 1.5
Preferred and Valid lifetimes set to zero for all the prefixes. Such
an attack would cause all packets, for both on-link and off-link
destinations, to go to the rogue router. That router can then
selectively examine, modify, or drop all packets sent on the link.
The Neighbor Unreachability Detection (NUD) will not detect such a
black hole as long as the rogue router politely answers the NUD
probes with a Neighbor Advertisement with the R-bit set.
The protocol reduces the exposure to the above threats in the absence
of authentication by ignoring ND packets received from off-link
senders. The Hop Limit field of all received packets is verified to
contain 255, the maximum legal value. Because routers decrement the
Hop Limit on all packets they forward, received packets containing a
Hop Limit of 255 must have originated from a neighbor.
The above discussion does not distinguish between the preferred and
valid lifetimes. For all practical purposes, it is probably
sufficient to track the valid lifetime since the preferred lifetime
will not exceed the valid lifetime.
This document does not require any new ICMPv6 types or codes to be
allocated. However, existing ICMPv6 types have been updated to point
to this document instead of RFC 2461. The procedure for the
assignment of ICMPv6 types/codes is described in Section 6 of
[ICMPv6].
2. IETF working groups with working group consensus and area director
approval can request reclaimable Neighbor Discovery option type
assignments from the IANA. The IANA will tag the values as
"reclaimable in future".
At the point where the option type values are 85% assigned, the IETF
will review the assignments tagged "reclaimable in the future" and
inform the IANA which ones should be reclaimed and reassigned.
3. Requests for new option type value assignments from outside the
IETF are only made through the publication of an IETF document, per
1) above. Note also that documents published as "RFC Editor
contributions" [RFC3667] are not considered to be IETF documents.
14. References
[DHCPv6] Droms, R., Ed., Bound, J., Volz, B., Lemon, T., Perkins,
C., and M. Carney, "Dynamic Host Configuration Protocol
for IPv6 (DHCPv6)", RFC 3315, July 2003.
[IPv6-CELL] Arkko, J., Kuijpers, G., Soliman, H., Loughney, J., and
J. Wiljakka, "Internet Protocol Version 6 (IPv6) for
Some Second and Third Generation Cellular Hosts", RFC
3316, April 2003.
[SEND] Arkko, J., Ed., Kempf, J., Zill, B., and P. Nikander,
"SEcure Neighbor Discovery (SEND)", RFC 3971, March
2005.
- The target of the redirect, when the target differs from the
destination address in the packet being redirected, is implicitly
assumed to be a router. This is a natural assumption since that
node is expected to be able to forward the packets towards the
destination.
- The target of the redirect, when the target is the same as the
destination, does not carry any host vs. router information. All
that is known is that the destination (i.e., target) is on-link
but it could be either a host or a router.
The rules for setting the IsRouter flag are based on the information
content above. If an ND message contains explicit or implicit
information, the receipt of the message will cause the IsRouter flag
to be updated. But when there is no host vs. router information in
the ND message, the receipt of the message MUST NOT cause a change to
the IsRouter state. When the receipt of such a message causes a
Neighbor Cache entry to be created, this document specifies that the
IsRouter flag be set to FALSE. There is greater potential for
mischief when a node incorrectly thinks a host is a router, than the
other way around. In these cases, a subsequent Neighbor
Advertisement or Router Advertisement message will set the correct
IsRouter value.
o Updated the text in Sections 4.6.2 and 6.2.1 to indicate that the
preferred lifetime must not be larger than valid lifetime.
o Miscellaneous editorials.
Acknowledgments
Authors' Addresses
Thomas Narten
IBM Corporation
P.O. Box 12195
Research Triangle Park, NC 27709-2195
USA
Erik Nordmark
Sun Microsystems, Inc.
17 Network Circle
Menlo Park, CA 94025
USA
EMail: william.allen.simpson@gmail.com
Hesham Soliman
Elevate Technologies
EMail: hesham@elevatemobile.com
Intellectual Property
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at
ietf-ipr@ietf.org.