Subject: [multipathtcp] MPTCP external auth drafts

From: Alan Ford <[email-masked]>
Date: Sat, 28 May 2016 09:32:37 +0100

Hi all,

Following on from the discussion at the previous two IETFs, we have submitted two drafts proposing a way forward for resolving the loadbalancers issue (or in other words, separating tokens and keys), and in turn have a proposal for using TLS keying material with MPTCP.

This proposal comes in the form of two drafts, to separate protocol changes (which we would be proposing for adoption into rfc6824bis), and TLS-specific extensions (which we would suggest are kept separate).

The protocol changes (http://www.ietf.org/id/draft-paasch-mptcp-application-authentication-00.txt) propose an additional handshake mechanism to be negotiated in the MP_CAPABLE flags - the "G" bit, allocated to "application-layer". This means that MPTCP queries the application layer for Token and Key materials. This is negotiated by being offered by the initiator, and chosen by the answerer.

Only tokens are sent on the wire, and these can be used to contain any information that could assist a far end to demultiplex connections (e.g. including routing data which would help front-end proxies).

Minor changes that fall out of this also mean the IDSN, in that scenario, would be generated from the Token not the Key.

Keying information may not be available at the SYN/ACK exchange, but will be provided by the application when available. Only once that has occurred can subflow setup continue.

The TLS draft (http://www.ietf.org/id/draft-paasch-mptcp-tls-authentication-00.txt) shows how we can interface this proposal with TLS, using RFC5705 key export from TLS. This requires no changes to the protocol, but would register a new RFC5705 exporter with IANA. Exported keys from a TLS session would be passed to the MPTCP layer and used in the HMAC authentication algorithm.

We would like to present and discuss these points in the upcoming interim, to see if there is consensus to add the necessary protocol changes to rfc6824bis.

Best regards,
Alan & Christoph

---

From: Costin Raiciu <[email-masked]>
Date: Tue, 31 May 2016 11:35:15 +0300

Dear all,

We have published a paper that presents the design and implementation of a MPTCP load balancer for datacenters.  The paper is called Datacenter Scale Load Balancing for Multipath Transport, will appear in HotMiddlebox 2016 and you can download it here: http://nets.cs.pub.ro/~costin/files/mplb.pdf

In short, we use the unmodified MPTCP protocol but encode the server identifier in the least significant 10bits of the timestamps. This is a hack and we acknowledge it, but it shows that one can build scalable load balancers without changing the protocol.

We are now working on a refinement of our design that will not rely on timestamps. Following Olivier’s suggestion, we will use destination port numbers for subsequent subflows for load balancing purposes (as you know, destination port numbers don’t really matter for subflow setup where the token is used instead). We will write a draft about our solution and present it at the Berlin IETF.

What this work shows is that there is no need to (drastically or at all) change the MPTCP protocol for load balancer support.

Best.
Costin