Internet DRAFT - draft-grajzer-autoconf-ndpp
draft-grajzer-autoconf-ndpp
MANET Autoconfiguration (Autoconf) M. Grajzer
Internet Draft Telcordia Poland Sp. z o.o.
Intended status: Standard March 4, 2011
Expires: September 2011
ND++ - an extended IPv6 Neighbor Discovery protocol for enhanced
duplicate address detection to support stateless address auto-
configuration in IPv6 mobile ad hoc networks.
draft-grajzer-autoconf-ndpp-00.txt
Abstract
This document proposes the extended IPv6 Neighbor Discovery protocol
for enhanced duplicate address detection in mobile ad hoc networks.
It exploits Multipoint Relay concept for flooding of multihop
protocol messages. As a result the protocol extension provides
support for the stateless address auto-configuration in mobile ad
hoc networks.
Status of this Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
This document may contain material from IETF Documents or IETF
Contributions published or made publicly available before November
10, 2008. The person(s) controlling the copyright in some of this
material may not have granted the IETF Trust the right to allow
modifications of such material outside the IETF Standards Process.
Without obtaining an adequate license from the person(s) controlling
the copyright in such materials, this document may not be modified
outside the IETF Standards Process, and derivative works of it may
not be created outside the IETF Standards Process, except to format
it for publication as an RFC or to translate it into languages other
than English.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Grajzer Expires September 4, 2011 [Page 1]
Internet-Draft Neighbor Discovery ++ March 2011
Internet-Drafts are draft documents valid for a maximum of six
months and may be updated, replaced, or obsoleted by other documents
at any time. It is inappropriate to use Internet-Drafts as
reference material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html
This Internet-Draft will expire on September 4, 2011.
Copyright Notice
Copyright (c) 2011 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...................................................3
2. Remarks and Terminology........................................4
3. Protocol extension overview....................................5
3.1. Extended DAD..............................................5
3.2. Additional functionality:.................................7
4. Message type and format........................................8
4.1. Neighbor Solicitation with multi-hop capabilities:........9
4.2. Neighbour Advertisement with 1-hop capabilities:..........9
4.2.1. MPR Parameters Option:..............................10
4.2.2. MPR Announcement Option:............................11
4.3. Random ID option of Hop-by-hop extension header..........12
4.4. Neighbour Advertisement with multi-hop capabilities:.....13
Grajzer Expires September 4, 2011 [Page 2]
Internet-Draft Neighbor Discovery ++ March 2011
4.4.1. Topology and Link Control Info Option:..............14
5. Detailed protocol description.................................15
5.1. MPR Processes............................................15
5.2. Usage of Random ID Option................................17
5.3. Forwarding of multi-hop messages.........................18
5.4. DAD++ procedure..........................................18
5.5. Link monitoring and topology discovery...................19
6. Security Considerations.......................................20
7. IANA Considerations...........................................20
8. References....................................................20
8.1. Normative References.....................................20
8.2. Informative References...................................21
9. Acknowledgments...............................................21
1. Introduction
In Mobile Ad hoc NETworks (MANETs) the behavior of nodes is
determined by a network design assuming the lack of both - a pre-
defined infrastructure and a central network administration. This is
accompanied by a relatively high dynamicity and node mobility.
Rapidly changing topology and node mobility put a demand on address
auto-configuration in MANETs, where configuration needs to be kept
even when the network is changing. Thus it is especially important
in IPv6-based MANETs to verify the uniqueness of the addresses used
by each node, since possible duplication may cause network protocols
to misbehave. In particular verification of address uniqueness is
also a core element of stateless address auto-configuration.
Duplicate Address Detection (DAD) procedure is proposed for IPv6
networks as a way of verifying the uniqueness of node's addresses.
In basic IPv6 solutions ([RFC4861],[RFC4862]) it is performed only
in the one-hope neighborhood of each node, since it was originally
proposed for fixed networks. However changing topology and node
mobility put a demand on DAD in MANETs, which should span across a
wider range of nodes. Verification of the uniqueness of addresses in
this case must be performed efficiently and the protocol message
overhead should be minimized.
In this document the Neighbor Discovery (ND) protocol [RFC4861]
extension, denoted as ND++, is proposed, which is designed to
address the needs of MANET networks. The extension enables Neighbor
Discovery protocol to verify the uniqueness of an address in the
range of several hops (enhanced DAD). It incorporates Multipoint
Relay (MPR) concept originally proposed for OLSR routing protocol in
Grajzer Expires September 4, 2011 [Page 3]
Internet-Draft Neighbor Discovery ++ March 2011
[RFC3626], which provides means for efficient flooding of multihop
protocol messages. As a result ND++ comes up with an efficient
support for stateless address auto-configuration (SAA) in IPv6-based
MANET networks.
2. Remarks and Terminology
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 RFC-2119 [RFC2119].
Whenever "address" is mentioned in this document, it is an IPv6
address assigned to one of node's interfaces.
This document uses the following terminology, which is mostly
derived from [RFC3626] and [RFC4861]:
node
a device that implements IPv6, can be either a router or a
host
router
a node that forwards IP packets not explicitly addressed to
itself
host
any node that is not a router
neighbours
nodes attached to the same link, a node x is a neighbour node
of node y if node y can hear node x
2-hop neighbour
a node heard by a neighbour; a node attached on the same link
with a neighbour
strict 2-hop neighbour
Grajzer Expires September 4, 2011 [Page 4]
Internet-Draft Neighbor Discovery ++ March 2011
a 2-hop neighbour which is not a node itself or a neighbour of
the node and in addition is a neighbour of a node's neighbour
with a willingness different from WILL_NEVER
Multipoint Relay (MPR)
a node which is selected by its 1-hop neighbour, node x, to
"re-transmit" all the broadcast messages that it receives from
x, provided that the message is not a duplicate, and that the
hop limit field of the message is greater than one and
different from 255
MPR Selector
a node which has selected its 1-hop neighbour as its
Multipoint Relay
3. Protocol extension overview
3.1. Extended DAD
The proposed ND++ extension is designed to implement the mechanism
of enhanced DAD (DAD++) performed in n-hop range. It aims to verify
the uniqueness of the node's address in the range of n hops. The
DAD++ procedure is performed in two stages: at first in the 1-hop
neighborhood (referred to as DAD) and second in the range of n hops
covering possibly whole MANET domain (referred to as n-DAD). The
whole duplicate address detection process is thus denoted as DAD++.
This two-stage approach enables to introduce improved flooding of
multihop ND++ messages by means of the MPR concept, which requires
valid node identifiers at least in a range of 1 hop.
In the DAD++ procedure a node first starts 1-hop DAD by sending 1-
hop Neighbor Solicitation (NS) message to all its neighbors, as
defined in basic ND protocol [RFC4861]. If the recipient of the
message detects that the target address listed in NS message is
equal to one of its valid addresses, it sends the notification -
Neighbor Advertisement (NA) message, to let the sender know that it
cannot use the requested address. If at this stage duplication was
not found, the node can start preparation for n-DAD. At this stage
it chooses from its 1-hop neighborhood nodes willing to forward
packets on its behalf - the MPRs. Only MPRs will be allowed to
forward packets, so this way flooding of ND++ protocol multihop
messages is optimized. To complete DAD++, the node starts to send
multihop NS messages that will be forwarded by MPRs. These messages
Grajzer Expires September 4, 2011 [Page 5]
Internet-Draft Neighbor Discovery ++ March 2011
have wider range and can be used to verify the uniqueness of the
address within the range of n hops. If there is any node within this
range, that has the same address as the one specified as a target
address, it will reply with multihop NA message to inform the sender
about duplication. All multicast messages are propagated by means of
MPRs. They follow the same procedures as 1-hop NS and NA messages,
but can be forwarded. Detailed description of the ND++ protocol
functionality is given in the remaining part of this document.
MPR-related procedures are derived from [RFC3626]. In this approach
each node in a network recognizes its one hope neighborhood. From
this 1-hop neighborhood it chooses particular nodes (denoted as
MPRs) willing to forward packets on its behalf. MPRs are chosen in
such a way that they ensure that all strict 2-hop neighbors will
receive the forwarded message with minimum overhead. The MPR
selection algorithm is defined in [RFC3626] and is used in the ND++
extension. The messages used to gather information necessary for
choosing MPRs are exchanged as newly proposed options to ND++
protocol messages. The proposed ND++ options: MPR Parameters Option,
MPR Announcement Option and Topology and Link Control Info Option
are incorporating some concepts introduced in [RFC3626] into the ND
protocol. Their internal structure is based on the message types
proposed for OLSR protocol.
The proposed solution exploits the design paradigms of IPv6 protocol
stack. It incorporates into ND protocol new sub-types of messages
with multi-hop capabilities and new option types supporting MPR
processes. The proposed protocol exploits also new option proposed
as a Hop-by-hop Extension Header option, which is carried in the
IPv6 packet header. Since the ND++ is an extension to basic ND
(specified in [RFC4861]), the core functionality of ND remains
unchanged and must be supported in order to ensure proper
interactions with nodes that do not support ND++ implementation. The
IPv6 design is flexible and therefore enables such coexistence. Thus
the extension is backward compatible.
In the ND++ extension two main types of Neighbor Solicitation (NS)
and Neighbor Advertisement (NA) messages are envisioned:
o 1-hop NS and NA messages having link-local scope, not being
forwarded - similar to the one proposed in basic ND protocol
o Multi-hop NS and NA messages used to recognize node's further
neighborhood and perform Duplicate Address Detection in n-hop
range (n-DAD) - new message sub-types proposed for ND++
Grajzer Expires September 4, 2011 [Page 6]
Internet-Draft Neighbor Discovery ++ March 2011
In order to realize the DAD++ functionality, new options are
introduced to enable MPR selection and the usage of MPRs throughout
the process:
o MPR Parameters option - used by each node in a network to
advertise its forwarding capabilities - it specifies willingness
of a node to act as an MPR for other nodes and lists node
neighbors along with the information about their type and the
type of link to them. The option is based on the functionality
and message structure from OLSR routing protocol [RFC3626]
o MPR Announcement option - proposed for announcing which nodes
have been chosen to act as an MPR for a certain MPR selector
(message originator)
o Random ID Option attached to Hop-by-hop Extension Header
(included in the IPv6 packet header) - enables to distinguish
copies of own messages and is essential in MANET networks
DAD++ being incorporated with the ND++ protocol is able to verify
the uniqueness of the node's address in the n-hop range. The
procedure is performed also on the link-local addresses (valid in
link-local scope). This helps to keep proper network configuration
in the situations of node mobility. In such a case however, some
address auto-configuration procedure should follow DAD++, to obtain
routable address. For example an address having a site-local scope
should be generated by means of a prefix distributed within auto-
configuration procedures. This procedure is out of the scope of this
document.
3.2. Additional functionality:
The proposed ND++ extensions can be also exploited for link
monitoring and topology data collection. Such functionality can be
easily applied on top of the MPR-based flooding scheme that is used
in ND++. Thus following the OLSR specification [RFC 3626], link
monitoring and topology discovery mechanisms can be brought to ND++
and serve as a source of information for other interested processes
in a network (especially useful in autonomic networks, where network
monitoring is of great importance). MPRs incorporated in the process
are therefore not only means of efficient flooding but can also be
used to optimize data collection. The proposed Topology and Link
Grajzer Expires September 4, 2011 [Page 7]
Internet-Draft Neighbor Discovery ++ March 2011
Control Info Option can be used with multi-hop NA messages to enable
network data collection. Topology and link control information is
exchanged in a manner similar to the one described in [RFC3626].
4. Message type and format
Below the changes proposed to extend the ND protocol are specified.
They are incorporated as new sub-types of Neighbor Solicitation and
Neighbor Advertisement messages or included in the proposed new
options. Structure of options and their lengths are chosen according
to appropriate RFCs for IPv6 [RFC4443], [RFC2460].
An overview of IPv6 packet with inserted basic structure of NS and
NA option is given below for reference. This figure also depicts the
placement of ND options (NS or NA type) and Extension Headers:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| Traffic Class | Flow Label |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload Length | Next Header | Hop Limit |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Address |
. .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ Destination Address |
. .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ Extension Headers |
. .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Target Address |
. .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options ...
+-+-+-+-+-+-+-+-+-+-+-+-
Grajzer Expires September 4, 2011 [Page 8]
Internet-Draft Neighbor Discovery ++ March 2011
4.1. Neighbor Solicitation with multi-hop capabilities:
Functionality:
o To perform n-DAD - Duplicate Address Detection in n-hop scope in
order to resolve addresses of a node in a wider scope
o It is used with basic ND options
o Sent to all-nodes multicast address instead of solicited-node
multicast to avoid packet drop at intermediate nodes
Modifications:
IP Fields:
HopLimit: n (instead of 255)
ICMP Fields:
Code: 1 (instead of 0) - to introduce additional level
of message granularity as specified in [RFC4443]
and specify that this is a multi-hop message type
HopsSent: (OPTIONAL)field introduced as younger 8 bits of
Reserved filed, specifies HopLimit with which
message was sent by the originating node - can be
used by receiver to estimate number of hops
necessary to reply to this message. With external
network configuration this may not be necessary
4.2. Neighbour Advertisement with 1-hop capabilities:
Functionality (beyond the one described in [RFC4862]):
o To enable the MPR selection - for this purpose MPR Parameters
Option and MPR Announcement Option types are used with this
message type
Grajzer Expires September 4, 2011 [Page 9]
Internet-Draft Neighbor Discovery ++ March 2011
4.2.1. MPR Parameters Option:
The proposed option format is presented below:
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 | Willingness | Link Code |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Neighbor Address 1 |
. .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
. .
. .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Neighbor Address m |
. .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Link Code field - details:
0 1 2 3 4 5 6 7
+-------+-------+-------+-------+-------+-------+-------+-------+
| 0 | 0 | 0 | 0 | Neigh. Type | Link Type |
+-------+-------+-------+-------+-------+-------+-------+-------+
Type: 6 (TBD)
Length: 2m+1 (in 8-octet units, including Type and Length fields;
m - number of addresses held in the payload)
Willingness: specifies willingness of a node to become an MPR,
to be defined as in [RFC3626]:
WILL_NEVER = 0
WILL_LOW = 1
WILL_DEFAULT = 3
WILL_HIGH = 6
Grajzer Expires September 4, 2011 [Page 10]
Internet-Draft Neighbor Discovery ++ March 2011
WILL_ALWAYS = 7
Neighbor Address: Field used to advertise addresses of node's
neighbors
Link Code:
Neighbor Type (Neigh. Type): specifies type of neighbor, as
proposed in [RFC3626]:
NOT_NEIGH = 0
SYM_NEIGH = 1
MPR_NEIGH = 2
Link Type: specifies link type, as proposed in [RFC3626]:
UNSPEC_LINK = 0
ASYM_LINK = 1
SYM_LINK = 2
LOST_LINK = 3
Additional settings:
o Target Address field of 1-hop NA message carrying an option must
be set to node's main address
o Each MPR Parameters option is listing neighbors with the same
Link Code value; options with data for each Link Code value must
be inserted one after another
4.2.2. MPR Announcement Option:
The proposed option format is presented below:
Grajzer Expires September 4, 2011 [Page 11]
Internet-Draft Neighbor Discovery ++ March 2011
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 1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MPR Address 1 |
. .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
. .
. .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MPR Address m |
. .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 9 (TBD)
Length: 2m+1 (in 8-octet units, including Type and Length fields;
m - number of addresses held in the payload)
MPR Address: Field used to advertise addresses of nodes chosen to
be MPRs
4.3. Random ID option of Hop-by-hop extension header
The proposed option format is presented below:
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Random node ID | Sequence Number (SN) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Functionality:
o To enable a node to distinguish echoes of its own previous
messages in fast and simple manner
Grajzer Expires September 4, 2011 [Page 12]
Internet-Draft Neighbor Discovery ++ March 2011
o Can be used to distinguish two nodes having duplicated addresses
before the completion of DAD++ (possible improvement of the MPR
selection procedure in MANETs - OPTIONAL)
o It can be appended to all messages sent in a MANET network, as
the functionality should be sustained during entire node's
operation mentioned above.
o It MUST be added to all outgoing multihop ND++ messages
Type: 7(TBD)
Length: 4 (in octets)
Random node ID: random number selected by each node as its
random ID (e.g. by using MD5 algorithm and
hostname as a seed)
Sequence Number (SN): can be used for fast detection of
duplicated messages
4.4. Neighbour Advertisement with multi-hop capabilities:
Functionality:
o To send answers to multihop NS messages (to all-nodes multicast
address)
o To exchange topology and link state information (OPTIONAL)
Modifications:
IP Fields:
HopLimit: n (instead of 255)
ICMP Fields:
Grajzer Expires September 4, 2011 [Page 13]
Internet-Draft Neighbor Discovery ++ March 2011
Code: 1 (instead of 0) - to introduce additional level of
message granularity as specified in [RFC4443] and
specify that this is multi-hop message type
HopsSent: (OPTIONAL)field introduced as younger 8 bits of
Reserved filed, specifies HopLimit with which
message was sent by the originating node - can be
used by receiver to estimate number of hops
necessary to reply to this message. With external
network configuration this may not be necessary
4.4.1. Topology and Link Control Info Option:
The proposed option format is presented below:
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 | ANSN |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Link Code | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Neighbour Address 1 |
. .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
. .
. .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Neighbour Address m |
. .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 10(TBD)
Length: 2m+1 (in 8-octet units; m - number of addresses held in
the payload)
Advertised Neighbour
Sequence Number (ANSN): value incremented after a change in
advertised parameters, enables for the
Grajzer Expires September 4, 2011 [Page 14]
Internet-Draft Neighbor Discovery ++ March 2011
node to decide which information is the
most recent [RFC3626]
5. Detailed protocol description
Below the detailed overview of the procedures proposed for ND++
extensions is given. It depicts:
o MPR processes
o Usage of Random ID Option
o Forwarding of multi-hop messages
o DAD++ procedure
o Link monitoring and topology discovery
5.1. MPR Processes
MPRs are used for the flooding optimization. Each node in a network
selects from its 1-hop neighborhood nodes willing to forward packets
and being chosen in such a way that their connections cover a strict
2-hop neighborhood in full in a locally optimal manner. These nodes
are denoted as Multipoint Relays (MPRs) whereas the node
initializing the process is called MPR Selector, according to
[RFC3626]. The MPR selection procedure is performed by means of the
proposed MPR Parameters Option and MPR Announcement Option.
Several structures must exist to store the data necessary for MPR
processes:
o Neighbors Set - a set of 1-hop neighbors along with 2-hop
neighbors they reported
o MPR Set - a set of all nodes chosen to be MPRs
o MPR Selector Set - a set of nodes which selected the owner of the
set as an MPR, i.e. the set of nodes for which the owner should
forward packets
MPR Parameters Option is attached to 1-hop Neighbor Advertisement
message. It enables announcing the willingness of the sender to
Grajzer Expires September 4, 2011 [Page 15]
Internet-Draft Neighbor Discovery ++ March 2011
become MPR along with the list of its 1-hop neighbors. By default a
node will have a willingness value set to WILL_DEFAULT [RFC3626].
This value can be however modified to adapt to the current
conditions in a network. Reserved field is set to zeroes. Each node
in a network listens to the NA messages with this option and
collects information about its neighboring nodes:
o their IPv6 address (only one address is used by each node to
advertise MPR Parameters - the node's "main" address on a given
interface; it is passed in the Target Address field of NA
message)
o their willingness to become MPR
o IPv6 addresses of their 1-hop neighbors (excluding own address)
Based on this information the MPR selection heuristic is used to
choose MPRs in the way described in [RFC3626]. A node is allowed to
send messages with this option type on a given interface only when
it has at least one valid IPv6 address assigned to this interface
(this would usually mean that the node has successfully completed
the 1-hop DAD procedure and has at least link-local address
identified as unique in the link-local scope). Each interface has
its own list of MPRs and the MPR processes on different interfaces
are independent. Nodes chosen as MPRs are listed in the MPR Set.
The MPR Announcement Option is attached to 1-hop NA message in order
to announce by the node (being an MPR Selector) which neighbors it
has chosen as MPRs. Addresses of all MPR neighbors are listed in the
option one after another. A node that receives a message with this
option checks if its own address is listed. If it finds an entry
with one of its addresses, it keeps the sender address in the MPR
Selector Set carrying addresses of all nodes that have chosen it as
MPR.
MPR Parameters option and MPR Announcement option are sent in the 1-
hop NA messages periodically, each mpr_delay seconds. Mpr_delay is a
configurable parameter. MPR Announcement option is attached after
MPR Parameters option in the same message only if there are MPRs
chosen by the sending node. The 1-hop NA message is sent with the
following parameters:
o Source address - node's main address
o Destination address - all-nodes link-local multicast address
o Target address - node's main address
Grajzer Expires September 4, 2011 [Page 16]
Internet-Draft Neighbor Discovery ++ March 2011
Once the interface becomes "up" the Random ID is chosen. If there is
at least one valid address assigned to this interface, MPR processes
will be started. If all addresses are tentative, first DAD would
need to be completed. A node however can also initiate MPR processes
on some interface upon receiving MPR Parameters option or MPR
Announcement option from some other node. If at this point there is
no valid address, the messages with MPR Parameters option of this
node will not be sent, however attempts will be made periodically.
At the start of MPR processes MPR lists implementing above mentioned
Neighbour Set, MPR Set and MPR Selectors Set are initiated for a
given interface. Then first MPR Parameters option is sent and the
timer enabling periodic sending of MPR options is started. At each
timer stop after mpr_delay seconds MPRs are chosen based on the
currently known neighborhood. If the operation was successful MPR
Announcement option is sent along with the next outgoing MPR
Parameters option. In the opposite case, only MPR Parameters option
is sent. The timer is started again to repeat the procedure
periodically. It is also possible that MPRs are chosen only if a
change in node's neighborhood was detected at timer stop. The
performance of both cases would depend on the particular
implementation.
All activities related to the estimation of Link Type are performed
as described in [RFC3626].
5.2. Usage of Random ID Option
Random ID Option is a new option to be used in Hop-by-hop extension
header [RFC2460]. It is used to enable the node to distinguish
copies of its own messages forwarded back. This option is included
in the IPv6 packet header, so such detection can be performed in
fast and simple manner without the need for looking into packet
content. The detection can be made regardless of message type
conveyed by IPv6 packets, which makes this extension useful also in
other protocols developed for MANET networks.
Random ID option can be also used as a support for another purpose -
limiting the number of forwarded messages. Such a usage is OPTIONAL
- it is not mandatory, but it can enhance protocol's performance.
MPRs which are forwarding packets can be thus responsible for
detecting duplicate packets that are not supposed to be forwarded
any further. The detection can be performed by means of the Sequence
Number (SN) field in the Random ID Option of Hop-by-Hop Options
extension header. SN is a message counter that can be incremented
Grajzer Expires September 4, 2011 [Page 17]
Internet-Draft Neighbor Discovery ++ March 2011
with each message sent by a node. As a result, the receiving node is
able to infer without comparison of the message payload, that two
messages with the same source address, destination address, Random
ID and sequence number are duplicated.
5.3. Forwarding of multi-hop messages
Packets having an n-hop scope, i.e. multi-hop NS and multi-hop NA
messages, will have a Hop Limit field set to n by the packet
originator. This implicates that they can be forwarded - in contrary
to standard ND messages. As such in order to ensure an efficient
flooding of ND++ messages in the network, only nodes selected as
MPRs are allowed to forward packets. Packets are forwarded using
multicast transmission in IPv6 by means of all-nodes multicast
address having a link-local scope.
For each incoming multi-hop NS or multi-hop NA packet receiving node
checks if the sender is its MPR Selector (is in MPR Selectors Set).
If yes, the message is forwarded, if no - it is not. It is also
assumed that if it happens that MPR processes are not initiated by a
node yet, it will forward the packet anyway.
Each forwarder is also an envisioned recipient of the message, so
the copy of the message is forwarded, but the message itself is
processed by the receiving node as well.
5.4. DAD++ procedure
DAD++ procedure is performed in two stages. In the first stage of
this process DAD in a 1-hop range is performed in a similar way as
in the standard ND protocol. Next the part of DAD++, denoted as n-
DAD, is performed to verify uniqueness of node's address in n-hop
scope.
After a new address is assigned or the need for DAD++ is
communicated from external source (e.g. user space application,
triggered by network administrator, etc.) node starts the DAD++
procedure by performing 1-hop DAD. If duplication was detected at
this stage, DAD++ is terminated and necessary actions are performed,
as defined in [RFC4862] (the address cannot be used). However if DAD
was completed and no duplicates were found, the procedure will
follow with the MPR selection. Data from other nodes necessary to
choose MPRs are collected constantly since the interface is up. The
Grajzer Expires September 4, 2011 [Page 18]
Internet-Draft Neighbor Discovery ++ March 2011
MPR procedures should be performed in parallel to DAD++, however for
safety they can be also initiated after completion of DAD. Thus
after completion of 1-hop DAD MPRs are chosen and MPR Announcement
option is sent to inform node's neighbors. This message is also sent
for safety reasons, as in most cases the originating node will have
MPRs already chosen. n-DAD procedure is started after ndad_delay
seconds. ndad_delay parameter is configurable, but it must be larger
than mpr_delay.
n-DAD++ is executed by means of NS messages with multi-hop
capabilities specified above along with option types defined in the
basic ND protocol description for DAD. It follows the procedures
specified for basic ND in [RFC4861]. Thus the address for which
DAD++ is run must not be included as the source address in the IPv6
packet [RFC4861] and is included in the Target Address field of NS
messages. If the address is duplicated, NA message is sent by the
node, which recognizes target address as its own, to the all-nodes
multicast address [RFC4861]. This message is flooded within the
network by means of MPRs. Such a solution enables performing the
DAD++ procedure before the routing is present in a network.
n-DAD is performed in the range of n hops. The value of n is a
configurable protocol parameter. In general it should be chosen
possibly large - e.g. to cover the whole MANET domain, however in
large scale MANETs some restrictions towards the DAD++ range should
be specified in order to keep the message overhead at a reasonable
level. Investigation of how to choose the best Hop Limit value is
out of the scope of this document.
After the whole DAD++ process is completed the ND++ protocol may be
used to fulfill the remaining goals. It's necessary however, that
either Stateless or Stateful Address Auto-configuration is completed
first in order to guarantee that nodes will acquire routable
addresses.
5.5. Link monitoring and topology discovery
In order to incorporate additional functionalities of ND++ protocol
extension, Topology and Link Control Info Option (Figure 6) can be
added to NA messages with multihop capabilities. This way node-local
knowledge about topology and link states can be disseminated to
other nodes in the network. In order to reduce the amount of the
transmitted information only MPRs and links to MPRs of each node
should be reported (indicated by means of Neighbor Type fields).
Each node reports only information about the addresses of nodes in
Grajzer Expires September 4, 2011 [Page 19]
Internet-Draft Neighbor Discovery ++ March 2011
its 1-hop neighborhood. It is important that the main address of the
originating node should be conveyed by the Target Address field in
ICMP part of the NA message. Topology and Link Control Info Option
is used to report the state of links between a node and its
neighbors (inference about link types is derived from ([RFC3626]).
Neighbors are grouped according to their type and link type between
them and the node performing an action. Addresses of all neighbors
from the group are incorporated into one option. Different options
are created for different groups by exploiting Neighbor Type and
Link Type bits in the Link Code field. Once an update to the link
information is needed the node increments the Advertised Neighbor
Sequence Number (ANSN), so that information recipients can be
notified that the current message is not a copy of the previously
sent one and the information stored in its cache should be updated
[RFC3626].
6. Security Considerations
TBD.
7. IANA Considerations
This document specifies new ICMPv6 option types to be assigned for
MPR Parameters Option, MPR Announcement Option and Topology and Link
Control Info Option as well as new Hop-by-hop option type for Random
ID option. Values used in this document are a subject for discussion
and are assigned temporarily. The same holds true for the ICMPv6
code value for usage with multihop NS and NA messages.
8. References
8.1. Normative References
[RFC4861]Narten, T.and Nordmark, E. and Simpson, W. and Soliman, H.,
"Neighbor Discovery for IP version 6 (IPv6)", RFC 4861,
September 2007.
[RFC4862] Thomson, S.and Narten, T. and Jinmei, T., "IPv6 Stateless
Address Autoconfiguration", RFC 4862, September 2007.
Grajzer Expires September 4, 2011 [Page 20]
Internet-Draft Neighbor Discovery ++ March 2011
[RFC3626] Clausen, T. and Jacquet, P., "Optimised Link State Routing
Protocol (OLSR)", RFC 3626, October 2003
8.2. Informative References
[RFC4443] Conta, A. and Deering, S. and Gupta, M., "Internet Control
Message Protocol (ICMPv6) for the Internet Protocol
Version 6 (IPv6) Specification", RFC 4443, March 2006
[RFC2460] Deering, S. and Hinden, R., "Internet Protocol, Version 6
(IPv6) Specification", RFC 2460, December 1998
9. Acknowledgments
The author would like to thank Agnieszka Betkowska Cavalcante and
Tomasz Zernicki for their help during the implementation of ND++
extension.
This work has been supported by EC FP7 EFIPSANS project (INFSO-ICT-
215549)
This document was prepared using 2-Word-v2.0.template.dot.
Authors' Addresses
Monika Grajzer
Telcordia Poland Sp. z o.o.
ul. Umultowska 85
61-614 Poznan
Poland
Phone: +48 61 829 63 74
Email: mgrajzer@telcordia.com
Grajzer Expires September 4, 2011 [Page 21]