Internet DRAFT - draft-song-alto-overlay-routing
draft-song-alto-overlay-routing
ALTO H. Song
Internet-Draft Huawei
Intended status: Standards Track Y. Sun
Expires: April 24, 2014 ICT Chinese Academy of Sciences
October 21, 2013
ALTO Protocol Extension For Overlay Routing
draft-song-alto-overlay-routing-00
Abstract
This document describes an ALTO protocol extension for overlay
routing. It considers three different methods to route traffic from
a data source to a data receiver, which are direct Internet routing,
VPN tunnel, and overlay routing via intermediate/relay node(s),
analyze their use cases in real world and then proposes an extension
to ALTO protocol so as to support a ALTO client to get cost value
between hosts via these different routing methods.
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 April 24, 2014.
Copyright Notice
Copyright (c) 2013 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
Song & Sun Expires April 24, 2014 [Page 1]
Internet-Draft Overlay Routing October 2013
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 . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5
3. Overlay Routing Cost Service Extension . . . . . . . . . . . 5
3.1. Overlay Routing Cost . . . . . . . . . . . . . . . . . . 5
3.1.1. Media Type . . . . . . . . . . . . . . . . . . . . . 5
3.1.2. HTTP Method . . . . . . . . . . . . . . . . . . . . . 5
3.1.3. Accept Input Parameters . . . . . . . . . . . . . . . 5
3.1.4. Capabilities . . . . . . . . . . . . . . . . . . . . 6
3.1.5. Uses . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1.6. Response . . . . . . . . . . . . . . . . . . . . . . 7
3.1.7. Example . . . . . . . . . . . . . . . . . . . . . . . 8
4. References . . . . . . . . . . . . . . . . . . . . . . . . . 9
4.1. Normative References . . . . . . . . . . . . . . . . . . 9
4.2. Informative References . . . . . . . . . . . . . . . . . 9
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 9
1. Introduction
ALTO protocol [I-D.ietf-alto-protocol]provides an interface to
applications with appropriate information to guide an optimal node
selection based on the Internet service provider's policy when there
are more than one application nodes providing the same service. It
usually aggregates network locations into PIDs, and assigns lower
cost value for a PID pair that are topologically close. So when
application node follows the advice from ALTO server to choose one
resource provider with a PID that has lower cost from its own PID,
with higher probability the application node can keep the content
request and response traffic flow intra domain, which can reduce the
suffering increasing interdomain traffic for ISPs, and avoid the
congestion in the backbone network. More factors for node selection
can be considered, such as pricing, congestion, and etc.
The existing ALTO protocol has its limitations. For example, in a
cost map it only gives one cost value between source PID and
destination PID, assuming there is only one path between them. But
it can be routed through different paths in overlay routing. So we
propose to add a "via" parameter as an extension to the cost map. In
this document, we give use cases first, and then the possible way to
extend the ALTO protocol to achieve it.
An overlay network is a computer network which is built on the top of
another network. Nodes in the overlay can be thought of as being
Song & Sun Expires April 24, 2014 [Page 2]
Internet-Draft Overlay Routing October 2013
connected by virtual or logical links, each of which corresponds to a
path, perhaps through many physical links, in the underlying
network[overlay_network]. One example of overlay netwok over IP
network is CDN network. A CDN network consists of many CDN nodes
with different levels. One edge CDN node often needs to pull content
from another node that is in a higher distribution level position in
the CDN topology. There usually can be several paths to send the
content from the source CDN node to the edge CDN node. One way
obviously is the direct IP routing. And if the direct routing path
is not good, then the source CDN node will select another CDN node as
the intermediate node to transport the content to the that
destination edge node, which will be more efficiency than the direct
routing path. Of course, there are usually more than one
intermediate node available, and the source CDN node needs to select
a "best" one.
In some cases, there can also be a VPN tunnel between two CDN nodes,
or between two different data center locations to transfer data.
Note that in this document, the VPN refers to the VPN service
provided by the Internet Service Provider, which is used to guarantee
the quality of delivery service. The service/content providers often
classify the data into delay-sensitive and delay-insensitive, Because
VPN tunnel is more expensive than the direct Internet routing method,
and at the same time has higher QoS guarantee than the direct
Internet routing method. The delay-sensitive data is usually
transported via the VPN tunnel and the delay-insensitive data can be
transported over the VPN tunnel if there is available capability for
it, but can also be transported over the direct Internet routing
method in order to leave VPN capability for delay-sensitive data.
The overlay routing method via intermediate nodes (can be an
intermediate CDN server, a data center gateway and etc.) is an
optimization to the direct Internet routing method, thus the QoS is a
little higher than the direct Internet routing method, but it is not
as good as a VPN tunnel.
Song & Sun Expires April 24, 2014 [Page 3]
Internet-Draft Overlay Routing October 2013
/--------\
|/// \\\|
| CDN Node |
|\\\ 1 ///|\
\-+------|| \\
| || \
| || \\ Overlay Routing
|| \ via CDN Node 2
Direct Internet Routing || \\
|| \
| || \\
| || /----\---\
| || |/// \\\|
\ || | CDN Node |
\ || |\\\ 2 ///|
\ || \--------/
\ VPN tunnel /
\ || /
\ || /
\ ||
\ || / Overlay Routing
\ || / via CDN Node 2
/-----++-\ /
|/// \\\| /
| CDN Node |
|\\\ 3 ///|
\--------/
Figure 1. Different ways for sending content from Node 1 to Node 3
So the transport between two Internet hosts can be from:
direct Internet routing
one/more intermediate overlay nodes
a VPN tunnel
In this document, we propose a new overlay routing cost service for
ALTO protocol, which can be used by the ALTO client to compare the
routing cost through different paths between two Internet hosts. As
it is not usually to use two or more relay nodes, we do not consider
that in this document. Actually, if there are two or more relay
nodes, it can be considered as multiple one relay node and use the
service provided by this document multiple times to solve the issue.
Song & Sun Expires April 24, 2014 [Page 4]
Internet-Draft Overlay Routing October 2013
2. 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 [RFC2119]. The
concepts and data formats are consistent with ALTO protocol base
document
. [I-D.ietf-alto-protocol]
3. Overlay Routing Cost Service Extension
The reader is assumped to read ALTO protocol before this document,
especially section 8 of ALTO protocol.
The Overlay Routing Cost Service provides information about costs
between individual endpoints through direct Internet routing, VPN or
overlay routing.
3.1. Overlay Routing Cost
An Overlay Routing Cost resource provides information about costs
between individual endpoints from different paths.
3.1.1. Media Type
The media type of Overlay Routing Cost is "application/alto-
overlayroutingcost+json".
3.1.2. HTTP Method
The Overlay Routing Cost resource is requested using the HTTP POST
method.
3.1.3. Accept Input Parameters
An ALTO Client supplies the overlay routing cost parameters through a
media tyep "application/alto-overlayroutingcostparams+json", with an
HTTP POST entity body of a JSON Object of type
ReqOverlayRoutingCostMap:
object {
CostType cost-type;
[JSONString constraints<0..*>;]
EndpointFilter endpoints;
} ReqOverlayRoutingCostMap;
object {
Song & Sun Expires April 24, 2014 [Page 5]
Internet-Draft Overlay Routing October 2013
TypedEndpointAddr srcs<0..*>;
TypedEndpointAddr dstc<0..*>;
JSONBool drr;
JSONBool vpn;
[TypedEndpointAddr relays<0..*>;]
} EndpointFilter;
with fields:
cost-type The Cost Type (Section 10.7 of ALTO protocol ) to use for
returned costs. The cost-metric and cost-mode fields MUST match one
of the supported Cost Types indicated in this resource's
capabilities. The ALTO Client SHOULD omit the description field, and
if present, the ALTO Server MUST ignore the description field.
constraints Defined equivalently to the "constraints" input parameter
of a Filtered Cost Map (see Section 11.3.2 of ALTO protocol).
endpoints A list of endpoints including source endpoints, relay
endpoints and destination endpoints for which path costs are to be
returned. If "drr" is true, the ALTO server MUST provide the cost of
direct Internet routing from the source endpoint to the destination
endpoint. If the value provided by a ALTO Client for "vpn" is true
and a provider's VPN is existed between a source and destination
endpoints pairs, the ALTO server MUST provide the cost of using the
VPN tunnel. If the value provided by a ALTO Client for "vpn" is
true, but the ALTO server cannot find the VPN information between any
source and destination endpoints, it MUST ignore it. The ALTO server
MUST provide the cost from source endpoints to destination endpoints
through each relay node that is listed in the relay node array. If
the list of Source or Destination Endpoints is empty (or not
included), the ALTO Server MUST interpret it as if it contained the
Endpoint Address corresponding to the client IP address from the
incoming connection (see Section 13.3 for discussion and
considerations regarding this mode). The Source and Destination
Endpoint lists MUST NOT be both empty. The relay node list can be
empty. Note that ALTO client SHOULD NOT set "drr" to true, "vpn" to
false and the relay node list to empty in a single request, in that
case, the ALTO client should use Endpoint Cost Service.
3.1.4. Capabilities
In this document, we define OverlayRoutingCostCapabilities the same
as FilteredCostMapCapabilities. See Section 11.3.2.4 of ALTO
protocol.
Song & Sun Expires April 24, 2014 [Page 6]
Internet-Draft Overlay Routing October 2013
3.1.5. Uses
None.
3.1.6. Response
The "meta" field of an Overlay Routing Cost response MUST include the
"cost-type" key, to indicate the Cost Type used.
The data component of an Overlay Routing Cost response is named
"overlay-routing-cost-map", which is a JSON object of type
OverlayRoutingCostMapData:
object {
[OverlayRoutingCostMapData overlay-routing-cost-map;]
[EndpointTwoLevelCosts vpncost;]
[EndpointTwoLevelCosts drrcost;]
} InfoResourceOverlayRoutingCostMap : ResponseEntityBase;
object-map {
TypedEndpointAddr -> EndpointTwoLevelCosts;
} OverlayRoutingCostMapData;
object-map {
TypedEndpointAddr -> EndpointOneLevelCosts;
} EndpointTwoLevelCosts;
object-map {
TypedEndpointAddr -> JSONValue;
} EndpointOneLevelCosts;
Specifically, an OverlayRoutingCostMapData object is a dictionary map
with each key representing a TypedEndpointAddrr string identifying
the Source Endpoint specified in the input parameters, and for each
Source Endpoint, a EndpointTwoLevelCosts dictionary map object has
each key respresenting a TypedEndpointAddr identifying the
Destination Endpoint, and for each Destination Endpoint, a
EndpointOneLevelCosts dictionary map object denotes the associated
cost with each relay nodes specified in the input parameters.
The key "vpncost" is a dictionary map with each key respresenting a
TypedEndpointAddr string identifying the Source Endpoint specified in
the input parameters, and for each Source Endpoint, a
EndpointOneLeveCost dictionary map object denotes the associated VPN
cost to each Destination Endpoint if existed. So the vpncost may
only contain a few values where there are VPN tunnels between source
endpoints and destination endpoints.
Song & Sun Expires April 24, 2014 [Page 7]
Internet-Draft Overlay Routing October 2013
The key "drrcost" is a dictionary map with each key respresenting a
TypedEndpointAddr string identifying the Source Endpoint specified in
the input parameters, and for each Source Endpoint, a
EndpointOneLeveCost dictionary map object denotes the associated cost
to each Destination Endpoint.
Note that ALTO server SHOULD NOT provide only a single direct routing
cost map.
3.1.7. Example
POST /overlayroutingcost/lookup HTTP/1.1
Host: alto.example.com
Content-Length: TBA
Content-Type: application/alto-overlayroutingcostparams+json
Accept: application/alto-overlayroutingcost+json,application/alto-error+json
{
"cost-type": {"cost-mode" : "ordinal",
"cost-metric" : "routingcost"},
"endpoints" : {
"srcs": [ "ipv4:1.1.1.1" ],
"dsts": [
"ipv4:2.2.2.2",
"ipv4:3.3.3.3",
],
"drr": false,
"vpn": true,
"relays": [ "ipv4:6.6.6.6",
"ipv4:7.7.7.7"
]
}
}
HTTP/1.1 200 OK
Content-Length: TBA
Content-Type: application/alto-overlayroutingcost+json
{
"meta" : {
"cost-type": {"cost-mode" : "ordinal",
"cost-metric" : "routingcost"
}
},
"overlay-routing-cost-map" : {
"ipv4:1.1.1.1": {
"ipv4:2.2.2.2": {
Song & Sun Expires April 24, 2014 [Page 8]
Internet-Draft Overlay Routing October 2013
"ipv4:6.6.6.6": 1,
"ipv4:7.7.7.7": 2,
},
"ipv4:3.3.3.3": {
"ipv4:6.6.6.6": 2,
"ipv4:7.7.7.7": 3
}
}
}
"vpncost": {
"ipv4:1.1.1.1": {
"ipv4:2.2.2.2": 0
}
}
}
4. References
4.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[overlay_network]
, "overlay network", .
http://en.wikipedia.org/wiki/Overlay_network
4.2. Informative References
[I-D.ietf-alto-protocol]
Alimi, R., Penno, R., and Y. Yang, "ALTO Protocol", draft-
ietf-alto-protocol-20 (work in progress), October 2013.
[RFC5693] Seedorf, J. and E. Burger, "Application-Layer Traffic
Optimization (ALTO) Problem Statement", RFC 5693, October
2009.
[I-D.ietf-alto-deployments]
Stimerling, M., Kiesel, S., and S. Previdi, "ALTO
Deployment Considerations", draft-ietf-alto-deployments-06
(work in progress), February 2013.
Authors' Addresses
Song & Sun Expires April 24, 2014 [Page 9]
Internet-Draft Overlay Routing October 2013
Haibin Song
Huawei
Email: haibin.song@huawei.com
Sun Yi
ICT Chinese Academy of Sciences
Email: sunyi@ict.ac.cn
Song & Sun Expires April 24, 2014 [Page 10]