RFC 1787

Routing in a Multi-provider Internet

πŸ“… published April 1995, from ietf

RFC 1787: Routing in a Multi-provider Internet πŸ¦‹

Okay bestie, this is RFC 1787, and it's called Routing in a Multi-provider Internet ✨ It came out of the Network Working Group and was written by Y. Rekhter at the T.J. Watson Research Center, IBM Corp. πŸŽ€ It's dated April 1995 πŸ“… and it's categorized as Informational, so it's here to share info with the community (more on that below πŸ‘€). It doesn't list any RFCs it obsoletes or updates, so it's not replacing or amending anything πŸ’œ


Status of this Memo πŸ“£

So this memo is just here to give the Internet community some info πŸ“š It does not specify an Internet standard of any kind πŸ™…β€β™€οΈ Distribution of this memo is unlimited, so you can share it with literally anyone πŸ’Œ

Abstract πŸ’­

Okay so this doc was prepared by the author on behalf of the Internet Architecture Board (IAB) πŸ‘‘ The IAB is offering it up to stimulate discussion πŸ—£οΈ

Over the past few years the Internet has had some major glow-ups 🌈 One of them is the emergence of multiple Network Service Providers, where the stuff that gives Internet-wide IP connectivity (routers, links) is controlled by different organizations 🏒 This document looks at some of the issues related to network layer routing in a multi-provider Internet, and specifically to unicast routing πŸ¦‹


1. Network Service Providers vs Network Service Subscribers πŸ’…

Okay so in the current routing paradigm, what a provider offers at the network layer (IP) is the set of destinations (hosts) that can be reached through it 🌍 Once a subscriber gets direct connectivity to a provider, they can in principle reach all the destinations reachable through that provider. And since the value of the Internet-wide connectivity a provider offers goes up with the number of destinations reachable through it, providers are super motivated to interconnect with each other 🀝

In principle, a provider doesn't need to offer the same service (in terms of the set of destinations) to all of its subscribers. For some subscribers, the provider may restrict the service to a subset of the destinations reachable through it πŸ™ˆ Honestly, for certain types of subscribers, constrained connectivity could be seen as part of the service a provider offers πŸ’€

In a multi-provider environment, individual providers may be driven by diverse and sometimes even conflicting goals and objectives ✨ Some exist to provide connectivity to only a specific group of Network Service Subscribers. Others place no constraints on the subscribers that can subscribe to them, as long as the subscribers pay the fee πŸ’Έ Some place certain constraints on the reselling of connectivity services by organizations (e.g., other providers) attached to them. Some may be operated by companies that are subject to specific regulations (e.g., regulated monopoly), while other providers are completely unregulated πŸ›οΈ And the scope of geographical coverage varies from a small region (e.g., county, town) to country-wide, international, or even intercontinental πŸ—ΊοΈ

There is no centralized control over all the providers in the Internet πŸ™…β€β™€οΈ The providers don't always coordinate their efforts with each other, and quite often they're in competition with each other 😀

Despite all the diversity among the providers, Internet-wide IP connectivity is realized via Internet-wide distributed routing, which involves multiple providers 🫢 That implies a certain degree of cooperation and coordination. So there's a need to balance the providers' goals and objectives against the public interest of Internet-wide connectivity and subscribers' choices βš–οΈ Further work is needed to understand how to reach that balance 🧠


2. Routing Requirements πŸŽ€

Conceptually, routing requirements can be sorted into three categories: source preferences, destination preferences, and constraints on transit traffic πŸ“¦ Source preferences let the originator of a packet exert control over the path to a destination. Destination preferences let a destination exert control over the path from a source to that destination. Constraints on transit traffic let a provider control the traffic that can traverse the resources (routers, links) it controls.

From a conceptual point of view, the degree of control for source and destination preferences can vary. It can be as basic as just being able to get connectivity (regardless of the path), or being able to select immediate providers, all the way to more complex scenarios, where at the far end a subscriber may want complete control over path selection πŸ›£οΈ

The degree of control for transit traffic can vary too 🚦 It might be based only on direct physical connectivity (controlling the set of organizations directly connected to the provider). It could also mean restricting traffic to a particular set of sources or destinations, or a combination of particular sources and destinations, or even taking into account the paths to and from those sources and/or destinations 🧩

With such a wide variety of routing requirements, we need a better understanding of the relative practical importance of each one πŸ” In practice, organizations usually don't formulate their routing requirements in a vacuum πŸ™ƒ For example, since the primary role of a provider is to provide services to a set of subscribers, the provider usually formulates its routing requirements based on the set of routing requirements of the subscribers it's expected to serve πŸ’Ό

Supporting various routing requirements should take into account the overhead, and the scope of that overhead, associated with those requirements πŸ“Š A situation where an organization can unilaterally impose routing information overhead on other organizations (e.g., by requiring them to maintain additional routing information) should be viewed as undesirable 😀 The cost of supporting a particular routing requirement should not be borne by organizations that do not benefit from supporting that requirement πŸ™…β€β™€οΈ Ideally, the routing system should allow shifting the overhead associated with a particular routing requirement toward the entity that instigates the requirement. For example, there's a need to carefully balance the overhead associated with maintaining the state needed for multi-hop header compression vs carrying explicit forwarding information on a per packet basis 🧠 Organizations with simple routing requirements should not bear the same routing information overhead as organizations with complex routing requirements πŸ’…

A situation where the overhead associated with supporting a particular routing requirement has to be carried by every entity (e.g., router, host) within an organization that would like to impose the requirement could be viewed as undesirable πŸ™ƒ An organization should be able to instantiate its routing requirements in a more or less central fashion, for example by utilizing just some of the routers 🏰

Even if the scope of the routing information overhead is purely local, there's a need to perform a careful analysis of the tradeoff between the potential benefits and the costs associated with supporting various routing requirements 🧐


3. Encapsulation 🎁

The technique of encapsulation lets you create a "virtual" IP overlay over an existing IP infrastructure πŸ§… That has some real implications for the Internet routing system πŸ‘€

With encapsulation in the picture, a provider may no longer be able to constrain its transit traffic to a particular set of ultimate sources and/or destinations 🫣 A packet may be encapsulated by some router along the path, with the original source and/or destination addresses being "hidden" (via encapsulation) at the Network layer. Likewise, encapsulation may affect source and destination preferences, since a source (or a destination) may either (a) be unaware of the encapsulation, or (b) have little or no control over the encapsulated segment of a path πŸ•΅οΈ

Further work is needed to understand the implications of the overlay capabilities created via encapsulation on the semantics of routing requirements πŸ“ It's also needed to understand the interaction among the routing requirements of the entities that form the overlay and the entities that form the underlying infrastructure πŸ€”


4. Price Structure and its Impact on Routing πŸ’Έ

Routing among providers, as well as between providers and subscribers, may be influenced by the price structure employed by the providers, as well as the usage patterns of the subscribers πŸ›οΈ A provider can view routing as a mechanism that lets it exert control over who can use its services πŸ” A subscriber can view routing as a mechanism that lets it exert control over the price it pays for Internet connectivity πŸ’°

The need to exert control has to be carefully balanced against the cost of the routing mechanisms needed to provide that control βš–οΈ In a competitive market, one could question the viability of a mechanism whose incremental cost would be greater than the savings recovered by the mechanism πŸ™„ Competitive pressure or alternate mechanisms are likely to push providers and subscribers towards choosing the cheapest mechanism πŸ’…


5. Scalability πŸ“ˆ

One of the key requirements imposed on Internet routing is its ability to scale 🌱 In addition to the conventional metrics for scalability (e.g., memory, CPU, bandwidth), we need to take into account scalability with respect to the human resources required to operate the system πŸ§‘β€πŸ’» The need for deployment of CIDR already showed that a routing scheme that scales linearly with respect to the number of connected networks, or even to the number of connected organizations, is unacceptable today. It is likely to be unacceptable in the long term too 🚨 It is not clear whether routing that scales linearly with the number of providers is going to be acceptable in the long term πŸ€·β€β™€οΈ

Scaling implies that the Internet routing system needs to have powerful mechanisms to provide routing information aggregation/abstraction πŸ’ͺ

In the absence of Internet-wide coordination and in the presence of competition among the providers, the aggregation/abstraction mechanisms should minimize preconditions as well as limit the amount of required inter-provider coordination 🀝 Ideally, the routing system should allow a provider to control the amount of its local resources needed to deal with the routing overhead, based on considerations that are purely local to the provider 🏠

One of the side effects of routing information aggregation/abstraction is that some of the routing information is going to be lost 😬 This may impact route optimality and even the ability to find an existing route. The need for routing information aggregation/abstraction also implies a certain homogeneity of the information to be aggregated/abstracted. This needs to be counter-balanced against the potential diversity of routing requirements 🧩

As a way to deal with the routing information loss due to aggregation/abstraction, we need to explore mechanisms that allow routing based on the on-demand acquisition of subsets of unaggregated information πŸ”Ž

The overhead associated with supporting specific routing requirements has a direct impact on the overall scalability of the Internet routing system πŸ“‰ We need a better understanding of how various routing requirements impact scalability. When the impact is significant, and the requirements have practical importance, we need to develop mechanisms that allow the impact to be reduced πŸ› οΈ

6. Hierarchical Routing ✨

okay so bestie, CIDR (RFC1518, RFC1519) is what keeps today's Internet-wide routing scalable, and it's built on hierarchical routing πŸ’… The big assumption is that a Network layer address given to an individual entity (like a host or a router) reflects where that entity sits in the network topology. Those addresses are "topologically significant" πŸ¦‹ With CIDR, most individual sites get addresses that reflect the providers they're connected to, so CIDR uses "provider-based" addresses πŸŽ€

Here's the catch. To keep addresses topologically significant, changes in the topology may need matching changes in the addresses 😭 If several providers serve the same area, a subscriber should be able to switch providers. That switch changes the Internet topology, so to keep the provider-based addresses meaningful inside the subscriber, the subscriber has to change the addresses of all its entities. That's the process called "renumbering" πŸ₯² There are already tools for it, like Dynamic Host Configuration Protocol (DHCP). But DHCP isn't widely deployed yet. So we need more work to improve these tools, get them deployed widely, and integrate them with the Domain Name System (DNS) 🌸

Multi-level hierarchical routing lets the system recapture some extra routing information (routing entropy) that comes from the mismatch between addresses and topology at one level of the hierarchy, by handling it at a higher level (like an exchange point among providers) ✨ This lets the routing system contain the scope of the entities affected by the mismatch. Containing that scope could be a big deal for graceful renumbering 🧚 Developing good deployment strategies for all this is still future work.

It's important to say that the requirement to keep addresses topologically significant doesn't have to apply to every organization on the Internet πŸ™ˆ Hierarchical routing needs most, but not all, addresses to be topologically significant. For a large organization, it can be enough that all its destinations can be represented in the Internet routing system as a small number of address prefixes, even if those prefixes are independent of the providers the organization uses to connect ("provider-independent" addresses). The routing information a large organization injects into the Internet routing system would then be comparable to the (aggregated) routing information from a large number of small organizations πŸ’œ

Multiple providers also means a subscriber can be connected to more than one provider at once (multi-homed subscribers). CIDR offers several alternatives for handling this πŸ“ We need more operational experience, and a better understanding of the tradeoffs of those alternatives, before we can say more.

An alternative to CIDR address assignment would be to assign addresses purely by geographical location. But tying an address to an entity's geography means one of two things: either (a) the Internet topology has to be made sufficiently congruent with geography, or (b) addresses aren't going to be topologically significant 🌈 In the first case, we need to understand what forces would make the topology match the geography. In the second case, techniques other than hierarchical routing need to be developed πŸ’…


7. Routing Information Sharing 🫢

okay the Internet keeps growing, and coordinating it Internet-wide is getting harder and harder 😩 But stability and consistency of Internet-wide routing could seriously benefit if information about the routing requirements of different organizations could be shared across organizational boundaries πŸ”₯ That info could help with everything from troubleshooting to spotting and removing conflicting routing requirements. Because the Internet is so big, the information should be distributed 🧠 Work is already underway to set up repositories for this info (Routing Registries), and to build tools that analyze and use it πŸŽ€


8. Summary πŸ‘‘

ngl this is the to-do list πŸ“ The IAB wants to flag some of the issues that should get the Internet community's attention, so here they are, sorted by urgency πŸ’–

The following two tasks need the most immediate attention:

  • further work is needed to develop technologies that facilitate renumbering
  • further work is needed to investigate feasibility of routing information aggregation above the direct (immediate) provider level

The following tasks are viewed as medium term:

  • further work is needed to get a better understanding on the relative practical importance of various routing requirements
  • further work is needed to understand of how various routing requirements impact scalability of the routing system
  • further work is needed to investigate alternatives to hierarchical routing

Finally, the following tasks are viewed as long term:

  • further work is needed to understand and utilize the benefits of routing information sharing
  • further work is needed to understand the implications of virtual overlays created via encapsulation
  • further work is needed to understand how different price structures influence routing requirements
  • further work is needed to understand how to balance the providers' goals and objectives against the public interest of Internet-wide connectivity and subscribers' choices πŸ¦‹

9. Conclusions 🌸

so this doc covers some of the issues around routing in a multi-provider Internet πŸ’… It definitely doesn't cover every routing area, though πŸ™ˆ Things like multicast routing, routing with mobile hosts, or routing over a large shared media (e.g., ATM) aren't discussed here. Further work is needed to understand what a multi-provider Internet means for those areas too πŸ”

The impact goes way beyond routing and spills into network management, troubleshooting, and more ✨ More work is needed to assess what the multi-provider environment means for those areas, and to understand how all of them interact from a system-wide perspective 🌈


10. Acknowledgments 🫢

big thank-you to all the IAB members, and especially to Brian Carpenter, Robert Elz, Christian Huitema, Paul Mockapetris, and Lixia Zhang for their contributions to this document πŸ’–


Security Considerations πŸ”’

okay bestie, this is the part where I have to be honest πŸ’€ Security issues are not discussed in this memo. Nothing in here covers them, so please don't read anything into that silence πŸ™


Editor's Address πŸŽ€

and here's who edited it, Yakov Rekhter, with the contact details πŸ’Œ

   Yakov Rekhter
   T.J. Watson Research Center IBM Corporation
   P.O. Box 704, Office H3-D40
   Yorktown Heights, NY 10598

   Phone:  +1 914 784 7361
   EMail:  yakov@watson.ibm.com
πŸ“¦ where this page comes from