Internet DRAFT - draft-bellis-behave-natpresent
draft-bellis-behave-natpresent
Network Working Group R. Bellis
Internet-Draft Nominet UK
Obsoletes: 3514 (if approved) G. Huston
Updates: 791 (if approved) APNIC
Intended status: Standards Track October 23, 2011
Expires: April 25, 2012
Signalling the Presence of NAT
draft-bellis-behave-natpresent-00
Abstract
End-to-end applications have difficulty distinguishing between
packets that have been passed through a Network Address Translator
(NAT) and packets that have been passed along a clear end-to-end
path. We propose mechanisms for IPv4 and IPv6 whereby NAT devices
explicitly signal their operation as a means of allowing applications
to distinguish the presence of otherwise undetected NATs in the end-
to-end path.
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 April 25, 2012.
Copyright Notice
Copyright (c) 2011 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
(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
Bellis & Huston Expires April 25, 2012 [Page 1]
Internet-Draft NAT Signalling October 2011
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 . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology used in this document . . . . . . . . . . . . . . . 3
3. Specification . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.1. IPv4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.1.1. Definition . . . . . . . . . . . . . . . . . . . . . . 4
3.1.2. Syntax . . . . . . . . . . . . . . . . . . . . . . . . 4
3.2. IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.2.1. Definition . . . . . . . . . . . . . . . . . . . . . . 4
3.2.2. Syntax . . . . . . . . . . . . . . . . . . . . . . . . 5
3.3. Protocol Translation . . . . . . . . . . . . . . . . . . . 5
4. Application Processing . . . . . . . . . . . . . . . . . . . . 5
5. Related Work . . . . . . . . . . . . . . . . . . . . . . . . . 5
6. Security Considerations . . . . . . . . . . . . . . . . . . . . 6
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 6
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 6
9. Normative References . . . . . . . . . . . . . . . . . . . . . 6
Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . . 6
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 7
Bellis & Huston Expires April 25, 2012 [Page 2]
Internet-Draft NAT Signalling October 2011
1. Introduction
End-to-end applications have difficulty distinguishing between
packets that have been passed through a Network Address Translator
(NAT) [RFC3022] and packets that have been passed along a clear end-
to-end path.
The problem identified here is that detecting the presence of NATs in
the path can be challenging for an application. The UPnP Forum has
defined the Internet Gateway Device (IGD) V2.0 protocol [IGDP] as a
means of detecting the presence of a local NAT, and as a means of
directing the NAT to perform certain actions regarding the NAT
binding behaviour between internal addresses and ports and external
addresses and ports. However, this approach fails if the NAT is not
local, or if there are one or more remote NATs in the end-to-end path
in addition to a local NAT.
For example, an application may believe that IGD has successfully
detected the NAT, and the application can use the IGD protocol to
learn the external IP address that is used by the NAT for this
application's communications, to direct the NAT to perform certain
port mappings and to assign a lease time to a NAT binding, but the
presence of a Carrier Grade NAT (CGN) further along the network path
is then undetectable by the application using the IGD protocol, and
the application behaves unpredictably.
We note the directive in [RFC3514] concerning the setting of a bit
flag in the IPv4 [RFC0791] packet header by NATs, and we redefine
here the use of this bit flag as a means of distinguishing the
presence of an otherwise undetected NAT in the end-to-end path.
We also define an IPv6 [RFC2460] hop-by-hop option with similar
semantics.
To allow a distinction to be drawn between NATs that are detected by
IGD-capable applications and all other otherwise IGD-undetected NATs
in the path, we propose here (but do not specify) an extension to the
IGD protocol to allow IGD to direct the NAT not to apply the
mechanisms herein on a per-binding basis, in the same manner as IGD
already allows for control of the binding time in the NAT.
2. Terminology used in this document
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 [RFC2119].
Bellis & Huston Expires April 25, 2012 [Page 3]
Internet-Draft NAT Signalling October 2011
3. Specification
3.1. IPv4
3.1.1. Definition
For IPv4 packets all NATs MUST set the NAT Present bit ("E", below)
in the header of all IPv4 packets that have had their address and/or
port fields altered by the NAT.
3.1.2. Syntax
The high-order bit of the IPv4 [RFC0791] fragment offset field has
been defined for use by NATs in [RFC3514].
The bit field is laid out as follows:
0
+-+
|E|
+-+
In the context of detection of NATs, the currently-assigned values
for this bit are defined as follows:
0x0 If the bit is set to 0, the packet has not traversed a NAT, or
the NAT has been directed not to set the bit in a manner
supported by an IGD interaction.
0x1 If the bit is set to 1, the packet has been altered by one or
more NAT devices along the path.
3.2. IPv6
3.2.1. Definition
For IPv6 [RFC2460] the presence of a NAT is conveyed in a hop-by-hop
NAT Present option containing an 8 bit counter.
All IPv6 NATs MUST increment this counter value in the NAT Present
option in all packets that have had their address and/or port fields
altered by the NAT. If this option is not present in the packet, the
NAT MUST add the option to the packet header with an initial value of
1.
Bellis & Huston Expires April 25, 2012 [Page 4]
Internet-Draft NAT Signalling October 2011
3.2.2. Syntax
The option is laid out as follows:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = TBC1 | LEN = 0x01 | VALUE |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Note that the two highest order bits of the tag are both clear,
indicating that the option should be skipped if it is not recognised,
and that the third highest-order bit is set, indicating that the
option's value may change en-route.
3.3. Protocol Translation
All protocol-translating NATs MUST apply the relevant NAT Present bit
or option on outbound packets.
4. Application Processing
Applications that receive a packet with a non-zero NAT Present option
MUST assume that the IP header's source and destination address, the
transport level source and destination ports and even the IP version
value may have been altered by a NAT in the end-to-end path.
We anticipate (but do not define) that applications will access the
NAT Present value using the UNIX "getsockopt()" system call or its
equivalent in other operating systems.
An application MAY use extensions to the IGD protocol to direct a NAT
NOT to add the NAT Present option as part of the IGD-managed settings
on individual NAT bindings.
If the IPv4 bit or IPv6 option is already present in a packet and its
value is non-zero, the IGD protocol extension MUST be ignored. Hence
for IPv4 the bit must remain set, and for IPv6 for value must be
incremented, as specified above.
5. Related Work
RFC 3514 defines other forms of semantic intent that would set this
bit field in the IPv4 header. We are comfortable that these
additional semantics are entirely consistent with this IPv4 NAT
Present bit.
Bellis & Huston Expires April 25, 2012 [Page 5]
Internet-Draft NAT Signalling October 2011
6. Security Considerations
TBD
7. IANA Considerations
This document requests registration of the value TBC1 in the IANA
Hop-by-Hop Option Type registry, with required 'act' value of '00'
and 'chg' value of '1'.
8. Acknowledgements
The author wishes to thank the following for their feedback and
reviews during the development of this idea: Steven M. Bellovin,
Adrian Kennard.
9. Normative References
[IGDP] UPnp Forum, "InternetGatewayDevice:2 specification",
12 2010, <http://upnp.org/specs/gw/
UPnP-gw-InternetGatewayDevice-v2-Device.pdf>.
[RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791,
September 1981.
[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.
[RFC3022] Srisuresh, P. and K. Egevang, "Traditional IP Network
Address Translator (Traditional NAT)", RFC 3022,
January 2001.
[RFC3514] Bellovin, S., "The Security Flag in the IPv4 Header",
RFC 3514, April 1 2003.
Appendix A. Change Log
NB: to be removed by the RFC Editor before publication.
draft-bellis-behave-natpresent-00
Bellis & Huston Expires April 25, 2012 [Page 6]
Internet-Draft NAT Signalling October 2011
Initial draft
Authors' Addresses
Ray Bellis
Nominet UK
Edmund Halley Road
Oxford OX4 4DQ
United Kingdom
Phone: +44 1865 332211
Email: ray.bellis@nominet.org.uk
URI: http://www.nominet.org.uk/
Geoff Huston
Asia Pacific Network Information Centre
Email: gih@apnic.net
URI: http://www.apnic.net/
Bellis & Huston Expires April 25, 2012 [Page 7]