RFC 5096 PROPOSED STANDARD MOBILE IPV6 · EXPERIMENTS · MOBILITY

MIPv6 Experiments: Mobile IPv6 Experimental Messages

Spare message and option types so people can experiment with Mobile IPv6 without grabbing real code points.

On rfc-editor.org ↗
PUBLISHED
December 2007
AUTHORS
V. Devarapalli
STREAM
IETF
EXPERIMENTAL MH TYPE
11
EXPERIMENTAL OPTION TYPE
18
HEADER LEN WITH NO DATA
0
PADDING IF NO DATA
2 bytes
BINDING ERROR STATUS FOR UNKNOWN TYPE
2
DOI
10.17487/RFC5096

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                     V. Devarapalli
Request for Comments: 5096                               Azaire Networks
Category: Standards Track                                  December 2007


                   Mobile IPv6 Experimental Messages

Status of This Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the "Internet
   Official Protocol Standards" (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Abstract

   This document defines a new experimental Mobility Header message and
   a Mobility option that can be used for experimental extensions to the
   Mobile IPv6 protocol.

Table of Contents

   1. Introduction ....................................................1
   2. Terminology .....................................................2
   3. Experimental Mobility Header Message ............................3
   4. Experimental Mobility Option ....................................3
   5. Security Considerations .........................................4
   6. IANA Considerations .............................................5
   7. Acknowledgements ................................................5
   8. References ......................................................5
      8.1. Normative References .......................................5
      8.2. Informative References .....................................5

1.  Introduction

   When experimenting with a protocol or defining a new extension to a
   protocol, one needs either a protocol number, a new message, or an
   option to carry the information related to the experiment.  Most
   implementations end up using unassigned values for the new messages.
   Many times this creates problems when the same value is assigned
   through the IETF standards action, by IANA, or if the implementation
   gets deployed with these messages.  Therefore, it is considered a
   good practice to set aside some code points that identify the
   experimental protocols or messages for experimental purposes.  The
   need for experimental messages is shown in [3].

   This document defines new messages for experimenting with extensions
   to the Mobile IPv6 protocol.  These messages should be strictly used
   for experiments.  Experiments that are successful should be
   standardized in the IETF.  An implementation MUST NOT be released or
   deployed with the experimental messages.

   This document defines a new Mobility Header message, which is the
   Experimental Mobility message that can be sent at any time by the
   mobile node, the home agent or the correspondent node.  Since
   Mobility Header messages cannot be combined and sent in one packet,
   there is always only one Mobility Header message in any Mobile IPv6
   packet.  Home agent or correspondent node implementations that do not
   recognize the mobility message type, discard the message and send a
   Binding Error message as described in [2], with the Status field set
   to 2 (unrecognized MH Type value).  Mobile nodes that do not
   recognize the mobility message type should discard the message and
   send an ICMP Parameter problem with code 0.

   This document also defines a new mobility option, the Experimental
   Mobility option, which can be carried in any Mobility Header message.
   Mobility options, by definition, can be skipped if an implementation
   does not recognize the mobility option type [2].

   The messages defined in this document can also be used for Network
   Mobility (NEMO) [4] and Proxy Mobile IPv6 [5] since these protocols
   also use Mobility Header messages.

   Experimental code points could potentially disrupt a deployed network
   when experiments using these code points are performed in the
   network.  Therefore, the network scope of support for experimental
   values should carefully be evaluated before deploying any experiment
   across extended network domains, such as the public Internet.

   Experimental mechanisms should only be used for actual
   experimentation.  By design, only a single code point is allocated
   for the message and another one for the option.  This limits the
   number of experiments among a set of peers to one at a time.  When
   experimental mechanisms are shown to be useful, and there is a desire
   to deploy them beyond the experiment they should be standardized and
   given new code points.

2.  Terminology

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in [1].

3.  Experimental Mobility Header Message

   The Experimental Mobility Header message is based on the Mobility
   Header message defined in Section 6.1 of RFC 3775 [2].  There are no
   fields in the message beyond the required fields in the Mobility
   Header.  The 'MH Type' field in the Mobility Header indicates that it
   is an Experimental Mobility Header message.

   If no data is present in the message, two bytes of padding are
   required.  The 'Header Len' field in the Mobility Header is set to 0
   since the first 8 octets are excluded while calculating the length of
   the Mobility Header message.

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | Payload Proto |  Header Len   |   MH Type     |   Reserved    |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |           Checksum            |                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               |
      |                                                               |
      .                                                               .
      .                       Message Data                            .
      .                                                               .
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   See RFC 3775 [2] for a description of the 'Payload Proto', 'Header
   Len', 'MH Type', 'Reserved', and 'Checksum' fields.

   The 'Message Data' field carries the data specific to the
   experimental protocol extension.  The total length of the message is
   indicated by the 'Header Len' field in the Mobility Header.

4.  Experimental Mobility Option

   The Experimental Mobility option can be included in any Mobility
   Header message.  If the Mobility Header message includes a Binding
   Authorization Data option [2], then the Experimental Mobility option
   should appear before the Binding Authorization Data option.

       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     Type      |   Length      |        Data .....
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   Type

      An 8-bit field indicating that it is an experimental mobility
      option.

   Length

      An 8-bit field indicating the length of the option in octets
      excluding the Type and Length fields.

   Data

      Data related to the experimental protocol extension.

5.  Security Considerations

   Protection for the Experimental Mobility Header message and Mobility
   option depends on the experiment that is being carried out and the
   kind of information that is being carried in the messages.  If these
   messages carry information that should not be revealed on the wire,
   or that can affect the binding cache entry at the home agent or the
   correspondent node, they should be protected in a manner similar to
   Binding Updates and Binding Acknowledgements.

   Security analyzers such as firewalls and network intrusion detection
   monitors often rely on unambiguous interpretations of the fields
   described in this document.  As new values for the fields are
   assigned, existing security analyzers that do not understand the new
   values may fail, resulting in either loss of connectivity, if the
   analyzer declines to forward the unrecognized traffic, or in loss of
   security if it does forward the traffic and the new values are used
   as part of an attack.

   When experimental code points are deployed within an administratively
   self-contained network domain, it must be ensured that each code
   point is used consistently to avoid interference between experiments.
   When experimental code points are used in traffic that crosses
   multiple administrative domains, the experimenters should assume that
   there is a risk that the same code points will be used simultaneously
   by other experiments and that there is a possibility that the
   experiments will interfere.  Particular attention should be given to
   security threats that such interference might create.  Please see RFC
   4727 for more details [6].

6.  IANA Considerations

   The Experimental Mobility Header message, defined in Section 3, has
   been assigned the type value (11), allocated from the same space as
   the 'MH Type' field in the Mobility Header [2].

   The Experimental Mobility option, defined in Section 4, has been
   assigned the type value (18), allocated from the same space as
   Mobility Options [2].

7.  Acknowledgements

   The author would like to thank Jari Arkko and Basavaraj Patil with
   whom the contents of this document were discussed first.

8.  References

8.1.  Normative References

   [1]   Bradner, S., "Key words for use in RFCs to Indicate Requirement
         Levels", BCP 14, RFC 2119, March 1997.

   [2]   Johnson, D., Perkins, C., and J. Arkko, "Mobility Support in
         IPv6", RFC 3775, June 2004.

8.2.  Informative References

   [3]   Narten, T., "Assigning Experimental and Testing Numbers
         Considered Useful", BCP 82, RFC 3692, January 2004.

   [4]   Devarapalli, V., Wakikawa, R., Petrescu, A., and P. Thubert,
         "Network Mobility (NEMO) Basic Support Protocol", RFC 3963,
         January 2005.

   [5]   Gundavelli, S., "Proxy Mobile IPv6", Work in Progress, March
         2007.

   [6]   Fenner, B., "Experimental Values In IPv4, IPv6, ICMPv4, ICMPv6,
         UDP, and TCP Headers", RFC 4727, November 2006.

Author's Address

   Vijay Devarapalli
   Azaire Networks
   4800 Great America Pkwy
   Santa Clara, CA 95054
   USA

   EMail: vijay.devarapalli@azairenet.com

Full Copyright Statement

   Copyright (C) The IETF Trust (2007).

   This document is subject to the rights, licenses and restrictions
   contained in BCP 78, and except as set forth therein, the authors
   retain all their rights.

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
   THE INTERNET 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.

Intellectual Property

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   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.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.

AI ELI5

On this page
PROBLEMExperimenters extending Mobile IPv6 often borrow unassigned values for new messages, which causes clashes when the same value is later assigned or the experiment gets deployed.
MECHANISMThe RFC defines one Experimental Mobility Header message (type 11) and one Experimental Mobility option (type 18) with free-form data.
THE CATCHThey are for experiments only: implementations MUST NOT be released or deployed with them, and successful experiments should be standardized with new code points.

§1Why Reserve Experimental Code Points

To experiment with a protocol, you need a protocol number, a new message or an option to carry your data. Most implementations pick unassigned values, which causes trouble when the same value is later assigned through IETF standards action or by IANA, or when the implementation is deployed. So the RFC says it is good practice to set aside code points for experimental use. The need is shown in RFC 3692.

This document does that for Mobile IPv6. The messages should be used strictly for experiments, successful experiments should be standardized in the IETF, and an implementation MUST NOT be released or deployed with the experimental messages.

If everyone scribbles their test ideas on any blank page they find, they will overwrite each other. So this sets aside one page just for testing.

§1.1How the Messages Behave

The Experimental Mobility message can be sent at any time by the mobile node, the home agent or the correspondent node. Mobility Header messages cannot be combined, so there is always only one in any Mobile IPv6 packet.

A home agent or correspondent node that does not recognize the message type discards it and sends a Binding Error message (RFC 3775) with the Status field set to 2 (unrecognized MH Type value). A mobile node that does not recognize it should discard it and send an ICMP Parameter problem with code 0. Mobility options can be skipped if not recognized.

The messages can also be used for Network Mobility (NEMO, RFC 3963) and Proxy Mobile IPv6, since those also use Mobility Header messages.

If a device does not understand the test message, it just ignores it politely, and some devices send back a short note saying so.

§3The Experimental Mobility Header Message

The message is based on the Mobility Header of Section 6.1 of RFC 3775. It has no fields beyond the required Mobility Header ones: Payload Proto, Header Len, MH Type, Reserved and Checksum, which RFC 3775 describes. The MH Type value marks it as experimental.

The Message Data field carries data specific to the experiment. If no data is present, two bytes of padding are required, and Header Len is set to 0 because the first 8 octets are excluded when calculating the length.

It is a normal Mobile IPv6 envelope with a label saying "experiment", and an empty space inside for whatever you want to test.

EXPERIMENTAL MOBILITY HEADER MESSAGE (RFC 5096)
Experimental Mobility Header message
FieldNameSizeValueDescription
PAYLOAD-PROTOPayload Proto1 byteStandard Mobility Header field, described in RFC 3775.
HEADER-LENHeader Len1 byte0Set to 0 when there is no data, since the first 8 octets are excluded.
MH-TYPEMH Type1 byte11Marks the message as an Experimental Mobility Header message.
RESERVEDReserved1 byteStandard Mobility Header field, described in RFC 3775.
CHECKSUMChecksum2 bytesStandard Mobility Header field, described in RFC 3775.
MESSAGE-DATAMessage Data2 bytesVariable-length data for the experiment; two bytes of padding if there is none.

§4The Experimental Mobility Option

The Experimental Mobility option can be included in any Mobility Header message. If the message also has a Binding Authorization Data option, the experimental option should appear before it.

It has three parts: Type, an 8-bit field marking an experimental mobility option; Length, an 8-bit field giving the option length in octets, excluding the Type and Length fields; and Data, which relates to the experimental extension.

If the message is a letter, the option is a sticky note you can attach to any letter to carry extra test information.

EXPERIMENTAL MOBILITY OPTION (RFC 5096)
Experimental Mobility option
FieldNameSizeValueDescription
TYPEType1 byte18Indicates an experimental mobility option.
LENGTHLength1 byteOption length in octets, excluding Type and Length.
DATAData2 bytesData related to the experimental extension; variable length.

§5Security Considerations

Protection depends on the experiment. If the messages carry information that should not be revealed or that can affect the binding cache entry at the home agent or correspondent node, they should be protected like Binding Updates and Binding Acknowledgements.

Firewalls and intrusion detection monitors rely on unambiguous readings of these fields. An analyzer that does not understand new values may fail, either losing connectivity if it drops unrecognized traffic, or losing security if it forwards it and the values are used in an attack.

Within one administrative domain, each code point must be used consistently. Across several domains, experimenters should assume other experiments may use the same code points at once and interfere. See RFC 4727.

Test messages can still be dangerous if they carry secrets or confuse guards. Because only one test slot exists, other people's tests may bump into yours.

§6Assigned Values

The Experimental Mobility Header message has been assigned type value 11, from the same space as the MH Type field in the Mobility Header. The Experimental Mobility option has been assigned type value 18, from the same space as Mobility Options.

By design only a single code point is allocated for the message and another for the option, which limits experiments among a set of peers to one at a time.

The test envelope is number 11 and the test sticky note is number 18. There is only one of each, so only one test at a time.

§7References