Internet Engineering Task Force W. Roome
Internet-Draft Bell Laboratories, Alcatel-Lucent
Intended status: Informational G. Chen
Expires: March 14, 2016 Huawei Technologies
H. Seidel
BENOCS GmbH
September 11, 2015

Interoperability Testing of the ALTO Protocol
draft-roome-alto-interop-ietf93-01

Abstract

The Application-Layer Traffic Optimization (ALTO) protocol is designed to allow entities with knowledge about the network infrastructure to export such information to applications that need to choose one or more endpoints to connect to among large sets of logically equivalent ones. This document defines a data set that may be used to test the functionality and interoperability of ALTO clients and servers.

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 March 14, 2016.

Copyright Notice

Copyright (c) 2015 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.


Table of Contents

1. Overview

The Application-Layer Traffic Optimization (ALTO) protocol is designed to allow entities with knowledge about the network infrastructure to export such information to applications that need to choose one or more endpoints to connect to among large sets of logically equivalent ones.

This document defines procedures to test the functionality and interoperability of ALTO clients and servers.

This document is informational and is NOT NORMATIVE on any aspects of the ALTO protocol. The normative behavior of ALTO entities is prescribed in [RFC7285].

Section 2 defines the network maps, cost maps and other data necessary to provision an ALTO server. This ensures that all tested servers will return the same results, so a client may verify that a server is operating correctly. Section 3 defines the required and optional resources for an ALTO server to provide. Section 4 describes the actions expected from a client. Section 5 describes a set of invalid client requests, to verify that a server can respond correctly to client errors.

While every effort has been made to catalogue representative test cases, this document does not attempt to codify every test case that arises in ALTO. The aim of the document is to focus on areas that highlight the key offerings of the ALTO protocol.

2. Server Data

This section defines the data necessary to provision a tested ALTO server in a uniform manner. First it defines a default network map, and associated cost maps for the "routingcost" and "hopcount" metrics. Next it defines an optional alternate network map, along with "routingcost" and "hopcount" costs for that map. Finally it defines a set of optional endpoint properties.

The following examples are fictional and do not depict any actual networks or address prefixes. Because an ALTO Network Map must cover all IP addresses, it is not practical to use only addresses in the ranges reserved for documentation [[RFC5737], [RFC3849]].

Appendix A gives network and cost map data defined in this section formatted in JSON.

2.1. Default Network Map And Cost Maps

Every tested ALTO server MUST provide a default network map with the PIDs defined below:

    PID         IP Address Block
    ---------------------------------------
    mine        100.0.0.0/8
    mine1       100.0.0.0/10
    mine1a      100.0.1.0/24, 100.0.64.0/24, 100.0.192.0/24
    mine2       100.64.0.0/10
    mine3       100.128.0.0/10

    peer1       128.0.0.0/16, 130.0.0.0/16, 2001:DB8:0000::/33
    peer2       129.0.0.0/16, 131.0.0.0/16, 2001:DB8:8000::/33

    tran1       132.0.0.0/16
    tran2       135.0.0.0/16

    default     0.0.0.0/0, ::0/0
    loopback    127.0.0.0/8, ::1/128
    linklocal   169.254.0.0/16, ff80::/10
    private     10.0.0.0/8, 172.16.0.0/12,
                192.168.0.0/16, fc00::/7
       

Figure 1: Default Network Map

Each ALTO server MUST provide a cost map for the "routingcost" metric. The following table presents the numerical values for those costs. If a server provides a numerical-mode cost map, it MUST use these values. If a server provides an ordinal-mode cost map, the server may use whatever values it wants, provided the ordinal values preserve the order of the numerical values.

            default linklocal loopback mine mine1 mine1a mine2 mine3
    default       -         -        - 60.0  63.0   65.0  64.0  65.0
  linklocal       -       0.0        -    -     -      -     -     -
   loopback       -         -      0.0    -     -      -     -     -
       mine    60.0         -        -  0.0   3.0    5.0   4.0   5.0
      mine1    63.0         -        -  3.0   0.0    2.0   6.5   8.0
     mine1a    65.0         -        -  5.0   2.0    0.0   4.5  10.0
      mine2    64.0         -        -  4.0   7.0    9.0   0.0   9.0
      mine3    65.0         -        -  5.0   8.0   10.0   9.0   0.0
      peer1       -         -        - 20.0  23.0   25.0  24.0  25.0
      peer2       -         -        - 25.0  28.0   30.0  29.0  30.0
    private       -         -        -    -     -      -     -     -
      tran1       -         -        - 35.0  38.0   40.0  39.0  40.0
      tran2       -         -        - 45.0  48.0   50.0  49.0  50.0

            peer1 peer2 private tran1 tran2
    default     -     -       -     -     -
  linklocal     -     -       -     -     -
   loopback     -     -       -     -     -
       mine  20.0  25.0       -  35.0  45.0
      mine1  23.0  28.0       -  38.0  48.0
     mine1a  25.0  30.0       -  40.0  50.0
      mine2  24.0  29.0       -  39.0  49.0
      mine3  25.0  30.0       -  40.0  50.0
      peer1   0.0     -       -     -     -
      peer2     -   0.0       -     -     -
    private     -     -     0.0     -     -
      tran1     -     -       -   0.0     -
      tran2     -     -       -     -   0.0
         

Figure 2: "routingcost" Numerical Cost Map

Note that this is a partial cost map, in that it does not define a cost for every source and destination PID. Also note that the costs are symmetric except for (mine1,mine2) and (mine1a,mine2).

Each ALTO server MAY provide a cost map for the "hopcount" metric. The following table gives the numerical values. As with "routingcost", a numerical-mode cost map MUST use these values, and an ordinal-mode cost map may use any values consistent with this ordering.

            default linklocal loopback mine mine1 mine1a mine2 mine3
    default       -         -        -    3     4      5     4     4
  linklocal       -         0        -    -     -      -     -     -
   loopback       -         -        0    -     -      -     -     -
       mine       3         -        -    0     2      3     2     2
      mine1       4         -        -    2     0      2     3     3
     mine1a       5         -        -    3     2      0     2     4
      mine2       4         -        -    2     3      4     0     3
      mine3       4         -        -    2     3      4     3     0
      peer1       -         -        -    3     4      5     4     4
      peer2       -         -        -    2     3      4     3     3
    private       -         -        -    -     -      -     -     -
      tran1       -         -        -    4     5      6     5     5
      tran2       -         -        -    3     4      5     4     4

            peer1 peer2 private tran1 tran2
    default     -     -       -     -     -
  linklocal     -     -       -     -     -
   loopback     -     -       -     -     -
       mine     3     2       -     4     3
      mine1     4     3       -     5     4
     mine1a     5     4       -     6     5
      mine2     4     3       -     5     4
      mine3     4     3       -     5     4
      peer1     0     -       -     -     -
      peer2     -     0       -     -     -
    private     -     -       0     -     -
      tran1     -     -       -     0     -
      tran2     -     -       -     -     0
       

Figure 3: "hopcount" Numerical Cost Map

Note that the hopcount costs are symmetric except for (mine1a,mine2).

The figure below depicts a network the default network and cost maps MAY BE derived from:

+------------+     +-------------+            
|130.0.0.0/16|     |128.0.0.0/16 |
|    peer1   |     |2001:DB8::/33|
+----+-------+     |    peer1    |
     |             +-----+-------+
     |                   |
     |   +---------------+
     |   |                       +------------+
   +-+---+-+       +-------+     |132.0.0.0/16|
   |  R7   +-------+  R8   +-----+    tran1   |
   +---+---+       +-------+     +------------+
       |
       |         +-----------+   +------------+
       |         |100.0.0.0/8|   |100.0.0.0/10|
       |         |    mine   |   |    mine1   |
       |         +-----+-----+   +----+-------+
       |               |              |
   +---+---+       +---+---+      +---+---+        +------------+
   |  R6   +-------+  R1   +------+  R2   |   +----+100.0.1.0/24|
   +---+---+       +-+-+-+-+      +---+---+   |    |   mine1a   |
       |             | | |            |       |    +------------+
       |             | | |            |       |
   +---+---+         | | |            |   +---+---+   +-------------+
   |  R11  |         | | |            +---+  R3   +---+100.0.64.0/24|
   +---+---+         | | |                +-+-+---+   |    mine1a   |
       |             | | |                  | |       +-------------+
       |             | | |                  | |
  +----+----+        | | |                  | |    +--------------+
  |0.0.0.0/0|        | | |                  | +----+100.0.192.0/24|
  |::/0     |        | | |          +-------+      |    mine1a    |
  | default |        | | |          |              +--------------+
  +---------+        | | |          |              
                     | | |          |
      +-------+      | | |      +---+---+     
      |  R5   +------+ | +------+  R4   |     
      +---+---+        |        +---+---+
          |            |            |
  +-------+------+     |     +------+------+
  |100.128.0.0/10|     |     |100.64.0.0/10|
  |    mine3     |     |     |    mine2    |
  +--------------+     |     +-------------+
                       |
+------------+     +---+---+     +------------------+
|131.0.0.0/16+-----+  R9   +-----+   129.0.0.0/16   |
|   peer2    |     +---+---+     |2001:DB8:8000::/33|
+------------+         |         |     peer2        |
                       |         +------------------+
                       |
                   +---+---+     +------------+
                   |  R10  +-----+135.0.0.0/16|
                   +-------+     |    tran2   |
                                 +------------+
       

Figure 4: Default Network Layout

The links between the routers (R1 - R11) have the following metrics. To get the routingcost between two PIDs, sum the link metrics for all paths between the PIDs, and take the lowest sum. Be aware that the link between R3 and R4 is asymmetric.