RFC 1482
Aggregation Support in the NSFNET Policy-Based Routing Database
RFC 1482 π is titled "Aggregation Support in the NSFNET Policy-Based Routing Database." It came from the Network Working Group, and Mark Knopper and Steven J. Richardson of Merit/NSFNET wrote it in June 1993 π It's an informational memo (the status section explains what that means) β¨ It doesn't list any RFCs it obsoletes or updates, so there's no drama there πΈ
Status of this memo β¨
Okay, the legal-ish bit π This memo provides information for the Internet community. It does not specify an Internet standard. Distribution of this memo is unlimited π
Abstract π¦
So this doc is all about route aggregation, the way it's described in Classless Inter-Domain Routing (CIDR) [1] and the BGP-4 protocol [2], and how the NSFNET Backbone Network Service is gonna support it π It also specifies how route aggregates get exchanged between the backbone service and regional/midlevel networks. The memo proposes an Aggregate Registry π that network service providers can use to share info about how they're using aggregation. Last but not least, it looks at the operational impact of CIDR and aggregation, including how routing table size will be affected π That impact analysis will be used to tweak the deployment plan if needed, all so things stay operationally stable π«Ά
1. Introduction πΈ
Okay so the internet service provider crowd and the router vendors (plus the IESG and a bunch of IETF working groups) all agreed that route aggregation time is basically here π₯ It got talked about in the BGP-D, NJM and ORAD working groups at a few IETF meetings. It was also a discussion topic at the NSFNET Regional Techs' Meetings in January and June of 1993, and at several meetings of the Federal Engineering Planning Group and the Engineering and Operations Working Group of the Federal Network Council π
Everyone generally agreed that Summer 1993 is the time to turn on BGP-4 and CIDR aggregation βοΈ Each party is responsible for its own part of CIDR implementation and practice. This memo describes Merit's plans for supporting route aggregation on the NSFNET π It also proposes a database of aggregation info that network providers can use π¦
2. Aggregation Support by the Backbone Service π
The NSFNET backbone service has a Policy-Based Routing Database system ποΈ Right now it holds the set of network numbers the backbone accepts, along with the list of Autonomous System numbers those network numbers are expected to be announced from. To get CIDR going, the database system is gonna be modified so aggregation of routing info can be configured π§
The NSFNET will (initially) not support de-aggregation on its outbound announcements. See section 2.3 π
2.1 Current Configuration Capabilities π
2.1.1 Inbound Announcements π·
Here's an example of how a network number is configured right now π
35 1:237 2:233 3:183 4:266 5:267 6:1225
So network number 35 (ie. 35.0.0.0, a class A net number) is configured on the T3 backbone so that routing announcements are expected from up to 6 autonomous systems. The primary path is via AS 237, the secondary is via AS 233, and so on π¦
2.1.2 Outbound Announcements π
Right now the NSFNET database has a list of AS's or network numbers for each neighbor AS that the backbone announces to that AS π These are set with "announcetoAS" statements (announcetoAS), which carry out policies that midlevels submitted to Merit. Then they get included in the ANSnet router configuration files βοΈ There are two forms of these statements. The first uses the norestrict clause and says that all of the network numbers within each AS in the list should be announced to the neighbor midlevel AS. For example:
announcetoAS 42 norestrict ASlist 22 26 38 60 68
In this example, the NSFNET is set up to announce all networks in the routing table that were announced from AS's 22, 26, 38, 60 and 68 to neighboring midlevel AS 42 π
If the norestrict keyword gets switched to restrict, it means there's an explicit announce list of network numbers for the AS in the configuration file π The NSFNET will only announce network numbers that were announced by the AS's in the list, AND which show up in the "restrict list" of network numbers the midlevel submitted separately. For example:
announcetoAS 42 restrict ASlist 22
announce 192.135.237 <other info>
These statements mean AS 42 only wants to hear announcements from the backbone about the nets in AS 22 that are explicitly listed here (i.e., net 192.135.237) π«Ά
When you use the restrict keyword, you can also list specific noannounce lines π
ββοΈ Those mean that all the networks listed in the routing table for the AS should be announced, except the ones on the noannounce clauses. (There's also a noannouncetoAS statement [4].) β¨
2.2 New Configuration Features for Aggregation π
There are going to be three new capabilities that the backbone service can be configured with to support aggregation π₯ The first two let aggregates get accepted and stored in the backbone routing tables based on announcements from regional network (autonomous system or AS) peers. The third one lets aggregates get announced to AS neighbor peers. The next sections give examples of all three features π¦
We use the notation <net-IP prefix-length> to describe an aggregate. It refers to the IP prefix "net-IP", with a mask that has "prefix-length" 1's, counted from the high-order end. For example, <192.64.128 17> is equivalent to <192.64.128, 255.255.128.0> [5]. (The form that uses prefix-length instead of the mask is more compact π
)
2.2.1 NSFNET accepts aggregates π
In this case, the regional peer router is CIDR-capable (i.e., runs BGP-4) and the announcement comes into the backbone as an IP address prefix πΈ
To illustrate this in the spirit of sec. 2.1.1:
<192.64.128 17> 1:189 2:24 3:267
In this example, no matter the "class" of IP network number, an aggregate containing network addresses that match a pattern where the first 17 bits match the prefix 192.64.128 will be accepted in announcements to the NSFNET service π The primary path to destinations covered by the prefix is expected via AS 189, the secondary via AS 24, and so on π§
2.2.2 NSFNET aggregates by proxy π·
The other way to get CIDR aggregate announcements into the backbone routing tables is aggregation by proxy πͺ In this case, the backbone is set up to do aggregation on behalf of a peer AS that isn't configured to announce the aggregate to the backbone (i.e., an AS that doesn't connect to the backbone through a CIDR-capable peer) π
An example of this technique looks like this:
proxy <192.64.128 17> 1:189 2:24 3:267
if <192.64.192 24>
or <192.64.129 24>
or <192.64.167 24>
(Note: the syntax in this document is arbitrary and is only used to illustrate the method. The syntax to be used in actual routing requests is still to be determined π)
In this example, the aggregate <192.64.128 17> will be stored and propagated within the backbone as an aggregate under a set of conditions π«Ά To start, the GateD support will allow an "OR" list of conditions, so that if one of the aggregates in the list matches, the proxy aggregate gets stored [6] π₯ For the case above, that means that if any of these CIDR aggregates:
<192.64.192 24>
<192.64.129 24>
<192.64.167 24>
(which, under the current class-based IP address system, are equivalent to the class C net numbers 192.64.192, 192.64.129, or 192.64.167, respectively) gets heard, the backbone router will act as though it heard the announcement of the single CIDR aggregate <192.64.128 17> π¦
2.2.3 NSFNET announces aggregates π
The functionality of the current system, as outlined in sec. 2.1.2 above, will keep existing once CIDR is implemented π The "norestrict" function (or its equivalent in the new software) will specify that all network reachability information received from a set of Autonomous Systems, including any aggregates, will be announced. It should also be possible to use the equivalents of the "restrict" keyword and the "announce" (or "noannounce") statement to limit the announcements of the aggregations within an AS to any desired subset π―
2.3 Specifically Unsupported Capabilities, Limits of Initial Deployment π
There are some aspects of aggregation that won't be supported in the initial deployment of CIDR capabilities on the NSFNET backbone π ββοΈ Specifically, when the NSFNET service announces routes to midlevel peers, de-aggregation won't be performed [3]. So a peer that needs to receive full routing information should run a protocol that supports CIDR (initially BGP-4, later IDRP) π«Ά Peer networks using default routing will be able to reach networks that are part of aggregated routing information across the backbone (as in section 6.4 of [3]) πΈ
3. CIDR Aggregate Registry β¨
okay bestie, so when Merit was chatting with network service providers, it became SUPER clear that everybody needs to share aggregate info π and that's the coordination we mentioned back in sec. 2.3. π«Ά Adding CIDR aggregation to the NSFNET Policy-Based Routing Database (see section 2) is only part of it. There's a clear need for a totally separate database where aggregate info from any Autonomous System can be stored and easily pulled up electronically. π It can support routing coordination and policy configuration across the bigger, not-just-NSFNET-centric inter-domain world. iykyk π
One of the expected uses of a database like this is figuring out, as CIDR matures, how granular aggregation should be with respect to policy π§ The useful scope of aggregation is the subject of much discussion[5][7], and it's going to be shaped by things like how network number allocation was handled, and whether the network provider has renumbered its client networks to line up with CIDR aggregation boundaries. The rules and issues around network number allocation with CIDR are covered in [8] and [7].
To further these goals, Merit proposes to build a "CIDR Aggregate Registry" that shares aggregate info for the whole Internet inter-domain routing community π¦ At first it'll be a simple database without much structure. It's not meant to hold only the aggregates announced or accepted by the NSFNET service. It's supposed to be a community registry that everyone is invited to use and make use of. main character energy for the whole internet π
The Aggregate Registry will consist of a list of aggregate announcement statements. Each statement has four types of info, plus contact info:
- 1) CIDR Aggregate: The aggregate identifier, made up of a network number prefix and the prefix length. For example,
<192.29.128 16>. - 2) Home AS: The source AS number for the aggregate. That's the AS number of the network service provider that first aggregates the network reachability info into the aggregate for announcement to its neighbors.
- 3a) Announcing AS: An AS number that announces this aggregate to its neighbor AS's.
- 3b) Neighbor AS list: A list of neighbor AS's that the aggregate will be announced to by the AS named in 3a.
- 4) Contact information: eg. e-mail address and name or NIC handle of the administrative and technical contacts for the source AS.
So a given aggregate gets listed once as announced by its source AS π It can then be listed once more for each transit AS that announces the aggregate downstream to its neighbors. For example, the CIDR aggregate <199.29.128 16> could be listed like this:
CIDR aggregate home ann neighbor
(prefix-length) AS AS AS list contacts
-----------------------------------------------------------
<199.29.128 16> 100 100 200 201 690 fred@nowhere.net
<199.29.128 16> 100 690 266 267 1225... <contact info>
<199.29.128 16> 100 200 297 372 <contact info>
<199.29.128 16> 100 201 771 1262 <contact info>
Note: This can be represented using the syntax used for objects in the RIPE-81 paper[9].
Here, AS 100 (the source AS) does any aggregation and announces the CIDR aggregate <199.29.128 16> to neighbor ASs 200, 201, and 690. Then AS 200 announces that same aggregate to its neighbor ASs 297 and 372, and further lines show announcements of the same aggregate by AS 690 and AS 201. π₯
This registry reflects both the simple list of aggregates supported by the union of network providers AND info on inter-domain topology for the Internet, which is so iconic π§ Merit will set up procedures for registering any network provider's aggregates in the Registry. For CIDR aggregates carried over the NSFNET backbone, Merit will set up procedures for linking this Registry with the process of updating the aggregate routing announcements. Requests to update the info will be handled via e-mail or on-line registration tools.
4. Effects of CIDR on Operational Aspects of the Internet πΈ
The introduction of CIDR is going to need a lot more than new router software π In particular, Merit and other network service providers will have to adjust tools, reports, and procedures as CIDR gets implemented and evolved. These changes have to be coordinated so the move to the CIDR-capable Internet is smooth.
This document isn't exhaustive, lowkey on purpose. Some of the areas affected are discussed briefly below. The goal is to get everyone aware of these changes so they can start thinking and planning for the transition. It's obvious that CIDR and policy routing mean way more coordination of operational matters, but it's not clear how deeply this will change the day-to-day running of the Internet π€
(Note: Aspects of the actual phased deployment of CIDR are covered in [3] and [10].)
4.1 NSFNET Configuration Files and Reports; Neighbor AS Configurations ποΈ
Adding CIDR capability to the NSFNET Policy-Based Routing Database (outlined in sec. 2) will require updating at least these reports, which Merit currently produces (and makes available via anonymous FTP from nic.merit.edu):
ans_core.now as-site.now country.now net-comp.now net-net.now
net-ter.now non-us.now
Any tools that access this info, like the various clients or scripts released by Merit or developed by others, will have to be changed π οΈ
However, the most striking change will be the move from rcp_routed to GateD π³ It's very different in important ways and follows different conceptual principles [11].
Network providers that develop any part of their configuration files by parsing the NSFNET configuration files or reports MUST plan for these changes, so they can help themselves and the wider Internet community get a smooth transition to CIDR π«Ά
4.2 Routing and Administrative Policies π
In this document, Merit has committed to supporting CIDR by changing the policies for administering the NSFNET and by developing a CIDR Aggregate Registry for the broader Internet community.
Beyond these changes, there are other policies, both administrative and routing, that must be coordinated to get the most out of CIDR:
- policies of the InterNIC and of network service providers in assigning (CIDR) IP nets and blocks, as mentioned above;
- policies of the various ASs in coordination of transit and other routing policies;
- policies of registration of new networks, from the InterNIC or network provider, through the CIDR Aggregate Registry, etc.;
- policies related to coordination of routing changes;
- coordination of routing policies, in general, to avoid new classes of routing problems due to new methods of routing.
4.3 Realtime Issues β±οΈ
These issues haven't been examined in detail yet π
- debugging of routing/connectivity problems;
- stability and other properties of routing under various scenarios of CIDR configuration and network topology;
- explicit specification of routing decision algorithms to avoid routing anomalies;
- increased network load due to packets traversing an AS, such as the NSFNET backbone, before being discarded due to addressing a "hole" in a CIDR aggregate.
4.4 Estimate of Reductions in Routing Tables π
One argument in favor of implementing CIDR is the effect it should have on the NSFNET and other routing tables [1] [5]. The burning question is: what's the magnitude of this effect? Given all the issues we have to deal with, this is a super important consideration.
In terms of the immediate savings to the NSFNET backbone routing tables, if a set of aggregates were done all at once, a recent calculation gives [12]. It's an optimistic estimate using a pessimistic algorithm (it looks for the longest continuous block of addresses announced to the NSFNET backbone), so it's giving careful π§
861 size 2 saving 861 announcements
286 size 4 saving 858 announcements
117 size 8 saving 819 announcements
67 size 16 saving 1005 announcements
13 size 32 saving 403 announcements
3 size 64 saving 189 announcements
1347 total saving 4135 announcements of 12348 (33%).
Here, the first column is the number of CIDR aggregates of the given "size," and it shows the matching reduction in net announcements from adopting that aggregate. (A CIDR aggregate of "size <n>" is one that encompasses <n> class A, B, or C networks. The 67 "size 16" CIDR aggregates actually combine announcements for 16 separate networks into a single net aggregate.) It's unclear right now whether the true savings will be this big, but the extended report gives us a basis for discussion [12] π
The other side of the impact on routing tables, the slower rate of growth (and the slowing of the rate at which IP address space runs out), is a totally different matter π± Simple calculations about the rate of class B address space exhaustion suggest that CIDR-conformant InterNIC address assignment policies are helping [1].
Clearly, we need more detailed analysis to really understand the realistic gains of the CIDR deployment process, both at the start and in the longer term π
5. Conclusions and Next Steps π
CIDR implementation is underway, but there's still a fair amount of planning and discussion needed for a successful transition. Merit is proposing specific functions for CIDR aggregation that the NSFNET will support, plus a CIDR Aggregate Registry that can serve as the basis for inter-domain routing coordination π
The Aggregate Registry will let a set of tools get developed that can make it easier to design aggregation policy. A query tool for looking up aggregation info for a given network or aggregate would be very useful. More database functionality will also be wanted for more powerful queries. It's specifically a goal to work with RIPE so the Merit and RIPE database approaches stay compatible and their tools can interwork. An AS topology database would be super useful for routing policy determination and coordination too π§©
Beyond these areas, a lot of other issues need more work to build the operational framework needed for CIDR to succeed on the Internet π« It's critical that deploying CIDR and related tools to preserve address and routing table space must not compromise the operational stability of the NSFNET or the wider Internet π¨
6. Security Considerations π
Security issues are not discussed in this document. π
7. Acknowledgements π
Huge thank-yous to these people, whose comments and discussions helped shape this doc. They're literally the reason it's as good as it is π
- Dennis Ferguson, Advanced Network and Services, Inc.
- Jeffrey Honig, Cornell University
- William Manning, Rice University/SESQUINET
- The Merit Internet Engineering and Network Management Systems groups.
8. Authors' Addresses π
Here's where you can reach the authors, bestie π¬
Knopper, Mark A.
Merit Network, Inc.
1071 Beal Ave.
Ann Arbor, MI 48109-2103
e-mail: mak@merit.edu
phone: (313) 763-6061
fax: (313) 747-3745
Richardson, Steven J.
Merit Network, Inc.
1071 Beal Ave.
Ann Arbor, MI 48109-2103
e-mail: sjr@merit.edu
phone: (313) 747-4813
fax: (313) 747-3745
9. References π
Here are all the receipts, every single source the doc leans on π§Ύβ¨
- [1] Fuller, V., Li, T., Yu, J., and Varadhan, K., "Supernetting: an Address Assignment and Aggregation Strategy", RFC1338, Update, Work in Progress, June 1992.
- [2] Rekhter, Y., and Li, T., "A Border Gateway Protocol 4", Work In Progress, April 1993.
- [3] Topolcic, C., "Notes of BGP-4/CIDR Coordination Meeting of 11 March 93", Work in Progress, March 1993.
- [4] Villamizer, C., in a document describing rcp_routed.conf options and syntax, May, 1993.
- [5] Syntax used in Ford, P., Rekhter, Y., Braun, H-W., "Improving the Routing and Addressing of IP", IEEE Network, pp. 10-15, May 1993.
- [6] Ferguson, D., private correspondence, March, 1993.
- [7] Rekhter, Y., and Li, T., "An Architecture for IP Address Allocation with CIDR", Work in Progress, February, 1993.
- [8] Gerich, E., "Guidelines for Management of IP Address Space", RFC1466, May 1993.
- [9] Bates, T., Jouanigot, J-M., Karrenberg, D., Lothberg, P., and Terpstra, M., "Representation of IP Routing Policies in the RIPE Database" (ripe-81), Work in Progress, February, 1993.
- [10] Rekhter, Y., and Topolcic, C., "Exchanging Routing Information Across Provider/Subscriber Boundaries in the CIDR Environment", Work in Progress, April 1993.
- [11] Fedor, M., Honig, J., Coltun, R., Ferguson, D., "gated-config(5)" manpage, from the "gated-R3_0Beta_2" distribution, 7 October 1992.
- [12] Johnson, D., analysis available via anonymous FTP from merit.edu:/pub/nsfnet/cidr/auto-aggregates, June 1993.
- [13] Topolcic, C., "Schedule for IP Address Space Management Guidelines", RFC1367, October, 1993.
That's the whole doc, babe! π¦ All the sections, all the refs, and nothing skipped. π
π¦ where this page comes from
- ietf: rfc1482 1993-06
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms