Internet DRAFT - draft-bonica-6man-frag-deprecate
draft-bonica-6man-frag-deprecate
6man Working Group R. Bonica
Internet-Draft Juniper Networks
Updates: RFC 2460 (if approved) W. Kumari
Intended status: Standards Track Google, Inc.
Expires: January 12, 2014 R. Bush
Internet Initiative Japan
H. Pfeifer
ProtocolLabs
July 11, 2013
IPv6 Fragment Header Deprecated
draft-bonica-6man-frag-deprecate-02
Abstract
This memo deprecates IPv6 fragmentation and the IPv6 fragment header.
It provides reasons for deprecation and updates RFC 2460.
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].
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
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."
This Internet-Draft will expire on January 12, 2014.
Copyright Notice
Copyright (c) 2013 IETF Trust and the persons identified as the
document authors. All rights reserved.
Bonica, et al. Expires January 12, 2014 [Page 1]
Internet-Draft IPv6 Fragment Deprecated July 2013
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Case For Deprecation . . . . . . . . . . . . . . . . . . . . 3
2.1. Resource Conservation . . . . . . . . . . . . . . . . . . 3
2.2. Application Reliance on IPv6 Fragmentation . . . . . . . 3
2.3. Attack Vectors . . . . . . . . . . . . . . . . . . . . . 5
2.4. Operator Behavior . . . . . . . . . . . . . . . . . . . . 6
3. Applications That Rely on Fragmentation . . . . . . . . . . . 6
3.1. DNSSEC . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.2. SIIT . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.3. OSPFv3 . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.4. DCCP and NFS . . . . . . . . . . . . . . . . . . . . . . 8
3.5. Tunneling . . . . . . . . . . . . . . . . . . . . . . . . 8
4. Recommendation . . . . . . . . . . . . . . . . . . . . . . . 8
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8
6. Security Considerations . . . . . . . . . . . . . . . . . . . 8
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 9
8.1. Normative References . . . . . . . . . . . . . . . . . . 9
8.2. Informative References . . . . . . . . . . . . . . . . . 9
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11
1. Introduction
Each link on the Internet is characterized by a Maximum Transmission
Unit (MTU). A link's MTU represents the maximum packet size that can
be conveyed over the link, without fragmentation. IPv6 [RFC2460]
requires that every link in the Internet have an MTU of 1280 octets
or greater. On any link that cannot convey a 1280-octet packet in
one piece, link-specific fragmentation and reassembly must be
provided at a layer below IPv6.
For any given source node, the path to a particular destination is
characterized by a path MTU (PMTU). At a given source, the PMTU
associated with a destination is equal to the minimum MTU of all of
the links in the path between the source and the destination.
Because every IPv6-enabled link must support an MTU or 1280 bytes or
Bonica, et al. Expires January 12, 2014 [Page 2]
Internet-Draft IPv6 Fragment Deprecated July 2013
greater, the PMTU between any two IPv6 nodes is also 1280 bytes or
greater.
[RFC2460] strongly recommends that IPv6 nodes implement Path MTU
Discovery (PMTUD) [RFC1981], in order to discover and take advantage
of PMTU values greater than 1280 octets. However, a minimal IPv6
implementation (e.g., in a boot ROM) may simply restrict itself to
sending packets no larger than 1280 octets, and omit implementation
of PMTUD.
In order to send a packet larger than a path's MTU, a node may use
the IPv6 Fragment header to fragment the packet at the source and
have it reassembled at the destination(s). However, the use of such
fragmentation is discouraged in any application that is able to
adjust its packets to fit the measured path MTU (i.e., down to 1280
octets).
In IPv6, a packet can be fragmented only by the host that originates
it. This constitutes a departure from the IPv4 [RFC0791]
fragmentation strategy, in which a packet can be fragmented by its
originator or by any router that it traverses en route to its
destination.
This memo deprecates IPv6 fragmentation and the IPv6 fragment header.
It provides reasons for deprecation and updates [RFC2460].
2. Case For Deprecation
This section presents a case for deprecating the IPv6 Fragment
Header.
2.1. Resource Conservation
Packets that are fragmented at their source need to be reassembled at
their destination. [Kent87] points out that the reassembly process
is resource intensive. It consumes significant compute and memory
resources. While the cited reference refers to IPv4 fragmentation
and reassembly, many of its criticisms are equally applicable to
IPv6.
By comparison, if a source node were to execute PMTUD procedures, and
if applications were to avoid sending datagrams that would result in
IP packets that exceed the PMTU, the task of reassembly could be
avoided, altogether.
2.2. Application Reliance on IPv6 Fragmentation
Today, a limited number of applications rely upon IPv6 fragmentation.
Bonica, et al. Expires January 12, 2014 [Page 3]
Internet-Draft IPv6 Fragment Deprecated July 2013
Most popular TCP implementations include PMTUD or an extension
thereof, called Packetization Layer MTU Discovery (PMTUD) [RFC4821].
Therefore, in the nominal case, applications obtaining transport
services from these TCP implementations never cause IPv6 fragments to
be sent. However, some TCP implementations that include PMTUD do
emit segments long enough to cause IPv6 fragmentation. This happens
in the following circumstance:
o The TCP implementation establishes two (or more) sessions to the
same destination
o Because the TCP implementation has not yet emitted any long
segments, the underlying IPv6 implementation estimates the PMTU
for destination to be equal to the MTU of the first link in the
path to the destination. This estimate is incorrect, and will be
revised, below.
o The first TCP session submits a long segment to the underlying
IPv6 implementation
o The underlying IPv6 implementation determines that if it were to
encapsulate this segment in an IPv6 header, the resulting packet
would not exceed its current estimate of the PMTU for the
destination. So, the underlying IPv6 implementation emits a non-
fragmented IPv6 packet. This packet exceeds the actual PMTU for
the destination
o A downstream router discards the long packet and returns an ICMPv6
Packet Too Big (PTB) message.
o The first TCP session reduces its Maximum Segment Size (MSS) to an
appropriate value
o The underlying IPv6 implementation reduces its estimate of the
PMTU for the destination to an appropriate value
o The second TCP session submits a long segment to the underlying
IPv6 implementation. It does so without first querying the
underlying IPv6 implementation to learn its estimate of the PMTU
for the destination
o The underlying IPv6 implementation determines that if it were to
encapsulate this segment in an IPv6 header, the resulting packet
would exceed its current estimate of the PMTU for the destination.
So, the underlying IPv6 implementation emits multiple IPv6
fragments.
Bonica, et al. Expires January 12, 2014 [Page 4]
Internet-Draft IPv6 Fragment Deprecated July 2013
The authors suggest that the behavior described above may be sub-
optimal, and that TCP implementations should leverage PMTU
information that the underlying IPv6 implementation could provide.
Many UDP-based [RFC0768] applications follow the recommendations of
[RFC5405]. According to [RFC5405], "an application SHOULD NOT send
UDP datagrams that result in IP packets that exceed the MTU of the
path to the destination. Consequently, an application SHOULD either
use the path MTU information provided by the IP layer or implement
path MTU discovery itself to determine whether the path to a
destination will support its desired message size without
fragmentation. Applications that do not follow this recommendation
to do PMTU discovery SHOULD still avoid sending UDP datagrams that
would result in IP packets that exceed the path MTU. Because the
actual path MTU is unknown, such applications SHOULD fall back to
sending messages that are shorter than the default effective MTU for
sending." The effective MTU for IPv6 is 1280 bytes.
However, several applications are known to rely on IPv6
fragmentation. Some of these are mentioned in Section 3.
2.3. Attack Vectors
Security researchers have found and continue to find attack vectors
that rely on IP fragmentation. For example,
[I-D.ietf-6man-oversized-header-chain] and
[I-D.ietf-6man-nd-extension-headers] describe variants of the tiny
fragment attack [RFC1858]. In this attack, a packet is crafted so
that it can evade stateless firewall filters. The stateless firewall
filter matches on fields drawn from the IPv6 header and an upper
layer header. However, the packet is fragmented so that the upper
layer header, or a significant part of that header, does not appear
in the first fragment. Because a stateless firewall cannot parse
payload beyond the first fragment, the packet evades detection by the
firewall.
Security researcher have also studied reassembly algorithms on
popular computing platforms, with the following goals:
o to discover fragility in seldom exercised parts of the IP stack
o to engineer flows that maximize resources consumed by the
reassembly process
The Dawn and Rose Attacks [Hollis] are the products of such research.
All of the attack vectors mentioned above can be mitigated with
firewalls and increasingly sophisticated reassembly algorithms.
Bonica, et al. Expires January 12, 2014 [Page 5]
Internet-Draft IPv6 Fragment Deprecated July 2013
However, the continued investment required to mitigate newly
discovered vulnerabilities detracts from the cost effectiveness of
IPv6 as a networking solution.
2.4. Operator Behavior
For reasons described above, and also articulated in
[I-D.taylor-v6ops-fragdrop], many network operators filter all IPv6
fragments. Also, the default behavior of many currently deployed
firewalls is to discard IPv6 fragments.
In one recent study [DeBoer], two researchers utilized a measurement
network to measure fragment filtering. They sent packets, fragmented
to the minimum MTU of 1280, to 502 IPv6 enabled and reachable probes.
They found that during any given trial period, ten percent of the
probes did not receive fragmented packets.
3. Applications That Rely on Fragmentation
The following is a list of applications that are currently known to
rely on IPv6 fragmentation:
o DNSSEC [RFC4035].
o SIIT [RFC6145]
o OSPFv3 [RFC5340]
o NFSv4 [RFC3530]
o DCCP [RFC4340]
Some tunneling configurations also rely upon IPv6 fragmentation. See
Section 3.5 for details.
Each of these applications relies on fragmentation to a varying
degree. In some cases, that reliance is essential, and cannot be
broken without fundamentally changing the protocol. In other cases,
that reliance is incidental, and most protocol implementations
already take appropriate steps to avoid fragmentation.
Each of these applications will continue to emit IPv6 fragments, even
after the IPv6 fragmentation header is deprecated. In order to
achieve backwards compatibility, new IPv6 implementations will
continue to support reassembly of incoming fragments. See for
Section 4 details.
Bonica, et al. Expires January 12, 2014 [Page 6]
Internet-Draft IPv6 Fragment Deprecated July 2013
3.1. DNSSEC
DNSSEC can obtain transport services from either UDP or TCP.
Superior performance and scaling characteristics are observed when
DNSSEC runs over UDP.
When running over UDP, DNSSEC is likely to cause the generation of
IPv6 fragments. By comparison, when running over TCP, DNSSEC is much
less likely to cause the generation of IPv6 fragments.
When running over UDP, DNSSEC's reliance upon IPv6 fragmentation is
fundamental. That reliance cannot be broken without changing the
DNSSEC specification.
DNSSEC is an essential part of the Internet architecture. Therefore,
this issue is for further study and must be resolved before IPv6
fragmentation can be deprecated.
3.2. SIIT
[RFC6145] requires the following:
o "When the IPv4 sender does not set the DF bit, the translator
SHOULD always include an IPv6 Fragment Header to indicate that the
sender allows fragmentation. The translator MAY provide a
configuration function that allows the translator not to include
the Fragment Header for the non-fragmented IPv6 packets".
o "If the DF flag is not set and the IPv4 packet will result in an
IPv6 packet larger than 1280 bytes, the packet SHOULD be
fragmented so the resulting IPv6 packet (with Fragment Header
added to each fragment) will be less than or equal to 1280 bytes."
These behaviors cannot be changed, and for these reasons, SIIT
devices will continue to emit IPv6 fragments, even after IPv6
fragmentation has been deprecated.
SIIT also emits ICMPv6 PTB messages with MTU less than 1280. In that
case, the originating IPv6 node is not required to reduce the size of
subsequent packets to less than 1280, but must include a Fragment
header in those packets so that SIIT can obtain a suitable
Identification value to use in resulting IPv4 fragments. Note that
this means the payload may have to be reduced to 1232 octets (1280
minus 40 for the IPv6 header and 8 for the Fragment header), and
smaller still if additional extension headers are used.
This problem could be avoided if SIIT executed an alternative
procedure. For example, rather than discarding the packet and
Bonica, et al. Expires January 12, 2014 [Page 7]
Internet-Draft IPv6 Fragment Deprecated July 2013
sending an ICMPv6 PTB message with MTU less than 1280, SIIT could
generate a random number for use as the Identification value and
forward the packet. This issue clearly requires further study.
3.3. OSPFv3
OSPFv3 implementations may emit messages large enough to cause IPv6
fragmentation. However, in keeping with the recommendations of
[RFC2460], and in order to optimize performance, most OSPFv3
implementation refrain from doing so. Many implementations simply
restrict their maximum message size to some value that is safely
below 1280.
3.4. DCCP and NFS
Details TBD
3.5. Tunneling
TBD
4. Recommendation
This memo deprecates IPv6 fragmentation and the IPv6 fragment header.
Application and transport layer protocols SHOULD support effective
PLMTUD [RFC4821], since ICMP-based PMTUD [RFC1981] is unreliable.
Any application or transport layer protocol that cannot support
effective PMTUD MUST NOT in any circumstances send IPv6 packets that
exceed the IPv6 minimum MTU of 1280 bytes.
IPv6 stacks and forwarding nodes MUST continue to support inbound
fragmented IPv6 packets as specified in [RFC2460]. However, this
requirement exceeds the capability of some types of forwarding nodes
such as firewalls and load balancers. Therefore implementers and
operators need to be aware that on many paths through the Internet,
IPv6 fragmentation will fail. Legacy applications and transport
layer protocols that do not conform to the previous paragraph can
expect connectivity failures as a result.
5. IANA Considerations
IANA is requested to mark the Fragment Header for IPv6 (44) as
deprecated in the Protocol Numbers registry.
6. Security Considerations
Deprecation of the IPv6 Fragment Header will improve network security
by eliminating attacks that rely on fragmentation.
Bonica, et al. Expires January 12, 2014 [Page 8]
Internet-Draft IPv6 Fragment Deprecated July 2013
7. Acknowledgements
The author wishes to acknowledge Tore Anderson, Mark Andrews, Brian
Carpenter, Havard Eidnes, Bob Hinden, Geoff Huston, George
Michaelson, Simon Perreault, Arturo Servin, Mark Smith, Fred Templin,
Willem Toorop, Glen Turner and Ole Troan for their review and
constructive comments.
8. References
8.1. Normative References
[RFC0768] Postel, J., "User Datagram Protocol", STD 6, RFC 768,
August 1980.
[RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, September
1981.
[RFC0793] Postel, J., "Transmission Control Protocol", STD 7, RFC
793, September 1981.
[RFC1981] McCann, J., Deering, S., and J. Mogul, "Path MTU Discovery
for IP version 6", RFC 1981, August 1996.
[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.
[RFC4443] Conta, A., Deering, S., and M. Gupta, "Internet Control
Message Protocol (ICMPv6) for the Internet Protocol
Version 6 (IPv6) Specification", RFC 4443, March 2006.
[RFC4821] Mathis, M. and J. Heffner, "Packetization Layer Path MTU
Discovery", RFC 4821, March 2007.
[RFC5405] Eggert, L. and G. Fairhurst, "Unicast UDP Usage Guidelines
for Application Designers", BCP 145, RFC 5405, November
2008.
8.2. Informative References
[DeBoer] De Boer, M. and J. Bosma, "Discovering Path MTU black
holes on the Internet using RIPE Atlas", July 2012, <http:
//www.nlnetlabs.nl/downloads/publications/pmtu-black-
holes-msc-thesis.pdf>.
Bonica, et al. Expires January 12, 2014 [Page 9]
Internet-Draft IPv6 Fragment Deprecated July 2013
[Hollis] Hollis, K., "The Rose Attack Explained", , <http://
digital.net/~gandalf/Rose_Frag_Attack_Explained.htm>.
[I-D.ietf-6man-nd-extension-headers]
Gont, F., "Security Implications of IPv6 Fragmentation
with IPv6 Neighbor Discovery", draft-ietf-6man-nd-
extension-headers-05 (work in progress), June 2013.
[I-D.ietf-6man-oversized-header-chain]
Gont, F. and V. Manral, "Security and Interoperability
Implications of Oversized IPv6 Header Chains", draft-ietf-
6man-oversized-header-chain-02 (work in progress),
November 2012.
[I-D.ietf-6man-predictable-fragment-id]
Gont, F., "Security Implications of Predictable Fragment
Identification Values", draft-ietf-6man-predictable-
fragment-id-00 (work in progress), March 2013.
[I-D.taylor-v6ops-fragdrop]
Jaeggli, J., Colitti, L., Kumari, W., Vyncke, E., Kaeo,
M., and T. Taylor, "Why Operators Filter Fragments and
What It Implies", draft-taylor-v6ops-fragdrop-01 (work in
progress), June 2013.
[Kent87] Kent, C. and J. Mogul, "Fragmentation Considered Harmful",
In Proc. SIGCOMM '87 Workshop on Frontiers in Computer
Communications Technology , August 1987.
[RFC1858] Ziemba, G., Reed, D., and P. Traina, "Security
Considerations for IP Fragment Filtering", RFC 1858,
October 1995.
[RFC3530] Shepler, S., Callaghan, B., Robinson, D., Thurlow, R.,
Beame, C., Eisler, M., and D. Noveck, "Network File System
(NFS) version 4 Protocol", RFC 3530, April 2003.
[RFC4035] Arends, R., Austein, R., Larson, M., Massey, D., and S.
Rose, "Protocol Modifications for the DNS Security
Extensions", RFC 4035, March 2005.
[RFC4340] Kohler, E., Handley, M., and S. Floyd, "Datagram
Congestion Control Protocol (DCCP)", RFC 4340, March 2006.
[RFC5340] Coltun, R., Ferguson, D., Moy, J., and A. Lindem, "OSPF
for IPv6", RFC 5340, July 2008.
Bonica, et al. Expires January 12, 2014 [Page 10]
Internet-Draft IPv6 Fragment Deprecated July 2013
[RFC6145] Li, X., Bao, C., and F. Baker, "IP/ICMP Translation
Algorithm", RFC 6145, April 2011.
Authors' Addresses
Ron Bonica
Juniper Networks
2251 Corporate Park Drive
Herndon, Virginia 20170
USA
Email: rbonica@juniper.net
Warren Kumari
Google, Inc.
1600 Amphitheatre Parkway
Mountainview, California 94043
USA
Email: warren@kumari.net
Randy Bush
Internet Initiative Japan
5147 Crystal Springs
Bainbridge Island Washington
USA
Email: randy@psg.com
Hagen Paul Pfeifer
ProtocolLabs
Munich 81379
Germany
Email: hagen.pfeifer@protocollabs.com
URI: http://www.protocollabs.com
Bonica, et al. Expires January 12, 2014 [Page 11]