Internet Engineering Task Force (IETF) Z. Shelby, Ed.
Request for Comments: 6775 Sensinode
Updates: 4944 S. Chakrabarti
Category: Standards Track Ericsson
ISSN: 2070-1721 E. Nordmark
Universitaet Bremen TZI
November 2012 Neighbor Discovery Optimization for IPv6 over Low-Power Wireless
Personal Area Networks (6LoWPANs)
The IETF work in IPv6 over Low-power Wireless Personal Area Network
(6LoWPAN) defines 6LoWPANs such as IEEE 802.15.4. This and other
similar link technologies have limited or no usage of multicast
signaling due to energy conservation. In addition, the wireless
network may not strictly follow the traditional concept of IP subnets
and IP links. IPv6 Neighbor Discovery was not designed for non-
transitive wireless links, as its reliance on the traditional IPv6
link concept and its heavy use of multicast make it inefficient and
sometimes impractical in a low-power and lossy network. This
document describes simple optimizations to IPv6 Neighbor Discovery,
its addressing mechanisms, and duplicate address detection for Low-
power Wireless Personal Area Networks and similar networks. The
document thus updates RFC 4944 to specify the use of the
optimizations defined here.
Status of This Memo
This is an Internet Standards Track document.
This document is a product of the Internet Engineering Task Force
(IETF). It represents the consensus of the IETF community. It has
received public review and has been approved for publication by the
Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 5741.
Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
Copyright (c) 2012 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction ....................................................41.1. The Shortcomings of IPv6 Neighbor Discovery ................51.2. Applicability ..............................................61.3. Goals and Assumptions ......................................71.4. Substitutable Features .....................................82. Terminology .....................................................93. Protocol Overview ..............................................113.1. Extensions to RFC 4861 ....................................113.2. Address Assignment ........................................123.3. Host-to-Router Interaction ................................133.4. Router-to-Router Interaction ..............................143.5. Neighbor Cache Management .................................144. New Neighbor Discovery Options and Messages ....................154.1. Address Registration Option ...............................154.2. 6LoWPAN Context Option ....................................174.3. Authoritative Border Router Option ........................194.4. Duplicate Address Messages ................................205. Host Behavior ..................................................225.1. Forbidden Actions .........................................225.2. Interface Initialization ..................................225.3. Sending a Router Solicitation .............................235.4. Processing a Router Advertisement .........................235.4.1. Address Configuration ..............................235.4.2. Storing Contexts ...................................245.4.3. Maintaining Prefix and Context Information .........245.5. Registration and Neighbor Unreachability Detection ........255.5.1. Sending a Neighbor Solicitation ....................255.5.2. Processing a Neighbor Advertisement ................255.5.3. Recovering from Failures ...........................265.6. Next-Hop Determination ....................................265.7. Address Resolution ........................................27
The IPv6-over-IEEE 802.15.4 [RFC4944] document specifies how IPv6 is
carried over an IEEE 802.15.4 network with the help of an adaptation
layer that sits between the Media Access Control (MAC) layer and the
IP network layer. A link in a Low-power Wireless Personal Area
Network (LoWPAN) is characterized as lossy, low-power, low-bit-rate,
short-range; with many nodes saving energy with long sleep periods.
Multicast as used in IPv6 Neighbor Discovery (ND) [RFC4861] is not
desirable in such a wireless low-power and lossy network. Moreover,
LoWPAN links are asymmetric and non-transitive in nature. A LoWPAN
is potentially composed of a large number of overlapping radio
ranges. Although a given radio range has broadcast capabilities, the
aggregation of these is a complex Non-Broadcast Multiple Access
(NBMA) [RFC2491] structure with generally no LoWPAN-wide multicast
capabilities. Link-local scope is in reality defined by reachability
and radio strength. Thus, we can consider a LoWPAN to be made up of
links with undetermined connectivity properties as in [RFC5889],
along with the corresponding address model assumptions defined
This specification introduces the following optimizations to IPv6
Neighbor Discovery [RFC4861] specifically aimed at low-power and
lossy networks such as LoWPANs:
o Host-initiated interactions to allow for sleeping hosts.
o Elimination of multicast-based address resolution for hosts.
o A host address registration feature using a new option in unicast
Neighbor Solicitation (NS) and Neighbor Advertisement (NA)
o A new Neighbor Discovery option to distribute 6LoWPAN header
compression context to hosts.
o Multihop distribution of prefix and 6LoWPAN header compression
o Multihop Duplicate Address Detection (DAD), which uses two new
ICMPv6 message types.
The two multihop items can be substituted by a routing protocol
mechanism if that is desired; see Section 1.4.
The document defines three new ICMPv6 message options: the Address
Registration Option (ARO), the Authoritative Border Router Option
(ABRO), and the 6LoWPAN Context Option (6CO). It also defines two
new ICMPv6 message types: the Duplicate Address Request (DAR) and the
Duplicate Address Confirmation (DAC).
1.1. The Shortcomings of IPv6 Neighbor Discovery
IPv6 Neighbor Discovery [RFC4861] provides several important
mechanisms used for router discovery, address resolution, Duplicate
Address Detection, and Redirect messages, along with prefix and
Following power-on and initialization of the network in IPv6 Ethernet
networks, a node joins the solicited-node multicast address on the
interface and then performs Duplicate Address Detection (DAD) for the
acquired link-local address by sending a solicited-node multicast
message to the link. After that, it sends multicast messages to the
all-routers multicast address to solicit Router Advertisements (RAs).
If the host receives a valid RA with the A (autonomous address
configuration) flag, it autoconfigures the IPv6 address with the
advertised prefix in the RA message. Besides this, the IPv6 routers
usually send RAs periodically on the network. RAs are sent to the
all-nodes multicast address. Nodes send Neighbor Solicitation/
Neighbor Advertisement messages to resolve the IPv6 address of the
destination on the link. The Neighbor Solicitation messages used for
address resolution are multicast. The Duplicate Address Detection
procedure and the use of periodic Router Advertisement messages
assume that the nodes are powered on and reachable most of the time.
In Neighbor Discovery, the routers find the hosts by assuming that a
subnet prefix maps to one broadcast domain, and then they multicast
Neighbor Solicitation messages to find the host and its link-layer
address. Furthermore, the DAD use of multicast assumes that all
hosts that autoconfigure IPv6 addresses from the same prefix can be
reached using link-local multicast messages.
Note that the L (on-link) bit in the Prefix Information Option (PIO)
can be set to zero in Neighbor Discovery, which makes the host not
use multicast Neighbor Solicitation (NS) messages for address
resolution of other hosts, but routers still use multicast NS
messages to find the hosts.
Due to the lossy nature of wireless communication and a changing
radio environment, the IPv6-link node-set may change due to external
physical factors. Thus, the link is often unstable, and the nodes
appear to be moving without necessarily moving physically.
A LoWPAN can use two types of link-layer addresses: 16-bit short
addresses and 64-bit unique addresses as defined in [RFC4944].
Moreover, the available link-layer payload size is on the order of
less than 100 bytes; thus, header compression is very useful.
Considering the above characteristics in a LoWPAN, and the IPv6
Neighbor Discovery [RFC4861] protocol design, some optimizations and
extensions to Neighbor Discovery are useful for the wide deployment
of IPv6 over low-power and lossy networks (example: 6LoWPAN and other
homogeneous low-power networks).
In its Section 1, [RFC4861] foresees a document that covers operating
IP over a particular link type and defines an exception to the
otherwise general applicability of unmodified [RFC4861]. The present
specification improves the usage of IPv6 Neighbor Discovery for
LoWPANs in order to save energy and processing power of such nodes.
This document thus updates [RFC4944] to specify the use of the
optimizations defined here.
The applicability of this specification is limited to LoWPANs where
all nodes on the subnet implement these optimizations in a
homogeneous way. Although it is noted that some of these
optimizations may be useful outside of 6LoWPANs, for example, in
general IPv6 low-power and lossy networks and possibly even in
combination with [RFC4861], the usage of such combinations is out of
scope of this document.
In this document, we specify a set of behaviors between hosts and
routers in LoWPANs. An implementation that adheres to this document
MUST implement those behaviors. The document also specifies a set of
behaviors (multihop prefix or context dissemination and, separately,
multihop Duplicate Address Detection) that are needed in route-over
configurations. An implementation of this specification MUST support
those pieces, unless the implementation supports some alternative
("substitute") from some other specification.
The optimizations described in this document apply to different
topologies. They are most useful for route-over and mesh-under
configurations in Mesh topologies. However, Star topology
configurations will also benefit from the optimizations due to
reduced signaling, robust handling of the non-transitive link, and
header compression context information.
1.3. Goals and Assumptions
The document has the following main goals and assumptions.
o Optimize Neighbor Discovery with a mechanism that is minimal yet
sufficient for the operation in both mesh-under and route-over
o Minimize signaling by avoiding the use of multicast flooding and
reducing the use of link-scope multicast messages.
o Optimize the interfaces between hosts and their default routers.
o Provide support for sleeping hosts.
o Disseminate context information to hosts as needed by 6LoWPAN
header compression [RFC6282].
o Disseminate context information and prefix information from the
border to all routers in a LoWPAN.
o Provide a multihop Duplicate Address Detection mechanism suitable
for route-over LoWPANs.
o 64-bit Extended Unique Identifier (EUI-64) [EUI64] addresses are
globally unique, and the LoWPAN is homogeneous.
o All nodes in the network have an EUI-64 Interface ID in order to
do address autoconfiguration and detect duplicate addresses.
o The link-layer technology is assumed to be low-power and lossy,
exhibiting undetermined connectivity, such as IEEE 802.15.4
[RFC4944]. However, the address registration mechanism might be
useful for other link-layer technologies.
o A 6LoWPAN is configured to share one or more global IPv6 address
prefixes to enable hosts to move between routers in the LoWPAN
without changing their IPv6 addresses.
o When using the multihop DAD mechanism (Section 8.2), each 6LoWPAN
Router (6LR) registers with all the 6LoWPAN Border Routers (6LBRs)
available in the LoWPAN.
o If IEEE 802.15.4 16-bit short addresses are used, then some
technique is used to ensure the uniqueness of those link-layer
addresses. That could be done using DHCPv6, Address Registration
Option-based Duplicate Address Detection (specified in
Section 8.2), or other techniques outside of the scope of this
o In order to preserve the uniqueness of addresses (see Section 5.4
of [RFC4862]) not derived from an EUI-64, they must be either
assigned or checked for duplicates in the same way throughout the
LoWPAN. This can be done using DHCPv6 for assignment and/or using
the Duplicate Address Detection mechanism specified in Section 8.2
(or any other protocols developed for that purpose).
o In order for 6LoWPAN header compression [RFC6282] to operate
correctly, the compression context must match for all the hosts,
6LRs, and 6LBRs that can send, receive, or forward a given packet.
If Section 8.1 is used to distribute context information, this
implies that all the 6LBRs must coordinate the context information
they distribute within a single LoWPAN.
o This specification describes the operation of ND within a single
LoWPAN. The participation of a node in multiple LoWPANs
simultaneously may be possible but is out of scope of this
o Since the LoWPAN shares its prefix(es) throughout the network,
mobility of nodes within the LoWPAN is transparent. Inter-LoWPAN
mobility is out of scope of this document.
1.4. Substitutable Features
This document defines the optimization of Neighbor Discovery messages
for the host-router interface and introduces two new mechanisms in a
Unless specified otherwise (in a document that defines a routing
protocol that is used in a 6LoWPAN), this document applies to
networks with any routing protocol. However, because the routing
protocol may provide good alternate mechanisms, this document defines
certain features as "substitutable", meaning they can be substituted
by a routing protocol specification that provides mechanisms
achieving the same overall effect.
The features that are substitutable (individually or in a group):
o Multihop distribution of prefix and 6LoWPAN header compression
o Multihop Duplicate Address Detection
Thus, multihop prefix distribution (the ABRO) and the 6LoWPAN Context
Option (6CO) for distributing header compression contexts go hand in
hand. If substitution is intended for one of them, then both of them
MUST be substituted.
Guidelines for feature implementation and deployment are provided in
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119].
This specification requires readers to be familiar with all the terms
and concepts that are discussed in "Neighbor Discovery for IP
version 6 (IPv6)" [RFC4861], "IPv6 Stateless Address
Autoconfiguration" [RFC4862], "IPv6 over Low-Power Wireless Personal
Area Networks (6LoWPANs): Overview, Assumptions, Problem Statement,
and Goals" [RFC4919], "Transmission of IPv6 Packets over IEEE
802.15.4 Networks" [RFC4944], and "IP Addressing Model in Ad Hoc
This specification makes extensive use of the same terminology
defined in [RFC4861], unless otherwise defined below.
A wireless link determined by single IP hop reachability of
neighboring nodes. These are considered links with undetermined
connectivity properties as in [RFC5889].
6LoWPAN Node (6LN):
A 6LoWPAN node is any host or router participating in a LoWPAN.
This term is used when referring to situations in which either a
host or router can play the role described.
6LoWPAN Router (6LR):
An intermediate router in the LoWPAN that is able to send and
receive Router Advertisements (RAs) and Router Solicitations (RSs)
as well as forward and route IPv6 packets. 6LoWPAN routers are
present only in route-over topologies.
6LoWPAN Border Router (6LBR):
A border router located at the junction of separate 6LoWPAN
networks or between a 6LoWPAN network and another IP network.
There may be one or more 6LBRs at the 6LoWPAN network boundary. A
6LBR is the responsible authority for IPv6 prefix propagation for
the 6LoWPAN network it is serving. An isolated LoWPAN also
contains a 6LBR in the network, which provides the prefix(es) for
the isolated network.
Either a 6LR or a 6LBR. Note that nothing in this document
precludes a node being a router on some interfaces and a host on
other interfaces as allowed by [RFC2460].
A topology where nodes are connected to a 6LBR through a mesh
using link-layer forwarding. Thus, in a mesh-under configuration,
all IPv6 hosts in a LoWPAN are only one IP hop away from the 6LBR.
This topology simulates the typical IP-subnet topology with one
router with multiple nodes in the same subnet.
A topology where hosts are connected to the 6LBR through the use
of intermediate layer-3 (IP) routing. Here, hosts are typically
multiple IP hops away from a 6LBR. The route-over topology
typically consists of a 6LBR, a set of 6LRs, and hosts.
A link that exhibits asymmetric reachability as defined in
Section 2.2 of [RFC4861].
A specification that covers operating IP over a particular link
type, for example, [RFC4944] "Transmission of IPv6 Packets over
IEEE 802.15.4 Networks".
Header compression context:
Address information shared across a LoWPAN and used by 6LoWPAN
header compression [RFC6282] to enable the elision of information
that would otherwise be sent repeatedly. In a "context", a
(potentially partial) address is associated with a Context
Identifier (CID), which is then used in header compression as a
shortcut for (parts of) a source or destination address.
The process during which a LoWPAN node sends a Neighbor
Solicitation message with an Address Registration Option to a
router creating a Neighbor Cache Entry (NCE) for the LoWPAN node
with a specific timeout. Thus, for 6LoWPAN routers, the Neighbor
Cache doesn't behave like a cache. Instead, it behaves as a
registry of all the host addresses that are attached to the
3. Protocol Overview
These Neighbor Discovery optimizations are applicable to both
mesh-under and route-over configurations. In a mesh-under
configuration, only 6LoWPAN Border Routers and hosts exist; there are
no 6LoWPAN routers in mesh-under topologies.
The most important part of the optimizations is the evolved host-to-
router interaction that allows for sleeping nodes and avoids using
multicast Neighbor Discovery messages except for the case of a host
finding an initial set of default routers, and redoing such
determination when that set of routers have become unreachable.
The protocol also provides for header compression [RFC6282] by
carrying header compression information in a new option in Router
In addition, there are separate mechanisms that can be used between
6LRs and 6LBRs to perform multihop Duplicate Address Detection and
distribution of the prefix and compression context information from
the 6LBRs to all the 6LRs, which in turn use normal Neighbor
Discovery mechanisms to convey this information to the hosts.
The protocol is designed so that the host-to-router interaction is
not affected by the configuration of the 6LoWPAN; the host-to-router
interaction is the same in a mesh-under and route-over configuration.
3.1. Extensions to RFC 4861
This document specifies the following optimizations and extensions to
IPv6 Neighbor Discovery [RFC4861]:
o Host-initiated refresh of Router Advertisement information. This
removes the need for periodic or unsolicited Router Advertisements
from routers to hosts.
o No Duplicate Address Detection (DAD) is performed if EUI-64-based
IPv6 addresses are used (as these addresses are assumed to be
o DAD is optional if DHCPv6 is used to assign addresses.
o A new address registration mechanism using a new Address
Registration Option between hosts and routers. This removes the
need for routers to use multicast Neighbor Solicitations to find
hosts and supports sleeping hosts. This also enables the same
IPv6 address prefix(es) to be used across a route-over 6LoWPAN.
It provides the host-to-router interface for Duplicate Address
o A new Router Advertisement option, the 6LoWPAN Context Option, for
context information used by 6LoWPAN header compression.
o A new mechanism to perform Duplicate Address Detection across a
route-over 6LoWPAN using the new Duplicate Address Request and
Duplicate Address Confirmation messages.
o New mechanisms to distribute prefixes and context information
across a route-over network that uses a new Authoritative Border
Router Option to control the flooding of configuration changes.
o A few new default protocol constants are introduced, and some
existing Neighbor Discovery protocol constants are tuned.
3.2. Address Assignment
Hosts in a 6LoWPAN configure their IPv6 addresses as specified in
[RFC4861] and [RFC4862] based on the information received in Router
Advertisement messages. The use of the M (managed address
configuration) flag in this optimization is, however, more
restrictive than in [RFC4861]. When the M flag is set, a host is
assumed to use DHCPv6 to assign any non-EUI-64 addresses. When the M
flag is not set, the nodes in the LoWPAN support Duplicate Address
Detection; thus, a host can then safely use the address registration
mechanism to check non-EUI-64 addresses for uniqueness.
6LRs MAY use the same mechanisms to configure their IPv6 addresses.
The 6LBRs are responsible for managing the prefix(es) assigned to the
6LoWPAN, using manual configuration, DHCPv6 Prefix Delegation
[RFC3633], or other mechanisms. In an isolated LoWPAN, a Unique
Local Address (ULA) [RFC4193] prefix SHOULD be generated by the 6LBR.
3.3. Host-to-Router Interaction
A host sends Router Solicitation messages at startup and also when
the Neighbor Unreachability Detection (NUD) of one of its default
Hosts receive Router Advertisement messages typically containing the
Authoritative Border Router Option (ABRO) and may optionally contain
one or more 6LoWPAN Context Options (6COs) in addition to the
existing Prefix Information Options (PIOs) as described in [RFC4861].
When a host has configured a non-link-local IPv6 address, it
registers that address with one or more of its default routers using
the Address Registration Option (ARO) in an NS message. The host
chooses a lifetime of the registration and repeats the ARO
periodically (before the lifetime runs out) to maintain the
registration. The lifetime should be chosen in such a way as to
maintain the registration even while a host is sleeping. Likewise,
mobile nodes that often change their point of attachment should use a
suitably short lifetime. See Section 5.5 for registration details
and Section 9 for protocol constants.
The registration fails when an ARO is returned to the host with a
non-zero Status. One reason may be that the router determines that
the IPv6 address is already used by another host, i.e., is used by a
host with a different EUI-64. This can be used to support
non-EUI-64-based addresses such as temporary IPv6 addresses [RFC4941]
or addresses based on an Interface ID that is an IEEE 802.15.4 16-bit
short address. Failure can also occur if the Neighbor Cache on that
router is full.
The re-registration of an address can be combined with Neighbor
Unreachability Detection (NUD) of the router, since both use unicast
Neighbor Solicitation messages. This makes things efficient when a
host wakes up to send a packet and needs to both perform NUD to check
that the router is still reachable and refresh its registration with
The response to an address registration might not be immediate, since
in route-over configurations the 6LR might perform Duplicate Address
Detection against the 6LBR. A host retransmits the Address
Registration Option until it is acknowledged by the receipt of an
Address Registration Option.
As part of the optimizations, address resolution is not performed by
multicasting Neighbor Solicitation messages as in [RFC4861].
Instead, the routers maintain Neighbor Cache Entries for all
registered IPv6 addresses. If the address is not in the Neighbor
Cache in the router, then the address either doesn't exist, is
assigned to a host attached to some other router in the 6LoWPAN, or
is external to the 6LoWPAN. In a route-over configuration, the
routing protocol is used to route such packets toward the
3.4. Router-to-Router Interaction
The new router-to-router interaction is only for the route-over
configuration where 6LRs are present. See also Section 1.4.
6LRs MUST act like a host during system startup and prefix
configuration by sending Router Solicitation messages and
autoconfiguring their IPv6 addresses, unlike routers in [RFC4861].
When multihop prefix and context dissemination are used, then the
6LRs store the ABRO, 6CO, and prefix information received (directly
or indirectly) from the 6LBRs and redistribute this information in
the Router Advertisement they send to other 6LRs or send to hosts in
response to a Router Solicitation. There is a Version Number field
in the ABRO (see Section 4.3), which is used to limit the flooding of
updated information between the 6LRs.
A 6LR can perform Duplicate Address Detection against one or more
6LBRs using the new Duplicate Address Request (DAR) and Duplicate
Address Confirmation (DAC) messages, which carry the information from
the Address Registration Option. The DAR and DAC messages will be
forwarded between the 6LR and 6LBRs; thus, the [RFC4861] rule for
checking hop limit=255 does not apply to the DAR and DAC messages.
Those multihop DAD messages MUST NOT modify any Neighbor Cache
Entries on the routers, since we do not have the security benefits
provided by the hop limit=255 check.
3.5. Neighbor Cache Management
The use of explicit registrations with lifetimes, plus the desire to
not multicast Neighbor Solicitation messages for hosts, imply that we
manage the Neighbor Cache Entries (NCEs) slightly differently than in
[RFC4861]. This results in three different types of NCEs, and the
types specify how those entries can be removed:
Garbage-collectible: Entries that are subject to the normal rules in
[RFC4861] that allow for garbage collection
when low on memory.
Registered: Entries that have an explicit registered
lifetime and are kept until this lifetime
expires or they are explicitly unregistered.
Tentative: Entries that are temporary with a short
lifetime, which typically get converted to
Note that the type of the NCE is orthogonal to the states specified
When a host interacts with a router by sending Router Solicitations,
this results in a Tentative NCE. Once a router has successfully had
a node register with it, the result is a Registered NCE. When
routers send RAs to hosts, and when routers receive RA messages or
receive multicast NS messages from other routers, the result is
Garbage-collectible NCEs. There can only be one kind of NCE for an
IP address at a time.
Neighbor Cache Entries on routers can additionally be added or
deleted by a routing protocol used in the 6LoWPAN. This is useful if
the routing protocol carries the link-layer addresses of the
neighboring routers. Depending on the details of such routing
protocols, such NCEs could be either Registered or