Internet DRAFT - draft-pfeifer-6man-exthdr-res

draft-pfeifer-6man-exthdr-res






Internet Engineering Task Force                          H. Pfeifer, Ed.
Internet-Draft                                             Protocol Labs
Intended status: Standards Track                      September 11, 2011
Expires: March 14, 2012


                 IPv6 Extension Headers Reserved Space
                  draft-pfeifer-6man-exthdr-res-01.txt

Abstract

   This document specify a mechanism to allow IPv6 stack implementation
   to parse upcoming IPv6 extension header by reserving a small range of
   protocol numbers for well defined IPv6 extension headers.  IPv6 stack
   implementors can code these range into their network stack a priori.
   These reserved range provide an guarantee that a given next header is
   a well formed extension header and not a next layer protocol.
   Operators, companies, vendors et cetera are in the ability to deploy
   and test not standardized extension headers without modifying every
   middle box parsing the complete extension header chain in between.

Status of this Memo

   This Internet-Draft is submitted to IETF in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   This Internet-Draft will expire on March 14, 2012.

Copyright Notice

   Copyright (c) 2011 IETF Trust and the persons identified as the
   document authors.  All rights reserved.



Pfeifer                  Expires March 14, 2012                 [Page 1]

Internet-Draft              Abbreviated Title             September 2011


   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the BSD License.


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . 3
     1.1.  Requirements Language . . . . . . . . . . . . . . . . . . . 3
   2.  Overview  . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
   3.  Extension Header Encoding . . . . . . . . . . . . . . . . . . . 4
   4.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . 5
   5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 5
   6.  Security Considerations . . . . . . . . . . . . . . . . . . . . 5
   7.  Normative References  . . . . . . . . . . . . . . . . . . . . . 6
   Appendix A.  Implementation Example . . . . . . . . . . . . . . . . 6
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . . . 7




























Pfeifer                  Expires March 14, 2012                 [Page 2]

Internet-Draft              Abbreviated Title             September 2011


1.  Introduction

   Optional IPv6 protocol information are encoded in extension header
   between the basic IPv6 header and the next layer protocol.  Next
   layer protocols such as TCP or UDP are encoded in a non uniform
   manner.  Network stacks that process the extension header chain are
   required to know the exact encoding of all stagged headers until the
   required next layer protocol is detected.  If a unknown protocol or
   extension header lies between the processing must be stopped.

   Extension header are normally not processed on intermediate nodes
   [RFC2460].  Intermediate nodes are urged to not examine or process
   any extension header.  One exception is is the hop-by-hop options
   header which must be processed.  Sometimes nodes along a packet's
   delivery path are required to parse the complete extension header
   chain to analyze the transport layer protocol.  Middleboxes which
   analyze the transport protocol header are the most prominent example.
   Firewalls or network proxies are the most prominent examples.  Middle
   boxes have no possibility to resolve this circumstance cleanly.
   Firewalls are likely to drop the packet.

   End-boxed following [RFC2460] generate a ICMP Parameter Problem
   message if an unknown extension header is detected.  Providing the
   sender enough information to resend the packet without the extension
   header.

   [I-D.ietf-6man-exthdr] defines a standard format to unify the layout
   of IPv6 extension header and advised to use the IPv6 Destination
   Options Header.  Thus providing a way that future extensions are
   encoded in a consistent manner.  This is the first part to address
   this unlucky fact.  The second half of the problem lies in the fact
   that the next header space is shared with the protocol number.
   Network stack cannot differentiate if an unknown code-point declaring
   an extension header or an protocol.

1.1.  Requirements Language

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


2.  Overview

   This mechanism provide middle boxes the chance to process up to now
   new extension header and simultaneous do not constrain the
   possibility to introduce new extension header in future by reserving
   a small fraction of protocol number space.



Pfeifer                  Expires March 14, 2012                 [Page 3]

Internet-Draft              Abbreviated Title             September 2011


   Future IPv6 extensions which cannot encoded in one of the existing
   extension header MUST follow the encoding specification in
   [I-D.ietf-6man-exthdr].  Upcoming standardized extension header
   following the proposal MUST be reserved from this space.  Network
   stacks are provided with a guarantee that these extension headers
   follow the specification.

   Currently 60% of the space is already allocated.  Thus to be
   conservative a good compromise is to reserve the range between 245
   and 252 (7).  This leave space for 98 new next layer protocols, 98
   extension header not following the proposal or any combination of
   both.  Upcoming standardized extension header following the proposal
   MUST be reserved from this space.

   Providing an guarantee of the encoding makes it possible that vendors
   and other parties implement proprietary extension header without
   standardization and wait years of enrollment of new middle-boxes
   supporting the new extension header.


3.  Extension Header Encoding

   The following figure illustrate the format of the unified extension
   header format.  It will be removed if [I-D.ietf-6man-exthdr] is
   approved.


























Pfeifer                  Expires March 14, 2012                 [Page 4]

Internet-Draft              Abbreviated Title             September 2011


   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Next Header  |  Hdr Ext Len  |                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
   |                                                               |
   .                                                               .
   .                  Header Specific Data                         .
   .                                                               .
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Next Header          8-bit selector.  Identifies the type of header
                        immediately following the Extension header.
                        Uses the same values as the IPv4 Protocol
                        field.
   Hdr Ext Len          8-bit unsigned integer.  Length of the
                        Extension header in 8-octet units, not
                        including the first 8 octets.
   Header Specific      Variable length. Fields specific to the
   Data                 extension header

                       Uniform IPv6 Extension Header

                                 Figure 1


4.  Acknowledgements

   The author thank Suresh Krishnan, James Woodyatt, Erik Kline, James
   Hoagland, Manav Bhatia and all other people involved in
   [I-D.ietf-6man-exthdr].


5.  IANA Considerations

   This document includes a request to IANA.  The editors of this draft
   request the protocol number 245 till 252 be reserved for uniform
   formated IPv6 extension header


6.  Security Considerations

   Filled later







Pfeifer                  Expires March 14, 2012                 [Page 5]

Internet-Draft              Abbreviated Title             September 2011


7.  Normative References

   [I-D.ietf-6man-exthdr]
              Krishnan, S., Woodyatt, J., Kline, E., Hoagland, J., and
              M. Bhatia, "An uniform format for IPv6 extension headers",
              draft-ietf-6man-exthdr-04 (work in progress), July 2011.

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

   [RFC2460]  Deering, S. and R. Hinden, "Internet Protocol, Version 6
              (IPv6) Specification", RFC 2460, December 1998.


Appendix A.  Implementation Example

   The following patch applied on net-next-2.6 add support for the code-
   point reservation.

   diff --git a/net/ipv6/exthdrs_core.c b/net/ipv6/exthdrs_core.c
   index 14ed0a9..d7f2e97 100644
   --- a/net/ipv6/exthdrs_core.c
   +++ b/net/ipv6/exthdrs_core.c
   @@ -4,6 +4,9 @@
     */
    #include <net/ipv6.h>

   +#define        IP6_EXTHDR_RESERVED_MIN 245
   +#define        IP6_EXTHDR_RESERVED_MAX 252
   +
    /*
     * find out if nxthdr is a well-known extension header or a protocol
     */
   @@ -18,7 +21,8 @@ int ipv6_ext_hdr(u8 nexthdr)
                    (nexthdr == NEXTHDR_FRAGMENT)  ||
                    (nexthdr == NEXTHDR_AUTH)      ||
                    (nexthdr == NEXTHDR_NONE)      ||
   -                (nexthdr == NEXTHDR_DEST);
   +                (nexthdr == NEXTHDR_DEST)      ||
   +                (nexthdr >= IP6_EXTHDR_RESERVED_MIN &&
   +                 nexthdr <= IP6_EXTHDR_RESERVED_MAX);
    }

                                 Figure 2







Pfeifer                  Expires March 14, 2012                 [Page 6]

Internet-Draft              Abbreviated Title             September 2011


Author's Address

   Hagen Paul Pfeifer (editor)
   Protocol Labs
   Hofmannstr. 19
   81379, Munich
   Germany

   Phone: +49 174 5455 209
   Email: hagen.pfeifer@protocollabs.com
   URI:   http://www.protocollabs.com








































Pfeifer                  Expires March 14, 2012                 [Page 7]