Internet DRAFT - draft-scharf-alto-topology
draft-scharf-alto-topology
ALTO WG M. Scharf
Internet-Draft Alcatel-Lucent Bell Labs
Intended status: Standards Track July 2, 2014
Expires: January 3, 2015
Path-Vector and Node-Edge Topology Maps in ALTO
draft-scharf-alto-topology-00
Abstract
The Application-Layer Traffic Optimization (ALTO) service defines
network and cost maps to provide basic network information. This
document motivates an optional extension of ALTO for the definition
of additional topology properties. The ALTO extension supports both
path-vector and node-edge topology maps.
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 January 3, 2015.
Copyright Notice
Copyright (c) 2014 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
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.
Scharf Expires January 3, 2015 [Page 1]
Internet-Draft Topology Maps in ALTO July 2014
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Endpoint-Centric Network Topology Models . . . . . . . . . . 3
3.1. Use Cases . . . . . . . . . . . . . . . . . . . . . . . . 3
3.2. Topology Models . . . . . . . . . . . . . . . . . . . . . 4
4. Topology Encoding Formats for ALTO . . . . . . . . . . . . . 5
4.1. Map Service Extension . . . . . . . . . . . . . . . . . . 5
4.2. Path-Vector Format . . . . . . . . . . . . . . . . . . . 6
4.3. Node-Edge Format . . . . . . . . . . . . . . . . . . . . 8
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10
6. Security Considerations . . . . . . . . . . . . . . . . . . . 10
7. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . 10
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 10
8.1. Normative References . . . . . . . . . . . . . . . . . . 10
8.2. Informative References . . . . . . . . . . . . . . . . . 10
Appendix A. Contributors . . . . . . . . . . . . . . . . . . . . 11
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 11
1. Introduction
The Application-Layer Traffic Optimization (ALTO) service
[I-D.ietf-alto-protocol] provides network information (e.g., basic
network location structure and preferences of network paths) with the
goal of modifying network resource consumption patterns while
maintaining or improving application performance. The basic
information of ALTO is based on abstract maps of a network. These
maps provide a simplified view, yet enough information about a
network for applications to effectively utilize them.
Applications using an ALTO service typically consist of instances
running at endpoints. This is why ALTO maps provide abstract cost
and/or ranking information between network endpoints. Yet, for
selected use cases of ALTO, it is desirable to have a more detailed
representation of the network. For instance, in settings with
multiple application source-destination pairs with multiple links,
such a representation could help avoid bottleneck or failed links.
Topology models for ALTO are also discussed in other related
documents. A full solution to extend ALTO is defined in
[I-D.yang-alto-topology]. An earlier survey of use-cases for
extended network topology information can also be found in
[I-D.bernstein-alto-topo]. Further related work has been published
in [I-D.lee-alto-app-net-info-exchange] and
[I-D.bernstein-alto-large-bandwidth-cases].
Scharf Expires January 3, 2015 [Page 2]
Internet-Draft Topology Maps in ALTO July 2014
This document specifies two graph representation formats that can be
used in ALTO. Both formats are optional, and it is up to the
operator of an ALTO service to decide whether to offer this data in
addition to the standard network and cost maps of an ALTO service.
The graph representation defined in this document is based on
existing ALTO abstraction (e.g., PIDs) and complements the existing
path-based ALTO cost map representation. Together, they provide a
more complete but still abstract representation of networks for
informed traffic optimization among endpoints.
This document does not intend to model topology internals not
affecting endpoints, such as routing protocol internals. A data
model for network topologies with routing protocol externals can for
instance be found in [I-D.clemm-i2rs-yang-network-topo].
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].
3. Endpoint-Centric Network Topology Models
3.1. Use Cases
This document focuses on exposure of network topology properties that
matter to endpoints. Usually, applications instances at network
endpoints (hosts) only have to care about end-to-end network
properties of the paths between those endpoints. The basic ALTO
services, i.e., either the Network and Cost Map service or the
Endpoint Cost service, can be used to express end-to-end
characteristics of paths between endpoints, as explained e.g. in
[I-D.ietf-alto-deployments] and [I-D.wu-alto-te-metrics].
However, there are a number of use cases in which it is difficult to
expose topological properties to applications using only the
mechanisms in the base ALTO protocol [I-D.ietf-alto-protocol]. These
uses cases are typically characterized by multiple application
source-destination pairs:
o Shared bottleneck detection: As explained for instance in
[I-D.ietf-alto-deployments], ALTO can be used to avoid excessive
use of bottleneck links by recommending communication with
endpoints not using that bottleneck. However, if multiple
application transfers shall be scheduled, e.g., by a bandwidth
calendaring application, it can be difficult to determine whether
the resulting communication would hit a common bottleneck unless
the applications are aware of links that would be used by multiple
Scharf Expires January 3, 2015 [Page 3]
Internet-Draft Topology Maps in ALTO July 2014
transfers. This would benefit from an ALTO extension that can
return shared parts of paths used by transfers between different
endpoints (e.g., given by IP addresses).
o Resilience improvement: Applications requiring high reliability
can be interested in understanding if there is a risk of
simultaneous failures on multiple path between application
instances. For instance, transport networks can provide certain
shared risk link group (SRLG) information that provides insight
which links are at risk of simultaneous failures due to fate
sharing. Applications requiring high reliability may then prefer
the use of endpoints with disjoint paths.
o Multi-homing and multi-pathing: If endpoints are multi-homed,
i.e., if hosts have more than one IP address, it can be useful to
know if there are multiple paths between these endpoints. For
instance, applications could leverage such information to decide
whether to explictly enable Multipath TCP [RFC6824].
None of these use cases requires an application to understand routing
protocol internals, such as the entries in Routing Information Base
(RIB) of routers in the network. While it may be possible to derive
such information from corresponding models, such as
[I-D.clemm-i2rs-yang-network-topo], ALTO targets general-purpose
applications that typically have no understanding of RIB data,
different routing protocols, etc. Therefore, ALTO requires a more
abstract solution to express topology details. An optional ALTO
graph representation solution allows disclosure of such information
to ALTO clients.
3.2. Topology Models
This document specifies two optional, abstract graph representation
format for ALTO, which can reveal for instance coupling of links on a
path. This section introduces the topology model. The formal
specification follows in the next section.
There are two different graph representation formats that could be
used to generalize the existing ALTO network and cost maps and reveal
path coupling:
o Path-vector format: This format describes the topology between
given endpoints by an enumeration of the path traversed between
the source and destination. The advantage of this format is that
it can consider the outcome of network-internal routing policies
(e.g., preferring paths other than the shortest path given by
routing metrics). However, for a large network with many paths
there is a large representation overhead.
Scharf Expires January 3, 2015 [Page 4]
Internet-Draft Topology Maps in ALTO July 2014
o Node-edge format: A graph encoding with nodes and edges can be
very compact, depending on the average node degree, and it can
also be much smaller than the full mesh of costs between endpoints
that is used by ALTO cost maps. Yet, a downside is that a single
graph may not convey network routing policies.
Since both formats have advantages and drawbacks, this document
allows the use of both formats, and it is up to the ALTO service to
decide whether to support it.
Both formats can reuse the PID concept that is used in ALTO to
abstract topology details, as explained in [I-D.ietf-alto-protocol]
and [I-D.ietf-alto-deployments].
4. Topology Encoding Formats for ALTO
This section defines an OPTIONAL extension of ALTO for topology
encoding in JSON format [RFC4627]. An ALTO service announces the
support of these formats in the Information Resource Directory (IRD)
[I-D.ietf-alto-protocol].
TODO: Currently, the formats are illustrated by examples only. The
full formal specification is TBD.
4.1. Map Service Extension
The graph encoding uses the existing PID concept and ALTO map service
[I-D.ietf-alto-protocol]. Basically, both in the path-vector and in
the node-edge encoding, a PID is generalized as a node in the
topology. If an ALTO server server uses either format, it MAY return
PIDs without an IPv4 or IPv6 address mapping.
For instance, consider the following network topology. For the sake
of simplicity, "H1", "H2", ... as well as "R1", "R2", ... are also
used as PID names in the following examples.
10.0.1.1/24 10.0.3.1/24
+----+ +----+ +----+
| H1 |----. .----| R3 |------| H3 |
+----+ \+----+ +----+/ +----+ +----+
| R1 |======| R2 |
+----+ /+----+ +----+\ +----+ +----+
| H2 |----' '----| R4 |------| H4 |
+----+ +----+ +----+
10.0.2.1/24 10.0.4.1/24
R1, R2, ... are transit nodes in the topology. The objective of
topology encoding formats is to represent their relations. Yet, the
Scharf Expires January 3, 2015 [Page 5]
Internet-Draft Topology Maps in ALTO July 2014
addresses of those routers (e.g., interface or system IP addresses)
may not matter to applications. Therefore, PIDs representing those
nodes may not have a valid IP address mapping. In ALTO, it is up to
an ALTO server to define what a PID represents. A PID can both refer
to a single node (such as a router), a subnet, a whole network, etc.
A corresponding ALTO network map query according to
[I-D.ietf-alto-protocol] would be:
GET /networkmap HTTP/1.1
Host: alto.example.com
Accept: application/alto-networkmap+json,
application/alto-error+json
For the given example, this would return:
HTTP/1.1 200 OK
Content-Length: TBD
Content-Type: application/alto-networkmap+json
{
"meta": {
...
},
"network-map": {
"H1": { "ipv4": [ "10.0.1.0/24" ] },
"H2": { "ipv4": [ "10.0.2.0/24" ] },
"H3": { "ipv4": [ "10.0.3.0/24" ] },
"H4": { "ipv4": [ "10.0.4.0/24" ] },
"R1": { }, "R2": { }, "R3": { }, "R4": { },
"Default": {
"ipv4": [ "0.0.0.0/0" ], "ipv6": [ "::/0" ]
}
}
}
R1, R2, R3, and R4 are transient PIDs on the path between endsystems.
If their IP addresses do not matter, they can be omitted. If an
identification of such nodes was required, one could introduce other
identifiers. This is left for further study.
4.2. Path-Vector Format
This extension uses a new media type "application/alto-
pathvector+json". An ALTO service MAY use the path-vector format as
optional extension. In the path-vector format, an ALTO cost map
consists of an ordered sequence of PIDs. Using the same query
Scharf Expires January 3, 2015 [Page 6]
Internet-Draft Topology Maps in ALTO July 2014
mechanisms like the base ALTO protocol [I-D.ietf-alto-protocol], an
ALTO query for path-vector information would be:
GET /costmap/pathvector HTTP/1.1
Host: alto.example.com
Accept: application/alto-pathvector+json,
application/alto-error+json
The corresponding response of an ALTO server would be:
HTTP/1.1 200 OK
Content-Length: TBA
Content-Type: application/alto-pathvector+json
{
"meta": {
...
"cost-type": {"cost-mode": "pathvector"}
},
"cost-map" : {
"H1": {
"H2": [ "R1" ],
"H3": [ "R1", "R2", "R3" ]
"H4": [ "R1", "R2", "R4" ]
},
"H2": { ... },
"H3": { ... },
"H4": { ... },
"Default": { ... }
}
}
In the most simple form, a path vector consists of an ordered
sequence of PIDs from a source to a destination. It is also possible
to extend the path vector format by integrating cost metrics in the
vector. A corresponding format is left for further study in this
document.
In general, the cost values between any PIDs can always be determined
using the standard cost map of ALTO [I-D.ietf-alto-protocol]. As an
example, the following query is also possible for the path-vector
cost mode:
GET /costmap/num/routingcost HTTP/1.1
Host: alto.example.com
Accept: application/alto-costmap+json,
application/alto-error+json
Scharf Expires January 3, 2015 [Page 7]
Internet-Draft Topology Maps in ALTO July 2014
A corresponding response of an ALTO server could be, fully using the
syntax and semantics of [I-D.ietf-alto-protocol]:
HTTP/1.1 200 OK
Content-Length: TBD
Content-Type: application/alto-costmap+json
{
"meta" : {
...
"cost-type": {"cost-mode": "numerical",
"cost-metric": "routingcost"
}
},
"cost-map": {
"H1": { "R1": 1 },
"H2": { "R1": 5 },
"R1": { "H1": 1, "H2": 5, "R2": 9 },
"R2": { "R1": 9, "R3": 4, "R4": 7 },
...
}
}
In addition to the standard metric "routing cost", also other metrics
for ALTO cost maps could be used, such as the ones described in
[I-D.wu-alto-te-metrics].
4.3. Node-Edge Format
As an alternative representation, an ALTO service MAY also expose map
data in a node-edge format. The node-edge format basically returns a
list of edges between the PIDs given by the network map. The
response SHOULD also include a list of the nodes, which is identical
to the ALTO network map. Adding the list of nodes enables a client
to process the full graph with a single query. This extension uses
the new media type "application/alto-nodeedge+json". In the
following a query for a node-edge map is shown:
GET /costmap/nodeedge HTTP/1.1
Host: alto.example.com
Accept: application/alto-nodeedge+json,
application/alto-error+json
In the given example, the response in node-edge format would be as
follows:
Scharf Expires January 3, 2015 [Page 8]
Internet-Draft Topology Maps in ALTO July 2014
HTTP/1.1 200 OK
Content-Length: TBA
Content-Type: application/alto-nodeedge+json
{
"meta": {
...
"cost-type": {"cost-mode": "nodeedge"}
},
"nodes": {
"H1": { "ipv4": [ "10.0.1.0/24" ] },
"H2": { "ipv4": [ "10.0.2.0/24" ] },
"H3": { "ipv4": [ "10.0.3.0/24" ] },
"H4": { "ipv4": [ "10.0.4.0/24" ] },
"R1": { }, "R2": { }, "R3": { }, "R4": { },
"Default": {
"ipv4": [ "0.0.0.0/0" ], "ipv6": [ "::/0" ]
}
}
"edges": [
"E1": { "src": "H1", "dst": "R1",
"type": "directed",
"cost": [ { "cost-metric": "delay",
"value": "3"
}, {
"cost-metric": "availbw",
"value": "50"
}, {
"cost-metric" : "risk-group",
"value" : ["SLRG3"]
} ]
},
"E2": { "src": "R1", "dst": "R2",
"type": "directed",
"cost": [ { "cost-metric": "delay",
"value": "3"
}, {
"cost-metric": "availbw",
"value": "50"
} ]
},
...
}
}
The node-edge format re-uses the PID as identifiers for nodes. It
requires a new set of identifiers for the edges. For those
identifies, the same syntax constraints like for PIDs are used.
Scharf Expires January 3, 2015 [Page 9]
Internet-Draft Topology Maps in ALTO July 2014
Within one response, each edge must be uniquely identified by an edge
identifier.
Edges can be characterized by the same attributes like ALTO cost
maps, including one or more cost metrics. For instance, the cost
metrics defined in [I-D.wu-alto-te-metrics] can be used for edges.
The specification of further edge properties is for further study.
5. IANA Considerations
TBD
6. Security Considerations
TBD
7. Conclusion
TBD
8. References
8.1. Normative References
[I-D.ietf-alto-protocol]
Alimi, R., Penno, R., and Y. Yang, "ALTO Protocol", draft-
ietf-alto-protocol-27 (work in progress), March 2014.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC4627] Crockford, D., "The application/json Media Type for
JavaScript Object Notation (JSON)", RFC 4627, July 2006.
8.2. Informative References
[I-D.bernstein-alto-large-bandwidth-cases]
Bernstein, G. and Y. Lee, "Use Cases for High Bandwidth
Query and Control of Core Networks", draft-bernstein-alto-
large-bandwidth-cases-02 (work in progress), July 2012.
[I-D.bernstein-alto-topo]
Bernstein, G., Yang, Y., and Y. Lee, "ALTO Topology
Service: Uses Cases, Requirements, and Framework", draft-
bernstein-alto-topo-00 (work in progress), October 2013.
Scharf Expires January 3, 2015 [Page 10]
Internet-Draft Topology Maps in ALTO July 2014
[I-D.clemm-i2rs-yang-network-topo]
Clemm, A., Ananthakrishnan, H., Medved, J., Tkacik, T.,
Varga, R., and N. Bahadur, "A YANG Data Model for Network
Topologies", draft-clemm-i2rs-yang-network-topo-00 (work
in progress), February 2014.
[I-D.ietf-alto-deployments]
Stiemerling, M., Kiesel, S., Previdi, S., and M. Scharf,
"ALTO Deployment Considerations", draft-ietf-alto-
deployments-09 (work in progress), February 2014.
[I-D.lee-alto-app-net-info-exchange]
Lee, Y., Dhody, D., Wu, Q., Bernstein, G., and T. Choi,
"ALTO Extensions to Support Application and Network
Resource Information Exchange for High Bandwidth
Applications in TE networks", draft-lee-alto-app-net-info-
exchange-04 (work in progress), October 2013.
[I-D.wu-alto-te-metrics]
Wu, W., Yang, Y., Lee, Y., Dhody, D., and S. Randriamasy,
"ALTO Traffic Engineering Cost Metrics", draft-wu-alto-te-
metrics-03 (work in progress), June 2014.
[I-D.yang-alto-topology]
Bernstein, G., Lee, Y., Roome, B., Scharf, M., and Y.
Yang, "ALTO Topology Extensions", draft-yang-alto-
topology-03 (work in progress), July 2014.
[RFC6824] Ford, A., Raiciu, C., Handley, M., and O. Bonaventure,
"TCP Extensions for Multipath Operation with Multiple
Addresses", RFC 6824, January 2013.
Appendix A. Contributors
This document is an outcome of very valuable discussions with Y.
Richard Yang, Young Lee, and Greg M. Bernstein during IETF 89.
Author's Address
Michael Scharf
Alcatel-Lucent Bell Labs
Lorenzstrasse 10
Stuttgart 70435
Germany
Email: michael.scharf@alcatel-lucent.com
Scharf Expires January 3, 2015 [Page 11]