Internet DRAFT - draft-templin-tunnelmtu
draft-templin-tunnelmtu
Network Working Group F. Templin
Internet-Draft Nokia
Expires: May 20, 2004 November 20, 2003
Dynamic MTU Determination for IPv6-in-IPv4 Tunnels
draft-templin-tunnelmtu-04.txt
Status of this Memo
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026.
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 May 20, 2004.
Copyright Notice
Copyright (C) The Internet Society (2003). All Rights Reserved.
Abstract
This document specifies a means for IPv6-in-IPv4 tunnel endpoints to
support dynamic maximum transmission unit (MTU) determination. It
provides a means for the local end to recognize when a packet should
be forwarded to the far end, and when it should be dropped.
Templin Expires May 20, 2004 [Page 1]
Internet-Draft Tunnel MTU November 2003
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Static MTU Determination . . . . . . . . . . . . . . . . . . . 4
4. Dynamic MTU Determination . . . . . . . . . . . . . . . . . . 5
5. Probing with Router Solicitation Messages . . . . . . . . . . 6
6. Mixed Static/Dynamic MTU Determination . . . . . . . . . . . . 6
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6
8. Security considerations . . . . . . . . . . . . . . . . . . . 6
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 7
Normative References . . . . . . . . . . . . . . . . . . . . . 7
Informative References . . . . . . . . . . . . . . . . . . . . 8
Author's Address . . . . . . . . . . . . . . . . . . . . . . . 8
A. Changelog . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Intellectual Property and Copyright Statements . . . . . . . . 10
Templin Expires May 20, 2004 [Page 2]
Internet-Draft Tunnel MTU November 2003
1. Introduction
IPv6-in-IPv4 tunnel interfaces (referred to hereafter as "tunnel
interfaces" or simply "tunnels") use an IPv4 [RFC0791] internetwork
as the link layer for IPv6 [RFC2461]. The local and remote tunnel
endpoints are IPv6 neighbors, but packets inside the tunnel may
traverse multiple IPv4 forwarding hops.
IPv4 path MTU discovery [RFC1191] is normally used to determine the
MTU of an IPv4 path. However, IPv4 path MTU discovery uses ICMPv4
"fragmentation needed" messages which in some cases do not provide
enough bytes from the original IPv6 packet header for stateless
translation to ICMPv6 "packet too big" messages ([RFC1812], section
4.3.2.3). Additionally, ICMPv4 messages can be spoofed, filtered, or
not sent at all by some forwarding nodes resulting in black holes
that are difficult to diagnose [RFC2923].
When designing an alternate path MTU discovery scheme, it is
important to note that for IPv6 the representation of a path consists
of the 3-tuple of the Flow Label and the Source and Destination
address fields in the IPv6 header [FLOWSPEC]. This means that path
MTU discovery will need to be done on a per-flow (not per-
destination) basis. It is also observed that the problem of black
hole detection when an IPv4 path changes to include a restricting
link is difficult if not impossible to solve as a network layer
problem. Past attempts to do so have included:
o the current IPv4 Path MTU discovery scheme. (But, in addition to
the operational issues described above, IPv4 path MTU discovery is
inefficient due to extra control messages and slow to converge.)
o on-demand path probing with large data messages. (But, probing
requires queueing packets for an indeterminant time in the sender
while waiting for the probe to complete.)
o sensing fragmentation at the receiver. (But, this requires special
instrumentation in the receiver - also, forwarding nodes that do
not support IPv4 fragmentation may occur along some paths and
middleboxes that drop IPv4 fragments are seen in operational
deployments.)
o maintaining flow state in the tunnel interface. (But, this may
consume too much state in routers that serve many flows.)
The dominating issue with any approach implemented solely at the
network layer is that it is not possible for the network layer to
anticipate the packet transmission strategy of the application. Any
attempt for the network layer to divine such information without the
Templin Expires May 20, 2004 [Page 3]
Internet-Draft Tunnel MTU November 2003
explicit guidance of the application amounts to nothing more than an
educated guess that is likely to be wrong - a result predicted by the
End-to-End Principle. Thus, alternate mechanisms to support dynamic
MTU determination for IPv6-in-IPv4 tunnel interfaces are required.
2. Terminology
The terminology of [RFC2460], [RFC2461], and [RFC3168] applies to
this document. The following terms used in those documents are also
defined here for clarity:
MTU:
same definition as in [RFC1122], section 1.3.3): "the maximum
transmission unit, i.e., the size of the largest packet that can
be transmitted".
LinkMTU:
same definition as "link MTU" in [RFC2460][RFC2461], which is also
the same definition as "LinkMTU" in ([RFC2461], section 6.3.2).
The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD,
SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL, when they appear in this
document, are to be interpreted as described in [RFC2119].
3. Static MTU Determination
Tunnel interfaces that do not participate in the dynamic MTU
determination scheme MUST set LinkMTU to at least 1280 bytes, i.e.,
the minimum IPv6 MTU ([RFC2460], section 5). If a larger MTU is used,
the value chosen SHOULD be:
1. no larger than the smallest known IPv4 Effective MTU to Receive
(EMTU_R) ([RFC1122], section 3.3.2) for all potential receivers
2. no larger than the smallest known IPv4 LinkMTU in the network
3. small enough to allow room for nested link-layer encapsulations
(e.g., VPN) that may be inserted by middleboxes.
Tunnel interfaces that use only static MTU determination send IPv6
packets that are no larger than LinkMTU with the DF bit NOT set in
the encapsulating IPv4 header. The IPv6 layer discards packets larger
than LinkMTU and sends an ICMPv6 "packet too big" message to the
sender, as for any IPv6 interface. Even so, black holes may still
occur along some paths since IPv4 fragmentation is not universally
supported by all forwarding nodes, IPv4 fragments are dropped by some
middleboxes, and the minimum supported packet size for IPv4 is only
576 bytes.
Templin Expires May 20, 2004 [Page 4]
Internet-Draft Tunnel MTU November 2003
4. Dynamic MTU Determination
Tunnel interfaces that use this scheme implement IPv6 Neighbor
Discovery [RFC2461] except as otherwise noted in this document or in
documents describing specific tunneling mechanisms, e.g., [RFC3056],
[MECH], [ISATAP], etc. Additionally:
4.1 Tunnel Interface MTU
A tunnel interface that implements the dynamic scheme sets LinkMTU to
a value between 1280 and 65515 bytes, i.e., the maximum IPv4 packet
size minus 20 bytes for encapsulation. Robust implementations will
normally use the larger value.
4.2 Sending Packets
When the tunnel interface sends an IPv6 packet, it first determines
through a routing table lookup the IPv4 interface that will send the
IPv4-encapsulated packet. Next, the following actions are taken based
on whether the IPv6 packet header contains an ECN codepoint
([RFC3168], section 5):
4.2.1 Packets with ECN Codepoints
If the IPv4 interface is congested (e.g., if it has a large queue of
packets waiting to be transmitted) the packet is either marked as CE
or it is silently dropped.
If the packet was not dropped due to congestion and is no larger than
the IPv4 interface MTU value (minus 20 bytes) it is encapsulated in
IPv4 with the DF bit set and sent over IPv4. Otherwise, it is
silently dropped.
4.2.2 Packets without ECN Codepoints
If the packet is no larger than 1280 bytes, it is encapsulated with
the DF bit NOT set and sent over IPv4. Else, if the packet is no
larger than the IPv4 interface MTU (minus 20 bytes) it is
encapsulated with the DF bit set and sent over IPv4. Else, the packet
is dropped and an ICMPv6 "packet too big" message is sent back to the
source.
4.3 Maintaining State
IP-layer MTU state MAY be maintained for flows that do not include
ECN codepoints in constituent packets, as this MAY be necessary to
avoid black holes caused by the inability to translate ICMPv4
"fragmentation needed" messages into ICMPv6 "packet too big"
Templin Expires May 20, 2004 [Page 5]
Internet-Draft Tunnel MTU November 2003
messages. IP layer MTU state is NOT REQUIRED for flows that include
ECN codepoints in constituent packets, those flows do not require
ICMP messages.
End nodes with tunnel interfaces MAY record transport layer per-flow
MTU values that are used by applications/transports to determine
packet sizes before a packet is sent to the tunnel interface. (This
does not apply to intermediate routing nodes with tunneling
interfaces, since application state is kept only in the end-nodes.)
4.4 Processing IPv4 Errors
ICMPv4 "fragmentation needed" messages MAY be translated into IPv6
"packet too big" messages and sent to the source of the original
packet if enough state information from the original IPv6 packet is
available. IPv6 "packet too big" messages with MTU values smaller
than 1280 bytes SHOULD NOT be sent to the source.
5. Probing with Router Solicitation Messages
When the IPv6 next-hop is a router, applications MAY upon startup (or
periodically thereafter) send IPv6 Router Solicitation messages
[RFC2461] that are artificially inflated in size ([MECH], section
3.6, second-to-last paragraph) in order to probe the minimum link
size on the path to the router. If the router receives such a Router
Solicitation, it will send back a Router Advertisement message with
the size of the Router Solicitation used for probing encoded in an
MTU option.
6. Mixed Static/Dynamic MTU Determination
If a completely stateless solution is desired, the static method
specified in Section 3 can be used for flows that do not set an ECN
codepoint in constituent packets and the dynamic method specified in
Section 4 can be used for flows that set an ECN codepoint. Stateless
operation is especially important for low-end routers with tunnel
interfaces that need to handle many flows.
7. IANA Considerations
This document contains no IANA considerations.
8. Security considerations
Security issues for sending and receiving packets on tunnel
interfaces are found in the various tunneling mechanism documents.
Security issues related to the setting of the ECN codepoint are found
Templin Expires May 20, 2004 [Page 6]
Internet-Draft Tunnel MTU November 2003
in [RFC3168].
9. Acknowledgements
Most of the ideas expressed in this document are not new and borrow
to a certain extent from the TCP-IP and Path MTU Discovery mailing
list discussions beginning as early as 1987. Other ideas in the draft
may have borrowed to some extent from discussions on the IETF MTU
Discovery WG mailing list from November 1989 - February 1995, on the
IETF NGTRANS WG mailing list in August 2002 and on the IETF IPv6 WG
mailing list in October 2003.
The author would like to acknowledge certain individuals for helpful
discussion on this subject, including Jari Arkko, Iljitsch van
Beijnum, Jim Bound, Ralph Droms, Alain Durand, Tim Gleeson,
Jun-ichiro itojun Hagino, Brian Haberman, Bob Hinden, Christian
Huitema, Kevin Lahey, Hakgoo Lee, Matt Mathis, Jeff Mogul, Erik
Nordmark, Soohong Daniel Park, Chirayu Patel, Michael Richardson,
Pekka Savola, Hesham Soliman, Mark Smith, Dave Thaler, Michael Welzl,
Lixia Zhang and the members of the Nokia NRC/COM Mountain View team.
"...and I'm one step ahead of the shoe shine,
Two steps away from the county line,
Just trying to keep my customers satisfied,
Satisfi-i-ied!" - Simon and Garfunkel
Normative References
[FLOWSPEC]
Rajahalme, J., Conta, A., Carpenter, B. and S. Deering,
"IPv6 Flow Label Specification",
draft-ietf-ipv6-flow-label (work in progress), October
2003.
[MECH] Gilligan, R. and E. Nordmark, "Basic Transition Mechanisms
for IPv6 Hosts and Routers", draft-ietf-v6ops-mech-v2
(work in progress), October 2003.
[RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, September
1981.
[RFC1122] Braden, R., "Requirements for Internet Hosts -
Communication Layers", STD 3, RFC 1122, October 1989.
[RFC1191] Mogul, J. and S. Deering, "Path MTU discovery", RFC 1191,
November 1990.
[RFC1812] Baker, F., "Requirements for IP Version 4 Routers", RFC
Templin Expires May 20, 2004 [Page 7]
Internet-Draft Tunnel MTU November 2003
1812, June 1995.
[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.
[RFC2461] Narten, T., Nordmark, E. and W. Simpson, "Neighbor
Discovery for IP Version 6 (IPv6)", RFC 2461, December
1998.
[RFC3150] Dawkins, S., Montenegro, G., Kojo, M. and V. Magret,
"End-to-end Performance Implications of Slow Links", BCP
48, RFC 3150, July 2001.
[RFC3168] Ramakrishnan, K., Floyd, S. and D. Black, "The Addition of
Explicit Congestion Notification (ECN) to IP", RFC 3168,
September 2001.
Informative References
[ISATAP] Templin, F., Gleeson, T., Talwar, M. and D. Thaler,
"Intra-Site Automatic Tunnel Addressing Protocol",
draft-ietf-ngtrans-isatap (work in progress), October
2003.
[RFC2923] Lahey, K., "TCP Problems with Path MTU Discovery", RFC
2923, September 2000.
[RFC3056] Carpenter, B. and K. Moore, "Connection of IPv6 Domains
via IPv4 Clouds", RFC 3056, February 2001.
Author's Address
Fred L. Templin
Nokia
313 Fairchild Drive
Mountain View, CA 94043
US
Phone: +1 650 625 2331
EMail: ftemplin@iprg.nokia.com
Templin Expires May 20, 2004 [Page 8]
Internet-Draft Tunnel MTU November 2003
Appendix A. Changelog
Changes from -03 to -04:
o Removed checks for IPv6 fragment header. Tunnel no longer emulates
an IPv6/IPv4 translator.
o Added Router Solicitation/Router Advertisement probing option.
Changes from -02 to -03:
o Removed support for IPv4 fragmentation to save state; eliminate
control message overhead.
Changes from -01 to -02:
o Specified use of IPv4 fragmentation (instead of IPv6) as the L2
fragmentation mechanism.
o Added CongestMTU for use during periods of congestion.
o Added support for sending congestion indications not associated
with probes.
o Clarified DF bit settings.
Templin Expires May 20, 2004 [Page 9]
Internet-Draft Tunnel MTU November 2003
Intellectual Property Statement
The IETF takes no position regarding the validity or scope of any
intellectual property 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; neither does it represent that it
has made any effort to identify any such rights. Information on the
IETF's procedures with respect to rights in standards-track and
standards-related documentation can be found in BCP-11. Copies of
claims of rights made available for publication 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 implementors or users of this specification can
be obtained from the IETF Secretariat.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights which may cover technology that may be required to practice
this standard. Please address the information to the IETF Executive
Director.
Full Copyright Statement
Copyright (C) The Internet Society (2003). All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than
English.
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assignees.
This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
Templin Expires May 20, 2004 [Page 10]
Internet-Draft Tunnel MTU November 2003
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Acknowledgment
Funding for the RFC Editor function is currently provided by the
Internet Society.
Templin Expires May 20, 2004 [Page 11]