Internet DRAFT - draft-lopez-mptcp-middlebox
draft-lopez-mptcp-middlebox
INTERNET-DRAFT E. Lopez
Intended Status: Informational Fortinet
Expires: May 15, 2015 November 11, 2014
Multipath TCP Middlebox Behavior
draft-lopez-mptcp-middlebox-00
Abstract
As implementation of MPTCP continues to grow, there will be
interaction concerns regarding MPTCP sessions relative to the
functionality of middleboxes, particularly those focused on network-
based security. The purpose of this draft is to review this
interaction of MPTCp sessions and middleboxes, the likely response of
middlebox providers in dealing with any functional degradation due to
MPTCP, and the potential requirements to support proxy functionality
for MPTCP sessions.
Status of this Memo
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/1id-abstracts.html
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html
Copyright and License Notice
Copyright (c) 2014 IETF Trust and the persons identified as the
document authors. All rights reserved.
E. Lopez Expires May 15, 2015 [Page 1]
INTERNET DRAFT Informational November 11, 2014
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 . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1 Terminology . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Impact of MPTCP on Middleboxes . . . . . . . . . . . . . . . . 3
2.1 Single-Session Bias . . . . . . . . . . . . . . . . . . . . 4
2.2 Middlebox Function Degradation . . . . . . . . . . . . . . . 4
3 Independent Responses By Middlebox Providers . . . . . . . . . . 5
3.1 MPTCP Fallback to TCP . . . . . . . . . . . . . . . . . . . 5
3.2 Fast Closure of Existing MPTCP Sessions . . . . . . . . . . 5
3.3 Development of MPTCP-Aware Middlebox Functions . . . . . . . 6
3.4 Independent TCP<>MPTCP Edge Proxies . . . . . . . . . . . . 6
3.5 MPTCP Third-Party Proxies . . . . . . . . . . . . . . . . . 7
4 Security Considerations . . . . . . . . . . . . . . . . . . . . 7
5 IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 8
6 References . . . . . . . . . . . . . . . . . . . . . . . . . . 8
6.1 Normative References . . . . . . . . . . . . . . . . . . . 8
6.2 Informative References . . . . . . . . . . . . . . . . . . 8
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 8
E. Lopez Expires May 15, 2015 [Page 2]
INTERNET DRAFT Informational November 11, 2014
1 Introduction
Multipath TCP (MPTCP) as described in RFC 6824 [RFC6824], provides
for end-to-end support for sessions utilizing multiple TCP subflows
to allow MPTCP sessions to benefit from the available performance
increase and persistence of using multiple forwarding paths. A
difficulty comes from the deployment of middleboxes performing
traffic inspection functions that are unaware of the multipath nature
of the overall session, as well as suffering from a lack of
visibility to all of the data within the complete session. In either
case, the functionality offered by the middlebox is degraded in the
presence of MPTCP sessions, where this was not the case for TCP
sessions.
Much of this is based on the what could be termed the 'single-session
bias' on the part of middlebox functionality. This means that the
majority of functions supported by middleboxes, relative to TCP,
assume that the information required by the function exists within a
single TCP session. Clearly, the evolution of MPTCP invalidates this
assumption or single-session bias. For example, a middlebox
performing a network security function, such as intrusion prevention
system (IPS), may not see all of the traffic required to match a
signature within a single TCP subflow, even though the intrusion data
is present within the overall MPTCP session. Even if this example
IPS does happen to trigger on an intrusion, its actions would be
likely be limited to the singular TCP subflow, rather than the
overall MPTCP session.
The purpose of this draft is discuss the impact of MPTCP sessions on
middlebox operation, with an attempt to understand how middleboxes
will respond to the growing presence of MPTCP traffic. The evolution
of support for MPTCP on middleboxes will result in requirements to
support proxy functions to allow the data from all TCP subflows
associated with an MPTCP session to be examined at an aggregation
point on the network.
1.1 Terminology
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].
2. Impact of MPTCP on Middleboxes
Overall MPTCP sessions are an aggregation of one or more associated
TCP subflows. Early implementations of MPTCP are generally
E. Lopez Expires May 15, 2015 [Page 3]
INTERNET DRAFT Informational November 11, 2014
associated with establishing sessions between endpoint devices, while
intermediate network devices handling the TCP subflows do not require
awareness of the overall MPTCP session to perform packet forwarding
decisions. The existence and utilization of multiple forwarding
paths, and the use of different IP source and destination addresses
on each subflow is inconsequential to the network, as it is the MPTCP
endpoints that are responsible for the overall MPTCP session
integrity.
However, intermediate network nodes, i.e. middleboxes, may perform
functions on traffic other than forwarding. Such functions, if
performed independently on a single TCP subflow, may provide
erroneous or skewed results, as well as negatively impact the
integrity of the overall MPTCP session. A strong example of an
erroneous middlebox result would be the resulting false-negatives due
to failures in signature-matching functions, since the matching data
is distributed across multiple TCP subflows. A strong example of
impact to the integrity of the MPTCP session would be the imposition
of rate-limiting or packet transformation functions on the data
contained within a single TCP subflow, and subsequent requirements
placed on the MPTCP speakers to detect a degraded subflow.
2.1 Single-Session Bias
Most middleboxes suffer from what can be termed a 'single-session
bias', in which each session is considered a unique data transfer
between two endpoints, such that the functions being performed by the
middlebox are bounded to the data within that single session. In the
case of TCP, sessions are seen as unique, rather than an element of
an overall MPTCP subflow. Even if a middlebox were to have
visibility to all of the TCP subflows associated with an MPTCP
session, each subflow would be segregated from the others by a
differential set of source and/or destination IP addresses, as well
as by different TCP sequence values. Without an understanding of
MPTCP, MPTCP sessions are impacted by the interaction of middleboxes
on individual TCP subflows.
MPTCP has been designed to be tolerant of NAT functions performed by
middleboxes. However, other packet transformations, such as
manipulation of DiffServ values or payload substitutions, can have
very unintended effects of the overall MPTCP session. The issuance
of a TCP reset (RST) by a middlebox only fast closes the individual
TCP subflow, and not the overall MPTCP session. Ultimately, the
solution to overcoming single-session bias effect will require
evolution of middleboxes that are MPTCP-aware.
2.2 Middlebox Function Degradation
E. Lopez Expires May 15, 2015 [Page 4]
INTERNET DRAFT Informational November 11, 2014
The functionality provided by middleboxes is too large in scope to
cover within a single document. However, we can extropolate possible
avenues for their functional degradation and failure , based on
understanding the nature of MPTCP.
Since data within an MPTCP session can make use of multiple paths, a
middlebox on any single path can suffer from a lack of complete
visibility to the overall MPTCP session traffic. The likely outcome
of this lack of visibility is a failure of middlebox function due to
false-negative conditions.
A grave issue would be in the substitution of data within a single
TCP subflow, and its impact on the overall MPTCP session. There are
no functions defined in which the integrity of data contained within
one TCP subflow is validated by another subflow. Data substitution
within a single TCP subflow impacts the integrity of the overall
MPTCP session, and is a significant security issue relative to MPTCP
session operation.
3 Independent Responses By Middlebox Providers
The likely outcome is that providers of middleboxes will initially
view MPTCP traffic as an attack relative to their operation. It is
of course desirable for middleboxes to evolve to become MPTCP aware,
and even support future MPTCP proxy functions. The following
subsections describe methods in which middleboxes may respond to the
presence of MPTCP traffic.
3.1 MPTCP Fallback to TCP
The methodology for MPTCP session fallback to standard TCP is clearly
defined in RFC-6824 [RFC6824], section 3.6. Therefore the conditions
under which such fallback can occur become available actions under
which a middlebox can react to the presence of MPTCP. By forcing
fallback to standard TCP, the middlebox can effectively mitigate
functional degradation issues associated with MPTCP.
This is easily accomplished in one of two ways. First is to drop TCP
traffic that contains TCP Options for MPTCP. Second is to filter out
TCP Options for MPTCP, and forward the packet without the options.
3.2 Fast Closure of Existing MPTCP Sessions
It may also occur that a middlebox, rather than detecting the start
of an MPTCP session, may instead detect the creation of a new TCP
subflow via a Join Connection (MP_JOIN) MPTCP option. The issuance
of a TCP Reset (RST) would only affect this TCP subflow, but not the
overall MPTCP session.
E. Lopez Expires May 15, 2015 [Page 5]
INTERNET DRAFT Informational November 11, 2014
RFC-6824 [RFC6824] does allow for fast closure of an overall MPTCP
session, via the MP_FASTCLOSE option. However, this option must be
authenticated with the key of the host to which it is sent. A
middlebox, with only visibility of an MP_JOIN would not have
knowledge of the key credentials of either Host A or Host B to be
able to masquerade an MP_FASTCLOSE option.
This is of course a trade-off. While middlebox providers may desire
the ability to issue third-party MP_FASTCLOSE options to both MPTCP
hosts, providing the ability to do so would present a significant
security challenge. Middleboxes have little recourse when only in
the path of secondary TCP subflows of an MPTCP session.
3.3 Development of MPTCP-Aware Middlebox Functions
Another area of advancement is in the development of MPTCP middlebox
functions. Much of this effort would result in
blacklisting/whitelisting of MPTCP-capable sites. For example, web
filtering solutions may include information on if sites are MPTCP-
capable, and offer middlebox operators the option to allow MPTCP
sessions toward specific sets of sites, rather than in a general
allow/block state.
Note that this assumes that the middlebox is in the path of the
initial TCP subflow establishing the MPTCP session.
3.4 Independent TCP<>MPTCP Edge Proxies
When deployed close to endpoints, the development of TCP<>MPTCP
proxies would allow middleboxes visibility to all traffic associated
with an MPTCP seesion. If effect, the middlebox becomes the endpoint
for the MPTCP session. This would require the development of an
explicit proxy function to convert standard TCP sessions from
endpoints into an MPTCP session from a multipath-capable middlebox.
The Internet-Draft 'draft-wei-mptcp-proxy-mechanism-00' [WEI]
provides an in-depth description of how such independent TCP<>MPTCP
proxies could function. However, the use of such edge-proxies assume
that:
- The MPTCP edge proxy is in the primary forwarding path between
endpoints- The MPTCP edge proxy would force fallback to TCP for MPTCP
capable endpoints behind the proxy
This would be necessary to prevent potential failures due to nested
MPTCP sessions when both endpoints and middleboxes are MPTCP
capable.
E. Lopez Expires May 15, 2015 [Page 6]
INTERNET DRAFT Informational November 11, 2014
3.5 MPTCP Third-Party Proxies
While the development of MPTCP edge proxies is relatively
straightforward, their deployment does not cover the cases under
which a third-party can observe traffic from all TCP sub-flows for a
given MPTCP session. It is not the intention of this draft to
speculate on why it would be desirable to allow a third-party to
perform such an aggregation of TCP subflows, and certainly from the
standpoint of the MPTCP endpoints, such an aggregation is likely sub-
optimal to the performance and resiliency of MPTCP sessions.
However, the intent of this section regards what a third-party
middlebox could do.
Two distinct models for a third-party proxy can be described: an in-
path model, and an out-of-path model.
The in-path model is in essence an MPTCP<>MPTCP proxy, in which a
middlebox inserts itself as a man-in-the-middle (MITM) between two
MPTCP endpoints
Host A <============> Middlebox <============> Host B
Within the in-path model, it could be assumed that the Middlebox
could adjust the initiation of an MPTCP session, for example by
modification of a DNS Reply message, indicating that Host B is
masqueraded by an IP address on the Middlebox. Host A then initiates
an MPTCP proxy to the Middlebox, which in turn by its proxy function
then establishes a separate MPTCP session to Host B.
The out-of-path model assumes that MPTCP capable endpoints, or
downstream devices, will encapsulate their traffic, or a copy of
their traffic, to a third-party middlebox. Traffic encapsulation can
be used to differentially forward packets to a third-party. In this
case, the third-party middlebox is assumed to be transparent to the
MPTCP session establishment between endpoints.
Note that the MPTCP endpoints do not need to explicitly negotiate
such a proxy, and may not even be aware of such a proxy taking
place.
4 Security Considerations
This draft is fully concerned about the integrity of MPTCP sessions
as they traverse middleboxes imposed in their path. While the
deployment of middleboxes may in fact be benevolent in intent or
practice, such devices may currently suffer from a single-session
E. Lopez Expires May 15, 2015 [Page 7]
INTERNET DRAFT Informational November 11, 2014
bias relative to TCP subflows in an overall MPTCP session, which can
cause erroneous or degraded functionality, with potential impact on
the overall MPTCP session. As middleboxes become MPTCP aware, the
rise of independent and third-party proxy functions may exploit MITM
weaknesses available within and external to the MPTCP protocol.
5 IANA Considerations
There are no new requirements for IANA consideration in this draft.
However, 'draft-wei-mptcp-proxy-mechanism-00' [WEI] suggests that a
new flag 'P' in MPTCP MP_CAPABLE option needs to be defined, refer to
RFC 6824, Section 3.1. This flag could be used by a proxy to inform
MPTCP capable host the existence of proxy, although as this draft
suggests such proxies can we created without informing the MPTCP
capable hosts of their presence.
6 References
6.1 Normative References
[RFC6824] Ford, A., Raiciu, C., Handley, M., and O. Bonaventure,
"TCP Extensions for Multipath Operation with Multiple
Addresses", RFC 6824, January 2013.
6.2 Informative References
[WEI] Wei.X, Xiong, C. "MPTCP proxy mechanisms", draft-wei-mptcp-
proxy-mechanism-00, June 2014
Authors' Addresses
Edward Lopez
Fortinet
899 Kifer Road
Sunnyvale, CA 94086
EMail: elopez@fortinet.com
E. Lopez Expires May 15, 2015 [Page 8]