Internet DRAFT - draft-antony-ipsecme-oppo-nat
draft-antony-ipsecme-oppo-nat
ipsecme A. Antony
Internet-Draft Phenome Networks
Intended status: Informational J. Gilmore
Expires: September 10, 2015
P. Wouters
Red Hat
March 09, 2015
NAT-Traversal support for Opportunistic IPsec
draft-antony-ipsecme-oppo-nat-00
Abstract
This document specifies how to support NATed IPsec peers for use with
Opportunistic IPsec.
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 September 10, 2015.
Copyright Notice
Copyright (c) 2015 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
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.
Antony, et al. Expires September 10, 2015 [Page 1]
Internet-Draft NAT-T for Opportunistic IPsec March 2015
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Conventions Used in This Document . . . . . . . . . . . . 2
2. The pre-NAT IP address conflict . . . . . . . . . . . . . . . 2
3. Creating the NAT workaround on the initiator . . . . . . . . 3
3.1. The Initial Exchange . . . . . . . . . . . . . . . . . . 3
3.2. Handling the NAT problem on the initiator . . . . . . . . 4
3.3. Handling the NAT problem on the responder . . . . . . . . 4
3.4. Implementation details . . . . . . . . . . . . . . . . . 4
4. Creating the NAT workaround on the responder . . . . . . . . 5
5. Security Considerations . . . . . . . . . . . . . . . . . . . 5
6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 5
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 5
8.1. Normative References . . . . . . . . . . . . . . . . . . 5
8.2. Informative References . . . . . . . . . . . . . . . . . 5
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 6
1. Introduction
The Internet Key Exchange Protocol version 2 (IKEv2), specified in
[RFC7296], provides a way to negotiate tunnel mode IPsec SA's for
peers behind NAT. It does not provide guidance on how to resolve the
problem of multiple peers using the same pre-NAT IP address.
Responder assigned IP addresses for NATed peers also do not fully
resolve the address conflict when the NATed peers are deploying
opportunistic IPsec to many remote endpoints. Additional complexity
of configuring many source IP addresses on the NATed peers is
undesirable.
This problem is expected to be a significant issue for large scale
Opportunistic IPsec deployments.
The goal of this draft is to put the burden of the additional effort
required for NAT onto the host that is NAT'ed. In a hypothetical
future with no NAT, no residual protocol changes would remain.
1.1. Conventions 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].
2. The pre-NAT IP address conflict
Antony, et al. Expires September 10, 2015 [Page 2]
Internet-Draft NAT-T for Opportunistic IPsec March 2015
A peer that is behind NAT is only aware of its own native IP address.
While the IKEv2 NATD payloads allow the peer to find out it is behind
NAT, it either has to use its own native IP address or a remote peer
assigned IP address to build IPsec SA's.
Two initiators behind different NAT routers can have the same pre-NAT
IP address. When these initiators attempt to setup an IPsec SA to
the same responder, there will be a conflict on the responder. When
the first initiator connects, the responder will install an IPsec SA
for for the specific pre-NAT IP. For the second initiator, the
responder cannot install an IPsec SA with the same source and
destination selectors without creating a conflict. Even if it could
install two identical IPsec SAs, it still needs a mechanism to decide
between these two IPsec SA's. While connection tracking might be used
to distinguish reply packets, there is no method for initiating a
connection from the responder to one of the initiators without
somehow specifying for which of the initiators the packet is meant.
When initiators behind NAT let the remote peer assign their IP to use
for building the IPsec SA, the problem reverses. Initiators behind
NAT can setup many IPsec SA's to different remote peers, and those
remote peers might use the conflicting IP addresses. Additionally,
using many IP addresses requires that the host or applications need
to be aware of which source IP to use for which remote peer.
3. Creating the NAT workaround on the initiator
In the below workflow, the following example IP addresses are used:
The initiator ("road") has a private IP address of 192.1.3.209
The NAT router has an internal (private) IP address of 192.1.3.254
The NAT router has an external (public) IP address of 192.1.2.254
The responder ("east") has a public IP address of 192.1.2.42
The responder ("east") has a private IP address pool of 10.1.2.0/
24
Tunnel mode is used for all IPsec SA's.
3.1. The Initial Exchange
In IKEv2, the IKE_INIT exchange allows the initiator and responder to
detect the presense of a NAT. In this case both "road" and "east"
become aware of the NAT in front of "road".
Antony, et al. Expires September 10, 2015 [Page 3]
Internet-Draft NAT-T for Opportunistic IPsec March 2015
In IKEv2, the initiator can signal via the TSi payload that it is
willing to receive a responder-assigned IP address for use in the
IPsec SA. The responder needs to be configured with an addresspool
from which it assigns unique IP addresses to the connecting
initiators.
"road" sends a TSi(0.0.0.0/0) and TSr(192.1.2.42/32) request to
"east" in the IKE_AUTH Exchange.
"east" assigns the first free IP address from its pool - 10.1.2.1 -
to this prospective client and sends a TSI(10.1.2.1/32) and
TSr(192.1.2.42/32) back to "road".
The IKE_AUTH Exchange completes as normal. This could be an
authenticated exchange or an exchange without authentication using
AUTH_NULL as specified in [IKE-AUTH-NULL].
3.2. Handling the NAT problem on the initiator
"road", upon receiving east's TSi/TSr - and a successfull completion
of the IKE_AUTH Exchange - two tasks:
1. It installs the negotiated inbound and outbound IPsec SAs
(10.1.2.1/32 <=> 192.1.2.42/32)
2. It installs a destination based NAT rule for 192.1.3.209 ->
192.1.2.42/32 ==> 10.1.2.1/32 -> 192.1.2.42/32
It ensures that the destination based NAT rule is processed before
IPsec processing begins.
3.3. Handling the NAT problem on the responder
The responder has no specific handling it needs to perform apart from
a willingness to assign IP addresses if an initiator requests one via
the special TSi(0.0.0.0/0). If the initiator sends a TSi() that
matches the IP address of the IKE message, the responder should agree
to use that address instead of assigning one from its addresspool.
3.4. Implementation details
The NAT rule can be implemented in the Networking subsystem of the
host kernel, but this specific IPsec-NAT rule could also be
implemented as part of the IPsec subsystem.
Antony, et al. Expires September 10, 2015 [Page 4]
Internet-Draft NAT-T for Opportunistic IPsec March 2015
The initiator host and any application running on the initiator
should not need to be aware of this construct. The responder
assigned IP address does not need to be configured on the host. It
only needs to exist in the NAT rule and the IPsec SA.
4. Creating the NAT workaround on the responder
[placeholder]
5. Security Considerations
This NAT mapping method MUST only be used for host-to-host IPsec
tunnels. It MUST NOT be used for net-to-net IPsec tunnels.
An address from the addresspool should not be re-used quickly to
avoid sending traffic meant for one initiator to another initiator.
6. Acknowledgments
None so far
7. IANA Considerations
This Internet Draft includes no request to IANA.
8. References
8.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC4301] Kent, S. and K. Seo, "Security Architecture for the
Internet Protocol", RFC 4301, December 2005.
[RFC7296] Kaufman, C., Hoffman, P., Nir, Y., Eronen, P., and T.
Kivinen, "Internet Key Exchange Protocol Version 2
(IKEv2)", STD 79, RFC 7296, October 2014.
[IKE-AUTH-NULL]
Smyslov, Valery. and Paul. Wouters, "The NULL
Authentication Method in IKEv2 Protocol", draft-ietf-
ipsecme-ikev2-null-auth (work in progress), February 2015.
8.2. Informative References
[RFC7258] Farrell, S. and H. Tschofenig, "Pervasive Monitoring Is an
Attack", BCP 188, RFC 7258, May 2014.
Antony, et al. Expires September 10, 2015 [Page 5]
Internet-Draft NAT-T for Opportunistic IPsec March 2015
[RFC7435] Dukhovni, V., "Opportunistic Security: Some Protection
Most of the Time", RFC 7435, December 2014.
Authors' Addresses
Antony Antony
Phenome Networks
Email: antony@phenome.org
John Gilmore
Email: gnu@toad.com
Paul Wouters
Red Hat
Email: pwouters@redhat.com
Antony, et al. Expires September 10, 2015 [Page 6]