TOC |
|
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 August 27, 2009.
Copyright (c) 2009 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents in effect on the date of publication of this document (http://trustee.ietf.org/license-info). Please review these documents carefully, as they describe your rights and restrictions with respect to this document.
We address the problem of computing the UDP checksum on tunneling IPv6 packets when using lightweight tunneling protocols.
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 (Bradner, S., “Key words for use in RFCs to Indicate Requirement Levels,” March 1997.) [RFC2119].
1.
Introduction
1.1.
Some Terminology
1.2.
Problem Statement
1.3.
Alternate Solutions
1.4.
Possible Pitfalls of a change
1.5.
Recommended Solution
2.
IANA Considerations
3.
Security Considerations
4.
Acknowledgements
5.
Normative References
§
Authors' Addresses
TOC |
The origin of this I-D is the problem raised by the draft titled "Automatic IP Multicast Without Explicit Tunnels", also known as "AMT". This draft uses UDP as the layer protocol in tunneling packets; that is, the outer packet carrying a tunneled (inner) packet. The draft specifies that for packets carrying tunneled multicast data only, the UDP checksum in the UDP header of the outer packet SHOULD be 0 (See draft-ietf-mboned-auto-multicast-09, Section 6.6). However RFC 2460 (IPv6) explicitly states that IPv6 receivers MUST discard UDP packets with a 0 checksum. So, while sending a UDP packet with a 0 checksum is permitted in IPv4 packets, it is explicitly forbidden in IPv6 packets.
The computation of an additional checksum, when the inner packet(s) are already adequately protected, is seen to be an unwarranted burden on nodes implementing lightweight tunneling protocols.
TOC |
For the remainder of this draft, we discuss only IPv6, since this problem does not exist for IPv4. So any reference to 'IP' should be understood as a reference to IPv6.
Although we will try to avoid them when possible, we may use the terms "tunneling" and "tunneled" as adjectives when describing packets. When we refer to 'tunneling packets' we refer to the outer packet header that provides the tunneling function. When we refer to 'tunneled packets' we refer to the inner packet, i.e. the packet being carried in the tunnel.
TOC |
The argument made by the draft authors is that since multicast packets already have a UDP header with a checksum, there is no additional benefit and indeed some cost to nodes to both compute and check the UDP checksum of the outer (encapsulating) header. However, Consequently, IPv6 should make an exception to the rule that the UDP checksum MUST not be 0, and allow tunneling protocols to set the checksum field of the outer header only to 0 and skip both the sender and receiver computation.
TOC |
TOC |
One potential problem with the approach which allows an exception to the IPv6 UDP checksum rule is that in general, tunneling (outer) IPv6 packets could be encapsulating either IPv6 packets or IPv4 packets. If the inner (tunneled) packet is an IPv4 packet with a 0 UDP checksum, then the neither the inner nor the outer packet will provide any checksum protection. This would likewise be the case if the inner packet were an IPv6 packet produced by another (future) protocol which uses an exception to the IPv6 rule.
Others on the mailing list have pointed out other issues with changing the IPv6 specification to allow a checksum of 0 on the outer packet header. In particular, Matt Mathis points out that some tunneling devices ignore the DF bit and fragment silently. This would allow two fragmented UDP packets to be spliced together and be decapsulated and forwarded by a tunnel endpoint.
One notes also that there is no IPv6 header checksum.
There is also the possibility of deep-inspection firewall devices or other middleboxes actually checking the UDP checksum field of the outer packet and discarding the tunneling packets. This is would be an issue also for legacy systems which have not implemented the change in the IPv6 specification. So in any case, there may be packet loss of lightweight tunneling packets because of mixed new-rule and old-rule nodes.
TOC |
There seems to be some general opinion that a UDP checksum of 0 could be allowed on the outer encapsulating packet of a lightweight tunneling protocol. This would imply that UDP endpoints handling that protocol must change their behavior and not discard UDP packets received with a 0 checksum on the outer packet.
Magnus Westerlund proposed some restrictions on using a UDP header checksum of 0. These are:
We would suggest the following elaborations of the above restrictions, if a change in the IPv6 specification moves forward:
In addition, we would recommend that a security analysis be done in order to assess whether any new vulnerabilities are introduced by such a change.
TOC |
This document makes no request of IANA.
Note to RFC Editor: this section may be removed on publication as an RFC.
TOC |
TOC |
TOC |
[RFC2119] | Bradner, S., “Key words for use in RFCs to Indicate Requirement Levels,” BCP 14, RFC 2119, March 1997 (TXT, HTML, XML). |
[RFC2401] | Kent, S. and R. Atkinson, “Security Architecture for the Internet Protocol,” RFC 2401, November 1998 (TXT, HTML, XML). |
[RFC2460] | Deering, S. and R. Hinden, “Internet Protocol, Version 6 (IPv6) Specification,” RFC 2460, December 1998 (TXT, HTML, XML). |
[RFC3828] | Larzon, L-A., Degermark, M., Pink, S., Jonsson, L-E., and G. Fairhurst, “The Lightweight User Datagram Protocol (UDP-Lite),” RFC 3828, July 2004 (TXT). |
TOC |
Marshall Eubanks | |
Iformata Communications | |
Phone: | |
Fax: | |
Email: | tme@multicasttech.com |
URI: | |
P.F. Chimento | |
Johns Hopkins University Applied Physics Laboratory | |
11100 Johns Hopkins Road | |
Laurel, MD 20723 | |
USA | |
Phone: | +1-443-778-1743 |
Fax: | |
Email: | Philip.Chimento@jhuapl.edu |
URI: |