RFC 9217

Current Open Questions in Path-Aware Networking

๐Ÿ“… published March 2022, from ietf

RFC 9217: Current Open Questions in Path-Aware Networking ๐Ÿ’–

Okay bestie, let's start with the title block tea โ˜• This one comes from the Internet Research Task Force (IRTF), and the author is B. Trammell at Google Switzerland GmbH. It's marked as Informational (so not a Standards Track spec, more of a "here's what we're thinking" doc ๐Ÿงธ), it's dated March 2022, and its ISSN is 2070-1721. The header doesn't list anything this one obsoletes or updates, so there's nothing to chase there ๐Ÿซถ


Abstract ๐Ÿฆ‹

Okay so the big idea is that a path-aware internetworking architecture has two super important properties. First, it shows endpoints what the properties of the available Internet paths are. Second, it lets endpoints and apps actually use those properties to pick which paths their traffic takes through the Internet ๐Ÿ›ฃ๏ธโœจ Path awareness already exists in lots of Internet-connected networks inside single domains, and through administrative interfaces to the network layer. A fully path-aware internetwork just takes those ideas across layers and across the whole Internet, which is giving main character energy ๐Ÿ‘‘

This document asks questions about path-aware networking that were still open as of 2021. These are the questions that have to get answered when we design, build, and deploy path-aware internetworks ๐Ÿ’… It was first written to frame discussions in the Path Aware Networking Research Group (PANRG), and it's been published as a snapshot of where current thinking is at ๐Ÿ“ธ

Status of This Memo ๐Ÿ“œ

Not gonna lie, this part is kinda boring but it matters ๐Ÿ™ˆ This document is not an Internet Standards Track specification. It's published for informational purposes only.

It's a product of the Internet Research Task Force (IRTF), which publishes results of Internet-related research and development. Those results might not be suitable for deployment, so keep that in mind ๐ŸŒธ This RFC represents the consensus of the Path Aware Networking Research Group of the IRTF. Documents approved for publication by the IRSG are not candidates for any level of Internet Standard, see Section 2 of RFC 7841 for the details ๐Ÿ“š

For info about the current status of this document, any errata, and how to leave feedback, check out https://www.rfc-editor.org/info/rfc9217 ๐Ÿ”—

Copyright (c) 2022 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 (https://trustee.ietf.org/license-info) as they're in effect on the date this document was published. Please actually read these, because they spell out your rights and restrictions for this document ๐Ÿซถ

Table of Contents ๐Ÿ—บ๏ธ

1.  Introduction to Path-Aware Networking
  1.1.  Definitions
2.  Questions
  2.1.  A Vocabulary of Path Properties
  2.2.  Discovery, Distribution, and Trustworthiness of Path
        Properties
  2.3.  Supporting Path Selection
  2.4.  Interfaces for Path Awareness
  2.5.  Implications of Path Awareness for the Transport and
        Application Layers
  2.6.  What is an Endpoint?
  2.7.  Operating a Path-Aware Network
  2.8.  Deploying a Path-Aware Network
3.  IANA Considerations
4.  Security and Privacy Considerations
5.  Informative References
Acknowledgments
Author's Address

1. Introduction to Path-Aware Networking โœจ

Okay so in the current Internet architecture, the network layer gives endpoints a best-effort service, and there's no way to verify the properties of the path between the endpoints ๐Ÿ™ƒ Some network-layer techs try for better-than-best-effort delivery, but the interfaces to them are usually administrative instead of exposed to endpoints. Think Path Computation Element (PCE) [RFC4655] and Software-Defined Wide Area Network (SD-WAN) [MEF70] approaches. They're also often stuck inside single administrative domains ๐Ÿ  In this architecture, an app can count on a packet with a given destination address eventually getting forwarded toward that destination, and that's kinda it ๐Ÿคทโ€โ™€๏ธ

Then you've got transport protocols like TCP, which can add reliability on top of that best-effort service. And protocols above the network layer, like Transport Layer Security (TLS) [RFC8446], can authenticate the remote endpoint ๐Ÿ” But honestly, little if any explicit info about the path is available to endpoints, and the assumptions they make about that path often don't hold up ๐Ÿ’€ Sometimes that has serious impacts on the app, like with BGP hijacking attacks ๐Ÿ˜ญ

Now compare that with a path-aware internetworking architecture ๐Ÿฆ‹ Here, endpoints can select or influence the path or paths through the network that any given packet or flow uses. The network and transport layers explicitly expose info about the path or paths available to the endpoints and to the apps running on them, so they can make that selection. The Application-Layer Traffic Optimization (ALTO) protocol [RFC7285] can be seen as an example of a path-awareness approach, implemented in transport-layer terms on today's Internet protocol stack ๐ŸŒˆ

Path selection gives applications and users of the network explicit visibility and control over how their traffic gets treated ๐Ÿ‘‘ That selection is available to the application-, transport-, and/or network-layer entities at each endpoint. Path control at the flow and subflow level lets us design new transport protocols that can use multipath connectivity across disjoint paths through the Internet, even over a single physical interface ๐Ÿคฏ When it's exposed to apps, or to end users through a system configuration interface, path control lets you specify constraints on which paths traffic should traverse. For instance, that can help confound passive surveillance in the network core [RFC7624] ๐Ÿ•ต๏ธโ€โ™€๏ธ

We should note that this "path awareness" property already exists in many Internet-connected networks within single domains. Honestly, a lot of network engineering that uses layer 3 encapsulation can be called "path aware," because it explicitly assigns traffic at tunnel endpoints to a given path within the network ๐Ÿง Path-aware internetworking wants to extend this awareness across domain boundaries, without resorting to overlays, except as a transition technology โœจ

This document is a snapshot of open questions in this space. We need answers to these in order to make a path-aware internetworking architecture real ๐Ÿ’– It's published to further frame discussions within and outside the Path Aware Networking Research Group, and it's published with the rough consensus of that group ๐Ÿซถ

1.1. Definitions ๐Ÿ“–

For the purposes of this document, "path-aware networking" describes endpoint discovery of the properties of paths they use for communication across an internetwork, plus endpoint reaction to those properties that affects routing and/or data transfer ๐Ÿ›ค๏ธ Note that this can, and already does, happen to some extent in the current Internet architecture. This definition just expands current path discovery and manipulation techniques to cross administrative domain boundaries, and up to the transport and application layers at the endpoints ๐ŸŒธ

Expanding on that definition, a "path-aware internetwork" is one where endpoint discovery of path properties and endpoint selection of paths used by traffic exchanged by the endpoint are explicitly supported. This holds regardless of the specific design of the protocol features that enable this discovery and selection ๐Ÿงš

A "path," for these definitions, is abstractly defined as a sequence of adjacent path elements over which a packet can be transmitted. The definition of "path element" is technology dependent ๐Ÿงฉ Since this document is meant to pose questions rather than answer them, it assumes this definition will be refined as part of answering the first two questions it poses, which are about the vocabulary of path properties and how they're disseminated ๐Ÿ’…

Research into path-aware internetworking covers any and all aspects of designing, building, and operating path-aware internetworks, or the networks and endpoints attached to them. This document presents a collection of research questions to address in order to make a path-aware Internet a reality ๐ŸŽ€

2. Questions ๐Ÿ’œ

Realizing path-aware networking requires answers to a set of open research questions ๐Ÿ”ฅ This document poses these questions as a starting point for discussions about how to realize path awareness in the Internet, and to direct future research efforts within the Path Aware Networking Research Group ๐ŸŒˆ

2.1. A Vocabulary of Path Properties ๐Ÿ“

The first question is: how are paths and path properties defined and represented? ๐Ÿค”

For info about paths to be exposed to an endpoint, and for the endpoint to actually use that info, we need a common vocabulary for paths through an internetwork and for the properties of those paths. The elements of this vocabulary could include terminology for components of a path, and properties defined for those components. Those properties could be for the entire path or for subpaths of a path ๐Ÿงฉ Some properties may be relatively static, like the presence of a given node or service function on the path. Others may be relatively dynamic, like the current values of metrics such as loss and latency โšก

This vocabulary and its representation have to be defined carefully, because its design will affect the properties (e.g., expressiveness, scalability, and security) of a given path-aware internetworking architecture ๐Ÿง  For example, a system that exposes node-level topology info through each network would maximize info about the individual components of the path at the endpoints. The catch is that it also makes internal network topology universally public, which may conflict with the business goals of each network's operator ๐Ÿ˜ฌ Also, properties related to individual components of the path may change frequently and go out of date quickly. And aggregating the properties of individual components to distill end-to-end properties for the entire path is not trivial ๐Ÿฅด

2.2. Discovery, Distribution, and Trustworthiness of Path Properties ๐Ÿ›ก๏ธ

The second question is: how do endpoints and applications get access to accurate, useful, and trustworthy path properties? ๐Ÿ‘€

Once endpoints and networks share a vocabulary for expressing path properties, the network needs some method for distributing those path properties to the endpoints. No matter how the path property info gets distributed, endpoints need a way to authenticate the properties. That way they can confirm the properties actually came from, and pertain to, the path they claim to describe ๐Ÿ”

Your choices for distribution and authentication methods will affect the scalability of a path-aware architecture ๐Ÿ“ˆ Possible dimensions in the space of distribution methods include in-band versus out-of-band, push versus pull versus publish-subscribe, and so on ๐Ÿงƒ There are timing issues with path property dissemination too, especially with dynamic properties. By the time info is available at the endpoints, the measurement or elicitation of those dynamic properties may already be outdated. And the interactions between measurement and dissemination delay may show pathological behavior at unlucky points in the parameter space ๐Ÿ˜ญ๐Ÿ’–

2.3. Supporting Path Selection โœจ

Okay bestie, question number three: how can endpoints pick the paths they use for traffic in a way that the network, the endpoints, AND the apps can all trust? ๐Ÿง

Getting trustworthy path properties is only half the vibe ๐Ÿ’…. Endpoints also have to actually use that info to choose paths for the specific traffic they send. Just like with sharing path properties, the choices made in path selection also hit the scalability vs. expressiveness trade-off ๐Ÿ“Š. One big choice is in-band vs. out-of-band control of path selection ๐Ÿ›ฐ๏ธ. Another is granularity: per packet, per flow, or per bigger aggregate. That one also has a huge effect on the scalability/expressiveness balance ๐ŸŽ€. Path selection has to be trustworthy too, like the property info, so that the result of a path selection at an endpoint is predictable ๐Ÿ”ฎ. And any path-selection mechanism should aim for an outcome that's not worse than using a single path or picking paths at random ๐Ÿ™.

Path selection can be exposed in terms of the properties of the path, or the identity of the elements on it. In the identity case, a path can be identified at any of multiple layers (for example a routing domain identifier, a network-layer address, a higher-layer identifier or name, and so on). So you have to be careful to present semantically useful info to whoever is deciding which path(s) to trust ๐Ÿง ๐Ÿ’œ.

2.4. Interfaces for Path Awareness ๐Ÿฆ‹

Okay, question four: how can the interfaces between the network, transport, and application layers support the use of path awareness?

For apps to make effective use of a path-aware networking architecture, the control interfaces offered by the network and transport layers have to expose path properties to the application in a useful way. They also have to provide a useful set of paths for the app to pick from ๐ŸŒˆ. Path selection must be possible based not only on the preferences and policies of the app developer, but also on those of end users ๐Ÿ™Œ. The path-selection interfaces for apps and end users will also need to support multiple levels of granularity. Most apps' needs can be met by expressing path-selection policies in terms of path properties, while some apps may need finer-grained, per-path control ๐Ÿ”ง. These interfaces will need to support incremental development and deployment of apps, and provide sensible defaults, so they don't put people off from adopting them ๐ŸŒธ.

2.5. Implications of Path Awareness for the Transport and Application Layers ๐Ÿงš

Question five: how should transport-layer and higher-layer protocols be redesigned to work most effectively over a path-aware networking layer? ๐Ÿค”

In today's Internet, the basic assumption that, at a given time, all traffic for a given flow gets the same network treatment and goes over the same path (or equivalent paths) often holds up ๐Ÿ™‚. In a path-aware network, that assumption is much easier to break ๐Ÿ’ฅ. Weakening it has real implications for the design of protocols sitting above any path-aware network layer.

For example, one perk of multipath communication is that a given end-to-end flow can be "sprayed" across multiple paths. That confuses anyone trying to collect data or metadata from those flows for pervasive surveillance purposes [RFC7624] ๐Ÿ•ต๏ธโ€โ™€๏ธโœจ. But the benefit shrinks if the upper-layer protocols use linkable identifiers on packets from the same flow across different paths ๐Ÿ˜ญ. Clients can reduce linkability by choosing not to reuse cleartext connection identifiers, such as TLS session IDs or tickets, on separate paths ๐Ÿ”. The privacy-conscious strategies needed for effective privacy in a path-aware Internet are only possible if higher-layer protocols such as TLS let clients obtain unlinkable identifiers ๐Ÿซถ.

2.6. What is an Endpoint? ๐ŸŒท

Question six: how is path awareness (in terms of vocabulary and interfaces) different when it's applied to tunnel and overlay endpoints?

The vision of path-aware networking described so far assumes that path properties get disseminated to endpoints where apps run (terminals with user agents, servers, and so on). But incremental deployment may require a path-aware network "core" to interconnect islands of legacy protocol networks ๐Ÿ๏ธ. In those cases, it's the gateways, NOT the application endpoints, that receive path properties and make path selections for that traffic ๐Ÿšช. The interfaces this gateway provides are necessarily different from the ones a path-aware networking layer offers to its transport and application layers. The path-property info the gateway needs and makes available over those interfaces may also be different ๐Ÿ’….

2.7. Operating a Path-Aware Network ๐Ÿ› ๏ธ

Question seven: how can a path-aware network inside a path-aware internetwork be operated effectively, given control inputs from network administrators, application designers, and end users? ๐Ÿง‘โ€๐Ÿ’ป

The network operations model in today's Internet architecture assumes that traffic flows are controlled by decisions and policies made by network operators, expressed through interdomain and intradomain routing protocols. In a network that gives endpoints path selection, that assumption no longer holds ๐Ÿ˜ฌ. Endpoints may react to path properties by selecting alternate paths. Competing control inputs from path-aware endpoints and the routing control plane may lead to harder traffic engineering or non-convergent forwarding. That's especially true if the endpoints' and operators' ideas of the "best" path for given traffic diverge a lot ๐Ÿ“‰. How hard it gets may depend on how faithful the info is that's given to path-selection algorithms at the endpoints. Also, explicit path selection can specify outbound paths, while BGP policies are expressed in terms of inbound traffic ๐Ÿ”„.

A concept for path-aware network operations will need clear methods for resolving apparent (if not actual) conflicts of intent between the network's operator and the path selection at an endpoint ๐Ÿค. It will also need a set of safety principles to make sure that more path control doesn't lead to less connectivity ๐Ÿ›Ÿ. One such safety principle could be "the existence of at least one path between two endpoints guarantees the selection of at least one path between those endpoints." ๐Ÿ’–

2.8. Deploying a Path-Aware Network ๐Ÿš€

Question eight: how can the incentives of network operators and end users be aligned to realize the vision of path-aware networking, and how can the move from current ("path-oblivious") networking to path-aware networking be managed? ๐ŸŒˆ

The vision in the introduction looks at path-aware networking from the endpoints' point of view. It focuses on the benefits for transport protocol and app designers, and for the end users of those apps ๐Ÿ“ฑ. But this vision also requires action within the interconnected networks offering path-aware connectivity, not just at the endpoints ๐Ÿข. Exactly what actions are needed depends on the design and implementation of a specific path-aware protocol stack. Still, it's clear that any path-aware architecture will require network operators to hand over some control of their networks to endpoint-driven control inputs ๐Ÿซฃ.

Here the question of apparent versus actual conflicts of intent comes up again. Some network operation requirements may look essential but are really just accidents of the interfaces that current routing and management protocols provide ๐Ÿ™ƒ. For example, adjacent to path-aware networking, the widespread use of the TCP wire image [RFC8546] in network monitoring for DDoS prevention looks like it conflicts with deploying encrypted transports. That only happens because path signaling [RFC8558] has been implicit in the deployment of past transport protocols ๐Ÿ•ธ๏ธ.

Similarly, incentives for deployment have to show how existing network operation requirements are met through new path-selection and property-dissemination mechanisms ๐Ÿงฉ.

The incentives for network operators and equipment vendors need to be made clear, in terms of a plan to transition [RFC8170] an internetwork to path-aware operation, one network and facility at a time ๐Ÿ—บ๏ธ. That plan also has to account for the fact that path-aware networking dynamics early in the transition (when few endpoints and flows in the Internet use path selection) may be different from those later on โณ.

Aspects of data security and information management also need to be addressed. A network that explicitly radiates more information about its deployment and configuration, and implicitly radiates info about endpoint configuration and preference through path selection, has to handle this carefully ๐Ÿ”๐Ÿ‘€.


3. IANA Considerations ๐Ÿ“œ

This document has no IANA actions. ๐ŸŒธ

4. Security and Privacy Considerations ๐Ÿ”

This document poses questions about path-aware internetworking. The answers are a matter for future research, and security considerations for those answers would be included in the corresponding RFCs that describe them ๐Ÿ”ฎ. While each of these questions is relevant to the security and privacy of users of a path-aware network to a lesser or greater degree, questions of discovery and trustworthiness (Section 2.2) are the most security-relevant ๐Ÿšจ๐Ÿ˜ฑ. Be careful with this part, babe, it's the spicy bit!

5. Informative References ๐Ÿ“š

Acknowledgments ๐Ÿซถ

Okay bestie, we need to give a huge shoutout to everyone who helped out! ๐Ÿ’– Many thanks to Adrian Perrig, Jean-Pierre Smith, Mirja Kรผhlewind, Olivier Bonaventure, Martin Thomson, Shwetha Bhandari, Chris Wood, Lee Howard, Mohamed Boucadair, Thorben Krรผger, Gorry Fairhurst, Spencer Dawkins, Reese Enghardt, Laurent Ciavaglia, Stephen Farrell, and Richard Yang ๐Ÿ‘‘. They had the discussions that led to the questions in this document, and they gave feedback on the document itself. Literally iconic behaviour ๐ŸŒธ.

This work is partially supported by the European Commission under Horizon 2020 grant agreement no. 688421 Measurement and Architecture for a Middleboxed Internet (MAMI) ๐Ÿฆ‹ and by the Swiss State Secretariat for Education, Research, and Innovation under contract no. 15.0268 ๐Ÿ‡จ๐Ÿ‡ญ. ngl, that's a lot of funding support energy โœจ. Just so we're clear though, this support does not imply endorsement ๐Ÿ™ˆ.

Author's Address ๐Ÿ’Œ

This is where you can find the author, Brian Trammell ๐Ÿงš. He's at Google Switzerland GmbH, and the address is below:

Brian Trammell
Google Switzerland GmbH
Gustav-Gull-Platz 1
CH-8004 Zurich
Switzerland
Email: ietf@trammell.ch
๐Ÿ“ฆ where this page comes from