Internet DRAFT - draft-dupont-destoptupd
draft-dupont-destoptupd
Internet Engineering Task Force Francis Dupont
INTERNET DRAFT ENST Bretagne
Expires in May 2001 November 16, 2000
IPv6 destination option header clarification
<draft-dupont-destoptupd-00.txt>
Status of this Memo
This document is an Internet Draft and is in full conformance with
all provisions of Section 10 of RFC 2026.
This document is an Internet-Draft. 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.
Distribution of this memo is unlimited.
Abstract
The current IPv6 specification [1] is not very clear about
destination option headers and is very hard to implement. For
instance the advanced API [2] has to artificially limit the freedom
in header placement in order to make it trackable.
The purpose of this document is to propose a simpler to understand
and easier to implement specification for some particular points,
mainly for destination option headers which will be heavily used for
mobility [3].
1. Terminology
This document will heavily use the order of headers, the IPv6 header
will be the first header, a hop-by-hop header can come "after" (or
the IPv6 header is "before" the hop-by-hop header). The first item
will be at the top of a list:
IPv6 header
Hop-by-hop Option header
...
draft-dupont-destoptupd-00.txt [Page 1]
INTERNET-DRAFT IPv6 destination option header clarification Nov 2000
The keywords "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 [4].
2. Problems with current specification
The current specification states that the order SHOULD be:
IPv6 header
Hop-by-Hop Options header
Destination Options header (note 1)
Routing header
Fragment header
Authentication header (note 2)
Encapsulating Security Payload header (note 2)
Destination Options header (note 3)
upper-layer header
note 1: for options to be processed by the first destination
that appears in the IPv6 Destination Address field
plus subsequent destinations listed in the Routing
header.
note 3: for options to be processed only by the final
destination of the packet.
(note 2 says that IPsec specification [5] does additional
recommendation about the relative order of IPsec headers)
The only restriction is the hop-by-hop option header can occur
only once and just after the IPv6 header.
There are four problems with this:
- the IPComp IPsec header [6] was forgotten
- a destination option header at the note 1 placement makes
no sense if there is no routing header, ie. a routing
header MUST occur after a note 1 destination option header
- for home address [3] and tunnel encapsulation limit [7]
destination option, the good location is between the routing
header and the fragment header
- to have more than possible location for a header of the same
type gives too complex implementations and this is the case
for the destination option header.
draft-dupont-destoptupd-00.txt [Page 2]
INTERNET-DRAFT IPv6 destination option header clarification Nov 2000
3. Why a new location for destination option header
Any header or option which modifies the source or destination
address of a packet (ie. routing header and home address option)
MUST be before IPsec headers because of processing rules of
inbound IPsec headers ([5], section 5.2.1):
- the destination address is used for the Security Association
lookup
- the source address can be used for the Security Association
selector check.
The home address option is for the final destination then the
note 1 location does not apply to it (ie. it SHOULD be after
routing header). In order to be firewall-friendly the home
address option SHOULD be in every fragments then the good
location is between the routing header (if any) and the
fragment header (if any).
The tunnel encapsulation limit SHOULD be available to any
encapsulator device in any fragment in order to apply the
limit when it is reached.
4. New types for destination option headers
Destination option header processing is hard with two different
locations with different meanings. With three the situation
becomes too complex then we propose to use a different type
for two of the three locations:
- the before routing header location (note 1) will be named
the Intermediate Destination Options header and should get
a new type from IANA if there is a consensus to keep it
- the between routing and fragment header (new one) will keep
the Destination Options header name and type
- the after IPsec headers will be named the Final Destination
Options header and should get a new type from IANA.
5. Rationale for mutable options
It does not make sense to put a mutable option after the (last)
routing header (because nothing should change it) and to allow
mutable options after a IPsec header makes IPsec processing
too complex. Note there is no defined mutable options today.
Then we propose to add a mandatory behavior in new mutable
option definition for misplaced cases, for instance reject
the packet (ie. raise an error) or deal with the option as
immutable (ie. ignore the mutable flag after a IPsec header).
A new mutable option SHOULD be in the hop-by-hop or in the
intermediate destination option headers.
draft-dupont-destoptupd-00.txt [Page 3]
INTERNET-DRAFT IPv6 destination option header clarification Nov 2000
6. Per-option rationale
If an option cannot occur in an option header and is found
in it then it MUST be considered as unrecognized.
Pad1: can occur in any option header
PadN: can occur in any option header
Jumbo Payload: can occur only in the hop-by-hop option header
NSAP Address: can occur only in the destination and
the final destination option header
Tunnel Encapsulation Limit: can occur only in the destination
option header
Router Alert: can occur only in the hop-by-hop option header
Binding Update: can occur only in the final destination
option header
Binding Acknowledgment: can occur only in the final
destination option header
Binding Request: can occur only in the final destination
option header
Home Address: can occur only in the destination option header
Endpoint Identification: we don't know, seems to be the same
than for NSAP Address.
7. Security Considerations
Processing rules of inbound IPsec headers makes mandatory
to have the home address destination option before any IPsec
header.
IPComp can use or not use an IPComp Association then in some
situations (no IPComp Association and no other IPsec header)
the IPsec header rule does not apply. This issue should be
addressed by the revised IPComp specification.
8. Acknowledgements
My MobiSecV6 colleagues who developed IPv6 and mobile IPv6
support for a commercial firewall first showed the need for
a new destination option header location. Charles Perkins
refound the idea for the mobile IPv6 protocol.
At the ETSI bake-off, IPv6 implementors complained that
the destination option header processing becomes a nightmare.
Mohan Parthasarathy and Robert Elz convinced me (by very
different way) the issue must be addressed as soon as possible.
Brian Zill explained the mutable option issue and Vladislav
Yasevich proposed the Intermediate name.
draft-dupont-destoptupd-00.txt [Page 4]
INTERNET-DRAFT IPv6 destination option header clarification Nov 2000
9. References
[1] S. Deering, R. Hinden, "Internet Protocol, Version 6 (IPv6)
Specification", RFC 2460, December 1998.
[2] W. Stevens, M. Thomas, "Advanced Sockets API for IPv6",
RFC 2292, February 1998.
[3] D. Johnson, C. Perkins, "Mobility Support in IPv6",
draft-ietf-mobileip-ipv6-13.txt, November 2000.
[4] S. Bradner, "Key words for use in RFCs to Indicate
Requirement Levels", RFC 2119, March 1997.
[5] S. Kent, R. Atkinson, "Security Architecture for the Internet
Protocol", RFC 2401, November 1998.
[6] A. Shacham, R. Monsour, R. Pereira, M. Thomas,
"IP Payload Compression Protocol (IPComp)", RFC 2393,
December 1998.
10. Author's Address
Francis Dupont
ENST Bretagne
Campus de Rennes
2, rue de la Chataigneraie
BP 78
35512 Cesson-Sevigne Cedex
FRANCE
Fax: +33 2 99 12 70 30
EMail: Francis.Dupont@enst-bretagne.fr
Expire in 6 months (May 16, 2000)
draft-dupont-destoptupd-00.txt [Page 5]