Network-Assisted MPTCP IETF#98, Chicago, March 2017 M. Boucadair - - PowerPoint PPT Presentation

network assisted mptcp
SMART_READER_LITE
LIVE PREVIEW

Network-Assisted MPTCP IETF#98, Chicago, March 2017 M. Boucadair - - PowerPoint PPT Presentation

IETF 98 th Network-Assisted MPTCP IETF#98, Chicago, March 2017 M. Boucadair (Orange) C. Jacquenet (Orange) O. Bonaventure (Tessares) W. Henderickx (ALU/Nokia) R. Skog (Ericsson) D. Behaghel (OneAccess) S. Secci (Universite Pierre et Marie


slide-1
SLIDE 1

IETF 98th 1

Network-Assisted MPTCP

IETF#98, Chicago, March 2017

  • M. Boucadair (Orange)
  • C. Jacquenet (Orange)
  • O. Bonaventure (Tessares)
  • W. Henderickx (ALU/Nokia)
  • R. Skog (Ericsson)
  • D. Behaghel (OneAccess)
  • S. Secci (Universite Pierre et Marie Curie)
  • S. Vinapamula (Juniper)
  • S. Seo (Korea Telecom)
  • W. Cloetens SoftAtHome
  • U. Meyer Vodafone
  • LM. Contreras Telefonica
  • B. Peirens Proximus
slide-2
SLIDE 2

2

Documents Structure

  • Deployment considerations

– draft-nam-mptcp-deployment-considerations

  • Core specification

– draft-boucadair-mptcp-plain-mode

  • Provisioning

– draft-boucadair-mptcp-dhc (customer side) – draft-boucadair-mptcp-radius (network side)

slide-3
SLIDE 3

3

Recall the Motivation

  • Operators want to enhance Quality of

Experience for their customers by boosting some access lines

– Grab more capacity by means of link aggregation – Increase serviceability during network attachment failures

  • Applies for both fixed and cellular

networks

slide-4
SLIDE 4

4

Network-Assisted MPTCP: Rationale

  • Given

– The MPTCP penetration rate is close to null at the server side, and – Network Providers do not control customers’ terminals

  • A network-assisted model is attractive to offer bonding

services

PLMN x Network #a

UE

MCP

H1

LAN CPE uMCP PLMN b Fixed Access

H2

dMCP

Dual Proxy Single Proxy

slide-5
SLIDE 5

5

MCP Design Goals

  • 0-RTT proxy
  • No overhead: Avoid the use of tunnels/encapsulation
  • Accommodate various deployments

– Be compatible with IPv4/IPv6 – Do not assume the MCP is located on a default forwarding path – Support both single and dual proxy deployments

  • Avoid interfering with native MPTCP connections

– … and encourage MPTCP when the remote peer supports it

slide-6
SLIDE 6

6

How MCPs are inserted in an

  • utbound connection?
  • Explicit Mode: MPTCP data are sent explicitly to an MCP’s IP

address

– No need for traffic inspection – No adherence to the underlying routing and forwarding policies

  • The MCP can be located anywhere in the network
  • The initial subflow may be placed via any of the available

network attachments

  • Allows also for backup service

H1

LAN CPE PLMN b Fixed Access

H2

PLMN x Network #a

UE

Provision MCP@s

MCP MCP

Provision MCP@s

slide-7
SLIDE 7

7

How MCPs are inserted in an inbound connection?

  • Specific routes must be injected to intercept incoming traffic

– Achieved by the MCP or a router to which it is attached to – The prefix/address aggregates to be announced are deployment-specific

  • The address/port to use to place an incoming connection is

retrieved by the remote peer using out of band mechanism (e.g., DNS)

H1

LAN CPE PLMN b Fixed Access

H2

PLMN x Network #a

UE

MCP MCP

The MCP (or the router it is attached to) must inject specific routes to intercept incoming packets

slide-8
SLIDE 8

8

How 0-RTT proxying is possible? Explicit Mode

  • Supply (forwarding) data during the 3WHS of the initial subflow

– Supply at least the ultimate destination IP address [and port] by means of MP_CONVERT elements – No overhead for subsequent MPTCP messages

  • Which channel to use to supply data during the 3WHS?

– The payload of the SYN of the initial subflow

  • What if data is present in the original SYN?

– That data must be placed right after the MP_CONVERT IEs when the MCP creates the initial SYN of the MPTCP leg – MP_CONVERT IEs will be striped by the downstream MCP

  • How to distinguish MP_CONVERT elements from application supplied

data?

– Use a 32-bit magic number to unambiguously determine this is about supplied proxy data: 0xFAA8 0xFAA8

  • FAA8=111101010101000
  • (RFC) 6824=001101010101000
slide-9
SLIDE 9

9

How 0-RTT proxying is possible? Explicit Mode

  • How supplied data is structured?

– TLV format – Does not consume any MPTCP code point – Multiple elements can be supplied

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +---------------------------------------------------------------+ | Magic Number("0xFAA8 0xFAA8") | +---------------+---------------+---------------------------+-+-+ | Type | Length | Reserved |D|M| +---------------+---------------+---------------------------+-+-+ | Address (IPv4 - 4 octets / IPv6 - 16 octets) | +-------------------------------+-------------------------------+ | Port (2 octets, optional) | +-------------------------------+ More bit. Must be set for the last MP_CONVERT IE Type 0 is defined. New types can be defined in the future, if needed. source/destinatio n IP address/port

slide-10
SLIDE 10

10

How 0-RTT proxying is possible? Explicit Mode

  • Initial subflow

Client CPE uMCP dMCP Server

@1@2 h@1 dMCP@ rm@ src=@1

Dual Proxy

SYN (MP_CAPABLE, MP_CONVERT (rm@))

SYN (MP_CAPABLE) SYN

dMCPe@

SYN/ACK

SYN/ACK (MP_CAPABLE, MP_CONVERT (rm@)))

SYN/ACK

ACK(MP_CAPABLE)

ACK ACK

src=h@1 dst=rm@ dst=dMCP@ src=dMCPe@ dst=rm@ A state is created for this connection Lookup for an entry matching this flow Processing according to the existing entry

slide-11
SLIDE 11

11

How 0-RTT proxying is possible? Explicit Mode

  • Subsequent subflows: Normal MPTCP behavior is followed

Client CPE uMCP dMCP Server

@1@2 h@1 dMCP@ rm@ src=@2

Dual Proxy

SYN (MP_JOIN)

dMCPe@

SYN/ACK (MP_JOIN) ACK(MP_JOIN)

dst=dMCP@

… …

slide-12
SLIDE 12

12

Encourage End-to-End MPTCP Connections

  • A policy can be provisioned on the CPE so that native MPTCP

connections are not proxyied

– Deployment-specific

  • The downstream MCP must not strip MP_CAPABLE from the

SYN segments it forwards to the server

Multipath Client CPE uMCP dMCP

MPTCP

Multipath Server Client CPE uMCP dMCP

TCP

Multipath Server

MPTCP MPTCP

slide-13
SLIDE 13

13

Recap

  • 0-RTT
  • No tunnels, no encapsulation
  • No change to the base MPTCP specification
  • Provides resource pooling and resilience
  • Accommodates various deployment schemes
  • Builds on security BCPs: ingress filtering, mitigation against SYN flood

attacks, rate-limit flows/state creation, etc.

  • Preserves privacy: no sensitive information is leaked
  • Encourages end-to-end MPTCP

– Supports MCP exit strategy – MP_PREFER_PROXY allows clients to indicate whether a connection is to be proxyied or not

  • Extensible
slide-14
SLIDE 14

IETF 98th 14

Appendix

slide-15
SLIDE 15

15

Target Communication Segments: Single Proxy

Multipath Client MCP Server

MPTCP TCP

Client MCP Multipath Server

TCP MPTCP

Multipath Client MCP Multipath Server

MPTCP

Multipath Client MCP Multipath Server

MPTCP MPTCP

e.g., Datacenter case e.g., Cellular/WLAN bonding service

slide-16
SLIDE 16

16

(Some) Target Communication Segments: Dual Proxy

Client CPE uMCP dMCP

TCP MPTCP

Server Client CPE uMCP dMCP

TCP

Multipath Server

MPTCP TCP MPTCP

CPE uMCP dMCP Multipath Server Multipath Client

MPTCP MPTCP MPTCP

Multipath Client CPE uMCP dMCP Server

TCP

CPE uMCP dMCP Server

TCP

Multipath Client

MPTCP MPTCP

Multipath Client CPE uMCP dMCP

MPTCP

Multipath Server

1 2 3 4 5 6

slide-17
SLIDE 17

17

How MCPs are inserted in an

  • utbound connection?
  • Implicit Mode: an MCP is positioned on a default

forwarding path

  • The initial subflow must be placed over that path
  • Inspects all TCP traffic to determine MPTCP

connections

  • Then, it advertises itself to a peer by means of

MP_JOIN or ADD_ADDR

H1

LAN CPE PLMN b Fixed Access

H2

PLMN x Network #a

UE

MCP MCP

Advertises itself using MPTCP signals Advertises itself using MPTCP signals

slide-18
SLIDE 18

18

Transparent MCPs

  • Preserves the source IP address/prefix of the CPE/UE

– That is, packets sent by the MCP are sourced with an IP address/prefix that belongs to the CPE/UE – Applies for both Implicit and Explicit modes

  • Various configurations are supported

Client CPE uMCP dMCP Server

LAN

i_IPv4@

cpe@1 cpe@2 … cpe@1

Client CPE uMCP dMCP Server

LAN

hIPv6@

cpe@1 cpe@2 … cpe@1

Client CPE uMCP dMCP Server

LAN

hIPv6@

cpe@1 cpe@2 … hIPv6@

IPv4 source address preservation IPv6 source prefix preservation IPv6 source address preservation

slide-19
SLIDE 19

19

Non-transparent MCPs

  • Requires IP address pool(s) to be provisioned to the

MCP

– Packets sent to the Internet are sourced with an IP address from this pool – Both IPv4 and IPv6 pools may be configured

  • Several configurations can be supported

– IPv4 address sharing (N:1) – 1:1 address translation – IPv6 Network Prefix Translation (NPTv6)

  • Straightforward for an MCP to intercept incoming

packets

  • Applies only for the explicit mode
slide-20
SLIDE 20

20

Encourage End-to-End MPTCP Connections

  • The MCP must not strip MP_CAPABLE from the SYN segments it

forwards to the server

  • Whether an MCP must be maintained in the processing of an

MPTCP connection that involve MPTCP-capable client and server is a configurable parameter

– PROPOSED DEFAULT: Maintain the MCP in the communication

Multipath Client MCP Multipath Server

MPTCP

Multipath Client MCP Multipath Server

MPTCP MPTCP

MCP is not involved in this connection MCP inserts itself in the connection

slide-21
SLIDE 21

21

Encourage End-to-End MPTCP Connections

  • IMPLICIT Mode: An MCP does only intervene in MPTCP

connections that include MP_PREFER_PROXY signal

– This signal may be set by the UE or by an MCP – MP_PREFER_PROXY is included in the initial SYN (MP_CAPABLE)

  • Operators want to reserve MCP resources to proxyied

connections

Multipath Client CPE uMCP dMCP

MPTCP

Multipath Server

No MP_PREFER_PROXY

slide-22
SLIDE 22

22

Fixed Access

MCP

LAN CPE

Identify Native Connections

PLMN b

S

Internet

S is not MPTCP- capable

MPTCP TCP

H1

  • What if MP_PREFER_PROXY is not supported?

MPTCP- capable Advertises its address to

  • H1. H1 creates a new

subflow for no visible benefits

slide-23
SLIDE 23

23

Fixed Access

MCP

LAN CPE

Identify Native Connections

PLMN b

S

Internet

S is MPTCP- capable

MPTCP

H1

  • What if MP_PREFER_PROXY is not supported?

MPTCP- capable Advertises its address to H1. Suppose this address is publically routable

PLMN a

subflow #1 subflow #2

The subflow is rejected because it is received from the Internet-facing interface of the MCP

slide-24
SLIDE 24

24

Fixed Access

MCP

LAN CPE

Identify Native Connections

PLMN b

S

Internet

S is MPTCP- capable

MPTCP

H1

  • What if MP_PREFER_PROXY is not supported?

MPTCP- capable Advertises its address to H1. Suppose this address is publically routable

PLMN a

subflow #2 subflow #1

slide-25
SLIDE 25

25

Fixed Access

MCP

LAN CPE

Encourage End-to-End MPTCP Connections

PLMN b

S

Internet

The presence of MP_CAPABLE in SYN_ACK is a trigger to remove the MCP from the connection S is MPTCP- capable

MPTCP MPTCP

H1 Private IPv4@ second subflow

  • Blindly removing the MCP may be problematic

– Issues with addressing: private IPv4, IPv4-only server while IPv6-only prefixes are assigned on some networks – An MPTCP-capable host does not have the visibility nor the control on available paths upstream

MPTCP- capable

slide-26
SLIDE 26

26

Single Proxy

How 0-RTT proxying is possible? Implicit Mode

  • Intrinsic to the implicit mode

Client CPE uMCP dMCP Server

@1@2 src=h@ h@1 dMCP@ rm@ dst=rm@ dst=rm@ src=@1 src=@1 dst=rm@

Client dMCP Server

h@1h@2 dMCP@ rm@ dst=rm@ src=h@1 src=h@1 dst=rm@ dst=rm@ dst=dMCP@ src=@2 src=@1 dst=rm@

Dual Proxy

dst=dMCP@ src=h@2 src=h@1 dst=rm@

slide-27
SLIDE 27

27

How 0-RTT proxying is possible? Explicit Mode

  • How to prevent leaking data to MP_CONVERT-

unaware servers?

– It is likely that the provisioned MCP is compatible with the service design… but misconfiguration may happen – MCP must strip MP_CONVERT when forwarding upstream

– To strengthen the procedure with means to detect misconfiguration, the behavior is as follows

  • Insert MP_CONVERT IEs (type 0) in a SYN
  • If the remote MCP supports the procedure, it MUST echo MP_CONVERT IE

MP_CONVERT IEs (type 0) in the SYN/ACK

  • If no MP_CONVERT IEs (type 0) is echoed, that MCP MUST NOT be used

for subsequent MPTCP assisted connections, till a new network attachment is detected, the device gets a new IP address/prefix, TTL expired, …

slide-28
SLIDE 28

28

Authorization

  • Deployment-specific
  • Some samples are (non-exhaustive list):

– Use a dedicated APN + filter based on the IMSI. This method does not require any interaction with the MCP – Access Control Lists (ACLs), e.g., at a Broadband Network Gateway (BNG) to control authorized subscribers. These ACLs may be installed as a result of RADIUS exchanges for instance ([I-D.boucadair-mptcp- radius]). This method does not require any interaction with the MCP – The device that embeds the MCP may also host a RADIUS client that will solicit an AAA server to check whether connections received from a given source IP address are authorized or not ([I-D.boucadair-mptcp- radius])

  • Future MP_CONVERT types may be defined in the future for

authorization purposes

slide-29
SLIDE 29

29

Further Considerations

  • Fragmentation

– Unlikely; only the initial SYN packet is augmented (explicit mode) – MSS clamping can be used if needed

  • Flows eligible to network-MPTCP assisted service

– Deployment and policy-based

  • DSCP preservation is supported
  • Exhausted TCP option space in the original SYN

– DEFAULT: No MPTCP options are inserted

slide-30
SLIDE 30

30

MCP for DCs

  • When an MCP is inserted, the original source

IP address/port may be lost

– The source IP address may be used for abuse, logging, policy enforcement, etc.

  • HOST_ID TCP option (RFC7974) can be used to

solve that problem

  • No further extension is required
slide-31
SLIDE 31

31

Why not MPTCP+SOCKS?

  • Too chatty
  • Extra delay to setup

subflows

– several tens of ms per subflow

  • Need for UPnP IGD-

SOCKS interworking

End-node HCPE HAG/SOCKS Server TCP SYN/SYN ACK/ACK (to IP.dest, port-dest) (MP)TCP 3 way handshake (SYN/SYN ACK/ACK IP.SRC=IP.DSL, PORT.DEST=1080 Including the Multipath extension for TCP selection message(version=05, Number of methods supported, list of methots) METHOD selection (version=05, method=02) Authentication Request (login, password) Authentication Ack (status=SUCCESS) Socks COMMAND (CONNECT to IP.dest::port-dest) Socks REPLY (status=SUCCEEDED) HCPE establishes MPTCP subflow on DSL On DSL path TCP SYN/SYN ACK/ACK TCP flow MPTCP on DSL TCP flow (MP)TCP 3 way handshake (SYN/SYN ACK/ACK IP.SRC=IP.LTE, PORT.DEST=1080 Including the Multipath extension for TCP selection message(version=05, Number of methods supported, list of methots) METHOD selection (version=05, method=02) Authentication Request (login, password) Authentication Ack (status=SUCCESS) Socks COMMAND (CONNECT to IP.dest::port-dest) Socks REPLY (status=SUCCEEDED) HCPE establishes MPTCP subflow on LTE On LTE path TCP flow MPTCP on DSL MPTCP on LTE TCP flow TCP Relay and MPTCP distribution

this three way handshaye can take place before DSL MPTCP path completion http://msc-generator.sourceforge.net v4.5

credits: P. Seite