< draft-ng-nemo-access-router-option-00.txt   draft-ng-nemo-access-router-option-01.txt >
Network Working Group C. W. Ng NEMO Working Group C. Ng
Internet-Draft Panasonic Singapore Labs Internet-Draft Panasonic Singapore Labs
Expires: April 2003 T. Tanaka Expires: January 10, 2005 J. Hirano
Matsushita Communications Ind Panasonic
July 12, 2004
October 2002
Securing Nested Tunnels Optimization with Access Router Option Securing Nested Tunnels Optimization with Access Router Option
draft-ng-nemo-access-router-option-00.txt draft-ng-nemo-access-router-option-01
Status of this Memo Status of this Memo
This document is an Internet-Draft and is in full conformance with By submitting this Internet-Draft, I certify that any applicable
all provisions of Section 10 of RFC2026 [1]. patent or other IPR claims of which I am aware have been disclosed,
and any of which I become aware will be disclosed, in accordance with
RFC 3668.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet- other groups may also distribute working documents as
Drafts. Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
Abstract This Internet-Draft will expire on January 10, 2005.
Through the establishment of bi-directional tunnels between a mobile Copyright Notice
router and home agent, global connectivity can be extended to nodes
within a network in motion. However, the multiple levels of bi-
directional tunnels in nested mobile networks lead to undesirable
effects. This memo proposes using a new mobility header option
called the Access Router Option to allow a mobile router to inform
its home agent the home-address of the access router it is currently
attached to. From there, this memo lays out a mechanism that allows
mobile routers to securely achieve nested tunnels optimization.
Conventions used in this document Copyright (C) The Internet Society (2004). All Rights Reserved.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", Abstract
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC-2119 [2]. Network Mobility (NEMO) Basic Support provides global connectivity to
mobile network through the establishment of bi-directional tunnels
between a mobile router and home agent. However, this sub-optimal
routing, especially when nesting of mobile networks or Mobile IPv6
(MIPv6) host occurs within a mobile network. This memo proposes
using a new mobility header option called the Access Router Option to
allow a mobile node (host/router) to inform its home agent (HA) or
corespondent node (CN) the home-address (HoA) of the access router it
is currently attached to. From there, this memo lays out a mechanism
that allows mobile nodes to securely achieve nested tunnels
optimization, and even full route optimization.
Table of Contents Table of Contents
1. Introduction...................................................4 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1. Terms Used................................................5 1.1 Terms Used . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2. Assumptions...............................................5 1.2 Organization . . . . . . . . . . . . . . . . . . . . . . . 5
1.3. Organization..............................................6 1.3 Change Log . . . . . . . . . . . . . . . . . . . . . . . . 6
2. Overview of Operation..........................................6 2. Overview of Operation . . . . . . . . . . . . . . . . . . . . 7
2.1. Router Advertisement......................................7 2.1 Router Advertisement . . . . . . . . . . . . . . . . . . . 7
2.2. Binding Update from MR1 to HA1............................7 2.2 Binding Update from MR1 to HA1 . . . . . . . . . . . . . . 7
2.3. Binding Update from MR2 to HA1............................7 2.3 Binding Update from MR2 to HA1 . . . . . . . . . . . . . . 8
2.4. Forwarding Packets from HA1 to MR1........................8 2.4 Forwarding Packets from HA1 to MR1 . . . . . . . . . . . . 8
2.5. Forwarding Packets from MR1 to HA1........................8 2.5 Forwarding Packets from MR1 to HA1 . . . . . . . . . . . . 9
3. Changes to Existing Protocols..................................9 2.6 Scenario with a Local Fixed Router . . . . . . . . . . . . 9
3.1. Modifications to Mobile IPv6..............................9 2.7 Route Optimization with Mobile Network Hosts . . . . . . . 10
3.1.1. Addition of Access Router Option.....................9 3. Changes to Existing Protocols . . . . . . . . . . . . . . . . 12
3.1.2. Extending Type 2 Routing Header.....................10 3.1 Modifications to NEMO Basic Support / Mobile IPv6 . . . . 12
3.1.3. Extending Binding Acknowledgement Message...........12 3.1.1 Addition of Access Router Option . . . . . . . . . . . 12
3.1.4. Modification to Conceptual Data Structures..........12 3.1.2 Extending Type 2 Router Header . . . . . . . . . . . . 13
3.2. Modifications to IPv6 Neighborhood Discovery.............12 3.1.3 Modification to Conceptual Data Structures . . . . . . 14
3.2.1. Extension to Router Advertisement...................12 3.2 Modifications to IPv6 Neighbor Discovery . . . . . . . . . 15
3.2.2. Addition of a New Option in Router Advertisement....13 3.2.1 Addition of New Option in Router Advertisement . . . . 15
3.3. Extending the Router Alert Option........................14 3.3 Modifications to ICMPv6 . . . . . . . . . . . . . . . . . 16
4. Operation of NEMO-enabledMobile Router........................15 3.3.1 New Router Global Address ICMP Message . . . . . . . . 16
4.1. Operation when Mobile Router is at Home..................15 3.4 Extending the Router Alert Option . . . . . . . . . . . . 18
4.1.1. Sending Router Advertisement........................15 4. Operation of ARO-Enabled Mobile Routers . . . . . . . . . . . 20
4.1.2. Processing Outbound Packets.........................15 4.1 Operation When Mobile Router is At Home . . . . . . . . . 20
4.1.3. Processing Inbound Packets..........................16 4.1.1 Sending Router Advertisement . . . . . . . . . . . . . 20
4.2. Operation when Mobile Router is Away.....................16 4.1.2 Processing Outbound Packets . . . . . . . . . . . . . 20
4.2.1. Sending Router Advertisement........................16 4.1.3 Processing Inbound Packets . . . . . . . . . . . . . . 20
4.2.2. Receiving Router Advertisement......................16 4.2 Operation When Mobile Router is Away . . . . . . . . . . . 21
4.2.3. Sending Binding Updates.............................17 4.2.1 Sending Router Advertisement . . . . . . . . . . . . . 21
4.2.4. Processing Outbound Packets.........................17 4.2.2 Receiving Router Advertisement . . . . . . . . . . . . 21
4.2.5. Processing Inbound Packets..........................18 4.2.3 Sending Binding Updates . . . . . . . . . . . . . . . 21
4.3. IPSec Processing.........................................19 4.2.4 Processing Outbound Packets . . . . . . . . . . . . . 22
4.3.1. IPSec Processing on Inbound Packets.................19 4.2.5 Processing Inbound Packets . . . . . . . . . . . . . . 23
4.3.2. IPSec Processing on Outbound Packets................19 4.3 IPSec Processing . . . . . . . . . . . . . . . . . . . . . 24
5. Operation of NEMO-enabled Home Agent..........................20 4.3.1 IPSec Processing on Inbound Packets . . . . . . . . . 24
5.1. Sending Router Advertisement.............................20 4.3.2 IPSec Processing on Outbound Packets . . . . . . . . . 24
5.2. Receiving Binding Updates................................20 5. Operation of ARO-Enabled Home Agents . . . . . . . . . . . . . 25
5.3. Receiving Tunneled Packets from Away Nodes...............20 5.1 Receiving Binding Updates . . . . . . . . . . . . . . . . 25
5.4. Tunneling Packets to Away Nodes..........................21 5.2 Receiving Tunneled Packets from Away Nodes . . . . . . . . 25
5.5. IPSec Processing.........................................23 5.3 Tunneling Packets to Away Nodes . . . . . . . . . . . . . 26
5.5.1. IPSec Processing on Inbound Packets.................23 5.4 IPSec Processing . . . . . . . . . . . . . . . . . . . . . 28
5.5.2. IPSec Processing on Outbound Packets................23 5.4.1 IPSec Processing on Inbound Packets . . . . . . . . . 28
6. Considerations in the Use of Mutable Router Alert Option......24 5.4.2 IPSec Processing on Outbound Packets . . . . . . . . . 28
6.1. Router Alert Option......................................24 6. Operation of ARO-Enabled Mobile Network Nodes . . . . . . . . 29
6.2. Example where an Immutable RAO is Used...................24 6.1 Nested Tunnel Optimization with Home Agent . . . . . . . . 29
6.3. The Need for Mutable RAO.................................26 6.2 Receiving Router Advertisement . . . . . . . . . . . . . . 29
6.4. Sub-Optimality of NEMO-NFwd RAO..........................26 6.3 Sending Binding Updates . . . . . . . . . . . . . . . . . 29
6.5. Alternatives to the Mutable Router Alert Option..........27 6.4 Sending Data Packets . . . . . . . . . . . . . . . . . . . 30
6.5.1. IPv6 Flow Label.....................................27 6.5 Processing Inbound Packets . . . . . . . . . . . . . . . . 30
6.5.2. New Routing Header Type.............................27 6.6 IPSec Processing . . . . . . . . . . . . . . . . . . . . . 31
7. Changing Source Address by Intermediate Routers...............28 6.6.1 IPSec Processing on Inbound Packets . . . . . . . . . 31
7.1. Justifications...........................................28 6.6.2 IPSec Processing on Outbound Packets . . . . . . . . . 31
7.2. Alternatives.............................................28 7. Operation of ARO-Enabled Correspondent Node . . . . . . . . . 32
8. Security Considerations.......................................28 7.1 Receiving Binding Updates . . . . . . . . . . . . . . . . 32
8.1. Addition of Access Router Option.........................28 7.2 Receiving Route Optimized Packets from Mobile Nodes . . . 32
8.2. Router Global Address Option.............................30 7.3 Sending Route Optimized Packets to Mobile Nodes . . . . . 32
8.3. Accepting Tunnel with a Source Address not Directly Bound to 7.4 IPSec Processing . . . . . . . . . . . . . . . . . . . . . 33
the Home Address..............................................30 7.4.1 IPSec Processing on Inbound Packets . . . . . . . . . 33
8.4. Use of Extended Routing Header Type 2....................31 7.4.2 IPSec Processing on Outbound Packets . . . . . . . . . 33
8.5. Mutable Router Alert Option..............................32 8. Design Considerations . . . . . . . . . . . . . . . . . . . . 34
8.6. IPSec Processing.........................................33 8.1 Considerations in the Use of Mutable Router Alert
8.6.1. Processing of Extended Routing Header Type 2........33 Option . . . . . . . . . . . . . . . . . . . . . . . . . . 34
8.6.2. Processing of Home Address Destination Option.......33 8.1.1 Overview of Router Alert Option . . . . . . . . . . . 34
8.6.3. Processing of Mutable Router Alert Option...........34 8.1.2 Example where an Immutable RAO is Used . . . . . . . . 34
Acknowledgements.................................................34 8.1.3 The Need for Mutable RAO . . . . . . . . . . . . . . . 36
References.......................................................34 8.1.4 Alternatives to the Mutable Router Alert Option . . . 36
Author's Addresses...............................................36 8.2 Change of Source Address . . . . . . . . . . . . . . . . . 37
Appendices.......................................................36 8.2.1 Justifications . . . . . . . . . . . . . . . . . . . . 37
A. Route Optimization............................................36 8.2.2 Alternatives . . . . . . . . . . . . . . . . . . . . . 38
B. Other NEMO Solution Proposals.................................37 9. Security Considerations . . . . . . . . . . . . . . . . . . . 39
B.1. IPv6 Reverse Routing Header..............................37 9.1 Addition of Access Router Option . . . . . . . . . . . . . 39
B.2. Prefix Scope Binding Update (PSBU).......................38 9.2 Router Global Address Option . . . . . . . . . . . . . . . 40
B.3. Hierarchical Mobile IPv6 (HMIPv6)........................39 9.3 Accepting Tunnel with a Source Address not Directly
C. Examples......................................................39 Bound to the Home Address . . . . . . . . . . . . . . . . 40
C.1. Abbreviations............................................39 9.4 Use of Extended Routing Header Type 2 . . . . . . . . . . 41
C.2. MR1 attaches to MR2......................................40 9.5 Mutable Router Alert Option . . . . . . . . . . . . . . . 42
C.2.1. MR1 establishes binding to HA1.........................40 9.6 IPSec Processing . . . . . . . . . . . . . . . . . . . . . 43
C.2.2. LFN1 sends packet to CN1...............................42 9.6.1 Processing of Extended Routing Header Type 2 . . . . . 43
C.2.3. CN1 sends packet to LFN1...............................44 9.6.2 Processing of Home Address Destination Option . . . . 43
C.2.4. MR2 establishes binding to HA1.........................46 9.6.3 Processing of Mutable Router Alert Option . . . . . . 43
C.2.5. LFN1 sends packet to CN1...............................46 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 45
C.2.6. CN1 sends packet to LFN1...............................47 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 46
C.3. MR2 moves to new location................................48 A. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 46
C.3.1. MR2 sends binding update to HA1........................49 Intellectual Property and Copyright Statements . . . . . . . . 47
Additional References............................................49
1. Introduction 1. Introduction
The problem of Network Mobility Support (NEMO) is identified in This memo describes a proposed solution for provisioning route
various previous works [3,4,5,6]. In essence, the problem of network optimization in Network Mobility (NEMO). This solution is built on
in motion is to provide continuous Internet connectivity to nodes in top of Mobile IPv6 (MIPv6) [1] and NEMO Basic Support [2][3]. The
a network that moves as a whole. Nodes within the network that moves general problem of route optimization in NEMO is analyzed and
may not be aware of the network changing its point of attachment to summarized in [4].
the Internet. This differs from the traditional problem of mobility
support as addressed by Mobile IPv4 [7] in Internet Protocol version
4 (IPv4) [8] and Mobile IPv6 [9] in Internet Protocol version 6
(IPv6) [10].
This memo describes a proposed solution of NEMO that is based on The proposed solution described in this memo aims to solve the
extension of Mobile IPv6 and bi-directional tunneling between the following route optimizations problems:
mobile router controlling the mobile network and its home agent
[11][12]. As described in the NEMO charter, a mobile router, when it
is in a foreign domain, will set up a bi-directional tunnel with its
home agent. Here, the home agent will intercept packets destined for
the subnet controlled by the mobile router and tunnel the packet to
the mobile router's care-of-address, based on a previous Binding
Update (possibly Prefix-Scoped Binding Update [12]) sent by the
mobile router. In addition, the mobile router will encapsulate
outbound packets to its home agent through the bi-directional tunnel
for delivery.
This memo addresses the basic NEMO solution with some route o Nested Tunnel Optimization
optimization. It proposes various modifications to some aspects of
Mobile IPv6 so that problems of bi-directional tunneling that arose
when other mobile hosts or networks attached themselves to a mobile
network (thus forming what is called the Nested Mobile Networks) are
solved. More specifically, the solution described in this document
attempts to solve the problem of Nested Tunnels Optimization as
described in [13]. In [14], Thubert et. al. proposed the use of a
Reverse Type 2 Routing Header to solve the problem of Nested Tunnels
Optimization. In essence, the proposal requires the first mobile
router to attach a reverse routing header to the tunnel packet.
Subsequent mobile routers along the egress path of the packet would
not further encapsulate the packet. Instead, they will move the
source address of the incoming packet to the next available entry of
the reverse routing header, and put their own care-of-address in the
source address field. In this way, the home agent receiving this
packet can construct the chain of access routers the mobile router is
attached to. From there, a packet addressed to the mobile router (or
to any nodes attached to the ingress interface of the mobile router)
can be sent with an extended Type 2 Routing Header.
Security issues is one major problem of the reverse routing header This optimization problem is to eliminate the nesting of tunnels
solution, as admitted by Thubert et. al. in their proposal. It is for a nested mobile network. The proposed solution requires
the main objective of this memo to propose a relatively secure changes to the mobile router (MR) and home agent (HA)
solution to the nested tunnel optimization problem. The solution implementation so that no matter how many level of nesting a
proposed here defines a new option in mobility headers specified in mobile network has, there is only one tunnel between the innermost
[9]. This new option, called the Access Router Option, is used by MR and its HA.
the sender (i.e. the mobile router) to inform the recipient (e.g.
home agent) the global address of the access router the sender is
attached to. From the information provided in the Access Router
Option, the recipient can then construct the chain of access routers
the sender is attached to. This can be used to construct the
extended Type 2 Routing Header.
1.1. Terms Used o Nested Tunnel Optimization for MIPv6
This optimization problem is to eliminate the nesting of tunnels
for a MIPv6 host in a mobile network. The proposed solution
requires changes to the MR, MIPv6 host, and HA (for both the MR
and MIPv6 host) implementation so that for a visiting mobile host
in a mobile network, the only tunnel necessary is the one between
the MIPv6 host and its HA, without additional encapsulation at the
MR.
o MIPv6 over NEMO Optimization
This optimization problem is to allow the MIPv6 route optimization
to work between a MIPv6 host in a mobile network (i.e. visiting
mobile host) and its correspondent node (CN). The proposed
solution requires changes to the MR, MIPv6 host, and CN
implementation so that a visiting mobile host in a mobile network
can perform route optimization with a CN, without any tunneling
back to the home agents of either the MIPv6 host or MR.
Various different proposals have been submitted to the NEMO Working
Group to solve different aspects of the route optimization problem of
network mobility. Readers are encouraged to look at
<http://www.mobilenetworks.org/nemo/> for a complete list of Internet
Drafts that have been published.
1.1 Terms Used
It is assumed that readers are familiar with the NEMO terminology It is assumed that readers are familiar with the NEMO terminology
described in [15], and the terms described in [13]. In addition, a described in [5] and those defined in [4]. In addition, [4] also
detailed description of the problem of nested tunnels optimization is presents a detailed description of the problem of route optimization
given in Section 2 of [13]. It will not be duplicated in this memo. in NEMO.
Apart from the terms described in [15] and [13], we further define Apart from the terms described in [5] and [4], we further define the
the following terminology: following terminology:
Access Router (AR) Access Router (AR)
Any router that is the point of attachment to the Internet of Any router that is the point of attachment to the Internet of one
one or more visiting mobile node (VMN). We use the phrase or more visiting mobile node (VMN). We use the phrase "access
"access router of node X" to loosely refer to the router a router of node X" to loosely refer to the router a node X attaches
node X attaches to. An access router can be a mobile router to. An access router can be a MR.
(MR).
Proposed NEMO Solution, NEMO-enabled ARO-Solution, ARO-enabled
To aid our illustration, we refer to the solution proposed in To aid our illustration, we refer to the solution proposed in this
this memo as the "Proposed NEMO Solution". Any network nodes memo as the "ARO-Solution". Any network nodes that implements the
that implements the "Proposed NEMO Solution" is referred to as "ARO-Solution" is referred to as a "ARO-enabled" node.
a "NEMO-enabled" node.
1.2. Assumptions 1.2 Organization
This memo makes the following assumptions: In this memo, we first begin in Section 2 by giving a general
overview of the proposed ARO Solution in operation. This is followed
by a detailed description of the modifications to existing protocols
in Section 3. Following which, the operation of each entity: mobile
router, home agent, mobile network node, and correspondent node that
support the ARO Solution are detailed respectively from Section 4
through Section 7. In Section 8, we list some of the design
considerations when formulating the ARO Solution. Finally, security
considerations in discussed in Section 9.
(1) A mobile router has only one active egress interface, and thus 1.3 Change Log
only one home-address and primary care-of-address at any point
in time.
(2) All mobile routers in a NEMO are assumed to be NEMO-enabled. o Changes from version -00 to -01
Local Fixed Routers (LFR) are assumed to be not NEMO-enabled.
(3) All home agents of mobile routers are assumed to be NEMO-enabled. * Extended solution to be able to optimized over local fixed
router with inclusion of NEMO-BU RAO
The first assumption precludes multi-homed mobile networks. We are * Inclusion of NEMO-BU RAO and a new ICMPv6 message
currently analyzing the proposed solution to understand its
applicability to multi-homed NEMO.
1.3. Organization * Extended solution for optimization between MR and CN
In the remaining portions of this memo, we will first describe an * Extended solution for optimization between VMN and CN/HA
overview of the operation in Section 2. Following which, Section 3
will list the modifications to existing protocols this memo proposes
in detail. The operations of mobile routers and home agents are
described separately in Sections 4 and 5. Section 6 discusses some
design considerations leading to the proposal of a mutable router
alert option, and Section 7 argues the case of allowing intermediate
routers to change the source address of a packet. Finally, Section 8
presents the security considerations.
Three appendices are attached at the end of this document. Appendix * Included operations of CN and VMN
A discusses the possibility of extending the proposal described in
this memo to achieve full router optimization. Appendix B compares
the proposal described in this memo to other proposed solutions for
NEMO. Appendix C describes an example to illustrate how the solution
proposed in this memo works.
2. Overview of Operation 2. Overview of Operation
This section gives an overview of the operation of the proposed This section gives an overview of the operation of the proposed
solution. We use the scenario illustrated in Figure 1 below as an solution. We use the scenario illustrated in Figure 1 below as an
example to describe the operation of the proposed solution. example to describe the operation of the ARO-solution.
HA1 HA1
| |
+---------|---------+ +---------|---------+
| | | |
LFN1---MR1---MR2---- Internet ----CN1 LFN1---MR1---MR2---- Internet ----CN1
| | | |
+---------|---------+ +---------|---------+
| |
HA2 HA2
Figure 1: Example Scenario Figure 1: Example Scenario
In Figure 1, LFN1 is a local fixed node attached to the ingress In Figure 1, LFN1 is a local fixed node attached to the ingress
interface of the visiting mobile router (VMR) MR1. MR1 is itself interface of the visiting mobile router (VMR) MR1. MR1 is itself
attached to the ingress interface of another mobile router, MR2. HA1 attached to the ingress interface of another mobile router, MR2. HA1
is the home agent of MR1, and HA2 is the home agent of MR2. LFN1 is is the home agent of MR1, and HA2 is the home agent of MR2. LFN1 is
communicating with a correspondent node CN1. communicating with a correspondent node CN1.
2.1. Router Advertisement 2.1 Router Advertisement
When MR1 first obtains a Router Advertisement (RA) from MR2, it When MR1 first obtains a Router Advertisement (RA) from MR2, it
checks if MR2 supports the Proposed NEMO Solution. This is checks if MR2 supports the ARO-Solution. This is determined by an
determined by a bit flag in the RA message. In the RA message, NEMO- additional option (known as Router Global Address Option, or RGAO)
enabled routers should include an option to advertise their home- that advertises the home-address (HoA) of MR2.
address as well.
2.2. Binding Update from MR1 to HA1 2.2 Binding Update from MR1 to HA1
After MR1 obtains a care-of-address (CoA), it sends Binding Update After MR1 obtains a care-of-address (CoA), it sends Binding Update
(BU) to its home agent, HA1. The BU message contains an important (BU) to its home agent, HA1. The BU message, beside having the
prefix informations as detailed in [2], also contains an important
extension, known as the "Access Router Option" (ARO). This ARO extension, known as the "Access Router Option" (ARO). This ARO
specifies the global address of MR2, thus informing HA1 the access specifies the global address of MR2, thus informing HA1 the access
router MR1 is currently attached to. In this case, since MR2 is router MR1 is currently attached to. In this case, since MR2 is
itself a mobile router, the global address is the home-address (HoA) itself a mobile router, the global address is the HoA of MR2.
of MR2.
HA1 records this together with the binding update entry in its HA1 records this together with the binding update in the
binding cache. When returning the Binding Acknowledgement (BA), HA1 corresponding binding cache entry (BCE). When returning the Binding
can then made use of the extended Type 2 Routing Header (RH2) to Acknowledgment (BA), HA1 can then made use of the extended Type 2
forward the BA message to MR1 via the HoA of MR2. Here, the RH2 as Routing Header (RH2) to forward the BA message to MR1 via the HoA of
defined by Mobile IPv6 specification [9] is extended so that it can MR2. Here, the RH2 as defined by Mobile IPv6 specification [1] is
store more than one address. extended so that it can store more than one address. In addition,
HA1 should insert the same ARO in BA message to indicate that the BU
with ARO is accepted.
Since the BA message is addressed to the HoA of MR2, the BA message Since the BA message is addressed to the HoA of MR2, the BA message
will be intercepted by HA2. Here, we assume that the binding cache will be intercepted by HA2. Here, we assume that the BCE of HA2
entry of HA2 contains a binding of the current CoA and HoA of MR2. contains a binding of the current CoA and HoA of MR2. Thus, HA2 will
Thus, HA2 will tunnel the packet to the CoA of MR2. When MR2 tunnel the packet to the CoA of MR2. When MR2 receives and
receives and decapsulates the BA message, it notices that there is an decapsulates the BA message, it notices that there is an extended
extended RH2. It proceeds to swap the destination address with the RH2. It proceeds to swap the destination address with the
appropriate entry in the RH2 (which should be the CoA of MR1), and appropriate entry in the RH2 (which should be the CoA of MR1), and
forward it to MR1. MR1 receives the packet, verifies that it is the forward it to MR1. MR1 receives the packet, verifies that it is the
final destination of the packet, and consumes the BA message. final destination of the packet, and consumes the BA message.
2.3. Binding Update from MR2 to HA1 2.3 Binding Update from MR2 to HA1
From the processing of the extended RH2 as described previously, MR2 From the processing of the extended RH2 as described previously, MR2
can deduce the following two facts: can deduce the following two facts:
(1) the sender (i.e. HA1) does not have a binding cache entry of 1. the sender (i.e. HA1) does not have a BCE of MR2's current CoA,
MR2's current CoA, since the received packet is encapsulated in since the received packet is encapsulated in a tunnel from HA2,
a tunnel from HA2, and and
(2) HA1 is NEMO-enabled, since an extended RH2 is used. 2. HA1 is ARO-enabled, since an extended RH2 is used.
Having established these, MR2 may then send a BU to HA1. In this Having established these, MR2 may then send a BU to HA1. In this
case, HA1 is treated as a correspondent node from the perspective of case, HA1 is treated as a correspondent node from the perspective of
MR2. Thus, the Return Routability (RR) Test specified in [9] must be MR2. Thus, the Return Routability (RR) procedure specified in [1]
carried out before sending the BU message. Once the binding update must be carried out before sending the BU message. Note also that
is successful, MR2 should add the host address of HA1 to a locally since HA1 is treated as a correspondent node, MR2 should not insert
maintained Binding Update List. This list contains a list of hosts any prefix information (i.e. Mobile Network Prefix Option [2]) in
that have an active binding cache entry of MR2's current CoA. the BU message. Once the binding update is successful, MR2 should
add the host address of HA1 to a locally maintained Binding Update
List. This list contains a list of hosts that have an active binding
cache entry of MR2's current CoA.
Note that if the access router (fixed or mobile) of MR2 is NEMO- Note that if the access router (fixed or mobile) of MR2 is ARO-
enabled, MR2 should add an ARO in the BU it sent to HA1 to inform HA1 enabled, MR2 should add an ARO in the BU it sent to HA1 to inform HA1
the global address of the access router MR2 is currently attached to. the global address of the access router MR2 is currently attached to.
To simply our description, we assume that this is not the case. To simply our description, we assume that this is not the case.
2.4. Forwarding Packets from HA1 to MR1 2.4 Forwarding Packets from HA1 to MR1
After receiving the BU message from MR2, the bi-directional tunnel After receiving the BU message from MR2, the bi-directional tunnel
between HA1 and MR1 need not go through the tunnel between HA2 and between HA1 and MR1 need not go through the tunnel between HA2 and
MR2. Instead, tunnel packets from HA1 to MR1 can be sent directly to MR2. Instead, tunnel packets from HA1 to MR1 can be sent directly to
the CoA of MR2 with an attached extended RH2. the CoA of MR2 with an attached extended RH2.
As an illustration, suppose CN1 now sends a packet to LFN1. The As an illustration, suppose CN1 now sends a packet to LFN1. The
packet will be intercepted by HA1. HA1 checks its routing table and packet will be intercepted by HA1. HA1 checks its routing table and
notices that the packet should be forwarded to MR1. However, a check notices that the packet should be forwarded to MR1. However, a check
of its binding cache reveals that MR1 is away. Hence, HA1 needs to of its binding cache reveals that MR1 is away. Hence, HA1 needs to
tunnel the packet to the current CoA of MR1. Furthermore, HA1 knows tunnel the packet to the current CoA of MR1. Furthermore, HA1 knows
that MR1 is currently attached to MR2, and HA1 has a binding cache that MR1 is currently attached to MR2, and HA1 has a BCE of MR2.
entry of MR2. Thus, the tunnel should be configured, with an Thus, the tunnel should be configured, with an extended RH2, such
extended RH2, such that it reaches CoA of MR1 via CoA MR2. In this that it reaches CoA of MR1 via CoA MR2. In this case, the
case, the destination address of the outer packet is set to the CoA destination address of the outer packet is set to the CoA of MR2, and
of MR2, and the entries in the RH2 are the CoA and HoA of MR1, in the entries in the RH2 are the CoA and HoA of MR1, in that order.
that order. When MR2 receives such a packet, it updates the RH2 When MR2 receives such a packet, it updates the RH2 (i.e. swap the
(i.e. swap the destination address with the next entry in the RH2), destination address with the next entry in the RH2), and forward the
and forward the packet to the new destination (i.e. CoA of MR1). MR1 packet to the new destination (i.e. CoA of MR1). MR1 upon receiving
upon receiving the packet will verify that it is the final the packet will verify that it is the final destination of the outer
destination of the outer packet, and decapsulates the packet. The packet, and decapsulates the packet. The inner packet is addressed
inner packet is addressed to LFN1, a valid address in the subnet of to LFN1, a valid address in the subnet of MR1. Hence, MR1 forwards
MR1. Hence, MR1 forwards the packet to its appropriate ingress the packet to its appropriate ingress interface.
interface.
2.5. Forwarding Packets from MR1 to HA1 2.5 Forwarding Packets from MR1 to HA1
When LFN1 sends a packet to CN1, MR1 will encapsulate the packet to When LFN1 sends a packet to CN1, MR1 will encapsulate the packet to
be sent through the reverse tunnel with its home agent HA1. The be sent through the reverse tunnel with its home agent HA1. The
external packet is appended with a mutable Router Alert Option (RAO) outer packet is appended with a mutable Router Alert Option (RAO)
[16], in addition to the Home Address destination Option (HAO). This [6], in addition to the Home Address destination Option (HAO). This
RAO requests upstream routers that support the Proposed NEMO Solution RAO requests upstream routers that are ARO-enabled to forward packet
to forward packet directly to the destination. When MR2 receives directly to the destination. When MR2 receives this packet and
this packet and noticed the RAO, it checks if it has a binding update noticed the RAO, it checks if it has a binding update with the
with the specified destination (from its Binding Update List). If specified destination (from its Binding Update List). If so, it
so, it changes the source address to its CoA and sends the packet to changes the source address to its CoA and sends the packet to the
the destination. Else, the packet is tunneled to HA2, i.e. normal destination. Else, the packet is tunneled to HA2, i.e. normal
reverse tunneling between MR2 and HA2. For the latter case, MR2 reverse tunneling between MR2 and HA2. For the latter case, MR2
might want to send a BU message to the destination (i.e. HA1) so that might want to send a BU message to the destination (i.e. HA1) so
subsequent packets can be forwarded directly to the destination that subsequent packets can be forwarded directly to the destination
(without going through an additional level of encapsulation). (without going through an additional level of encapsulation).
When HA1 receives an encapsulated packet, it verifies that the outer When HA1 receives an encapsulated packet, it verifies that the outer
packet originated from authentic source. This is done by checking packet originated from authentic source. This is done by checking
that the originator (that is specified by the HAO) has a binding that the originator (that is specified by the HAO) has a BCE that
entry that indicates the mobile router identified by the source indicates the mobile router identified by the source address is a
address is a valid access router of the originator. HA1 then valid access router of the originator. HA1 then overwrites the
overwrites the source address with the HoA specified in HAO and source address with the HoA specified in HAO and processes it as per
processes it as per Mobile IPv6 specifications [9]. MIPv6 specifications [1].
A detail example showing the sequence of message exchange can be Section 4 describes in greater detail the operation of an ARO-enabled
found in Appendix C. mobile router, and Section 5 describes the operation of an
ARO-enabled home agent.
2.6 Scenario with a Local Fixed Router
The ARO-Solution is designed such that it will work even across a non
ARO-enabled router, such as in the case where there is a local fixed
router in between two ARO-enabled MR. Figure 2 show the scenario
with a non ARO-enabled router LFR1 in between MR1 and MR2. Again,
HA1 and HA2 are the home-agents of MR1 and MR2 respectively. LFR1
simply route packets between its ingress and egress interfaces, and
does not do any reverse tunneling.
HA1
|
+---------|---------+
| |
LFN1---MR1---LFR1---MR2---- Internet ----CN1
| |
+---------|---------+
|
HA2
Figure 2: Example Scenario with a LFR
The problem here is that although MR2 advertises its HoA in the RA
messages it broadcast, LFR1 being non ARO-enabled will ignore such
information. Also, MR1 will not see any RGAO in the RA messages
broadcasted by LFR1. Thus MR1 will not add in any RAO in the tunnel
packet to HA1, and hence MR2 will not attempt to send BU to HA1.
This will result in all packets sent between LFN1 and CN1 to go
through two levels of encapsulation.
To overcome this problem, when an ARO-enabled mobile router (eg MR1)
does not detect its access router to be ARO-enabled, it should try to
determine if there is any ARO-enabled router in its upstream. This
is done by adding a new RAO in the initial BU message it sent to its
HA. Any upstream ARO-enabled router (eg MR2) will detect this RAO,
and respond to MR1 with an ICMP message conveying its global address.
This way, MR1 can immediately send a new BU with the global address
of the MR2 in the ARO. This imply that for the purpose of route
optimization, MR1 treats MR2 as its access router.
2.7 Route Optimization with Mobile Network Hosts
The same mechanism can be extended to be used between a MIPv6 mobile
host and its home agent or correspondent node (CN). Here, the MIPv6
host needs to extract the RGAO from the RA messages it receives from
its access router, and insert the ARO in the BU messages it sent to
its HA or CN. After a successful binding, data packets sent from the
mobile host can be prepend with a RAO to request upstream routers to
attempt to route packets directly to the destination. The RAO can be
inserted when tunneling a packet back to its HA, or inserted when the
packet is sent directly to the CN using MIPv6 route optimization
mechanism. In this way, a visiting mobile host (VMH) can perform
route optimization over NEMO.
When attempting to use ARO-Solution for full route optimization with
a CN, the mobile host must first determine if the CN is ARO-enabled.
One possible way of such capability detection is to send a BU with
the ARO, and check if the BA returned contains the same ARO. An
ARO-enabled CN would return a BA with the same ARO found in a BU
message.
Section 6 describes in greater detail the operation of an ARO-enabled
mobile node, and Section 7 describes the operation of an ARO-enabled
correspondent node.
3. Changes to Existing Protocols 3. Changes to Existing Protocols
3.1. Modifications to Mobile IPv6 3.1 Modifications to NEMO Basic Support / Mobile IPv6
3.1.1. Addition of Access Router Option 3.1.1 Addition of Access Router Option
The Access Router Option (ARO) is a new option for Mobility Header The Access Router Option (ARO) is a new option for Mobility Header
defined in Mobile IPv6. Its format is shown below. defined in Mobile IPv6 and NEMO Basic Support. Its format is shown
below.
0 1 2 3 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 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 = TBA | Length = 16 | | Type = TBA | Length = 16 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
+ + + +
| | | |
+ Access Router Address + + Access Router Address +
| | | |
+ + + +
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type Figure 3: Access Router Option
8-bit identifier of the Mobility Header option type. The value Type
that identifies an Access Router Option is yet to be assigned.
Length 8-bit identifier of the Mobility Header option type. The value
that identifies an Access Router Option is yet to be assigned.
8-bit unsigned integer that specifies the length of the Length
mobility option in octets, excluding Type and Length fields.
Always 16 for the Access Router Option.
Access Router Address 8-bit unsigned integer that specifies the length of the mobility
option in octets, excluding Type and Length fields. Always 16 for
the Access Router Option.
Global address of the access router that the sender is Access Router Address
currently attached to.
The Access Router Option is only valid in a Binding Update message. Global address of the access router that the sender is currently
The purpose of this option is to inform the recipient that the sender attached to.
is currently attached to the specified access router. Using this
The Access Router Option is only valid in a BU and BA message. The
purpose of this option is to inform the recipient that the sender is
currently attached to the specified access router. Using this
information, recipient can route packets to the sender via the access information, recipient can route packets to the sender via the access
router by making use of extended Type 2 Routing Header. Section 8.1 router by making use of extended Type 2 Routing Header. Section 9.1
addresses some security considerations on the use of the Access addresses some security considerations on the use of the Access
Router Option. Router Option.
3.1.2. Extending Type 2 Routing Header 3.1.2 Extending Type 2 Router Header
The Type 2 Routing Header (RH2) is now extended such that it can The Type 2 Routing Header (RH2) is now extended such that it can
contain more than one entry. This extension makes it more similar to contain more than one entry. This extension makes it more similar to
the type 0 routing header. The format of the modified Type 2 Routing the type 0 routing header. The format of the modified Type 2 Routing
Header is shown below. Header is shown below.
0 1 2 3 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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Next Header | Hdr Ext Len | Routing Type=2| Segments Left | | Next Header | Hdr Ext Len | Routing Type=2| Segments Left |
skipping to change at page 11, line 4 skipping to change at page 13, line 42
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
+ + + +
| | | |
+ Address [n] + + Address [n] +
| | | |
+ + + +
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Next Header
8-bit selector. Identifies the type of header immediately Figure 4: Extended Type 2 Routing Header
following the Routing Header. Uses the same value as the IPv6
Next Header field [10].
Hdr Ext Len Next Header
8-bit unsigned integer. Length of the routing header in 8- 8-bit selector. Identifies the type of header immediately
octet units, not including the first 8 octets. This value is following the Routing Header. Uses the same value as the IPv6
always equal to twice the number of addresses in the Address Next Header field [7].
vector.
Routing Type Hdr Ext Len
8-bit unsigned integer that contains the value 2. 8-bit unsigned integer. Length of the routing header in 8- octet
units, not including the first 8 octets. This value is always
equal to twice the number of addresses in the Address vector.
Segments Left Routing Type
8-bit unsigned integer. Number of route segments remaining; 8-bit unsigned integer that contains the value 2.
i.e. number of explicitly listed intermediate nodes still to be
visited before reaching its final destination.
Address[1..n] Segments Left
Vector of 128-bit addresses, numbered 1 to n. 8-bit unsigned integer. Number of route segments remaining; i.e.
number of explicitly listed intermediate nodes still to be visited
before reaching its final destination.
Address[1..n]
Vector of 128-bit addresses, numbered 1 to n.
This routing header is used by the sender to direct the packet to the This routing header is used by the sender to direct the packet to the
mobile node via a sequence of routers. The addresses of the sequence mobile node via a sequence of routers. The addresses of the sequence
of routers are placed in the order of visit to the Address[1..n] of routers are placed in the order of visit to the Address[1..n]
vector. The last address, Address[n], must be the HoA of the vector. The last address, Address[n], must be the HoA of the
intended recipient. Note also that Hdr Ext Len field must always intended recipient. Note also that Hdr Ext Len field must always
contain an even number. contain an even number.
Each mobile router that receives a packet with the Type 2 Routing Each MR that receives a packet with the Type 2 Routing Header and the
Header and the destination field equals to its address must checked destination field equals to its address must checked if Segments Left
if Segments Left field is equal to 1. If yes, the last address in field is equal to 1. If yes, the last address in the Address[]
the Address[] vector must be its HoA. Else the packet is discarded. vector must be its HoA. Else the packet is discarded. If
If Segments-Left is non-zero, it decrements the Segment-Left field, Segments-Left is non-zero, it decrements the Segment-Left field, and
and swaps the destination field with the next address in the swaps the destination field with the next address in the Address[]
Address[] vector. To work out which address to swap, the mobile vector. To work out which address to swap, the MR can divide the Hdr
router can divide the Hdr Ext Len field by 2 (which gives the number Ext Len field by 2 (which gives the number of entries in Address[]
of entries in Address[] vector), and subtract Segment Left from it. vector), and subtract Segment Left from it.
The extended Type 2 Routing Header is a mutable but predictable IPv6 The extended Type 2 Routing Header is a mutable but predictable IPv6
header. Thus IP Security (IPSec) [17] protocols such as header. Thus IP Security (IPSec) [8] protocols such as
Authentication Header (AH) [18] and Encapsulating Security Payload Authentication Header (AH) [9] and Encapsulating Security Payload
(ESP) [19] can be used with the routing header. Security (ESP) [10] can be used with the routing header. Security
considerations on the extension of Type 2 Routing Header are considerations on the extension of Type 2 Routing Header are
presented in Section 8.4. presented in Section 9.4.
3.1.3. Extending Binding Acknowledgement Message
The Status field of the Binding Acknowledgement (BA) message is
extended to include an addition status code of value to be assigned.
The assigned value (hereafter referred to as ARO-OK) must be less
than 128 and non-zero, to indicate that the Binding Update and Access
Router Option is accepted. All nodes that support the Proposed NEMO
Solution must use this new success Status code if the corresponding
Binding Update message contains an Access Router Option. All nodes
that do not understand the Access Router Option should continue to
use the 0 Status code. Recipient of the Binding Acknowledgement can
then determine from the Status code if the Access Router Option is
accepted.
3.1.4. Modification to Conceptual Data Structures
In Mobile IPv6 [9], the Binding Cache data structure is defined to
contain entries of home-address to care-of-address bindings. This
Proposed NEMO Solution extends the each Binding Cache entry to
contain an additional field known as the Access Router Address. This
field is used to store the global address of the access router
specified in the Access Router Option in a Binding Update message.
When updating the Binding Cache entry, the Access Router Address
field is overwritten with the address specified in the Access Router
Option. If the Access Router Option is absent, the Access Router
Address field should be marked to be invalid.
3.2. Modifications to IPv6 Neighborhood Discovery 3.1.3 Modification to Conceptual Data Structures
3.2.1. Extension to Router Advertisement In Mobile IPv6 [1], the Binding Cache data structure is defined to
contain entries of HoA to CoA bindings. NEMO Basic Support [2]
suggested the extension of each BCE to contain information on
prefixes injected by mobile routers. This ARO-Solution further
extends each BCE to contain an additional field known as the Access
Router Address. This field is used to store the global address of
the access router specified in the Access Router Option in a Binding
Update message.
A single bit flag is added to the Router Advertisement specified in When updating the BCE, the Access Router Address field is overwritten
IPv6 Neighbor Discovery [20] so that a sender can advertise to the with the address specified in the Access Router Option. If the
recipients it is a router capable of supporting the Proposed NEMO Access Router Option is absent, the Access Router Address field
Solution. Here an N bit is introduced, thus reducing the reserved should be marked to be invalid.
bits to 4. When N=0, the router sending this advertisement is not
NEMO capable, and when N=1, the router sending this advertisement is
NEMO capable.
0 1 2 3 3.2 Modifications to IPv6 Neighbor Discovery
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|H|N|Reservd| Router Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reachable Time |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Retrans Timer |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options ...
+-+-+-+-+-+-+-+-+-+-+-+-
3.2.2. Addition of a New Option in Router Advertisement 3.2.1 Addition of New Option in Router Advertisement
A new option, Router Global Address Option (RGAO) is defined here. A new option, Router Global Address Option (RGAO) is defined here.
This new option can only appear in a Router Advertisement message, This new option can only appear in a Router Advertisement message,
its format is defined below. its format is defined below.
0 1 2 3 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 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 | | Type | Length | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at page 13, line 41 skipping to change at page 15, line 40
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
+ + + +
| | | |
+ Router Global Address + + Router Global Address +
| | | |
+ + + +
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type Figure 5: Router Global Address Option
8-bit identifier to identify the type of the option. The value Type
used to identify the Router Global Address Option is yet to be
assigned.
Length 8-bit identifier to identify the type of the option. The value
used to identify the Router Global Address Option is yet to be
assigned.
8-bit unsigned integer that gives the length of the option in Length
8-octet units. Always equals to 3 for the Router Home Address
Option.
Router Global Address 8-bit unsigned integer that gives the length of the option in
8-octet units. Always equals to 3 for the Router Global Address
Option.
128-bit address. Contains the global address of the egress Router Global Address
interface of the sender. Should the sender be a mobile router,
this global address is the home-address of the sender. 128-bit address. Contains the global address of the egress
interface of the sender. Should the sender be a mobile router,
this global address is the home-address of the sender.
This option allows the sender to advertise its egress interface This option allows the sender to advertise its egress interface
global address to nodes attached to its ingress interface(s). This global address to nodes attached to its ingress interface(s). This
allows mobile nodes to include an Access Router Option when sending allows mobile nodes to include an Access Router Option when sending
Binding Updates. In addition, it is speculated that the global BU. Inclusion of this option in a RA message would imply the sender
address of the sender may prove to be useful for fast handover is ARO-enabled.
operations.
Security considerations for the Router Global Address Option are Security considerations for the Router Global Address Option are
listed in Section 8.2. According to Section 4.2 of RFC2461[20], listed in Section 9.2. According to Section 4.2 of IPv6 Neighbor
receivers that do not understand this new option MUST silently ignore Discovery [11], receivers that do not understand this new option MUST
the option and continue processing the Router Advertisement message. silently ignore the option and continue processing the Router
Advertisement message.
3.3. Extending the Router Alert Option 3.3 Modifications to ICMPv6
The router alert option [16] has the following format: 3.3.1 New Router Global Address ICMP Message
A new ICMP message to convey the global address of a mobile router is
needed in the ARO-Solution. This message, called the Router Global
Address Message, has a format as defined 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 | Code | CheckSum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Router Global Address +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 6: Router Global Address ICMP Message
Type
8-bit identifier to identify the type of the ICMP Message. The
value used to identify the Router Global Address Message is yet to
be assigned.
Code
8-bit unsigned integer that gives the finer granularity on message
type differentiation. Set to 0 for the Router Global Address
Message.
CheckSum
8-bit ICMP Checksum (see [12]
Router Global Address
128-bit address. Contains the global address of the egress
interface of the sender. Should the sender be a mobile router,
this global address is the home-address of the sender.
This message is sent when a ARO-enabled router intercepts a packet
from its ingress interface containing a NEMO-BU RAO. This occurs
when a nested MR does not know its access router's global address,
and is attempting to learn its access router's global address. The
ARO-enabled router intercepting such a packet would send the Router
Global Address ICMP message to the source, revealing its global
address (or home-address if the ARO-enabled router is also a mobile
router).
3.4 Extending the Router Alert Option
The router alert option [6] has the following format:
0 1 2 3 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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0 0 0|0 0 1 0 1|0 0 0 0 0 0 1 0| Value (2 octets) | |0 0 0|0 0 1 0 1|0 0 0 0 0 0 1 0| Value (2 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 7: Router Alert Option
The first three bits of the first byte are zero and the value 5 in The first three bits of the first byte are zero and the value 5 in
the remaining five bits is the Hop-by-Hop Option Type number. By the remaining five bits is the Hop-by-Hop Option Type number. By
zeroing all three, this specification requires that nodes not zeroing all three, this specification requires that nodes not
recognizing this option type should skip over this option and recognizing this option type should skip over this option and
continue processing the header, and that the option must not change continue processing the header, and that the option must not change
en route. en route.
In this memo, we require the value field to be mutable en-route. In this memo, we require the value field to be mutable en-route.
Specifically, the mobile router that is not attached to a NEMO- Specifically, the router that is not attached to a ARO- enabled
enabled access router will change the value code. Thus, this memo access router will change the value code. Thus, this memo propose a
propose a mutable Router Alert Option, of the following format: mutable Router Alert Option, of the following format:
0 1 2 3 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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0 0 1|0 0 1 0 1|0 0 0 0 0 0 1 0| Value (2 octets) | |0 0 1|0 0 1 0 1|0 0 0 0 0 0 1 0| Value (2 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 8: Mutable Router Alert Option
The first two bits of the first byte are zero, the third bit is 1 and The first two bits of the first byte are zero, the third bit is 1 and
the value 5 in the remaining five bits. Thus the Hop-by-Hop Option the value 5 in the remaining five bits. Thus the Hop-by-Hop Option
Type number is 0x25 (hexidecimal). By zeroing the first two bits, Type number is 0x25 (hexadecimal). By zeroing the first two bits,
this memo requires that nodes not recognizing this option type should this memo requires that nodes not recognizing this option type should
skip over this option and continue processing the header. skip over this option and continue processing the header.
The Value code in the mutable Router Alert Option is extended to The Value code in the mutable Router Alert Option is extended to
contain two extra values to be assigned. For purpose of description, contain three extra values to be assigned. For purpose of
we call these two values the NEMO-Forward and NEMO-No-Forward. description, we call these values the NEMO-Forward, NEMO-No-Forward,
Hereafter, mutable Router Alert Option with Value code equal to NEMO- and NEMO-BU. Hereafter, mutable Router Alert Option with Value code
Forward will be known as a NEMO-Forward Router Alert Option, or equal to NEMO- Forward will be known as a NEMO-Forward Router Alert
simply, NEMO-Fwd RAO, and mutable Router Alert Option with Value code Option, or simply, NEMO-Fwd RAO; mutable Router Alert Option with
equal to NEMO-No-Forward will be known as a NEMO-No-Forward Router Value code equal to NEMO-No-Forward will be known as a
Alert Option, or simply, NEMO-NFwd RAO. NEMO-No-Forward Router Alert Option, or simply, NEMO-NoFwd RAO; and
mutable Router Alert Option with Value code equal to NEMO-BU will be
known as a NEMO-BU Router Alert Option, or simply, NEMO-BU RAO.
Intermediate routers that support the Proposed NEMO Solution should Intermediate routers that support the ARO-Solution should recognize
recognize the NEMO-Fwd RAO and attempt to forward the packet directly the NEMO-Fwd RAO and attempt to forward the packet directly to the
to the destination without using a reverse tunnel. If necessary, the destination without using a reverse tunnel. If necessary, the router
router can change the source address of the packet to the current can change the source address of the packet to the current CoA of the
care-of-address of the router in order to pass through ingress router in order to pass through ingress filters of subsequent
filters of subsequent routers/gateways. routers/gateways.
Intermediate routers that support the Proposed NEMO Solution should Intermediate routers that support the ARO-Solution should recognize
recognize the NEMO-No-Fwd RAO, and behave as if the RAO is not the NEMO-NoFwd RAO, and behave as if the RAO is not present.
present. Specifically, the router MUST NOT change the source address Specifically, the router MUST NOT change the source address of the
of the packet. packet.
Section 6 discusses some of the design considerations that lead to Intermediate routers that support the ARO-Solution should recognize
the NEMO-BU RAO, and realize that the sender (indicated by the source
address), is attempting to discover the global address of its access
router. The ARO-enabled intermediate router should then change the
NEMO-BU RAO to a NEMO-NoFwd RAO before forwarding the packet. In
addition, it should send a Router Global Address ICMP message (see
Section 3.3.1) to the source of the packet containing the NEMO-BU
RAO. This allows the source to learn the HoA of the MR.
Section 8.1 discusses some of the design considerations that lead to
the use of a mutable Router Alert Option. the use of a mutable Router Alert Option.
4. Operation of NEMO-enabledMobile Router 4. Operation of ARO-Enabled Mobile Routers
4.1. Operation when Mobile Router is at Home 4.1 Operation When Mobile Router is At Home
This section describes the operation of a mobile router when it is This section describes the operation of a MR when it is attached to
attached to its home link. its home link.
4.1.1. Sending Router Advertisement 4.1.1 Sending Router Advertisement
When the mobile router sends Router Advertisement, the mobile router When the MR sends RA message, it should advertise its HoA by adding a
should set N-flag to 1, indicating to recipients it is a NEMO-enabled RGAO in the RA message. This also indicates to the recipients that
router. In addition, the mobile router should advertise its home- the MR is ARO-enabled.
address by adding a Router Global Address Option in the Router
Advertisement message.
4.1.2. Processing Outbound Packets 4.1.2 Processing Outbound Packets
When the mobile router intercepts an outbound packet from its ingress When the MR intercepts an outbound packet from its ingress interface,
interface, it first checks if the packet contains a NEMO-Fwd RAO. it first checks if the packet contains a NEMO-Fwd RAO or a NEMO-BU
Packets that do not contain a NEMO-Fwd RAO, or packets that contain a RAO. Packets that do not contain a NEMO-Fwd RAO, or packets that
NEMO-NFwd RAO are simply forwarded to its egress interface. For contain a NEMO-NoFwd RAO are simply forwarded to its egress
packet that contains a NEMO-Fwd RAO, since the mobile router is at interface. For packet that contains a NEMO-Fwd RAO, since the MR is
home, it changes the NEMO-Fwd RAO to a NEMO-NFwd RAO and forwards the at home, it changes the NEMO-Fwd RAO to a NEMO-NoFwd RAO and forwards
packet to its egress interface. the packet to its egress interface.
4.1.3. Processing Inbound Packets If the packet contains a NEMO-BU RAO, it implies that the originator
of that packet is an ARO-enabled node trying to learn if there is an
ARO-enabled access router in its upstream. The MR should send to
this originator a Router Global Address ICMP message (see Section
3.3.1). In addition, the MR should change the NEMO-BU RAO to a
NEMO-NoFwd RAO, and forward the packet to its egress interface.
When the mobile router is at home, it functions like a normal router. 4.1.3 Processing Inbound Packets
Thus it will consume any packet that is addressed to its home-
address, forward any packet with a destination address that is a
valid address in one of its ingress interface (e.g. the destination
address must contain the same network prefix as one of the ingress
interface), and discard any packet with an invalid destination
address.
When the packet is addressed to the mobile router's home-address, the When the MR is at home, it functions like a normal router. Thus it
packet may contain an extended RH2. The Segments Left field of RH2 will consume any packet that is addressed to its HoA, forward any
is checked. If Segments Left field is 0, the packet is consumed. If packet with a destination address that is a valid address in one of
Segments Left field is non-zero, it is checked to be smaller or equal its ingress interface (e.g. the destination address must contain the
to the number of addresses in the Type 2 Routing Header (which can be same network prefix as one of the ingress interface), and discard any
calculated by dividing the Ext Hdr Len field by two). If Segments packet with an invalid destination address.
Left field is bigger, the packet is discarded, and an ICMP error may
be returned to the sender. Else, the Segments Left field is When the packet is addressed to the MR's HoA, the packet may contain
decremented by one and the destination address is swapped with the an extended RH2. The Segments Left field of RH2 is checked. If
next entry in the Address[] vector of the RH2. Segments Left field is 0, the packet is consumed. If Segments Left
field is non-zero, it is checked to be smaller or equal to the number
of addresses in the Type 2 Routing Header (which can be calculated by
dividing the Ext Hdr Len field by two). If Segments Left field is
bigger, the packet is discarded, and an ICMP error may be returned to
the sender. Else, the Segments Left field is decremented by one and
the destination address is swapped with the next entry in the
Address[] vector of the RH2.
The new destination address is then checked if it is a valid address The new destination address is then checked if it is a valid address
in one of the ingress interfaces of the mobile router. If yes, the in one of the ingress interfaces of the MR. If yes, the packet is
packet is forwarded to the new destination. Else, the packet is forwarded to the new destination. Else, the packet is silently
silently discarded. discarded.
4.2. Operation when Mobile Router is Away 4.2 Operation When Mobile Router is Away
This section describes the operation of a mobile router when it is This section describes the operation of a MR when it is away from its
away from its home link. home link.
4.2.1. Sending Router Advertisement 4.2.1 Sending Router Advertisement
The mobile router would continue to send Router Advertisement when it The MR would continue to send RA messages to its ingress interface(s)
is away. It should behave as specified in Section 4.1.1. There is when it is away. It should behave as specified in Section 4.1.1.
no difference in the Router Advertisement message whether the mobile There is no difference in the RA message whether the MR is at home or
router is at home or away. away.
4.2.2. Receiving Router Advertisement 4.2.2 Receiving Router Advertisement
The mobile router should solicit router advertisement from its access The MR should solicit RA from its access router whenever it changes
router whenever it changes its point of attachment to the Internet. its point of attachment to the Internet. When the MR receives the
When the mobile router receives the Router Advertisement, it should RA, it should check if the access router has included the RGAO in the
check if the access router has set the N-flag to 1. If the N-flag is RA message. If an RGAO is present, the access router is ARO-enabled.
set to 1, the access router is NEMO-enabled. If the flag is set to If no RGAO is present, the access router is not ARO-enabled.
0, the access router is not NEMO-enabled.
4.2.3. Sending Binding Updates 4.2.3 Sending Binding Updates
When the mobile router sends Binding Updates to other hosts, either When the MR sends BU to other hosts, either its own HA or other
its own home agent or other correspondent nodes, it should add an correspondent nodes, it should add an ARO to the BU messages if its
Access Router Option to the Binding Updates if its access router is access router is ARO-enabled. The ARO should contain the global
NEMO-enabled. Otherwise, if its access router is not NEMO-enabled, address of the access router it learned from the RGAO in the RA
the mobile router will not include the Access Router Option in the message. Otherwise, if its access router is not ARO-enabled, the MR
Binding Update messages. will not include the ARO in the BU messages.
When sending Binding Updates with the Access Router Option, When sending BU with the ARO, especially to nodes that the MR does
especially to hosts that it does not know to be NEMO-enabled, the not know to be ARO-enabled, the MR should request for a BA so that it
mobile router should request for a Binding Acknowledgement so that it can determine if the recipient supports the ARO-Solution by checking
can determine if the host supports the Proposed NEMO Solution by if the ARO is present in the BA message. If the ARO is present, the
inspecting the Status code. If the Status code is 0, the host is not node is ARO-enabled.
NEMO-enabled.
4.2.4. Processing Outbound Packets If the access router is not ARO-enabled, a MR may attempt to discover
if there are any ARO-enabled routers upstream by prepending a NEMO-BU
RAO to the BU message it sends out. If there exist an ARO-enabled
router upstream, the ARO-enabled router will send an ICMP message
containing the global address (eg HoA) of the ARO-enabled router.
For this case, the MR can send another BU message with an ARO
containing this global address.
* Packet does not have a NEMO-Fwd RAO If no response is received after a short timeout period, the MR
should concede that there is no ARO-enabled router upstream.
When the mobile router intercepts a packet from one of its ingress 4.2.4 Processing Outbound Packets
interfaces, the mobile router first checks if there is a NEMO-Fwd RAO
attached to the packet. When the NEMO-Fwd RAO is absent (or a NEMO-
NFwd RAO is present), the mobile router has to route this packet
through its own home agent. The packet is encapsulated in an
external packet addressed to the home agent of the mobile router.
If the mobile router's access router is not NEMO-enabled, the outer
packet is sent to the mobile router's home agent. The external
packet has the normal mobility characteristics, i.e. the source field
contains the care-of-address of the mobile router, the destination
field contains the address of the home agent of the mobile router,
and a Home Address destination Option should specify the home-address
of the mobile router.
If the mobile router's access router is NEMO-enabled, reverse When the MR received a packet from its ingress interface for outbound
tunneling is still necessary. However, in this case, the mobile forwarding, the behavior of the MR will be different depending on
router will add a NEMO-Fwd RAO to the outer packet. The external whether the outbound packet contains a RAO or not.
packet is then marked with source address set to the care-of-address
of the mobile router, destination address set to the address of the
mobile router's home agent, and attached with a Home Address
destination Option containing the home-address of the mobile router.
* Packet has a NEMO-Fwd RAO 1. Packet does not have any RAO
On the other hand, when the mobile router received a packet with a When the MR intercepts a packet from one of its ingress
NEMO-Fwd RAO from one of its ingress interfaces, the mobile router interfaces, it first checks if there is a NEMO-Fwd RAO or NEMO-BU
will then attempt to forward the packet directly to the destination. RAO attached to the packet. When the NEMO-Fwd RAO is absent (or
To do so, the mobile router has to check if it has a binding update a NEMO- NoFwd RAO is present), the MR has to route this packet
with the specified destination (by checking its Binding Update List). through its own HA. The packet is encapsulated in an outer
If it does not have an active binding update with the specified packet addressed to the HA of the mobile router. If the MR's
destination, the mobile router will have to tunnel the received access router is not ARO-enabled, the outer packet is sent to the
packet to its home agent using reverse tunneling. In this case, the MR's home agent. The outer packet has the normal mobility
NEMO-Fwd RAO is changed to a NEMO-NFwd RAO, and the packet is characteristics, i.e. the source field contains the CoA of the
processed as though it does not contain a NEMO-Fwd RAO (as described MR and the destination field contains the address of the HA of
in previous paragraph). the MR.
The presence of a NEMO-Fwd RAO should suggest to the mobile router If the MR's access router is ARO-enabled, reverse tunneling is
that it could perform a Return Routability Test and Binding Update still necessary. However, in this case, the mobile router will
with the specified destination, so that subsequent packets from the add a NEMO-Fwd RAO to the outer packet. The outer packet is then
same source to the same destination need not go through the bi- marked with source address set to the CoA of the MR, destination
directional tunnel. address set to the address of the MR's HA. and attached with a
Home Address destination Option containing the HoA of the MR.
If the mobile router does have an active binding update with the 2. Packet has a NEMO-NoFwd RAO
specified destination, the source address of the packet is changed to
the care-of-address of the mobile router. In addition, if the access
router of the mobile router is not NEMO-enabled, the NEMO-Fwd RAO is
changed to a NEMO-NFwd RAO. The packet is then forwarded through the
egress interface of the mobile router.
4.2.5. Processing Inbound Packets Processing of an outbound packet with a NEMO-NoFwd RAO is
identical to that when the packet contains no RAO.
When the mobile router received a packet from its access router the 3. Packet has a NEMO-Fwd RAO
packet must contain a destination field equal the care-of-address of
the mobile router, and a type 2 routing header. If these conditions
are not satisfied, the packet is silently discarded. In addition,
since the packet is addressed to the care-of-address of the mobile
router, the packet must be sent from a host that has a binding entry
of the mobile router. If security measures warrant it, the mobile
router may want to verify the sender is indeed a host in the mobile
router's Binding Update List, and discard the packet if it isn't.
The Segments Left field of RH2 is also checked. If Segments Left On the other hand, when the MR received a packet with a NEMO-Fwd
RAO from one of its ingress interfaces, the MR will then attempt
to forward the packet directly to the destination. To do so, the
MR has to check if it has a binding update with the specified
destination (by checking its Binding Update List). If it does
not have an active binding update with the specified destination,
the MR will have to tunnel the received packet to its HA using
reverse tunneling. In this case, the NEMO-Fwd RAO is changed to
a NEMO-NoFwd RAO, and the packet is processed as though it does
not contain a NEMO-Fwd RAO (as described previously).
The presence of a NEMO-Fwd RAO should suggest to the MR that it
could perform a Return Routability Procedure and BU with the
specified destination, so that subsequent packets from the same
source to the same destination need not go through the bi-
directional tunnel.
If the MR does have an active binding update with the specified
destination, the source address of the packet is changed to the
CoA of the MR. In addition, if the access router of the MR is
not ARO-enabled, the NEMO-Fwd RAO is changed to a NEMO-NoFwd RAO.
The packet is then forwarded through the egress interface of the
MR.
4. Packet has a NEMO-BU RAO
When the MR intercepts a packet from one of its ingress
interfaces with a NEMO-BU RAO, it implies that the originator of
that packet is an ARO-enabled node trying to learn if there is an
ARO-enabled access router in its upstream. The MR should send to
this originator a Router Global Address ICMP message (see Section
3.3.1). In addition, the MR should change the NEMO-BU RAO to a
NEMO-NoFwd RAO, and process the packet as though it does not
contain a NEMO-BU RAO (as described previously).
4.2.5 Processing Inbound Packets
When the MR received a packet from its egress interface, the MR
checks if the packet is addressed to itself. Packets not addressed
to its CoA or HoA are discarded. When the packet is addressed to its
CoA, the MR checks for the presence of type 2 routing header (RH2).
Packets without the RH2 are processed as per specified in [2]. If
the packet contains a RH2 and is addressed to its CoA, the packet
must be sent from a host that has a BCE of the MR. If security
measures warrant it, the MR may want to verify the sender is indeed a
node in the MR's Binding Update List, and discard the packet if it
isn't.
The Segments Left field of RH2 is then checked. If Segments Left
field is 0, the packet is discarded. If Segments Left field is non- field is 0, the packet is discarded. If Segments Left field is non-
zero, it is checked to be smaller or equal to the number of addresses zero, it is checked to be smaller or equal to the number of addresses
in the Type 2 Routing Header (which can be calculated by dividing the in the RH2 (which can be calculated by dividing the Ext Hdr Len field
Ext Hdr Len field by two). If Segments Left field is bigger, the by two). If Segments Left field is bigger, the packet is discarded,
packet is discarded, and an ICMP error may be returned to the sender. and an ICMP error may be returned to the sender. Else, the Segments
Else, the Segments Left field is decremented by one and the Left field is decremented by one and the destination address is
destination address is swapped with the next entry in the Address[] swapped with the next entry in the Address[] vector of the RH2.
vector of the RH2.
If the new destination address is the home-address of the mobile If the new destination address is the HoA of the MR, the Segments
router, the Segments Left field is checked if it is 0 (after Left field is checked if it is 0 (after decrementing). If so, the
decrementing). If so, the packet is consumed by the mobile router. packet is consumed by the MR. Otherwise, the packet is silently
Otherwise, the packet is silently discarded. discarded.
Alternatively, the new destination address may be an address in one Alternatively, the new destination address may be an address in one
of the mobile router's ingress interfaces. If yes, the packet is of the MR's ingress interfaces. If yes, the packet is forwarded to
forwarded to the new destination. Else, if the new destination the new destination. Else, if the new destination field of the
field of the packet is neither the home-address nor a valid address packet is neither the HoA nor a valid address in one of the MR's
in one of the mobile router's ingress interfaces, the packet is ingress interfaces, the packet is silently discarded.
silently discarded.
When a packet is consumed by the mobile router, the payload may be an When a packet is consumed by the MR, the payload may be an
encapsulated packet. In this case, sender of the outer packet must encapsulated packet. In this case, sender of the outer packet must
be the home agent of the mobile router. Processing of the inner be the HA of the MR, or a node in MR's Binding Update List.
packet is the same as that described in Section 4.1.3, i.e. as though Processing of the inner packet is the same as though the mobile
the mobile router is at home. router is at home.
4.3. IPSec Processing
It is strongly recommended that the mobile router uses IPSec 4.3 IPSec Processing
protocols such as AH[18] or ESP[19] to secure the reverse tunnel with
its home agent. This section highlights changes to the IPSec
processing for inbound and outbound packets.
4.3.1. IPSec Processing on Inbound Packets It is recommended that the MR uses IPSec protocols such as AH [9] or
ESP [10] to secure the reverse tunnel with its HA [13]. This section
highlights changes to the IPSec processing for inbound and outbound
packets.
Inbound packets may contain a type 2 routing header with an AH/ESP. 4.3.1 IPSec Processing on Inbound Packets
The routing header should be processed before AH. If the mobile
router is the final destination, the packet is passed to the IPSec
module for AH/ESP processing. Since the home agent will generate the
AH/ESP in a such a way that it is consistent with the state of the
packet headers when the receiver received the packet (see Section
5.5.2), no additional processing needs to be done before the AH/ESP
processing.
4.3.2. IPSec Processing on Outbound Packets Inbound packets may contain a RH2 with an AH/ESP. The RH2 should be
processed before AH. If the MR is the final destination, the packet
is passed to the IPSec module for AH/ESP processing. Since the HA or
CN will generate the AH/ESP in a such a way that it is consistent
with the state of the packet headers when the receiver received the
packet (see Section 5.4.2), no additional processing needs to be done
before the AH/ESP processing.
For outbound packets, the new option added to the packets by the 4.3.2 IPSec Processing on Outbound Packets
Proposed NEMO Solution is the NEMO-Forward and NEMO-No-Forward Router
Alert Options. Originator of a packet will only insert the NEMO-Fwd
RAO to a newly-created packet. The NEMO-Fwd RAO will be changed to a
NEMO-NFwd RAO by subsequent router, since all NEMO-enabled mobile
routers will change the NEMO-Fwd RAO in a outgoing packet to a NEMO-
NFwd RAO when
(1) the mobile router is attached to an access router that is not For outbound packets, the new options added to the packets by the
NEMO-enabled; or ARO-Solution are the NEMO-Fwd, NEMO-BU and NEMO-NoFwd Router Alert
Options. For simplicity, it is best that all IPSec implementations
ignore these options and treat their values as all zero when
processing.
(2) the mobile router encapsulate the outgoing packet into a tunnel 5. Operation of ARO-Enabled Home Agents
packet.
Thus the NEMO-Fwd RAO is a mutable but predictable option, where the 5.1 Receiving Binding Updates
receiver always received the NEMO-Fwd RAO as a NEMO-NFwd RAO. Thus
when generating AH authentication data, the sender should use a NEMO-
NFwd RAO for AH processing.
Also, when generating the AH authentication data, the originator When a HA receives a BU message, it needs to check for the necessary
should use its home-address as the IPv6 source address in the IPv6 security measures as specified in Mobile IPv6 specifications [1] or
header, and place its care-of-address in the Home Address field of NEMO Basic Support [2]. The only change this ARO Solution requires
the Home Address destination option, as required by [9]. is for the HA to add a field to its Binding Cache: access router's
address. Every valid BU is checked for the Access Router Option
field. If one is absent, the corresponding BCE will have the access
router field invalidated. If one is present, the corresponding BCE
will have the access router field updated.
5. Operation of NEMO-enabled Home Agent In addition, when returning a BA for a BU that contains an Access
Router Option, the ARO-Solution requires that the HA return a the BA
with the same Access Router Option if the binding is successful.
Note also that the HA MUST accept BU with Access Router Option
regardless of whether the Home Registration bit is set.
5.1. Sending Router Advertisement 5.2 Receiving Tunneled Packets from Away Nodes
When the home agent sends Router Advertisement, the home agent should When the HA received a packet that contains an encapsulated packet,
set the H-flag to 1 and set the N-flag to 1, indicating to recipients it may choose to perform certain security checks. The obvious check
it is functioning as a NEMO-enabled Mobile IP home agent. is to ensure that the source address is either a valid CoA of the HoA
in its binding cache, or the source address is a valid CoA or HoA of
an access router that is in the upstream of the mobile node with the
specified HoA in the Home Address Destination option. Section 9.3
discusses the security considerations on accepting tunnels with a
source address that is not directly bound to the HoA specified in the
Home Address destination option.
5.2. Receiving Binding Updates To establish this, the HA can use the pseudo algorithm depicted in
Figure 9. The algorithm returns TRUE if the source address in a
valid address, and FALSE otherwise. When the algorithm returns TRUE,
the source address is a valid address, and the packet is decapsulated
and processed as normal. Should the algorithm evaluates to FALSE,
the packet is discarded.
When a home agent receives a Binding Update message, it needs to set start-address = HoA in HAO
check for the necessary security measures as specified in Mobile IPv6 while (TRUE) do
specifications [9]. The only change this Proposed NEMO Solution {
requires is for the home agent to add a field to its Binding Cache: find an entry in Binding Cache with HoA field == start-address
access router's home-address. Every valid Binding Update is checked if (no BCE is found)
for the Access Router Option field. If one is absent, the {
corresponding entry in the Binding Cache will have the access router return (FALSE)
field invalidated. If one is present, the corresponding entry in the }
Binding Cache will have the access router field updated. if (CoA field in the BCE
== source-address of outer packet)
{
return (TRUE)
}
if (the BCE does not contain a valid access
router address)
{
return (FALSE)
}
if (access router address field in the BCE
== source-address of outer packet)
{
return (TRUE)
}
set start-address = access router address field in the BCE
}
In addition, when returning a Binding Acknowledgement for a Binding Figure 9: Algorithm to check source address is valid
Update that contains an Access Router Option, the Proposed NEMO
Solution requires that the home agent return a Status code that is to
be assigned (referred to as ARO-OK) to indicate that the Access
Router Option is accepted.
Note also that the home-agent MUST accept Binding Updates with ARO 5.3 Tunneling Packets to Away Nodes
with or without the Home Registration bit set.
5.3. Receiving Tunneled Packets from Away Nodes When the HA intercepted a packet addressed to a node in its home
domain, it checks the next hop to forward the packet from its routing
table. This sub-section describes the operation of the HA when the
next hop is away, i.e. the next hop is a mobile node, and the mobile
node is away from home.
When the home agent received a packet that contains an encapsulated In this case, the HA will forward the packet to the mobile node at
packet, it may choose to perform certain security checks. The the CoA of the mobile node. This is done by encapsulating the
obvious check is to ensure that the source address is either a valid intercepted packet into a new packet. According to standard MIPv6
care-of-address of the home-address in its binding cache, or the specification [1], the packet will have the source address set to the
source address is a valid care-of-address/home-address of an access address of the HA, destination set to the CoA of the mobile router,
router that is in the upstream of the mobile node with the specified and a RH2 with only one address entry equals to the HoA of the mobile
home-address. Section 7.3 discusses the security considerations on node.
accepting tunnels with a source address that is not directly bound to
the home-address specified in the Home Address destination option.
To establish this, the home agent can use the pseudo algorithm This ARO-Solution extends the RH2 to include addresses of access
depicted in Figure 2. The algorithm returns TRUE if the source routers, and the pseudo algorithm depicted in Figure 10 can be used
address in a valid address, and FALSE otherwise. When the algorithm to construct such a routing header. In Figure 10, src-address and
returns TRUE, the source address is a valid address, and the packet dst-address are the abbreviations for the source address and
is decapsulated and processed as normal. Should the algorithm destination address fields of the outer packet respectively.
evaluates to FALSE, the packet is discarded.
set start-address = HoA in HAO initialize an empty stack
while (TRUE) do set src-address = address of home agent
{ set dst-address = HoA of mobile node
find an entry in Binding Cache with HoA field = start-address set Finished = FALSE
if (no Binding Cache entry is found) while (not Finished)
{ {
return (FALSE) find BCE with HoA field = dst-address
} if (no BCE is found)
if (CoA field in the Binding Cache entry
== source-address of outer packet)
{ {
return (TRUE) Finished = TRUE
} }
if (the Binding Cache entry does not contain a valid access else
router address)
{ {
return (FALSE) if (dst-address == HoA of mobile node)
{
push dst-address to stack
}
set dst-address = CoA field of the found BCE
if (the found BCE contains a valid access router address)
{
push dst-address to stack
set dst-address = access router address field of BCE found
}
else
{
Finished = TRUE
}
} }
if (access router address field in the Binding Cache entry }
== source-address of outer packet) if (stack is not empty)
{
prepare a type 2 routing header
set Hdr Ext Len field of RH2 = (size of stack) x 2
set Segments Left field of RH2 = size of stack
for n=1 to (Segments Left field of RH2)
{ {
return (TRUE) pop top of stack to Address[n] of RH2
} }
set start-address = access router address field in the }
Binding Cache entry
}
Figure 2: Algorithm to check source address is valid Figure 10: Algorithm to construct extended RH2
5.4. Tunneling Packets to Away Nodes The outer packet is then sent to the destination. If secure tunnel
is used, the IPSec protocol used must be able to recognize that the
RH2 is a mutable but predictable header, such that the two end-points
use the same routing header and IPv6 destination field for IPSec
processing. Particularly, the sender should calculate the IPSec
parameters using values in the IPv6 headers that the receiver will
receive.
When the home agent intercepted a packet addressed to a node in its 5.4 IPSec Processing
home domain, it checks the next router to forward the packet from its
routing table. This sub-section describes the operation of the home
agent when the next router is away, i.e. the next router is a mobile
router, and the mobile router is away from home.
In this case, the home agent will forward the packet to the mobile It is recommended that the HA uses IPSec protocols such as AH [9] or
router at the care-of-address of the mobile router. This is done by ESP [10] to protect the tunnel with a mobile node [13]. This section
encapsulating the intercepted packet into a new packet. According to highlights changes to the IPSec processing for inbound and outbound
standard Mobile IPv6 specification [9], the packet will have the packets.
source address set to the address of the home agent, destination set
to the care-of-address of the mobile router, and a Type 2 Routing
Header with only one address entry equals to the home-address of the
mobile router.
This Proposed NEMO Solution extends the Type 2 Routing Header to 5.4.1 IPSec Processing on Inbound Packets
include addresses of access routers, and the pseudo algorithm
depicted in Figure 3 can be used to construct such a routing header.
In Figure 3, src-address and dst-address are the abbreviations for
the source address and destination address fields of the outer packet
respectively.
empty a stack Packets that are inbound may have their source address modified en-
set src-address = address of home agent route by access routers. Thus, all home-agents SHOULD use the
set dst-address = HoA of mobile router algorithm shown in Figure 9 to establish the authenticity of the
set Finished = FALSE source address. Once the source address is verified, the source
while (not Finished) address field will be replaced by the HoA specified in the Home
{ Address Destination option, and the Home Address field of the Home
find entry in Binding Cache with HoA field = dst-address Address Destination option MUST be replaced with the CoA of the
if (no Binding Cache entry is found) sender. In MIPv6, this CoA can be obtained from the source address
{ field in the packet. However, the ARO-Solution allows intermediate
Finished = TRUE mobile routers to modify the source address field. Thus, the home
} agent MUST obtain the CoA from its BCE.
else
{
if (dst-address == HoA of mobile router)
{
push dst-address to stack
}
set dst-address = CoA field of the found Binding Cache entry
if (the found Binding Cache entry contains a valid access
router address)
{
push dst-address to stack
set dst-address = access router address field of found
Binding Cache Entry
}
else
{
Finished = TRUE
}
}
}
if (stack is not empty)
{
prepare a type 2 routing header
set Hdr Ext Len field of RH2 = (size of stack) x 2
set Segments Left field of RH2 = size of stack
for n=1 to (Segments Left field of RH2)
{
pop top of stack to Address[n] of RH2
}
}
Figure 3: Algorithm to construct extended RH2 The above processing MUST be carried out before AH processing.
The outer packet is then sent to the destination. If secure tunnel 5.4.2 IPSec Processing on Outbound Packets
is used, the IPSec protocol used must be able to recognize that the
Type 2 Routing Header is a mutable but predictable header, such that
the two end-points use the same routing header and IPv6 destination
field for IPSec processing. Particularly, the sender should
calculate the IPSec parameters using values in the IPv6 headers that
the receiver will receive.
5.5. IPSec Processing Outbound packets may contain an extended RH2. The extended RH2 is a
mutable but predictable header. According to the usual norm of
generating AH authentication data, the HA must order the contents of
the RH2 as it will appear at the final destination when generating
the AH authentication data.
It is strongly recommended that the home agent uses IPSec protocols 6. Operation of ARO-Enabled Mobile Network Nodes
such as AH[18] or ESP[19] to secure the reverse tunnel with a mobile
router. This section highlights changes to the IPSec processing for
inbound and outbound packets.
5.5.1. IPSec Processing on Inbound Packets The operation of an ARO-enabled MNN is very similar to that of a MR.
When the MNN is at home, there is no additional operation
requirements imposed by the ARO Solution (i.e. the ARO-enabled MNN
operation is similar to a normal MNN when it is at home). This
section described the operation of MNN when it is away (i.e. it is a
VMN).
6.1 Nested Tunnel Optimization with Home Agent
In this case, the MNN is VMN using MIPv6 bi-direction tunneling with
its HA. If it is ARO-enabled, and its HA is also ARO-enabled, then
the number of nested tunnel can be reduced to one.
The MNN basically follows the same procedure as an ARO-enabled MR.
It needs to detect the RGAO in the RA messages broadcasted by its
access router to determine if its access router is ARO-enabled. When
sending BU message to its HA, the MNN will insert an ARO to the BU
message containing the home-address of its access router.
After the binding is successful, the MNN can then attached a NEMO-Fwd
RAO in the tunnel packets sent to its HA. Note that when doing so,
the MNN needs to attach a Home Address Destination Option in the
tunnel packet.
6.2 Receiving Router Advertisement
The MNN should solicit RA from its access router whenever it changes
its point of attachment to the Internet. When the MNN receives the
RA, it should check if the access router has included the RGAO in the
RA message. If an RGAO is present, the access router is ARO-enabled.
If no RGAO is present, the access router is not ARO-enabled.
6.3 Sending Binding Updates
When the MNN sends BU to other hosts, either its own HA or other
correspondent nodes, it should add an ARO to the BU messages if its
access router is ARO-enabled. The ARO should contain the global
address of the access router it learned from the RGAO in the RA
message. Otherwise, if its access router is not ARO-enabled, the MNN
will not include the ARO in the BU messages.
When sending BU with the ARO, especially to nodes that the MNN does
not know to be ARO-enabled, the MNN should request for a BA so that
it can determine if the recipient supports the ARO-Solution by
checking if the ARO is present in the BA message. If the ARO is
present, the node is ARO-enabled.
If the access router is not ARO-enabled, a MNN may attempt to
discover if there are any ARO-enabled routers upstream by prepending
a NEMO-BU RAO to the BU message it sends out. If there exist an
ARO-enabled router upstream, the ARO-enabled router will send an ICMP
message containing the global address of the ARO-enabled router. For
this case, the MNN can send another BU message with an ARO containing
this global address.
If no response is received after a short timeout period, the MNN
should concede that there is no ARO-enabled router upstream.
6.4 Sending Data Packets
When the MNN is tunneling data packets to its HA, the MNN can add a
NEMO-Fwd RAO to the tunnel packet (i.e. outer packet) if (1) its HA
is ARO-enabled, and (2) its access router is ARO-enabled. Otherwise,
the MNN should use the normal MIPv6 bi-directional tunneling to
forward the data packet to its HA. When adding the NEMO-Fwd RAO, the
MNN should also include a Home Address Destination Option in the
tunnel packet.
When the MNN knows (by other means) that the CN it is communicating
with is ARO-enabled, the MNN can choose to employ full route
optimization with the CN. This is done by adding a NEMO-Fwd RAO to
the data packet. Note that the MNN should also include a Home
Address Destination Option in the data packet.
6.5 Processing Inbound Packets
When the MNN received a packet from its egress interface, the MNN
checks if the packet is addressed to itself. Packets not addressed
to its CoA or HoA are discarded. When the packet is addressed to its
CoA, the MNN checks for the presence of type 2 routing header (RH2).
Packets without the RH2 are processed as per specified in [2]. If
the packet contains a RH2 and is addressed to its CoA, the packet
must be sent from a host that has a BCE of the MNN. If security
measures warrant it, the MR may want to verify the sender is indeed a
node in the MR's Binding Update List, and discard the packet if it
isn't.
The Segments Left field of RH2 is then checked. If Segments Left
field is 0, the packet is discarded. If Segments Left field is non-
zero, it is checked to be smaller or equal to the number of addresses
in the RH2 (which can be calculated by dividing the Ext Hdr Len field
by two). If Segments Left field is bigger, the packet is discarded,
and an ICMP error may be returned to the sender. Else, the Segments
Left field is decremented by one and the destination address is
swapped with the next entry in the Address[] vector of the RH2.
Being a host, the MNN must be the final destination of the packet.
Thus, if the new destination address is not the HoA of MNN, or the
Segments Left field is non-zero after decrementing, the packet is
silently discarded. Else if the new destination address is the HoA
of MNN, and the Segments Left field is zero after decrementing the
packet is consumed.
When a packet is consumed by the MNN, the payload may be an
encapsulated packet. In this case, sender of the outer packet must
be the HA of the MNN. Processing of the inner packet is the same as
though the MNN is at home.
6.6 IPSec Processing
6.6.1 IPSec Processing on Inbound Packets
Inbound packets may contain a RH2 with an AH/ESP. The routing header
should be processed before AH. If the MNN is the final destination,
the packet is passed to the IPSec module for AH/ESP processing.
Since the HA or CN will generate the AH/ESP in a such a way that it
is consistent with the state of the packet headers when the receiver
received the packet (see Section 5.4.2), no additional processing
needs to be done before the AH/ESP processing.
6.6.2 IPSec Processing on Outbound Packets
For outbound packets, the new options added to the packets by the
ARO-Solution are the NEMO-Fwd, NEMO-BU and NEMO-NoFwd Router Alert
Options. For simplicity, it is best that all IPSec implementations
ignore these options and treat their values as all zero when
processing.
7. Operation of ARO-Enabled Correspondent Node
7.1 Receiving Binding Updates
When a CN receives a BU message, it needs to check for the necessary
security measures as specified in Mobile IPv6 specifications [1] or
NEMO Basic Support [2]. The only change this ARO Solution requires
is for the CN to add a field to its Binding Cache: access router's
address. Every valid BU is checked for the Access Router Option
field. If one is absent, the corresponding BCE will have the access
router field invalidated. If one is present, the corresponding BCE
will have the access router field updated.
In addition, when returning a BA for a BU that contains an Access
Router Option, the ARO-Solution requires that the CN returns a the BA
with the same Access Router Option if the binding is successful.
Note that a BU sent to the CN MUST be preceded with a return
routability procedure. Section 9.1 discusses possibility of
extending the return routability procedure to protect the Access
Router Option.
7.2 Receiving Route Optimized Packets from Mobile Nodes
When the CN received a packet that contains a Home Address
Destination Option, it will have to perform certain security checks
to ensure that the source address is either a valid CoA of the HoA in
its binding cache, or the source address is a valid CoA or HoA of an
access router that is in the upstream of the mobile node with the
specified HoA in the Home Address Destination option. Section 9.3
discusses the security considerations on accepting tunnels with a
source address that is not directly bound to the HoA specified in the
Home Address destination option.
To establish this, the CN can use the pseudo algorithm depicted in
Figure 9 shown in Section 5.2. The algorithm returns TRUE if the
source address in a valid address, and FALSE otherwise. When the
algorithm returns TRUE, the source address is a valid address, and
the source address is replaced with the HoA contained in the Home
Address Destination Option and processed as normal. Should the
algorithm evaluates to FALSE, the packet is silently discarded.
7.3 Sending Route Optimized Packets to Mobile Nodes
When the CN sends a packet, it should check if the destination
address is in its BCE. If the destination is not in the BCE, then
the packet is sent as per normal IPv6 operation. If the destination
is in its BCE, normal MIPv6 will require that the source address be
set to the address of the CN, destination set to the CoA of the MR,
and a RH2 with only one address entry equals to the HoA of the mobile
node.
This ARO-Solution extends the RH2 to include addresses of access
routers, and the pseudo algorithm depicted in Figure 10 shown in
Section 5.3 can be used to construct such a routing header. In
Figure 10, src-address and dst-address are the abbreviations for the
source address and destination address fields of the outer packet
respectively.
If IPSec protocol is used to protect the packet, the IPSec protocol
used must be able to recognize that the RH2 is a mutable but
predictable header, such that the two end-points use the same routing
header and IPv6 destination field for IPSec processing.
Particularly, the sender should calculate the IPSec parameters using
values in the IPv6 headers that the receiver will receive.
7.4 IPSec Processing
7.4.1 IPSec Processing on Inbound Packets
Packets that are inbound may have their source address modified en- Packets that are inbound may have their source address modified en-
route by access routers. Thus, all home agents MUST use the route by access routers. Thus, all ARO-enabled correspondent nodes
algorithm shown in Figure 2 to establish the authenticity of the SHOULD use the algorithm depicted in Figure 9 shown in Section 5.2 to
source address. Once the source address is verified, the source establish the authenticity of the source address. Once the source
address field will be replaced by the home-address specified in the address is verified, the source address field will be replaced by the
Home Address destination option, and the Home Address field of the HoA specified in the Home Address Destination option, and the Home
Home Address destination option MUST be replaced with the care-of- Address field of the Home Address Destination option MUST be replaced
address of the sender. In Mobile IPv6, this care-of-address can be with the CoA of the sender. In MIPv6, this CoA can be obtained from
obtained from the source address field in the packet. However, this the source address field in the packet. However, the ARO-Solution
Proposed NEMO Solution allows intermediate mobile routers to modify allows intermediate mobile routers to modify the source address
the source address field. Thus, the home agent MUST obtain the care- field. Thus, the CN MUST obtain the CoA from its BCE.
of-address from its Binding cache.
The above processing MUST be carried out before AH processing. The above processing MUST be carried out before AH processing.
5.5.2. IPSec Processing on Outbound Packets 7.4.2 IPSec Processing on Outbound Packets
Outbound packets may contain an extended RH2. The extended RH2 is a Outbound packets may contain an extended RH2. The extended RH2 is a
mutable but predictable header. According to the usual norm of mutable but predictable header. According to the usual norm of
generating AH authentication data, the home agent must order the generating AH authentication data, the CN must order the contents of
contents of the RH2 as it will appear at the final destination when the RH2 as it will appear at the final destination when generating
generating the AH authentication data. the AH authentication data.
6. Considerations in the Use of Mutable Router Alert Option 8. Design Considerations
This section described the design considerations leading to the use This section describes the rational behind some design decision made
of a mutable Router Alter Option. in the formulation of the ARO Solution. Some justifications are
given, and in some cases, alternative approaches are discussed.
6.1. Router Alert Option 8.1 Considerations in the Use of Mutable Router Alert Option
The proposed solution described in this memo is designed so that it 8.1.1 Overview of Router Alert Option
will work in a nested NEMO where some mobile routers are NEMO-enabled
and some are not. Thus, some form of indications on a packet is
necessary to inform upstream mobile routers to attempt to use the
Proposed NEMO Solution. Since the indication is meant for
intermediate routers, a hop-by-hop option is needed.
The Router Alert Option [16] lends itself readily for use. By The ARO Solution described in this memo is designed so that it will
assigning a value in RAO, a NEMO-enabled mobile router can request work in a nested NEMO where some mobile routers are ARO-enabled and
its access router to attempt to forward the packet directly to the some are not. Thus, some form of indications on a packet is
necessary to inform upstream mobile routers to attempt to use the ARO
Solution. Since the indication is meant for intermediate routers, a
hop-by-hop option is needed.
The Router Alert Option [6] lends itself readily for use. By
assigning a value in RAO, a ARO-enabled mobile router can request its
access router to attempt to forward the packet directly to the
destination without using reverse tunnel. However, further analysis destination without using reverse tunnel. However, further analysis
reveals that there is a need for a mobile router that is not attached reveals that there is a need for a mobile router that is not attached
to a NEMO-enabled access router to disable this behavior. to a ARO-enabled access router to disable this behavior.
6.2. Example where an Immutable RAO is Used 8.1.2 Example where an Immutable RAO is Used
To understand why a mobile router that is not attached to a NEMO- To understand why a MR that is not attached to a ARO- enabled access
enabled access router should disable the NEMO-Fwd RAO, consider the router should disable the NEMO-Fwd RAO, consider the following
following scenario, where MR1, MR2, and MR4 are NEMO-enabled mobile scenario, where MR1, MR2, and MR4 are ARO-enabled mobile routers,
routers, LFR3 is a non-NEMO-enabled local fixed router attached to LFR3 is a non-ARO-enabled local fixed router attached to MR4, and HA1
MR4, and HA1 is the home agent of MR1. is the home agent of MR1.
MR1---MR2---LFR3---MR4---[Internet]---HA1 MR1---MR2---LFR3---MR4---[Internet]---HA1
Suppose both MR1 and MR2 have performed binding updates successfully Suppose both MR1 and MR2 have performed binding updates successfully
with HA1, thus the state of the Binding Cache of HA1 will be: with HA1, thus the state of the Binding Cache of HA1 will be:
Home-Address Care-of-Address Access Router Home-Address Care-of-Address Access Router
------------ --------------- ------------- ------------ --------------- -------------
MR1.HoA MR1.CoA MR2.HoA MR1.HoA MR1.CoA MR2.HoA
MR2.HoA MR2.CoA <invalid> MR2.HoA MR2.CoA <invalid>
When MR1 encapsulates a packet to be tunneled to HA1, MR1 adds a When MR1 encapsulates a packet to be tunneled to HA1, MR1 adds a
NEMO-Fwd RAO in the outer packet (since MR2, the access router of NEMO-Fwd RAO in the outer packet (since MR2, the access router of
MR1, is NEMO-enabled). Thus the packet from MR1 to MR2 will contains MR1, is ARO-enabled). Thus the packet from MR1 to MR2 will contains
the following contents: the following contents:
IPv6 Hdr (src=MR1.CoA, dst=HA1) IPv6 Hdr (src=MR1.CoA, dst=HA1)
Hop-by-Hop Opt Hop-by-Hop Opt
RAO (NEMO-Fwd) RAO (NEMO-Fwd)
Dest Opt Dest Opt
HAO (MR1.HoA) HAO (MR1.HoA)
Since MR2 has already performed a binding update with HA1, it changes Since MR2 has already performed a binding update with HA1, it changes
the source address and forwards the packet to LFR3. LFR3 is a fixed the source address and forwards the packet to LFR3. LFR3 is a fixed
router, thus it simply forwards the packet to MR4. At MR4, the router, thus it simply forwards the packet to MR4. At MR4, the
packet contents is then: packet contents is then:
IPv6 Hdr (src=MR2.CoA, dst=HA1) IPv6 Hdr (src=MR2.CoA, dst=HA1)
Hop-by-Hop Opt Hop-by-Hop Opt
RAO (NEMO-Fwd) RAO (NEMO-Fwd)
Dest Opt Dest Opt
HAO (MR1.HoA) HAO (MR1.HoA)
When MR4 intercepts this packet, the presence of the NEMO-Fwd RAO When MR4 intercepts this packet, the presence of the NEMO-Fwd RAO
will cause MR4 to start a binding update with HA1, and tunnels the will cause MR4 to start a binding update with HA1, and tunnels the
packet to its home agent. From the home agent of MR4, the packet is packet to its home agent. From the home agent of MR4, the packet is
forwarded to HA1. forwarded to HA1.
Suppose now HA1 accepts the binding update with MR4, and its Binding Suppose now HA1 accepts the binding update with MR4, and its Binding
Cache is thus as follows: Cache is thus as follows:
Home-Address Care-of-Address Access Router Home-Address Care-of-Address Access Router
------------ --------------- ------------- ------------ --------------- -------------
MR1.HoA MR1.CoA MR2.HoA MR1.HoA MR1.CoA MR2.HoA
MR2.HoA MR2.CoA <invalid> MR2.HoA MR2.CoA <invalid>
MR4.HoA MR4.HoA <invalid> MR4.HoA MR4.HoA <invalid>
Now, when MR1 sends a tunnel packet to HA1 again, the packet will Now, when MR1 sends a tunnel packet to HA1 again, the packet will
arrive at MR4 with the following contents: arrive at MR4 with the following contents:
IPv6 Hdr (src=MR2.CoA, dst=HA1) IPv6 Hdr (src=MR2.CoA, dst=HA1)
Hop-by-Hop Opt Hop-by-Hop Opt
RAO (NEMO-Fwd) RAO (NEMO-Fwd)
Dest Opt Dest Opt
HAO (MR1.HoA) HAO (MR1.HoA)
This time, MR4 checks that HA1 is on its Binding Update List, thus it This time, MR4 checks that HA1 is on its Binding Update List, thus it
will change the source address of the packet to its care-of-address will change the source address of the packet to its CoA and forward
and forward the packet to HA1 through the Internet. When HA1 the packet to HA1 through the Internet. When HA1 receives the
receives the packet, the contents will be: packet, the contents will be:
IPv6 Hdr (src=MR4.CoA, dst=HA1) IPv6 Hdr (src=MR4.CoA, dst=HA1)
Hop-by-Hop Opt Hop-by-Hop Opt
RAO (NEMO-Fwd) RAO (NEMO-Fwd)
Dest Opt
HAO (MR1.HoA)
Because the Access Router field of the Binding Cache entry for MR2 is Dest Opt
marked invalid, the algorithm for checking the validity of the source HAO (MR1.HoA)
address as shown in Figure 2 of Section 5.3 will fail. Thus the
packet will be discarded at HA1.
6.3. The Need for Mutable RAO Because the Access Router field of the BCE for MR2 is marked invalid,
the algorithm for checking the validity of the source address as
shown in Figure 9 of Section 5.2 will fail. Thus the packet will be
discarded at HA1.
8.1.3 The Need for Mutable RAO
The example in the previous section shows that the presence of a The example in the previous section shows that the presence of a
local fixed router (LFR) that is not NEMO-enabled may cause an local fixed router (LFR) that is not ARO-enabled may cause an
unintentional denial-of-service to mobile routers that are attached unintentional denial-of-service to mobile routers that are attached
to the LFR. to the LFR.
To avoid this problem, MR4 must somehow realize that it should ignore To avoid this problem, MR4 must somehow realize that it should ignore
the NEMO-Fwd RAO in a packet forwarded by MR2. One method is to the NEMO-Fwd RAO in a packet forwarded by MR2. One method is to
check that the source address is a valid source address in the check that the source address is a valid source address in the
ingress interface of MR4. However, MR2 might obtain a care-of- ingress interface of MR4. However, MR2 might obtain a CoA that
address that contains a prefix that is valid in the ingress interface contains a prefix that is valid in the ingress interface of MR4.
of MR4. Thus checking source address does not completely eliminate Thus checking source address does not completely eliminate the
the problem. problem.
If MR2 can somehow invalidate the NEMO-Fwd RAO, the problem can be If MR2 can somehow invalidate the NEMO-Fwd RAO, the problem can be
eliminated. But the Router Alert Option as defined in [16] is an eliminated. But the Router Alert Option as defined in [6] is an
immutable hop-by-hop option, so what is needed here is a mutable immutable hop-by-hop option, so what is needed here is a mutable
router alert option. router alert option.
6.4. Sub-Optimality of NEMO-NFwd RAO 8.1.4 Alternatives to the Mutable Router Alert Option
It must be noted that using NEMO-NFwd RAO is sub-optimal. We
illustrate this by considering the same scenario. The tunnel packet
is forwarded from MR1 to MR2 with the following contents:
IPv6 Hdr (src=MR1.CoA, dst=HA1)
Hop-by-Hop Opt
RAO (NEMO-Fwd)
Dest Opt
HAO (MR1.HoA)
MR2 will change the source address to its care-of-address. In
addition, since the access router of MR2 (i.e. LFN3) is not NEMO-
enabled, MR2 invalidates the NEMO-Fwd RAO. Hence the contents of the
packet that eventually read MR4 will be
IPv6 Hdr (src=MR2.CoA, dst=HA1)
Hop-by-Hop Opt
RAO (NEMO-NFwd)
Dest Opt
HAO (MR1.HoA)
Because the NEMO-Fwd RAO is changed to a NEMO-NFwd RAO, MR4 will not
attempt to forward the packet directly to HA1. Instead, the packet
is encapsulated in an outer tunnel to the home agent of MR4. Thus,
the nested tunnel optimization problem is not solved optimally.
To solve this problem optimally, a mechanism must be defined to allow
MR4 to notify MR2 its home-address, so that MR2 can specify the home-
address of MR4 in the Access Router Option of a Binding Update
message sent to the home agent of MR2. It remains unclear how to
provide such a mechanism without introducing additional security
threats.
6.5. Alternatives to the Mutable Router Alert Option
There are other alternatives to the mutable Router Alert Option. There are other alternatives to the mutable Router Alert Option.
These include using the Flow label in IPv6 header, and defining a new These include using the Flow label in IPv6 header, and defining a new
routing header type. These are briefly described below. routing header type. These are briefly described below.
6.5.1. IPv6 Flow Label o IPv6 Flow Label
It is possible to use the IPv6 Flow label to achieve the same effects It is possible to use the IPv6 Flow label to achieve the same
as the mutable Router Alert Option. A specific, universal Flow label effects as the mutable Router Alert Option. A specific, universal
can be reserved to indicate to NEMO-enabled routers that they should Flow label can be reserved to indicate to NEMO-enabled routers
try to forward the packets directly to their destination (instead of that they should try to forward the packets directly to their
using a reverse tunnel with home agents). destination (instead of using a reverse tunnel with home agents).
This approach eliminates the need of defining a new hop-by-hop header This approach eliminates the need of defining a new hop-by-hop
option. However, this means that a specific flow label has to be header option. However, this means that a specific flow label has
reserved, which may be in contention with currently deployed IPv6 to be reserved, which may be in contention with currently deployed
nodes. In addition, this will mean that NEMO-enabled mobile routers IPv6 nodes. In addition, this will mean that NEMO-enabled mobile
are unable to use Flow label for other purposes. routers are unable to use Flow label for other purposes.
6.5.2. New Routing Header Type o New Routing Header Type
A new routing header type can be defined to store the address of the A new routing header type can be defined to store the address of
final destination. When such a routing header is used, the the final destination. When such a routing header is used, the
originator will place the address of the final destination in the originator will place the address of the final destination in the
routing header, and place the home-address of the access router of routing header, and place the home-address of the access router of
the originator in the destination (when the access router is NEMO- the originator in the destination (when the access router is NEMO-
enabled). When a NEMO-enabled mobile router that is not attached to enabled). When a NEMO-enabled mobile router that is not attached
a NEMO-enabled access router receives a packet with this type of to a NEMO-enabled access router receives a packet with this type
routing header, it will overwrite the destination address of the of routing header, it will overwrite the destination address of
packet with the final destination specified in the routing header, the packet with the final destination specified in the routing
and decrement the Segments Left field. When a NEMO-enabled mobile header, and decrement the Segments Left field. When a
router that is attached to a NEMO-enabled access router receives a NEMO-enabled mobile router that is attached to a NEMO-enabled
packet with this type of routing header, it will overwrite the access router receives a packet with this type of routing header,
destination address of this packet with the home-address of its it will overwrite the destination address of this packet with the
access router and the leave the contents of the routing header home-address of its access router and the leave the contents of
untouched. the routing header untouched.
There remain issues that are unclear when this new type of routing There remain issues that are unclear when this new type of routing
header is used with other routing headers. Also, the security header is used with other routing headers. Also, the security
implication of defining a new type of routing header is yet to be implication of defining a new type of routing header is yet to be
explored. explored.
7. Changing Source Address by Intermediate Routers o Discarding Immutable RAO
Another possibility is to use the normal immutable RAO and instead
allow routers en-route to simply discard the RAO (instead of
changing it to a NEMO-NoFwd RAO). This will work exactly the
same, and is both applicable to NEMO-Fwd and NEMO-BU RAO. It will
in fact reduce processing delay when the RAO is only option in the
hop-by-hop header. Since this will cause the hop-by-hop header to
be removed, and en-route router need not process the hop-by-hop
header and only to find that it contains a NEMO-NoFwd RAO which
requires no processing.
8.2 Change of Source Address
This memo proposed to allow intermediate routers to change the source This memo proposed to allow intermediate routers to change the source
address of a packet en-route. It is expected that this will cause address of a packet en-route. It is expected that this will cause
some disturbances, as it is generally not allowed for routers to some disturbances, as it is generally not allowed for routers to
change the source address. We hope to justify our design decision in change the source address. We hope to justify our design decision in
this section, and discuss some alternatives. this section, and discuss some alternatives.
7.1. Justifications 8.2.1 Justifications
The main factor in consideration to changing the source address en- The main factor in consideration to changing the source address en-
route is to overcome ingress filtering. In order for a packet to be route is to overcome ingress filtering. In order for a packet to be
able to pass through an ingress filter, the source address must be able to pass through an ingress filter, the source address must be
topologically compatible with where the packet is originated. Thus, topologically compatible with where the packet is originated. Thus,
to overcome ingress filtering, the source address must somehow be to overcome ingress filtering, the source address must somehow be
changed. We view the change of source address as somewhat akin to changed. We view the change of source address as somewhat akin to
the use of a care-of-address as the packet source address in Mobile the use of a CoA as the packet source address in MIPv6.
IPv6.
For the case of Mobile IPv6, mobile nodes use the care-of-address to For the case of MIPv6, mobile nodes use the CoA to overcome ingress
overcome ingress filtering, and use the Binding Update mechanism and filtering, and use the BU mechanism and Home Address Destination
Home Address destination Option to allow receivers to establish a Option to allow receivers to establish a relationship between the
relationship between the source address (i.e. care-of-address) and source address (i.e. CoA) and the HoA. In the ARO Solution,
the home-address. In this proposal, receivers can use the algorithm receivers can use the algorithm depicted in Figure 9 of Section 5.2
depicted in Figure 2 of Section 5.3 to establish a similar to establish a similar relationship between the source address (in
relationship between the source address (in this case, the care-of- this case, the CoA/HoA of an upstream access router) and the HoA.
address of an upstream access router) and the home-address.
7.2. Alternatives 8.2.2 Alternatives
There are alternatives to changing source address for the purpose of There are alternatives to changing source address for the purpose of
overcoming ingress filters. One method is to use packet overcoming ingress filters. One method is to use packet
encapsulation to achieve the same effect as changing of source encapsulation to achieve the same effect as changing of source
address (since the outer packet has a different source address). address (since the outer packet has a different source address).
Currently, evaluating such a scheme is in progress. Currently, evaluating such a scheme is in progress.
8. Security Considerations 9. Security Considerations
This proposal introduces several modifications to existing protocols. This proposal introduces several modifications to existing protocols.
In this section, we will discuss additional security issues that In this section, we will discuss additional security issues that
arise due to these modifications. arise due to these modifications.
8.1. Addition of Access Router Option 9.1 Addition of Access Router Option
Access Router Option is introduced so that a recipient can establish Access Router Option is introduced so that a recipient can establish
a credible link between the global address of the access router a credible link between the global address of the access router
specified, and the home-address of the mobile router that sends the specified, and the HoA of the mobile node that sends the Access
Access Router Option. Router Option.
When a mobile router sends Binding Update to its home agent, current When a mobile node sends BU to its HA, current MIPv6 draft specifies
Mobile IPv6 draft specifies that the Binding Update should be secured that the BU should be secured (either by ESP or AH). For this case,
(either by ESP or AH). For this case, the introduction of Access the introduction of Access Router Option does not introduce new
Router Option does not introduce new security threats. security threats.
When sending Binding Updates to correspondent node, the mobile router When sending BU to CN, the mobile node inserts the Access Router
inserts the Access Router Option only when sending the actual Binding Option only when sending the actual BU message. The BU message is
Update message. The Binding Update message is protected using a key protected using a key generated after obtaining the Care-of-Test
generated after obtaining the Care-of-Test and Home-Test messages, so (CoT) and Home-Test (HoT) messages, so the Access Router Option
the Access Router Option should be relatively secure. However, there should be relatively secure. However, there exist the slight
exist the slight possibility of an attacker snooping on both the possibility of an attacker snooping on both the CoT and HoT messages,
Care-of-Test and Home-Test messages, thus allowing the attacker to thus allowing the attacker to generate the key independently. The
generate the key independently. The attacker can then proceed to attacker can then proceed to change the values in the Access Router
change the values in the Access Router Option and change the Option and change the Authenticator value of the BU message using the
Authenticator value of the Binding Update message using the generated generated key, thus leading the correspondent node to believe that
key, thus leading the correspondent node to believe that the mobile the mobile node is attached to another access router.
router is attached to another access router.
To overcome this, it is suggested that the mobile router to insert To overcome this, the mobile node may insert the Access Router Option
the Access Router Option when sending the Care-of-Test Init Message. when sending the CoT Init Message. The ARO-enabled CN, should then
The NEMO-enabled corresponding node, should then generate the care-of generate the care-of cookie using
cookie using
Care-of cookie = First64(MAC_Kcn(CoA | access router address | Care-of cookie = First64(MAC_Kcn(CoA | access router address |
nonce)) nonce))
instead of using only the care-of-address and nonce. In this way, instead of using only the CoA and nonce. In this way, the global
the global address of the access router in the Access Router Option address of the access router in the Access Router Option is protected
is protected the same way the care-of-address is protected. the same way the CoA is protected.
Note that if the correspondent node does not recognize the Access Note that if the CN does not recognize the Access Router Option, it
Router Option, it will not use the access router address to generate will not use the access router address to generate the
the care-of-cookie. However, we do not require the mobile router to care-of-cookie. However, we do not require the mobile node to change
change the way the Authenticator value is generated, i.e. the value the way the Authenticator value is generated, i.e. the value is
is generated using the method as specified in Mobile IPv6 [9]: generated using the method as specified in MIPv6 [1]:
Kbu = Hash(home cookie | care-of cookie) Kbu = Hash(home cookie | care-of cookie)
Authenticator = MAC_Kbu(CoA | CN address | BU) Authenticator = MAC_Kbu(CoA | CN address | BU)
So, the Binding Update will be verified to be authentic by the So, the BU will be verified to be authentic by the CN regardless of
correspondent node regardless of how the care-of cookie is generated, how the care-of cookie is generated, provided the generation of
provided the generation of care-of cookie is consistent. The mobile care-of cookie is consistent. The mobile node must still request for
router must still request for Binding Acknowledgement so that the BA so that it if the CN has accepted the Access Router Option.
mobile router knows if the correspondent node has accepted the Access
Router Option.
8.2. Router Global Address Option 9.2 Router Global Address Option
The introduction of global address of the access router in the The introduction of global address of the access router in the BU
Binding Update message is the crux of the Proposed NEMO Solution, message is the crux of the ARO Solution, since this is the link which
since this is the link which allows home agents and correspondent allows HA and CN to set up the RH2 and to accept packets from
nodes to set up the Type 2 Routing Header and to accept packets from
otherwise unknown sources. From previous discussion, the global otherwise unknown sources. From previous discussion, the global
address of the access router is fairly secure since address of the access router is fairly secure since
(1) Binding Update sent by an away node to its home agent that o BU sent by an away node to its home agent that contains the access
contains the access router's global address is secure, and router's global address is secure, and
(2) Binding Updates sent to corresponding nodes are reasonably o BU sent to CN are reasonably protected using the Return
protected using the Return Routablility Test. Routability Procedure.
The weakest link is now the method in which the mobile router learns The weakest link is now the method in which the mobile node learns
the global address of the access router it attaches to. The method the global address of the access router it attaches to. The method
proposed in this memo is to use the Router Advertisement. Two proposed in this memo is to use the Router Advertisement. Two
possible security threats are identified here: possible security threats are identified here:
(1) a malicious access router advertising false global address in 1. a malicious access router advertising false global address in the
Router Advertisement, and RA messages it broadcasts, and
(2) an attacker replays a Router Advertisement message from a 2. an attacker replays a RA message from a legitimate access router,
legitimate access router, but changes the global address but changes the global address contained in the Router Global
contained in the Router Global Address Option to a false entry. Address Option to a false entry.
The severity of the two threats is yet to be fully analyzed. We do The severity of the two threats is yet to be fully analyzed. We do
provide our initial analysis here to invite further discussion. For provide our initial analysis here to invite further discussion. For
the first case, advertising a false global address is believed to be the first case, advertising a false global address is believed to be
one of least harm a malicious access router could do. There are one of least harm a malicious access router could do. There are
other far more potent threats faced by the mobile router when it other far more potent threats faced by the mobile router when it
attaches itself to a malicious access router. For the second case attaches itself to a malicious access router. For the second case
where an attacker replays a modified Router Advertisement, we where an attacker replays a modified RA, we believed that the threat
believed that the threat existed in IPv6 Neighbor Discovery [20]. In existed in IPv6 Neighbor Discovery [11]. In [11], security issues
[20], security issues pertaining to Router Advertisement are pertaining to RA are discussed. This discussion should be able to
discussed. This discussion should be able to shed some light on how shed some light on how to advert such an attack.
to advert such an attack.
8.3. Accepting Tunnel with a Source Address not Directly Bound to the 9.3 Accepting Tunnel with a Source Address not Directly Bound to the
Home Address Home Address
Mobile IPv6 forbids home agent from accepting tunnels with a source MIPv6 forbids home agent from accepting tunnels with a source address
address that is not bound to the home-address specified in a Home that is not bound to the HoA specified in a Home Address Option.
Address Option. This proposal relaxed this security measure. The This proposal relaxed this security measure. The home agent should
home agent should now admit tunnels from a source address that is now admit tunnels from a source address that is "indirectly" bound
"indirectly" bound (through the linkage of access router field in the (through the linkage of access router field in the binding cache) to
binding cache) to the home-address specified in the Home Address the home-address specified in the Home Address Option. The algorithm
Option. The algorithm presented in Figure 2 of Section 5.3 can be presented in Figure 9 of Section 5.2 can be used to verify if the
used to verify if the source address is "indirectly" bound to the source address is "indirectly" bound to the HoA specified in the Home
home-address specified in the Home Address Option. Address Option.
As considered above in Section 6.1, the Access Router Option is As considered above in Section 8.2, the Access Router Option is
secured by the fact that a Binding Update to the home agent is always secured by the fact that a BU to the HA is always secure. In
secure. In addition, the Access Router Option is fairly secured with addition, the Access Router Option is fairly secured with the Return
the Return Routability Tests. Thus the relaxation of the security Routability Procedure. Thus the relaxation of the security measure
measure of source address verification of a tunnel does not of source address verification of a tunnel does not significantly
significantly increase the home agent's vulnerability to attacks. It increase the HA's vulnerability to attacks. It is also recommended
is also recommended that the tunnel between the mobile node and the that the tunnel between the mobile node and the home agent to be
home agent to be secured by ESP or AH. In addition, we also secured by ESP or AH. In addition, we also recommend that all
recommend that all implementations to allow the support of this implementations to allow the support of this ARO Solution to be
Proposed NEMO Solution to be administratively disabled or enabled. administratively disabled or enabled. The default should be enabled.
The default should be enabled.
8.4. Use of Extended Routing Header Type 2 9.4 Use of Extended Routing Header Type 2
The extension of the Type 2 Routing Header exposes this solution to The extension of the RH2 exposes this solution to additional security
additional security threats in that attackers can change the entries threats in that attackers can change the entries in the RH2 to be
in the routing header to be routed to another entity. However, we routed to another entity. However, we note that this extension is
note that this extension is designed so that the extended Type 2 designed so that the extended RH2 is now very similar to the Type 0
Routing Header is now very similar to the Type 0 Routing Header. Routing Header. Thus, the security threats faced by RH2 is not a new
Thus, the security threats faced by Type 2 Routing Header is not a threat introduced by this solution itself. In any case, the harm an
new threat introduced by this solution itself. In any case, the attacker can do by changing the entries in the routing header is
harm an attacker can do by changing the entries in the routing header limited to:
is limited to:
(1) causing the packet to be routed to another entity for snooping o causing the packet to be routed to another entity for snooping
into the contents of the payloads; into the contents of the payloads;
(2) denial-of-service attack causing the packet to be discarded by o denial-of-service attack causing the packet to be discarded by
intermediate routers; and intermediate routers; and
(3) using the Type 2 Routing Header to reflect packets off a mobile o using the RH2 to reflect packets off a mobile network.
network.
In the first two cases, given that the attacker has the ability to In the first two cases, given that the attacker has the ability to
change the contents in the routing header, it can perform the same change the contents in the routing header, it can perform the same
attack even if a Type 2 Routing Header is not used. attack even if a RH2 is not used. For the threat where attacker
construct a RH2 to reflect packets off a mobile network, we recommend
that all routers supporting the RH2 to perform the following security
measures:
For the threat where attacker construct a Type 2 Routing Header to o When the mobile node receives a packet with the destination field
reflect packets off a mobile network, we recommend that all routers set to its HoA or CoA, it should check for the existence of a RH2.
supporting the Type 2 Routing Header to perform the following
security measures:
- When the mobile router receives a packet with the destination Any packet that is sent to the mobile node's CoA without a RH2
field set to its home-address or care-of-address, it should should be discarded.
check for the existence of a Type 2 Routing Header. Any packet
that is sent to the mobile router's care-of-address without a
Type 2 Routing Header should be discarded.
- If the Segment Left field has a value of 1, the last address in o If the Segment Left field has a value of 1, the last address in
the routing header must contain the home-address of the mobile the routing header must contain the HoA of the mobile node.
router.
- If the Segment Left field has a value greater than 1, the new o If the Segment Left field has a value greater than 1, the new
destination address must contain a valid address in one of its destination address must contain a valid address in one of the
ingress links. mobile router's ingress links. If the mobile node is a mobile
host, the packet should be discarded.
Effectively, the above security checks ensure the mobile router will Effectively, the above security checks ensure the mobile node will
discard any packets it received with a Type 2 Routing Header that discard any packets it received with a RH2 that requires it to
requires the router to forward the packet through an egress link. forward the packet through an egress link. This should reduce, if
This should reduce, if not eliminate, the possibility of using the not eliminate, the possibility of using the extended RH2 for
extended Type 2 Routing Header for reflection attacks. reflection attacks.
In addition, it must be noted that the extended Type 2 Routing Header In addition, it must be noted that the extended RH2 is mutable but
is mutable but predictable. Thus, it can be protected using AH. predictable. Thus, it can be protected using AH.
8.5. Mutable Router Alert Option 9.5 Mutable Router Alert Option
The mutable Router Alert Option is used in this memo to request/stop The mutable Router Alert Option is used in this memo to request/stop
subsequent routers to attempt to forward the packet directly to its subsequent routers to attempt to forward the packet directly to its
destination. Possible security threats identified are: destination. Possible security threats identified are:
- Adding a NEMO-Fwd RAO to a packet The attacker can add a NEMO-Fwd RAO to a packet. This will cause
subsequent mobile routers to perform BU with the destination.
The attacker can add a NEMO-Fwd RAO to a packet. This will When BU is successful, subsequent mobile routers will forward the
cause subsequent mobile routers to perform binding update with packets directly to the destination, causing the packet to be
the destination. When binding update is successful, subsequent discarded (due to failure of algorithm in Figure 9).
mobile routers will forward the packets directly to the
destination, causing the packet to be discarded (due to failure
of algorithm in Figure 2).
- Adding a NEMO-NFwd RAO to a packet
The attacker can add a NEMO-NFwd RAO to a packet. This has no
effect (other than causing AH to fail), since the default
behavior of processing a packet with NEMO-NFwd RAO at a mobile
router is the same as the default behavior of processing a
packet without any RAO.
- Changing a NEMO-Fwd RAO to NEMO-NFwd RAO The attacker can add a NEMO-NoFwd RAO to a packet. This has no
effect, since the default behavior of processing a packet with
NEMO-NoFwd RAO at a mobile router is the same as the default
behavior of processing a packet without any RAO.
The attacker can change the value of the NEMO-Fwd RAO to a NEMO- The attacker can change the value of the NEMO-Fwd RAO to a NEMO-
NFwd RAO. The effect of this form of attack is to cause the NoFwd RAO. The effect of this form of attack is to cause the
packet to be delivered sub-optimally (i.e. nested tunnels). packet to be delivered sub-optimally (i.e. nested tunnels).
- Changing a NEMO-NFwd RAO to NEMO-Fwd RAO
The attacker can change the value of the NEMO-NFwd RAO to a The attacker can change the value of the NEMO-NoFwd RAO to a
NEMO-Fwd RAO. The effect of this form of attack is to cause NEMO-Fwd RAO. The effect of this form of attack is to cause
subsequent mobile routers to perform binding update with the subsequent mobile routers to perform BU with the destination.
destination. When binding update is successful, subsequent When BU is successful, subsequent mobile routers will forward the
mobile routers will forward the packets directly to the packets directly to the destination, causing the packet to be
destination, causing the packet to be discarded (due to failure discarded (due to failure of algorithm in Figure 9).
of algorithm in Figure 2).
All the security threats described above require the attacker to be All the security threats described above require the attacker to be
on the path of the packet route. In addition, the most severe effect on the path of the packet route. In addition, the most severe effect
the attacker can achieve is causing packets to be discarded at the the attacker can achieve is causing packets to be discarded at the
receiver. Since the attacker must be on the path of the packet receiver. Since the attacker must be on the path of the packet
route, the attacker can achieve the same effect by simply discarding route, the attacker can achieve the same effect by simply discarding
the intercepted packet. Thus, the use of mutable router alert option the intercepted packet. Thus, the use of mutable router alert option
described in this memo does not introduce any new security threats. described in this memo does not introduce any new security threats.
8.6. IPSec Processing
It is strongly recommended that the mobile router uses IPSec 9.6 IPSec Processing
protocols such as AH[18] or ESP[19] to secure the reverse tunnel with
its home agent. This Proposed NEMO Solution introduces modifications
to existing protocols that may interfere with IPSec Processing. This
section will highlight the possible interference.
8.6.1. Processing of Extended Routing Header Type 2 9.6.1 Processing of Extended Routing Header Type 2
As covered in Section 5.5.2, the extended RH2 is a mutable but As covered in Section 5.4.2, the extended RH2 is a mutable but
predictable header, thus the sender must ordered the fields in the predictable header, thus the sender must ordered the fields in the
RH2 (and the destination address of the IPv6 header) as they will RH2 (and the destination address of the IPv6 header) as they will
appear at the final destination when generating the AH authentication appear at the final destination when generating the AH authentication
header. header.
8.6.2. Processing of Home Address Destination Option 9.6.2 Processing of Home Address Destination Option
As specified in Mobile IPv6 [9], the originator should use its home- As specified in MIPv6, the originator should use its HoA as the IPv6
address as the IPv6 source address in the IPv6 header, and place its source address in the IPv6 header, and place its CoA in the Home
care-of-address in the Home Address field of the Home Address Address field of the Home Address destination option, when generating
destination option, when generating the AH authentication data. the AH authentication data.
The Proposed NEMO Solution allows mobile routers to modify the source The ARO Solution allows mobile routers to modify the source address
address of the IPv6 Header, thus when the source address field may no of the IPv6 Header, thus when the source address field may no longer
longer contain the care-of-address of the sender at the final contain the CoA of the sender at the final destination.
destination.
All home agents MUST use the algorithm shown in Figure 2 of Section All home agents MUST use the algorithm shown in Figure 9 of Section
5.3 to establish the authenticity of the source address. Once the 5.2 to establish the authenticity of the source address. Once the
source address is verified, the source address field will be replaced source address is verified, the source address field will be replaced
by the home-address specified in the Home Address destination option, by the HoA specified in the Home Address destination option, and the
and the Home Address field of the Home Address destination option Home Address field of the Home Address destination option will be
will be replaced with the care-of-address of the sender. This care- replaced with the CoA of the sender. This CoA is obtained from the
of-address is obtained from the receiver's Binding cache. receiver's BCE.
The above processing MUST be carried out before AH processing. The above processing MUST be carried out before AH processing.
8.6.3. Processing of Mutable Router Alert Option 9.6.3 Processing of Mutable Router Alert Option
As described in Section 4.3.2, when the sender of a packet inserts a As described in Section 4.3.2, when the sender of a packet inserts a
NEMO-Fwd RAO to the packet, the receiver always received the RAO NEMO-Fwd RAO or NEMO-BU RAO to the packet, the receiver always
modified to NEMO-NFwd. Thus the mutable NEMO-Fwd RAO is predictable. received the RAO modified to NEMO-NoFwd. Thus the mutable NEMO-Fwd
When AH is used, the originator should use the NEMO-NFwd RAO to RAO is predictable. It is thus possible for the originator to use
generate the AH authentication data. NEMO-NoFwd RAO to generate the AH authentication data. However, it
is recommended that the RAO simply be left out of any IPSec
Acknowledgements processing.
The authors would like to extend sincere gratitude to Thierry Ernst
and Keisuke Uehara of the WIDE Project for their invaluable comments
and suggestions to the initial draft of this memo.
References
[1] Bradner, S., "The Internet Standards Process -- Revision 3",
BCP 9, RFC 2026, October 1996.
[2] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997
[3] Soliman, H., and Pettersson, M., "Mobile Networks (MONET)
Problem Statement and Scope", Internet Draft, draft-soliman-
monet-statement-00.txt, Feb 2002, Work In Progress.
[4] Ernst, T., and Lach, H., "Network Mobility Support
Requirements", Internet Draft, draft-ernst-nemo-requirements-
00.txt, Oct 2002, Work In Progress.
[5] Lach, H. et. al., "Mobile Networks Scenarios, Scope and
Requirements", Internet Draft, draft-lach-monet-requirements-
00.txt, Feb 2002, Work In Progress.
[6] Kniventon, T. J., and Yegin, A. E., "Problem Scope and
Requirements for Mobile Networks Working Group", Internet
Draft, draft-kniventon-monet-requiremetns-00.txt, Feb 2002,
Work In Progress.
[7] Perkins, C. E. et. al., "IP Mobility Support", IETF RCF 2002, 10 References
Oct 1996.
[8] DARPA, "Internet Protocol", IETF RFC 791, Sep 1981. [1] Johnson, D., Perkins, C. and J. Arkko, "Mobility Support in
IPv6", RFC 3775, June 2004.
[9] Johnson, D. B., Perkins, C. E., and Arkko, J., "Mobility [2] Devarapalli, V., "Network Mobility (NEMO) Basic Support
Support in IPv6", Internet Draft: draft-ietf-mobileip-ipv6- Protocol", draft-ietf-nemo-basic-support-03 (work in progress),
18.txt, Work In Progress, June 2002. June 2004.
[10] Deering, S., and Hinden, R., "Internet Protocol, Version 6 [3] Ernst, T., "Network Mobility Support Goals and Requirements",
(IPv6) Specification", IETF RFC 2460, Dec 1998. draft-ietf-nemo-requirements-02 (work in progress), February
2004.
[11] Kniveton, T., "Mobile Router Support with Mobile IP", Internet [4] Thubert, P., Molteni, M. and C. Ng, "Taxonomy of Route
Draft: draft-kniveton-mobrtr-01.txt, Work In Progress, Mar Optimization models in the Nemo Context",
2002. draft-thubert-nemo-ro-taxonomy-02 (work in progress), February
2004.
[12] Ernst, T., Castelluccia, C., Bellier, L., Lach, H., and [5] Ernst, T. and H. Lach, "Network Mobility Support Terminology",
Olivereau, A., "Mobile Networks Support in Mobile IPv6 (Prefix draft-ietf-nemo-terminology-01 (work in progress), February
Scope Binding Updates)", Internet Draft: draft-ernst-mobileip- 2004.
v6-network-03.txt, Mar 2002.
[13] Thubert, P., and Molteni, M., "Taxonomy of Route Optimization [6] Partridge, C. and A. Jackson, "IPv6 Router Alert Option", RFC
Models in the NEMO Context", Internet Draft: draft-thubert- 2711, October 1999.
nemo-ro-taxonomy-00.txt, Work In Progress, Oct 2002.
[14] Thubert, P., and Molteni, M., "IPv6 Reverse Routing Header and [7] Deering, S. and R. Hinden, "Internet Protocol, Version 6 (IPv6)
Its Application to Mobile Networks", Internet Draft: draft- Specification", RFC 2460, December 1998.
thubert-nemo-reverse-routing-header-01.txt, Work In Progress,
Oct 2002.
[15] Ernst, T., and Lach, H., "Network Mobility Support [8] Kent, S. and R. Atkinson, "Security Architecture for the
Terminology", Internet Draft, draft-ernst-nemo-terminology- Internet Protocol", RFC 2401, November 1998.
00.txt, Oct 2002, Work In Progress.
[16] Partridge, C., and Jackson, A., "IPv6 Router Alert Option", [9] Kent, S. and R. Atkinson, "IP Authentication Header", RFC 2402,
IETF RFC 2711, Oct 1999. November 1998.
[17] Kent, S., and Atkinson, R., "Security Architecture for the [10] Kent, S. and R. Atkinson, "IP Encapsulating Security Payload
Internet Protocol", IETF RFC 2401, Nov 1998. (ESP)", RFC 2406, November 1998.
[18] Kent, S., and Atkinson, R., "IP Authentication Header", IETF [11] Narten, T., Nordmark, E. and W. Simpson, "Neighbor Discovery
RFC 2402, Nov 1998. for IP Version 6 (IPv6)", RFC 2461, December 1998.
[19] Kent, S., and Atkinson, R., "IP Encapsulating Security Payload [12] Conta, A. and S. Deering, "Internet Control Message Protocol
(ESP)", IETF RFC 2406, Nov 1998. (ICMPv6) for the Internet Protocol Version 6 (IPv6)
Specification", RFC 2463, December 1998.
[20] Narten, T., Nordmark, E., and Simpson, W., "Neighbour Discovery [13] Arkko, J., Devarapalli, V. and F. Dupont, "Using IPsec to
for IPv6", IETF RFC 2461, Dec 1998. Protect Mobile IPv6 Signaling Between Mobile Nodes and Home
Agents", RFC 3776, June 2004.
Author's Addresses Authors' Addresses
Chan-Wah Ng Chan-Wah Ng
Panasonic Singapore Laboratories Pte Ltd Panasonic Singapore Laboratories Pte Ltd
Blk 1022 Tai Seng Ave #04-3530 Blk 1022 Tai Seng Ave #06-3530
Tai Seng Industrial Estate Tai Seng Industrial Estate
Singapore 534415 Singapore 534415
Phone: (+65) 6554 5420 SG
Email: cwng@psl.com.sg
Takeshi Tanaka
Wireless Solution Laboratories
Matsushita Communication Industrial Co Ltd
5-3, Hikarinooka, Yokoshuka-shi, Kanagawa
239-0847, Japan
Phone: +81-468-40-5494
Email: Takeshi.Tanaka@yrp.mci.mei.co.jp
Appendices
A. Route Optimization
It is possible to extend the proposed solution described in this memo
to perform route optimization for NEMO-enabled mobile network hosts.
For an NEMO-enabled mobile network host, when it detects that its
access router is NEMO-enabled (from the Router Advertisement), it
sends Binding Update with Access Router Option to its home agent.
From here, it will use reverse tunneling with its home agent to send
packets to corresponding nodes. The mobile network nodes will also
insert the NEMO-Fwd RAO into tunnel packet so as to achieve nested
tunnel optimization.
In order to achieve full route optimization, corresponding nodes are
required to be NEMO-enabled. Specifically, they should be able to
recognize the Access Router Option in a Binding Update message and
set the appropriate Status code in a Binding Advertisement, be able
to construct an extended Type 2 Routing Header using the algorithm
specified in Figure 3 of Section 5.4, and be able to verify the
source address of a received packet using the algorithm specified in
Figure 2 of Section 5.3.
B. Other NEMO Solution Proposals
B.1. IPv6 Reverse Routing Header
B.1.1. Overview of the Reversed Routing Header Solution
The current proposal uses the notion of access router to allow home
agents to construct routing header so that pinball effect of nested
tunnels can be avoided in a nested NEMO. A very similar proposal is
the use of Reverse Type 2 Routing Header proposed by Thubert et. al.
[14], where a reverse routing header is attached to the tunnel packet
sent by the lowest level mobile router. Subsequent upstream mobile
routers would not further encapsulate the packet. Instead, they will
move the source address of the incoming packet to the next available
entry of the reverse routing header, and put their own care-of-
address in the source address field. In this way, the home agent
receiving this packet can construct the chain of access routers the
mobile router is attached to. From there, a packet addressed to the
mobile router (or to the NEMO controlled by the mobile router) can be
sent with an extended Type 2 Routing Header similar to the mechanism
proposed here.
B.1.2. Comparison
In comparison, the proposal by Thubert et. al. is more efficient. It
does not require each mobile router on the path to perform binding
updates with the home agent of the lowest-level mobile router, as
this proposal do. Any change in the nested NEMO topology is
immediately reflected in the reversed routing header. Whereas, for
the solution proposed in this memo, changes in nested NEMO topology
will have to be propagated slowly via binding updates sent by mobile
routers at each nested level.
However, the simplicity of the Reversed Routing Header solution is
also its greatest disadvantage: it is extremely difficult to
establish the credibility of the reverse routing header received by
the home agent. Because of the lack of binding updates from the
upper layer mobile routers, the home agent has no way of knowing if
the reverse routing header is tampered with en-route. On the hand,
the solution proposed in this memo uses Mobile IPv6 binding mechanism
to establish the chain of routers an away node is attached to. Thus
it does not introduce any additional security threats that are not
already present in Mobile IPv6.
Furthermore, the Reverse Routing Header solution requires home agents
(and correspondent nodes, if route optimization is used) to maintain
a list of reverse routing headers for each mobile router. This is
more expensive (computationally and storage capacity wise) to
maintain than a binding cache, since reverse routing header can vary
in size. On the other hand, the solution proposed in this memo
merely requires an additional column in the binding cache to record
the access routers' addresses. However, admittedly, the current
solution does increase the processing load of home agents and
correspondent nodes by requiring them to construct a routing header
from the binding cache.
B.1.3. Possible Merging of Solutions
As the Reverse Routing Header and the proposal described in this memo
attempts to solve similar problems (i.e. nested tunnel optimization),
it is possible to merge the two solutions. Both extend the routing
header type 2 to contain more than one address. For the packet path
from a mobile router to its home agent, [14] uses the reverse routing
header to forward the packet and overcome ingress filtering, while
the current proposal uses a Router Alert Option to request direct
forwarding, and allow the upper level mobile routers to change the
source address of the packet.
A possible merged solution can have the following characteristics:
(1) mobile routers use the Access Router Option to inform home
agents the access routers they are currently attached to;
(2) home agents use the Access Router Option to update their Binding
Cache, where each entry in the Binding Cache contains an extra
field to store the home-address of access router;
(3) mobile routers attach the reverse routing header on tunnel
packets for upper level routers to append their care-of-
addresses; and
(4) home agents use the extra field in the Binding Cache to check
the legitimacy of the reverse routing header in a received
tunnel packet.
The above discussion outlines a possible approach to merge the two
proposals. Further analysis is needed to establish the feasibility
of such an approach.
B.2. Prefix Scope Binding Update (PSBU)
Other proposed solution includes Prefix Scope Binding Update proposed
by Ernst et. al. [12]. The main idea in this work is to specify the
prefix length in the Binding Update, so that correspondent nodes, as
well as home agent, realize that any address falling into the home-
prefix is bound to that care-of-address. The current proposal works
well with such a Prefix Scope Binding Update, and can coexist or be
merged as one solution.
B.3. Hierarchical Mobile IPv6 (HMIPv6)
One other candidate is Hierarchical Mobile IPv6 proposal (HMIPv6)
[21]. Till date, it is unclear how HMIPv6 can be adopted as the NEMO
solution.
C. Examples
This Section describes several examples to illustrate how the
proposed solution works. These examples are based on the scenario
described in Figure C.1 below. Here, LFN1 is a local fixed node
attached to MR1. MR1 and MR2 are NEMO-enabled mobile routers, and
HA1 and HA2 are the home agents of MR1 and MR2 respectively. LFN1 is
communicating with a corresponding node CN1.
HA1
|
+---------|---------+
| |
LFN1---MR1---MR2---- Internet ----CN1
| |
+---------|---------+
|
HA2
C.1. Abbreviations
In the following illustrations, the following abbreviations are used:
ARO: Access Router Option
BU: Binding Update
BA: Binding Acknowledgement
HAO: Home Address Destination Option
RH2: extended Type 2 Routing Header
C.2. MR1 attaches to MR2
In this section, the messages exchange is described after MR1
attaches to MR2.
C.2.1. MR1 establishes binding to HA1
(1) MR1 Receives RA from MR2
When MR1 attaches to MR2, MR1 receives Router Advertisement with N
bit set, Router Home Address Option = MR2.HoA from MR2. MR1 knows
it is attached to a NEMO-enabled router.
(2) MR1 sends BU to HA1
BU sent from MR1 to HA1 looks like this:
IPv6 Hdr (src=MR1.CoA, dst=HA1)
Dst Opt
HAO (MR1.HoA)
AH/ESP Hdr
Mobility Hdr
BU (A bit=1)
ARO (MR2.HoA)
(3) MR2 encapsulates the BU
When the BU reaches MR2, it will be further encapsulated into a
tunnel between MR2 and HA2. The encapsulated packet from MR2 to
HA2 will look like this:
IPv6 Hdr (src=MR2.CoA, dst=HA2)
Dst Opt
HAO (MR2.HoA)
AH/ESP Hdr
Encapsulated IPv6 Hdr (src=MR1.CoA, dst=HA1)
Dst Opt
HAO (MR1.HoA)
AH/ESP Hdr
Mobility Hdr
BU (A bit=1)
ARO (MR2.HoA)
Mobility Hdr
BU (A bit=1)
ARO (MR2.HoA)
(4) HA2 processes the tunnel packet
When HA2 receives the tunnel packet, it first processes AH/ESP
with the address in HAO. Then HA1 checks if it has an entry for
MR1.HoA as Home Address. Next HA1 decapsulates the packet, and
forward the inner packet to HA1.
(5) HA1 processes the BU
HA1 first processes AH/ESP with the address in HAO, checking if it
has an entry for MR1.HoA as Home Address. Next HA1 notices it has
Access Router field and creates/updates binding entry for MR2 with
Access Router field set. After this, the Binding Cache of HA1 has
the following entry:
Home Address Care-of Address Access Router
------------ --------------- -------------
MR1.HoA MR1.CoA MR2.HoA
(6) HA1 sends BA to MR1
BA sent from HA1 to MR1 looks like this:
IPv6 Hdr (src=HA1, dst=MR2.HoA)
RH2 ( Segments Left=2,
Address[1]=MR1.CoA,
Address[2]=MR1.HoA )
AH/ESP Hdr
Mobility Hdr
BA (status=ARO-OK)
(7) HA2 receives the BA
HA2 intercepts the packet from HA1 to MR2 and encapsulates it.
Using the algorithm given in Figure 3 of Section 5.4, HA2
constructs a RH2 and attaches it to the outer packet. Packet sent
from HA2 looks like this:
IPv6 Hdr (src=HA2, dst=MR2.CoA)
RH2 ( Segments Left=1,
Address[1]=MR2.HoA)
AH/ESP hdr
Encapsulated IPv6 Hdr (src=HA1, dst=MR2.HoA)
RH2 ( Segments Left=2,
Address[1]=MR1.CoA,
Address[2]=MR1.HoA )
AH/ESP Hdr
Mobility Hdr
BA (status=ARO-OK)
(8) MR2 receives BA
MR2 receives the packet and processes the RH2. MR2 notices that
the Segments Left field is 1 and verifies that the last address in
RH2 is its own home-address. It decapsulates the packet and
process the inner packet.
The inner packet has destination field equals to the home-address
of MR2. So MR2 processes the inner packet, and updates the RH2 of
the inner packet. It verifies that the new destination is a valid
address in its ingress interface, and sends it off.
BA sent from MR2 to MR1 looks like this:
IPv6 Hdr (src=HA1, dst=MR1.CoA)
RH2 ( Segments Left=1,
Address[1]=MR2.HoA,
Address[2]=MR1.HoA )
AH/ESP Hdr
Mobility Hdr
BA (status=ARO-OK)
(9) MR1 receives BA
MR1 receives the packet and processes the RH2. Since Segments
Left=1, it verifies that the last address in RH2 is its own home-
address. After MR1 processes RH2, the packet looks like this:
IPv6 Hdr (src=HA1, dst=MR1.HoA)
RH2 ( Segments Left=0,
Address[1]=MR2.HoA,
Address[2]=MR1.CoA )
AH/ESP Hdr
Mobility Hdr
BA (status=ARO-OK)
Since MR1 has a SA with HA1, MR1 processes AH/ESP. After that,
MR1 knows that the BU it sent previously was accepted by HA1.
C.2.2. LFN1 sends packet to CN1
(1) LFN1 sends packet to CN1
Packet sent from LFN1 to CN1 looks like this:
IPv6 Hdr (src=LFN1, dst=CN1)
Data
(2) MR1 receives packet from LFN1
MR1 notices the packet does not have NEMO-Fwd RAO in it, thus MR1
encapsulate it. Since access router of MR1 is NEMO-enabled, MR1
adds NEMO-Fwd RAO to the outer packet.
Packet sent from MR1 to MR2 looks like this:
IPv6 Hdr (src=MR1.CoA, dst=HA1)
Hop-by-Hop Opt
RAO (NEMO-Fwd)
Dst Opt
HAO (MR1.HoA)
AH/ESP Hdr
Encapsulated IPv6 Hdr (src=LFN1, dst=CN1)
Data
(3) MR2 receives packet from MR1
MR2 notices the packet has NEMO-Fwd RAO in it, but MR2 does not
have binding to the destination (=HA1), thus MR2 encapsulates the
packet and tunnels to HA2. Since access router of MR2 is not
NEMO-enabled, MR2 does not add NEMO-Fwd RAO to outer packet.
Packet sent from MR2 to HA2 looks like this:
IPv6 Hdr (src=MR2.CoA, dst=HA2)
Dst Opt
HAO (MR2.CoA)
AH/ESP Hdr
Encapsulated IPv6 Hdr (src=MR1.CoA, dst=HA1)
Hop-by-Hop Opt
RAO (NEMO-Fwd)
Dst Opt
HAO (MR1.HoA)
AH/ESP Hdr
Encapsulated IPv6 Hdr (src=LFN1, dst=CN1)
Data
(4) HA2 receives packet from MR2
HA2 receives the packet and verify that the source address is
valid using the algorithm described in Figure 2 of Section 5.3.
The packet is decapsulated and the inner packet is forwarded to
HA1.
The packet from HA2 to HA1 looks like this:
IPv6 Hdr (src=MR1.CoA, dst=HA1)
Hop-by-Hop Opt
RAO (NEMO-Fwd)
Dst Opt
HAO (MR1.HoA)
AH/ESP Hdr
Encapsulated IPv6 Hdr (src=LFN1, dst=CN1)
Data
(5) HA1 receives packet from HA2
HA1 receives the packet and verify that the source address is
valid using the algorithm described in Figure 2 of Section 5.3.
The packet is decapsulated and the inner packet is forwarded to
CN1.
C.2.3. CN1 sends packet to LFN1
(1) CN1 sends packet to LFN1
Packet sent from CN1 to LFN1 looks like this:
IPv6 Hdr (src=CN1, dst=LFN1)
Data
(2) HA1 receives packet from CN1
Since address of LFN1 belongs to MR1, the packet is routed to HA1.
HA1 notices MR1 is away from home, thus HA1 encapsulates the
packet and constructs an extended RH2.
Packet sent from HA1 looks like this:
IPv6 Hdr (src=HA1, dst=MR2.HoA)
RH2 ( Segments Left=2,
Address[1]=MR1.CoA,
Address[2]=MR1.HoA )
AH/ESP Hdr
Encapsulated IPv6 Hdr (src=CN1, dst=LFN1)
Data
(3) HA2 receives packet from HA1
Since the packet is addressed to MR2.HoA, it is routed to HA2.
HA2 notices MR2 is away from home, thus HA2 encapsulates the
packet and forwards to MR2.
Packet sent from HA2 looks like this:
IPv6 Hdr (src=HA2, dst=MR2.CoA)
RH2 ( Segments Left=1,
Address[1]=MR2.HoA )
AH/ESP Hdr
Encapsulated IPv6 Hdr (src=HA1, dst=MR2.HoA)
RH2 ( Segments Left=2,
Address[1]=MR1.CoA,
Address[2]=MR1.HoA )
AH/ESP Hdr
Encapsulated IPv6 Hdr (src=CN1, dst=LFN1)
Data
(4) MR2 receives packet from HA2
MR2 receives the packet and processes the RH2. MR2 notices that
the Segments Left field is 1 and verifies that the last address in
RH2 is its own home-address. It decapsulates the packet and
process the inner packet.
The inner packet has destination field equals to the home-address
of MR2. So MR2 processes the inner packet, and updates the RH2 of
the inner packet. It verifies that the new destination is a valid
address in its ingress interface, and sends it off.
Packet sent from MR2 to MR1 looks like this:
IPv6 Hdr (src=HA2, dst=MR1.CoA)
RH2 ( Segments Left=1,
Address[1]=MR2.HoA,
Address[2]=MR1.HoA )
AH/ESP Hdr
Encapsulated IPv6 Hdr (src=CN1, dst=LFN1)
Data
(5) MR1 receives packet from MR2
MR1 receives the packet and processes the RH2. MR1 notices that
the Segments Left field is 1 and verifies that the last address in
RH2 is its own home-address. It decapsulates the packet and sends
the inner packet to LFN1.
C.2.4. MR2 establishes binding to HA1
Since MR2 notices there is a request to directly forward packet to
HA1, MR2 starts to establish binding with HA1.
(1) MR2 performs Return Routability test to HA1
(2) MR2 sends BU to HA1
BU sent from MR1 to HA1 looks like this:
IPv6 Hdr (src=MR2.CoA, dst=HA1)
Dst Opt
HAO (MR2.HoA)
Mobility Hdr
BU (A bit=1, Binding Auth data option)
(3) HA1 processes the BU
Next HA1 checks Binding Auth data. Then HA1 creates/updates
binding entry for MR2.
Binding Cache of HA1 has following entries:
Home Address Care-of Address Access Router
------------ --------------- -------------
MR1.HoA MR1.CoA MR2.HoA
MR2.HoA MR2.CoA <invalid>
(4) HA1 sends BA to MR2
BA sent from HA1 to MR2 looks like this.
IPv6 Hdr (src=HA1, dst=MR2.CoA)
RH2 ( Segments Left=1,
Address[1]=MR2.HoA )
AH/ESP Hdr
Mobility Hdr
BA(status=0)
C.2.5. LFN1 sends packet to CN1
(1) LFN1 sends packet to CN1
Packet sent from LFN1 to CN1 looks like this:
IPv6 Hdr (src=LFN1, dst=CN1)
Data
(2) MR1 receives packet from LFN1
MR1 notices the packet does not have NEMO-Fwd RAO in it, MR1
encapsulates it and adds NEMO-Fwd RAO to outer packet. Packet
sent from MR1 to MR2 looks like this:
IPv6 Hdr (src=MR1.CoA, dst=HA1)
Hop-by-Hop Opt
RAO (NEMO-Fwd)
Dst Opt
HAO (MR1.HoA)
AH/ESP Hdr
Encapsulated IPv6 Hdr (src=LFN1, dst=CN1)
Data
(3) MR2 receives packet from MR1
MR2 notices the packet has NEMO-Fwd RAO in it, and MR2 has binding
to the destination (=HA1), thus MR2 changes the source address to
MR2.CoA and sends the packet directly to HA1. Since access router
of MR2 is not NEMO-enabled, MR2 changes NEMO-Fwd to NEMO-NFwd RAO.
Packet sent from MR2 to HA1 looks like this:
IPv6 Hdr (src=MR2.CoA, dst=HA1)
Hop-by-Hop Opt
RAO (NEMO-NFwd)
Dst Opt
HAO (MR1.HoA)
AH/ESP Hdr
Encapsulated IPv6 Hdr (src=LFN1, dst=CN1)
Data
(4) HA1 receives packet from MR2
HA1 receives the packet and verify that the source address is
valid using the algorithm described in Figure 2 of Section 5.3.
The packet is decapsulated and the inner packet is forwarded to
CN1.
C.2.6. CN1 sends packet to LFN1
(1) CN1 sends packet to LFN1
Packet sent from LFN1 to CN1 looks like this:
IPv6 Hdr (src=CN1, dst=LFN1)
Data
(2) HA1 receives packet from CN1
HA1 intercepts the packet from CN1 to LFN1 and encapsulates it.
Using the algorithm given in Figure 3 of Section 5.4, HA1
constructs a RH2 and attaches it to the outer packet.
Packet sent from HA1 to MR1 looks like this:
IPv6 Hdr (src=HA1, dst=MR2.CoA)
RH2 ( Segments Left=2,
Address[1]=MR1.CoA,
Address[2]=MR1.HoA )
AH/ESP Hdr
Encapsulated IPv6 Hdr (src=CN1, dst=LFN1)
Data
(3) MR2 receives packet from HA1
MR2 receives the packet and processes the RH2. The Segments Left
field is decremented, and the destination address in the IPv6
header is swapped with the next address in RH2. MR2 checks that
the new destination address is a valid address in its ingress
interface, and sends the packet out.
Packet sent from MR2 to MR1 looks like this:
IPv6 Hdr (src=HA1, dst=MR1.CoA)
RH2 ( Segments Left=1,
Address[1]=MR2.CoA,
Address[2]=MR1.HoA )
AH/ESP Hdr
Encapsulated IPv6 Hdr (src=CN1, dst=LFN1)
Data
(4) MR1 receives packet from MR2
MR1 receives the packet and processes the RH2. MR1 notices that
the Segments Left field is 1 and verifies that the last address in
RH2 is its own home-address. The inner packet is decapsulated and
sent to LFN1.
C.3. MR2 moves to new location
In this section, the messages exchange is described after MR2 moves Phone: +65 65505420
to a new location. This section will demonstrate that a change in EMail: cwng@psl.com.sg
attachment of the upper level mobile router is transparent to nested
nodes. Note that the binding update between MR2 and HA2 is not shown.
C.3.1. MR2 sends binding update to HA1 Jun Hirano
Matsushita Electric Industrial Co., Ltd. (Panasonic)
5-3 Hikarino-oka
Yokosuka, Kanagawa 239-0847
JP
After MR2 obtains a new care-of-address, it sends a new binding Phone: +81 46 840 5123
update to HA1 since HA1 is on the Binding Update List of MR2. EMail: hirano.jun@jp.panasonic.com
(1) MR2 performs Return Routability test to HA1 Appendix A. Acknowledgement
(2) MR2 sends BU to HA1 The authors would like to express our sincere gratitude to Takeshi
Tanaka for his contribution to the initial version of this draft. In
addition, appreciation is also extended to Thierry Ernst, Pascal
Thubert, and various people in the NEMO WG who have given us valuable
comments.
BU sent from MR2 to HA1 looks like this: Intellectual Property Statement
IPv6 Hdr (src=MR2.CoA, dst=HA1) The IETF takes no position regarding the validity or scope of any
Dst Opt Intellectual Property Rights or other rights that might be claimed to
HAO (MR2.HoA) pertain to the implementation or use of the technology described in
Mobility Hdr this document or the extent to which any license under such rights
BU (Binding Auth data option) 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.
(3) HA1 processes the BU Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use of
such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr.
Next HA1 checks Binding Auth data. Then HA1 updates binding entry The IETF invites any interested party to bring to its attention any
for MR2. 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.
Binding Cache of HA1 has following entries: Disclaimer of Validity
Home Address Care-of Address Access Router This document and the information contained herein are provided on an
------------ --------------- ------------- "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
MR1.HoA MR1.CoA MR2.HoA OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
MR2.HoA MR2.nCoA <invalid> ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
It should be noted that the state of the Binding Cache is very Copyright Statement
similar to the state at Section C.2.4. Thus packets sent from
LFN1 and CN1 to each other will go through only one level of
encapsulation, as illustrated in Sections C.2.5 and C.2.6.
This serves to demonstrate a change in attachment of the upper Copyright (C) The Internet Society (2004). This document is subject
level mobile router is transparent to nested nodes. to the rights, licenses and restrictions contained in BCP 78, and
except as set forth therein, the authors retain all their rights.
Additional References Acknowledgment
[21] Soliman, H., Castelluccia, C., El-Malki, K., and Bellier, L., Funding for the RFC Editor function is currently provided by the
"Hierarchical MIPv6 Mobility Management (HMIPv6)", Internet Internet Society.
Draft: draft-ietf-mobileip-hmipv6-07-txt, Work In Progress, Oct
2002.
 End of changes. 292 change blocks. 
1749 lines changed or deleted 1412 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/