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

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.


slide-1
SLIDE 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

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

Why MCPs are Needed?

  • More and more MIF devices

– Need to optimize the usage of available resources

  • Operators do not control the devices located in the

LAN side

– MPTCP support at the servers is close to null

  • Means for an operator to assist MIF devices are

needed: MCP (Multipath Conversion Point)

H1

LAN CPE PLMN b Fixed Access

H2

PLMN x Network #a

UE

T 1 1 T 1 2 T 1 3 T 1 4 T 2 1 T 2 2 T 2 3 T 2 4 T 3 1 T 3 2 T 3 3 T 3 4

DC

e.g., Cellular/WLAN e.g., Fixed/Wireless

slide-4
SLIDE 4

MCP Design Goals

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

– Be compatible with IPv4/IPv6 – Do not impose any constraint on addressing – Do not require nor exclude the use of distinct IP prefix pools for the network-assisted MPTCP – Do not assume the MCP is located on a default forwarding path – Support both transparent and non-transparent operations – Support both single and dual proxy deployments

  • Avoid interfering with native MPTCP connections
  • Support future extensions
  • Allow for providers’ policies
slide-5
SLIDE 5

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-6
SLIDE 6

(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

slide-7
SLIDE 7

(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

dMCP can orchestrate its withdrawal from the connection

dMCP can orchestrate its withdrawal from the connection Policies are provided to the CPE

This may not be optimal given that the client does not have any visibility

  • n the CPE available paths
slide-8
SLIDE 8

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-9
SLIDE 9

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 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-10
SLIDE 10

How MCPs are inserted in an inbound connection?

  • Specific routing announcements 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 can be

retrieved from a rendezvous service

H1

LAN CPE PLMN b Fixed Access

H2

PLMN x Network #a

UE

MCP MCP

H1

LAN CPE PLMN b Fixed Access

H2

MCP

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

slide-11
SLIDE 11

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-12
SLIDE 12

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-13
SLIDE 13

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 proxied

connections

Multipath Client MCP Multipath Server

MPTCP

No MP_PREFER_PROXY

slide-14
SLIDE 14

Encourage End-to-End MPTCP Connections

  • IMPLICIT/EXPLICIT Modes

– DEFAULT: The MCP must not strip MP_CAPABLE from the SYN segments it forwards to the server

  • A configuration parameter to disable it for some servers
  • 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-15
SLIDE 15

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

H2 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-16
SLIDE 16

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=rm@ src=@2 src=@1 dst=rm@

Dual Proxy

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

slide-17
SLIDE 17

How 0-RTT proxying is possible? Implicit 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 dMCP

  • How to distinguish MP_CONVERT elements from application supplied

data?

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

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

How 0-RTT proxying is possible? Implicit Mode

  • How supplied data is structured?

– TLV format that does not require 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-19
SLIDE 19

How 0-RTT proxying is possible? Implicit 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-20
SLIDE 20

How 0-RTT proxying is possible? Implicit 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-21
SLIDE 21

How 0-RTT proxying is possible? Implicit 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-22
SLIDE 22

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-23
SLIDE 23

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-24
SLIDE 24

Further Considerations

  • Fragmentation

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

  • Flow 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-25
SLIDE 25

Recap

  • 0-RTT
  • No tunnels, no encapsulation
  • No change to the base MPTCP specification
  • Provides resource pooling and resilience
  • Accommodates various deployment schemes
  • Optimizes the use of IP address resources
  • MP_PREFER_PROXY allows clients to indicate whether a connection is to

be proxied or not

  • Supports encrypted traffic
  • Builds on security BCPs: ingress filtering, 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

  • Extensible
slide-26
SLIDE 26

DHCP Options for Network-Assisted Multipath TCP (MPTCP)

draft-boucadair-mptcp-dhc

slide-27
SLIDE 27

Problem

  • One or multiple MCPs may be deployed in the

network

  • The CPE should be provided with means to

discover its MCP(s)

  • This document specifies DHCP and DHCPv6
  • ptions to provision a list of MCPs
slide-28
SLIDE 28

Design Rationale

  • Follow DHC guidelines: RFC7227
  • Avoid dependency on a resolution library

– The option returns a list of IPv4 and/or IPv6 addresses

  • Avoid aliasing

– Allowing the option to convey also a name will lead to aliasing; not recommended in RFC7227

  • “This kind of aliasing is undesirable and is not recommended”
  • “It is strongly discouraged to define both option types at the same

time”

– Name resolution can be achieved at the DHCP server side (see RFC 7969)

slide-29
SLIDE 29

Proposed Approach

  • The current specification allows to return a list of MCPs; each

identified with a list of IP addresses

– DHCPv6

  • The DHCPv6 server returns multiple instances of OPTION_V6_MPTCP
  • IPv4-mapped IPv6 addresses are used to encode IPv4 addresses

– DHCP

  • When several lists of MCP IPv4 addresses are included, “List-Length” and

“MPTCP Concentrator IPv4 Addresses” fields are repeated.

  • How the CPE selects one or several MCPs based upon

DHCP-carried information is out of scope

slide-30
SLIDE 30

What’s Next?

  • The document has been reviewed in dhc

– dhc review is available here – Many thanks to Dan Seibel, Bernie Volz, Niall O'Reilly, Simon Hobson, and Ted Lemon

  • How to progress the document?

– dhc WG charter states:

  • “Definitions of new DHCP options that are delivered using standard

mechanisms with documented semantics are not considered a protocol extension and thus are outside of scope for the DHC WG. Such options should be defined within their respective WGs and reviewed by DHCP experts in the Internet Area Directorate”

slide-31
SLIDE 31

RADIUS Extensions for Network- Assisted Multipath TCP (MPTCP)

draft-boucadair-mptcp-radius

slide-32
SLIDE 32

This Document

  • One or multiple MCPs may be deployed in the

network

– Assumption: All access networks are managed by the same Network Provider – Need to control subscribers who can solicit MCP resources

  • The MCP(s) reachability information can be stored

in Authentication, Authorization, and Accounting (AAA) servers

  • This document specifies RADIUS extensions to

provision a list of MCPs

slide-33
SLIDE 33

Proposed Approach

  • Follow RADEXT guidelines for defining a new data type (RFC8044)
  • To accommodate both IPv4 and IPv6 deployments, two attributes

are specified: MPTCP-IPv4-MCP & MPTCP-IPv6-MCP – Avoid polymorphic attributes (RFC6158)

– MPTCP-MCP-IPvx attribute contains the IPvx address of an MCP

  • Multiple instances of the MPTCP-MCP-IPvx attribute may be

included; each instance of the attribute carries a distinct IP address

  • Both MPTCP-MCP-IPv4 and MPTCP-MCP-IPv6 attributes may be

present in a RADIUS message

slide-34
SLIDE 34

A Sample Flow

slide-35
SLIDE 35

What’s Next?

  • Comments
  • How to progress this specification?