rfc-9241

Content Delivery Network Interconnection (CDNI) Footprint and Capabilities Advertisement Using Application-Layer Traffic Optimization (ALTO)

J. Seedorf, Y. Yang, K. Ma, J. Peterson, J. Zhang
date2022-07 streamIETF areaops wgalto statusPROPOSED STANDARD pages42 canonicalhttps://www.rfc-editor.org/rfc/rfc9241 doi10.17487/RFC9241
The Content Delivery Networks Interconnection (CDNI) framework in RFC 6707 defines a set of protocols to interconnect CDNs to achieve multiple goals, including extending the reach of a given CDN. A CDNI Request Routing Footprint & Capabilities Advertisement interface (FCI) is needed to achieve the goals of a CDNI. RFC 8008 defines the FCI semantics and provides guidelines on the FCI protocol, but the exact protocol is not specified. This document defines a new Application-Layer Traffic Optimization (ALTO) service, called "CDNI Advertisement Service", that provides an implementation of the FCI, following the guidelines defined in RFC 8008.

Extracted elements (26)

design-rationale §2.3

ALTO was chosen as the FCI transport protocol because it is application-layer-oriented, provides RESTful design, supports server-initiated notifications and incremental updates via SSE (RFC 8895), and its network map semantics match the footprint representation needs of CDNI. These properties satisfy RFC 8008's requirements for push, pull, and efficient update delivery.

http, json

interoperability-note §3.7.3

CDNI Advertisement resources support incremental updates via ALTO SSE (RFC 8895), using both JSON merge patch (application/merge-patch+json) and JSON patch (application/json-patch+json) to encode changes, enabling efficient propagation of footprint and capability changes from dCDN to uCDN.

http, json

interoperability-note §6.1

The 'ipv4' and 'ipv6' predefined ALTO entity domain types (RFC 9240) are reused to represent 'ipv4cidr' and 'ipv6cidr' CDNI footprint types respectively. Individual address entities translate to the corresponding CIDR footprint with the longest prefix (/32 for IPv4, /128 for IPv6).

ip, json

normative-requirement §4.1 MUST

For a CDNI Advertisement resource using 'altopid' footprints, the resource ID of the dependent network map MUST be included in the 'uses' field of its IRD entry, and 'dependent-vtags' with a reference to this network map MUST be included in its response.

http, json

normative-requirement §3.6 MUST

For each BaseAdvertisementObject, the ALTO client MUST interpret 'footprints' appearing multiple times as if they appeared only once. If 'footprints' is null, empty, or absent, the client MUST understand the capabilities have 'global' coverage.

http, json

normative-requirement §3.6 MUST

If a CDNI Advertisement response depends on other ALTO information resources, it MUST include the 'dependent-vtags' field as an array of version tags for resources listed in the 'uses' IRD entry field.

http, json

normative-requirement §5.3 MUST

If the 'cdni-capabilities' list in a filtered request is empty, the ALTO server MUST interpret it as a request for the full CDNI Advertisement resource. The server MUST interpret duplicate entries as if they appeared only once, and MUST omit capabilities for which no footprints are defined.

http, json

normative-requirement §3.6 MUST

The 'meta' field of a CDNI Advertisement response MUST include the 'vtag' field defined in Section 10.3 of RFC 7285, providing the version of the retrieved CDNI FCI resource.

http, json

normative-requirement §3.5 MUST NOT

The 'uses' field MUST NOT appear unless the CDNI Advertisement resource depends on other ALTO information resources; if dependent resources exist, their resource IDs MUST be included in the 'uses' field.

http, json

normative-requirement §5.6 MUST

The version tag in the 'vtag' field of a filtered CDNI Advertisement response MUST correspond to the full CDNI Advertisement resource from which it is derived, ensuring a single canonical version tag regardless of filtering.

http, json

normative-requirement §5.6 MUST

When a filtered CDNI Advertisement request is invalid (null capability-type or capability-value, or inconsistent values), the ALTO server MUST return an 'E_INVALID_FIELD_VALUE' error per Section 8.5.2 of RFC 7285, and the 'value' field SHOULD indicate the offending CDNI capability.

http, json

normative-requirement §6.2.1 MUST

When resource-specific entity properties are defined with entity property type 'cdni-capabilities', the defining information resource MUST be a CDNI Advertisement resource (media type: application/alto-cdni+json) provided by the ALTO server.

http, json

protocol-element §6.2

A new ALTO entity property type 'cdni-capabilities' is defined, mapping footprint entities (ipv4, ipv6, asn, countrycode) to their associated CDNI capabilities. Its value MUST be a JSON array of CDNICapability objects.

registry, json

protocol-element §4.1

A new CDNI Footprint Type 'altopid' is defined, allowing a CDNI Advertisement resource to reference PID names from a dependent ALTO network map. This enables compression of CDNI Footprint Payloads using ALTO Provider-defined Identifiers.

http, json

protocol-element §6.1.1

The ASN entity domain type (identifier: 'asn') associates property values with Autonomous Systems. Entity identifiers MUST be encoded as the string 'as' (lowercase) followed by the ASN as a decimal number without leading zeros (e.g., 'as64496').

registry, json

protocol-element §3

The CDNI Advertisement Service is a new ALTO service that conveys JSON objects of media type 'application/alto-cdni+json', transporting BaseAdvertisementObject objects defined in RFC 8008. It enables a dCDN to advertise its footprints and capabilities to a uCDN via the ALTO protocol.

http, json, registry

protocol-element §3.6

The CDNIAdvertisementData object contains a single property 'capabilities-with-footprints', which is an array of BaseAdvertisementObject objects. Each BaseAdvertisementObject includes 'capability-type', 'capability-value', and 'footprints' fields.

json, http

protocol-element §6.1.2

The COUNTRYCODE entity domain type (identifier: 'countrycode') associates property values with countries. Entity identifiers are encoded as ISO 3166-1 alpha-2 codes in lowercase. There is no hierarchy or inheritance.

registry, json

protocol-element §5

The Filtered CDNI Advertisement Service allows a uCDN client to filter a CDNI Advertisement resource by posting a ReqFilteredCDNIAdvertisement object (media type 'application/alto-cdnifilter+json') with a list of desired CDNI capabilities via HTTP POST.

http, json

registry §7.1

This document registers two new media types: 'application/alto-cdni+json' (Section 7.1) for CDNI Advertisement resources, and 'application/alto-cdnifilter+json' (Section 7.2) for filtered CDNI Advertisement request input parameters.

registry, http, json

registry §7.4

This document updates the ALTO Entity Domain Types registry (RFC 9240) by adding two new types: 'asn' (ASN encoding per Section 6.1.1.2) and 'countrycode' (ISO 3166-1 alpha-2 encoding per Section 6.1.2.2), both with no hierarchy/inheritance and no mapping to ALTO address types.

registry

registry §7.5

This document updates the ALTO Entity Property Types registry (RFC 9240) by adding a new type 'cdni-capabilities' with intended semantics defined in Section 6.2 and defining resource media type 'application/alto-cdni+json'.

registry

registry §7.3

This document updates the CDNI Metadata Footprint Types registry (RFC 8006) by registering a new footprint type 'altopid', defined as a list of PID names referencing an ALTO network map.

registry

security-consideration §8 SHOULD

A dCDN SHOULD isolate full and/or filtered CDNI Advertisement resources for different uCDNs to prevent information leakage across uCDN agreements; URIs may be generated by hashing company IDs and agreement terms. A dCDN SHOULD avoid exposing all resources in a single IRD.

security, privacy

security-consideration §8

An attacker may impersonate an ALTO server for a dCDN and provide false capabilities/footprints, potentially causing a uCDN to select incorrect dCDNs. Additionally, a dCDN could deliberately provide limited capabilities to avoid serving traffic, or launch DoS attacks via resource-intensive queries.

security

security-consideration §8 MUST

The uCDN (ALTO Client) MUST be authenticated to the dCDN (ALTO Server), and the dCDN MUST support HTTP Digest Authentication (RFC 7616) and MAY also support TLS mutual authentication (RFC 8446), as required by RFC 8008's integrity and authentication mandate for FCI implementations.

security, tls, http