RFC 1093
NSFNET routing architecture
RFC 1093: The NSFNET Routing Architecture π¦
Okay bestie, here's the title block tea π«Ά This is RFC 1093, titled The NSFNET Routing Architecture. It's from the Network Working Group, written by H.W. Braun of Merit, and dated February 1989. The header doesn't list a category, and it doesn't name anything it obsoletes or updates, so nothing to track there π
Status of this Memo β¨
Quick vibe check on the Status section π This doc lays out the routing architecture for the NSFNET, centered on the brand new NSFNET Backbone, with the main focus on how the backbone connects to the networks attached to it π Distribution of this memo is unlimited π
Introduction π
So this doc has the same routing architecture energy as the Status section π§ It's centered on the new NSFNET Backbone, especially the interface between the backbone and its attached networks. It builds on ideas from [1] β¨ and on a bunch of chats: discussions at the IETF meeting at the San Diego Supercomputing Center in March 1988, mailing list convos (especially on a backbone/regional network working group mailing list), and a final huddle at the IBM T.J. Watson Research Center in Yorktown, NY, on the 21st of March 1988 π
The Yorktown squad was Hans-Werner Braun (Merit), Scott Brim (Cornell University), Mark Fedor (NYSERNet), Jeff Honig (Cornell University), and Jacob Rekhter (IBM) π Big thanks also to Milo Medin (NASA), John Moy (Proteon) and Greg Satz (Cisco) for talking this doc over by email and/or phone π«Ά
Reading [1] first is highly recommended, no cap ππ
1. Routing Overview πΈ
Okay so the new NSFNET backbone is the core of the whole NSFNET π It connects to regional networks (or regional backbones) and also to peer networks, which are other backbones like the NASA Science Network or the ARPANET π The NSFNET core uses an SPF based internal routing protocol that was adapted from the IS-IS protocol ANSI submitted to ISO for standardization. ANSI's IS-IS is based on work done at Digital Equipment Corporation π Making it fit the Internet environment needs additional definitions, most notably to the addressing structure, which will get covered in a later document π
Jacob Rekhter of IBM Research in Yorktown, NY did most of that adaptation β¨ Rick Boivie and his colleagues at IBM TCS in Milford, CT largely implemented the RCP/PSP routing architecture π₯ The adaptation of EGP to the NSS routing code and the new requirements was a team effort between Jeff Honig (who spent about a week on it at IBM Research) and Jacob Rekhter π Jeff is also folding the changes for the new EGP requirements into the "gated" distributions π
The IGP derives routing tables from Internet address information π§ That info gets flooded throughout the NSFNET core, and each individual NSS node creates or updates its routing information after running the SPF algorithm over the flooded information. A detailed description of the NSFNET backbone IGP will be documented in a future document π
The routing interface between the NSFNET core and regional backbones, as well as peer networks, uses the Exterior Gateway Protocol (EGP) π¦ EGP/IGP consistency and integrity at the interface points is ensured by filtering mechanisms, according to individual nodal routing policy data bases [1]. EGP was picked as the routing interface of choice between the NSFNET backbone and its regional attachments because it's widely implemented, it can use autonomous system designators, and it allows for effective firewalls between systems π₯
Longer term, the hope is to replace the EGP interface with a new inter Autonomous System protocol π That new protocol should also let filtering of network numbers or Autonomous Network number groups move to the regional gateways, so the regional gateways can decide what routing information they wish to receive β¨
A general model is to keep routing information consistent between peer networks π So, e.g., the NSFNET core will have the same sets of Internet network numbers in its routing tables as are present in the ARPANET core. BUT the redistribution of this routing information is tightly controlled and based on Autonomous System numbers π For example, ARPANET routes with the ARPANET Autonomous System number will not be redistributed into regional or other peer networks. If an NSFNET internal path exists to such a network known to the ARPANET, it may be redistributed into regional networks, subject to further policy verification. Generally it may be necessary to have different trust models for peer and subordinate networks, while giving a greater level of trust to peer networks π«Ά
Heads up: the way EGP gets used here is elaborated on in [1], and it requires bidirectional translation of network information between the IGP in use and EGP. Ngl, this is the whole plot twist ππΈ
2. Conclusions reached during the discussions β¨
okay so bestie, the meeting and all the follow-up chats landed on a bunch of conclusions π here they are, no cap:
- No DDN-only routes (ARPANET/MILNET) shall be announced into the regional backbones. This is a specific case of the ability to suppress information from specific Autonomous Systems, as described later. π
- Regional backbones are required to use an unique Autonomous System number. Announcements from non-sanctioned autonomous systems, relative to a particular site, will not be believed and will instead trigger an alarm to the Network Operations Center. π¨
- Regional backbone attachments must not require routes to local subnets. This means that the locally attached network needs to use a flat space, without subnet bits, at least from the NSS point of view. The reason is that the EGP information exchanged between the regional gateway and the NSS cannot include subnet information, so the NSS has no knowledge of remote subnets. The safest way around this limitation is to use a non-subnetted network (like a separate Class-C network) at the interface between a regional backbone and the NSFNET backbone. The other way is to use Proxy-ARP while having just the NSS think that the network is not subnetted. In the latter case, care must be taken so that the E-PSP uses the proper local IP broadcast address. π
- Routing information received by the NSS from regional gateways will be verified on both network number and autonomous system number. π
- Metric reconstitution is done on a per-network basis. The NSS will construct the fixed metric it will use for a given network number from its internal data base. Network metrics given to the NSS via EGP will be ignored. The metrics used are a result of an ordered list of preferred paths, as supplied by the regional backbones and the attached campuses. This metric is of relevance only to the NSFNET core itself. The mechanisms are further explained in [1]. π§
- Global metric reconstitution by Autonomous System numbers is necessary in specific cases, such as peer networks. An example is that ARPANET routes will be reconstituted to a global metric, as determined by the NSS. πΈ
- EGP announcements into regional networks will use a fixed metric. The metric used shall be
"128."The 128-metric is somewhat arbitrarily chosen to be high enough so that a regional backbone will get a metric high enough from the NSFNET Core AS to allow a comparison against other (most likely internal) routes."128"is also consistent with [2]. π - Peer network routes (e.g., ARPANET routes) are propagated through the NSS structure. π¦
- No DEFAULT routing information is distributed within the NSFNET backbone, as the NSFNET core has the combined routing knowledge of the attached regional and peer networks. π
- We do not expect the requirement for damping of routing update frequencies, at least initially. The frequency of net up/down changes, combined with the available bandwidth and CPU capacity, does not let the frequency of SPF floodings appear as being a major problem. Simple metric changes as heard by a NSS via EGP will not trigger updates. β¨
- An allowed list of Source Autonomous System information will be used to convert from the IGP to EGP, on a Destination Autonomous System number basis, to allow for specific exclusion of definable remote Autonomous System information. π
- EGP must only announce networks for which the preferred path is via the IGP. This means in particular that the EGP peer will never announce via EGP what it learned via EGP on the same interface, not even if the information was received from a third EGP peer. This will avoid the back-distribution of information learned via that same interface. The EGP peers of regional gateways must only announce information belonging to their own Autonomous System. π«Ά
- EGP will be used in interior mode only. π
- The regional backbones are responsible for generating DEFAULT routing information at their option. One possibility is to generate an IGP default on a peer base as long as the NSS EGP connection is working. The EGP information will not include a special indication for DEFAULT. π₯
- It is highly desirable to have direct peer-peer connections, to ease the implementation of a consistent routing data base. π
- A single Autonomous System number may not be used with two E-PSPs at the same time as long as the two E-PSP's belong to the same NSS. Otherwise, the same Autonomous System number can be used from multiple points of attachment to the backbone and therefore can talk to more than one E-PSP. However, this may result in suboptimal routing unless multiple announcements are properly engineered according to [1]. π§
- The administrator of the regional networks should be warned that improper routing implementations within the region may create suboptimal regional routing by using this restriction if no care is taken in that:
- Only networks belonging to their own Autonomous System get preferred over NSFNET backbone paths; this may extend to a larger virtual Autonomous System if backdoor paths are effectively implemented.
- IGP implementations should not echo back routing information heard via the same path.
- If two regional networks decide to implement a backdoor connection between themselves, then the backdoor must have a firewall in so that information about their own Autonomous System cannot flow in from the other Autonomous System. That is, a regional network must not allow information about networks that are interior to its Autonomous System to enter via exterior routes. Likewise, if a regional network is connected to the NSFNET via two NSS connections, the NSS cannot send back information about the Autonomous System into the Autonomous System where it originated. The end effect is that partitions within an Autonomous System will not be healed by using the NSS system. In addition, if three or more regionals connect to each other via multiple back-door paths, it is imperative that all back-door paths have firewalls that ensure that the above restrictions are imposed. These actions are necessary to prevent routing loops that involve the NSS system. Furthermore, routing information should only be accepted from another regional backbone via backdoor paths for networks which are positively desired to be reached via this same backdoor path. π§
3. EGP requirements for attached gateways π
okay so these are the EGP requirements for attached gateways. fair warning, some of them may need changes in existing vendor products π₯Ί
- IGP to EGP routing exchanges need to be bidirectional. This feature should be selectable by the gateway administrator, and by default be configured OFF. π ββοΈ
- The metric used when translating from EGP to IGP should be configurable. βοΈ
- It must be possible for IGP information to override EGP information, so that the internal paths are preferred over external paths. Overriding EGP information on an absolute basis, where an external path would never be used as long as there is an internal one, is acceptable. π
- The ability to do route filtering in the regional gateways on a per net basis is highly desirable, to allow the regional gateways to do a further selection as to what routes they would want to redistribute into their network. π·
- The existence of an EGP connection should optionally lead to the generation of a DEFAULT announcement for propagation via the IGP. The DEFAULT metric should be independently configurable. π
- EGP routes with a metric of
"128"should be acceptable. In most cases, the regional backbone should ignore the EGP metric. π«§ - The regional gateways must only announce networks known to their own Autonomous System. At the very least, they must not redistribute routing information via EGP for routes previously learned via EGP. π
- It would be beneficial if the regional IGPs would tag routes as being EGP derived. π·οΈ
- If the EGP peer (e.g., a NSS) terminates the EGP exchange, the previously learned routes should expire in a timely fashion. β³
4. References π
- [1] Rekhter, J., "EGP and Policy Based Routing in the New NSFNET Backbone", T.J. Watson Research Center, IBM Corporation, March 1988. Also as RFC 1092, February 1989.
- [2] Mills, D., "Autonomous Confederations", RFC 975, M/A-COM Linkabit, February 1986.
- [3] Mills, D., "Exterior Gateway Formal Specification", RFC 904, M/A-COM Linkabit, April 1984.
- [4] "Exterior Gateway Protocol, Version 3, Revisions and Extensions," Working Notes of the IETF WG on EGP, Marianne L. Gardner and Mike Karels, February 1988.
- [5] "Management and Operation of the NSFNET Backbone Network," proposal to the National Science Foundation, Merit Computer Network, August 1987.
5. Appendix β¨
okay bestie, this appendix is where the "gated" crew dropped their extra features π Jeff Honig from the Cornell University Theory Center designed these, and they're still in the design stage, so they may change over time π§ they're here as an implementation example!!
Changes to the egpneighbor clause π
the egpneighbor line gets a bunch of new add-ons, and they're all lowkey so useful π
egpneighbor <address> metricin <metric>
egpmetricout <egpmetric>
ASin <as>
ASout <as>
nogendefault
acceptdefault
defaultout <egpmetric>
validate
metricin <metric>
if you set this, every net received from this neighbor gets its metric set to <metric> π
egpmetricout <egpmetric>
if you set this, every net sent to this neighbor gets its metric set to <egpmetric>, except the default π¦
ASin <as>
if you set this, EGP packets coming from this neighbor must specify this AS number, or an EGP error packet gets generated π the AS number only gets checked at neighbor acquisition time, so it's not a constant check, just a one-time thing β¨
ASout <as>
if you set this, this AS number gets used on all EGP packets sent to this neighbor π«Ά
nogendefault
if you set this, this neighbor doesn't get considered when a gateway default is being generated πΈ
acceptdefault
if you set this, the default gets accepted from this neighbor. otherwise it gets explicitly ignored π
defaultout <egpmetric>
if you set this, the internally generated default gets sent to this neighbor in EGP updates. default learned from other gateways does NOT get passed along π (it's not propagated, periodt)
validate
if you set this, every net learned from this EGP neighbor must have a matching validAS clause, or it gets ignored π
Adding a validAS clause π
validAS <net> AS <as> metric <metric>
this clause says which AS a network may be learned from, and what internal metric to use when the net gets learned π₯ it's the thing that the validate option leans on. also, more than one can be learned from more than one AS, so you can stack them up β¨
Adding sendAS and donotsendAS clauses π¦
these clauses control the announcement of exterior routes, which right now means only EGP routes π§ normally, exterior routes aren't even considered for announcement. but when you use sendAS or donotsendAS, the announce/donotannounce, egpnetsreachable, and other restrictions still apply. ALSO, sendAS and donotsendAS are mutually exclusive by autonomous system, so you can't mix them for the same AS π
sendAS <as0> ASlist <as1> <as2> ...
this clause says only nets learned from as1, as2, ... may get propagated to as0 π
donotsendAS <as0> ASlist <as1> <as2> ...
this clause says nets learned from as1, as2, ... may not get propagated to <as0>, but all the other nets do get propagated π
Example /etc/gated.conf
here's an example /etc/gated.conf file that could be a vibe π§
#
RIP supplier
#
autonomousystem (regional AS)
#
egpneighbor (NSS address) ASin (NSS AS) nogendefault
metricin (metric)
#
sendAS (NSS AS) ASlist (regional AS)
#
where:
- Regional AS is the AS number of the regional network πΈ
- NSS address is the IP address of the local NSS π
- NSS AS is the AS number of the NSFNET backbone π
- Metric is the gated internal (time delay) metric that EGP learned routes should have. this is the metric used on output after conversion to a RIP metric. some values are:
HELLO RIP
100 1
148 2
219 3
325 4
481 5
Author's Address π
Hans-Werner Braun
University of Michigan
Computing Center
1075 Beal Avenue
Ann Arbor, MI 48109
Phone: (313) 763-4897
Email: HWB@MCR.UMICH.EDU
π¦ where this page comes from
- ietf: rfc1093 1989-02
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms