home *** CD-ROM | disk | FTP | other *** search
/ Handbook of Infosec Terms 2.0 / Handbook_of_Infosec_Terms_Version_2.0_ISSO.iso / text / rfcs / rfc0911.txt < prev    next >
Text File  |  1996-05-07  |  57KB  |  493 lines

  1.  
  2.  
  3.  Network Working Group Request for Comments: 911 
  4.  
  5.  
  6.  
  7.  
  8.  
  9.                        EGP GATEWAY UNDER BERKELEY UNIX 4.2 
  10.  
  11.  
  12.  
  13.                                   PAUL KIRTON 
  14.  
  15.         University of Southern California, Information Sciences Institute      Visiting Research Fellow from Telecom Australia Research Laboratories 
  16.  
  17.                                 22 August 1984 
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.                                    ABSTRACT 
  30.  
  31. This  report  describes an implementation of the Exterior Gateway Protocol that runs under the Unix 4.2 BSD operating system.  Some  issues  related  to  local network configurations are also discussed. 
  32.  
  33.  
  34.  
  35. Status of this Memo: 
  36.  
  37. This  memo describes  an implementation of the Exterior Gateway Protocol  (EGP) (in that sense it is a status report).  The memo also discusses  some  possible extentions  and  some  design  issues   (in that sense it is an invitation  for further discussion).  Distribution of this memo is unlimited. 
  38.  
  39.  
  40.  
  41.     Funding for this research was provided by DARPA and Telecom Australia. 
  42.  RFC 911                                                                       i 
  43.  
  44.                                 Table of Contents 
  45.  
  46. 1. INTRODUCTION                                                               1 
  47.  
  48. 1.1 Motivation for Development                                                1 1.2 Overview of EGP                                                           2 
  49.  
  50. 2. GATEWAY DESIGN                                                             4 
  51.  
  52. 2.1 Routing Tables                                                            4      2.1.1 Incoming Updates                                                   5      2.1.2 Outgoing Updates                                                   5 2.2 Neighbor Acquisition                                                      6 2.3 Hello and Poll Intervals                                                  6 2.4 Neighbor Cease                                                            7 2.5 Neighbor Reachability                                                     7 2.6 Sequence Numbers                                                          8 2.7 Treatment of Excess Commands                                              8 2.8 Inappropriate Messages                                                    8 2.9 Default Gateway                                                           9 
  53.  
  54. 3. TESTING                                                                   10 
  55.  
  56. 4. FUTURE ENHANCEMENTS                                                       11 
  57.  
  58. 4.1 Multiple Autonomous Systems                                              11 4.2 Interface Monitoring                                                     11 4.3 Network Level Status Information                                         11 4.4 Interior Gateway Protocol Interface                                      12 
  59.  
  60. 5. TOPOLOGY ISSUES                                                           13 
  61.  
  62. 5.1 Topology Restrictions and Routing Loops                                  13      5.1.1 Background                                                        13      5.1.2 Current Policy                                                    14 5.2 Present ISI Configuration                                                15      5.2.1 EGP Across ARPANET                                                17      5.2.2 EGP Across ISI-NET                                                17      5.2.3 Potential Routing Loop                                            18 5.3 Possible Future Configuration                                            18      5.3.1 Gateway to UCI-ICS                                                18      5.3.2 Dynamic Switch to Backup Gateway                                  19           5.3.2.1 Usual Operation                                            19           5.3.2.2 Host Initialization                                        19           5.3.2.3 When Both the Primary and Backup are Down                  20           5.3.2.4 Unix 4.2 BSD                                               20 
  63.  
  64. 6. ACKNOWLEDGEMENT                                                           21 
  65.  
  66. 7. REFERENCES                                                                22 
  67.  RFC 911                                                                       1 
  68.  
  69.  1. INTRODUCTION 
  70.  
  71. The Exterior Gateway Protocol (EGP) [Rosen 82; Seamonson & Rosen 84; Mills 84a] has been specified to allow autonomous development of different gateway systems while  still  maintaining  global distribution of internet routing information. EGP provides a means for  different  autonomous  gateway  systems  to  exchange information about the networks that are reachable via them. 
  72.  
  73. This  report  mainly  describes  an  implementation  of EGP that runs as a user                                *                                  ** process under the Berkeley Unix  4.2 operating system run on a VAX    computer. Some  related issues concerning local autonomous system configurations are also discussed. 
  74.  
  75. The EGP implementation is experimental and is not a part of Unix 4.2 BSD. It is anticipated that Berkeley will incorporate a version of EGP in the future. 
  76.  
  77. The program is written in C. The EGP  part  is  based  on  the  C-Gateway  code written  by  Liza  Martin at MIT and the route management part is based on Unix 4.2 BSD route management daemon, "routed". 
  78.  
  79. The EGP functions are consistent with the specification of [Mills  84a]  except where noted. 
  80.  
  81. A  knowledge  of  EGP  as  described  in  [Seamonson  & Rosen 84; Mills 84a] is assumed. 
  82.  
  83. This chapter discusses the motivation for the project, Chapter 2 describes  the gateway  design,  Chapter 3 is on testing, Chapter 4 suggests some enhancements and Chapter 5 discusses topology issues. 
  84.  
  85. Further information about running the EGP program and describing  the  software is being published in an ISI Research Report ISI/RR-84-145 [Kirton 84]. 
  86.  
  87. Requests  for  documentation  and  copies  of the EGP program should be sent to Joyce Reynolds (JKReynolds@USC-ISIF.ARPA). Software support is not provided. 
  88.  
  89.  1.1 Motivation for Development 
  90.  
  91. With the introduction of EGP, the internet gateways  will  be  divided  into  a "core"  autonomous  system  (AS)  of  gateways  maintained by Bolt, Beranek and Newman  (BBN)  and  many  "stub"  AS's  that  are   maintained   by   different organizations  and  have at least one network in common with a core AS gateway. The core AS will act as a  hub  for  passing  on  routing  information  between 
  92.  
  93. _______________ 
  94.  
  95.   *    Unix is a trade mark of AT&T   **     VAX is a trade mark of Digital Equipment Corporation 
  96.  RFC 911                                                                       2 
  97.  
  98.  different  stub AS's so that it will only be necessary for stub AS's to conduct EGP with a core gateway. Further detail is given in [Rosen 82]. 
  99.  
  100. At the time of this  project  there  were  28  "non-routing"  gateways  in  the internet.  Non-routing  gateways  did  not  exchange  routing  information  but required static entries in the core gateway routing tables.   Since  August  1, 1984  these  static  entries  have  been  eliminated and previously non-routing gateways are required to communicate this  information  to  the  core  gateways dynamically via EGP [Postel 84]. 
  101.  
  102. At the USC Information Sciences Institute (ISI) there was a non-routing gateway to  the  University  of  California  at  Irvine  network  (UCI-ICS).  With  the elimination of  non-routing  gateways  from  the  core  gateway  tables  it  is necessary to inform the core ISI gateway of the route to UCI-ICS using EGP. 
  103.  
  104. Also,  we  would  like a backup gateway between ISI-NET and the ARPANET in case the core ISI gateway is down. Such, a gateway  would  need  to  convey  routing information  via EGP. Details of the ISI network configuration are discussed in Section 5.2. 
  105.  
  106. Of the 28 non-routing gateways 23 were implemented by Unix  systems,  including ISI's.  Also, ISI's proposed backup gateway was a Unix system. Thus there was a local and general need for an EGP implementation to run under Unix. The current version  of  Unix  that  included  Department  of  Defense  (DoD) protocols was Berkeley Unix 4.2 so this was selected. 
  107.  
  108.  1.2 Overview of EGP 
  109.  
  110. This report assumes a knowledge of EGP, however a brief overview is given  here for completeness. For further details refer to [Rosen 82] for the background to EGP,  [Seamonson & Rosen 84] for an informal description, and [Mills 84a] for a more formal specification and implementation details. 
  111.  
  112. EGP is generally conducted between gateways in  different  AS's  that  share  a common network, that is, neighbor gateways. 
  113.  
  114. EGP  consists  of three procedures, neighbor acquisition, neighbor reachability and network reachability. 
  115.  
  116. Neighbor acquisition is a two way handshake in which gateways agree to  conduct EGP  by exchanging Request and Confirm messages which include the minimum Hello and Poll  intervals.    Acquisition  is  terminated  by  exchanging  Cease  and Cease-ack messages. 
  117.  
  118. Neighbor  reachability  is  a  periodic exchange of Hello commands and I-H-U (I heard you) responses to ensure that each gateway is up. Currently a  30  second minimum interval is used across ARPANET. Only one gateway need send commands as the   other   can  use  them  to  determine  reachability.  A  gateway  sending reachability commands is said to be in the active mode, while  a  gateway  that just responds is in the passive mode. 
  119.  RFC 911                                                                       3 
  120.  
  121.  Network  reachability  is  determined by periodically sending Poll commands and receiving Update responses which indicate the networks  reachable  via  one  or more  gateways  on  the  shared network. Currently 2 minute minimum interval is used across ARPANET. 
  122.  RFC 911                                                                       4 
  123.  
  124.  2. GATEWAY DESIGN 
  125.  
  126. EGP  is a polling protocol with loose timing constraints. Thus the only gateway function requiring good performance is packet forwarding.  Unix 4.2 already has packet forwarding built into the kernel where best performance can be achieved. At the time of writing Unix 4.2 did not send  ICMP  (Internet  Control  Message Protocol)  redirect  messages  for  misrouted packets. This is a requirement of internet gateways and will later be added by Berkeley. 
  127.  
  128. The EGP and route update functions are implemented as a  user  process.    This facilitates  development and distribution as only minor changes need to be made to the Unix kernel.  This is a similar approach to the Unix route  distribution program  "routed"  [Berkeley  83]  which  is  based  on  the  Xerox  NS Routing Information Protocol [Xerox 81]. 
  129.  
  130.  2.1 Routing Tables 
  131.  
  132. A route consists of a destination network  number,  the  address  of  the  next gateway  to  use  on  a  directly  connected  network,  and a metric giving the distance in gateway hops to the destination network. 
  133.  
  134. There are two sets of routing  tables,  the  kernel  tables  (used  for  packet forwarding) and the EGP process tables. The kernel has separate tables for host and  network  destinations.  The EGP process only maintains the network routing tables. The EGP tables are updated when EGP Update messages are received.  When a  route is changed the kernel network tables are updated via the SIOCADDRT and SIOCDELRT ioctl system calls. At  initialization  the  kernel  network  routing tables  are  read  via the kernel memory image file, /dev/kmem, and copied into the EGP tables for consistency. 
  135.  
  136. This EGP implementation is designed to run on a gateway that is  also  a  host. Because  of  the relatively slow polling to obtain route updates it is possible that the host may receive notification of routing changes  via  ICMP  redirects before  the EGP process is notified via EGP. Redirects update the kernel tables directly. The EGP process listens for redirect messages on  a  raw  socket  and updates its routing tables to keep them consistent with the kernel. 
  137.  
  138. The  EGP  process routing tables are maintained as two separate tables, one for exterior routes (via different AS gateways) and one for  interior  routes  (via the  gateways of this AS).  The exterior routing table is updated by EGP Update messages. The interior  routing  table  is  currently  static  and  is  set  at initialization  time. It includes all directly attached nets, determined by the SIOCGIFCONF ioctl system call and any interior non-routing gateways  read  from the  EGP  initialization file, EGPINITFILE. The interior routing table could in future be updated dynamically by an Interior Gateway Protocol (IGP). 
  139.  
  140. Maintaining separate tables for exterior and interior routing  facilitates  the preparation  of  outgoing  Update  messages which only contain interior routing information [Mills 84b].  It also permits alternative external  routes  to  the internal  routes  to  be  saved  as  a  backup in case an interior route fails. Alternate routes are flagged,  RTS_NOTINSTALL,  to  indicate  that  the  kernel 
  141.  RFC 911                                                                       5 
  142.  
  143.  routes  should  not  be updated. In the current implementation alternate routes are not used. 
  144.  
  145.  
  146.  
  147. 2.1.1 Incoming Updates 
  148.  
  149. EGP Updates are used to update  the  exterior  routing  table  if  one  of  the following is satisfied: 
  150.  
  151.    - No  routing  table  entry  exists for the destination network and the      metric indicates the route is reachable (< 255). 
  152.  
  153.    - The advised gateway is the same as the current route. 
  154.  
  155.    - The advised distance metric is less than the current metric. 
  156.  
  157.    - The current route is older (plus a  margin)  than  the  maximum  poll      interval  for  all  acquired  EGP  neighbors.  That is, the route was      omitted from the last Update. 
  158.  
  159. If any exterior route entry, except the default route, is not  updated  by  EGP within  4  minutes  or  3  times  the  maximum  poll interval, whichever is the greater, it is deleted. 
  160.  
  161. If there is more than one acquired EGP neighbor, the Update  messages  received from each are treated the same way in the order they are received. 
  162.  
  163. In  the worst case, when a route is changed to a longer route and the old route is not first notified as unreachable, it  could  take  two  poll  intervals  to update  a  route. With the current poll interval this could be 4 minutes. Under Unix 4.2  BSD  TCP  connections  (Transmission  Control  Protocol)  are  closed automatically  after  they  are idle for 6 minutes. So this worst case will not result in the automatic closure of TCP connections. 
  164.  
  165.  
  166.  
  167. 2.1.2 Outgoing Updates 
  168.  
  169. Outgoing Updates include the direct  and  static  networks  from  the  interior routing table, except for the network shared with the EGP neighbor. 
  170.  
  171. The  networks  that  are  allowed  to be advised in Updates may be specified at initialization in EGPINITFILE. This allows particular  routes  to  be  excluded from  exterior updates in cases where routing loops could be a problem. Another case where this option is necessary, is when there  is  a  non-routing  gateway belonging  to  a different AS which has not implemented EGP yet. Its routes may need to be included in the kernel routing table but they are not allowed to  be advised in outgoing updates. 
  172.  
  173. If  the  interior routing table includes other interior gateways on the network shared with the EGP neighbor they are include in  Updates  as  the  appropriate 
  174.  RFC 911                                                                       6 
  175.  
  176.  first hop to their attached networks. 
  177.  
  178. The  distance to networks is set as in the interior routing table except if the route is marked down in which case the distance  is  set  to  255.  At  present routes are only marked down if the outgoing interface is down. The state of all interfaces  is  checked  prior  to  preparing  each  outgoing  Update using the SIOCGIFFLAGS ioctl system call. 
  179.  
  180. Unsolicited Updates are not sent. 
  181.  
  182.  2.2 Neighbor Acquisition 
  183.  
  184. EGPINITFILE lists the addresses of trusted EGP  neighbor  gateways,  which  are read  at  initialization.  These  will  usually  be  core gateways as only core gateways provide full internet routing information.  At  the  time  of  writing there  were  three  core  gateways  on  ARPANET which support EGP, CSS-GATEWAY, ISI-GATEWAY and PURDUE-CS-GW, and two on MILNET, BBN-MINET-A-GW and AERONET-GW. 
  185.  
  186. EGPINITFILE also includes the maximum number of these gateways that  should  be acquired  at  any  one  time.  This is usually expected to be just one. If this gateway is declared down another gateway on the  list  will  then  be  acquired automatically  in  sufficient  time  to  ensure that the current routes are not timed out. 
  187.  
  188. The gateway will only accept acquisitions from neighbors on  the  trusted  list and  will  not  accept  them if it already has acquired its maximum quota. This prevents Updates being accepted from possibly unreliable sources. 
  189.  
  190. The ability to acquire core gateways that are not on the trusted list but  have been  learned of indirectly via Update messages is not included because not all core gateways run EGP. 
  191.  
  192. New acquisition Requests are sent to neighbors in  the  order  they  appear  in EGPINITFILE.  No  more new Requests than the maximum number of neighbors yet to be  acquired  are  sent  at  once.  Any  number  of  outstanding  Requests  are retransmitted at 32 second intervals up to 5 retransmissions each at which time the  acquisition  retransmission  interval  is increased to 4 minutes. Once the maximum number of  neighbors  has  been  acquired,  unacquired  neighbors  with outstanding  Requests  are  sent  Ceases.  This  approach provides a compromise between fast response when neighbors do not initially respond and a  desire  to minimize  the  chance that a neighbor may be Ceased after it has sent a Confirm but before it has been received.  If the specified maximum number of  neighbors cannot  be  acquired, Requests are retransmitted indefinitely to all unacquired neighbors. 
  193.  
  194.  2.3 Hello and Poll Intervals 
  195.  
  196. The Request and Confirm messages include minimum  values  for  Hello  and  Poll intervals.  The advised minimums by this and the core gateways are currently 30 and 120 seconds respectively. 
  197.  RFC 911                                                                       7 
  198.  
  199.  The  received  intervals  are  checked  against  upper  bounds to guard against nonsense values. The upper bounds are currently set  at  120  and  480  seconds respectively.  If,  they are exceeded the particular neighbor is considered bad and not sent further Requests for one hour. This allows  the  situation  to  be corrected  at  the  other  gateway and normal operation to automatically resume from this gateway without an excess of unnecessary network traffic. 
  200.  
  201. The actual Hello and Poll intervals are chosen by first selecting  the  maximum of  the  intervals  advised  by this gateway and its peer. A 2 second margin is then added to the Hello interval to take  account  of  possible  network  delay variations  and the Poll interval is increased to the next integer ratio of the Hello interval. This results in 32 second Hello and 128 second Poll intervals. 
  202.  
  203. If an Update is not received in response to a Poll, at most  one  repoll  (same sequence number) is sent instead of the next scheduled Hello. 
  204.  
  205.  2.4 Neighbor Cease 
  206.  
  207. If  the EGP process is sent a SIGTERM signal via the Kill command, all acquired neighbors are sent Cease(going down) commands.  Ceases are retransmitted at the hello interval at most 3 times.  Once all have either responded with Cease-acks or been sent three retransmitted Ceases the process is terminated. 
  208.  
  209.  2.5 Neighbor Reachability 
  210.  
  211. Only  active  reachability  determination  is  implemented.  It  is   done   as recommended in [Mills 84a] with a minor variation noted below. 
  212.  
  213. A  shift  register  of responses is maintained.  For each Poll or Hello command sent a zero is shifted into the shift register.  If a response  (I-H-U,  Update or  Error) is received with the correct sequence number the zero is replaced by a one.  Before each new command is  sent  the  reachability  is  determined  by examining  the  last  four  entries  of  the shift register. If the neighbor is reachable  and  <=  1  response  was  received  the  neighbor   is   considered unreachable.  If the neighbor is considered unreachable and >= 3 responses were received it is now considered reachable. 
  214.  
  215. A neighbor is considered reachable immediately after acquisition  so  that  the first  poll  received  from  a  core  gateway  (once  it considers this gateway reachable) will be responded to with an Update. Polls are  not  sent  unless  a neighbor  is considered reachable and it has not advised that it considers this gateway unreachable in its last Hello, I-H-U or Poll message.    This  prevents the first Poll being discarded after a down/up transition. This is important as the  Polls  are  used  for reachability determination. Following acquisition at least one message must be received before the first Poll is sent.  This  is  to determine  that  the  peer  does  not  consider this gateway down. This usually requires at least one Hello to be sent prior to the first poll. The  discussion of  this  paragraph  differs  from  [Mills 84a] which recommends that a peer be considered down following acquisition and Polls may be sent as soon as the peer is  considered  up.  This  is  the  only   significant   departure   from   the 
  216.  RFC 911                                                                       8 
  217.  
  218.  recommendations in [Mills 84a]. 
  219.  
  220. Polls  received  by  peers  that  are  considered unreachable are sent an Error response which allows their reachability determination to  progress  correctly. This action is an option within [Mills 84a]. 
  221.  
  222. When  a  neighbor  becomes  unreachable  all  routes  using it as a gateway are deleted from the routing table. If there are  known  unacquired  neighbors  the unreachable gateway is ceased and an attempt is made to acquire a new neighbor. If all known neighbors are acquired the reachability determination is continued for  30  minutes  ([Mills  84a]  suggests  60  minutes)  after  which  time the unreachable neighbor is ceased and reacquisition  attempted  every  4  minutes. This is aimed at reducing unnecessary network traffic. 
  223.  
  224. If  valid  Update  responses  are  not  received for three successive polls the neighbor is ceased and an alternative acquired or reacquisition is attempted in 4 minutes. This provision is provided in case erroneous Update data formats are being sent by the neighbor. This situation did occur  on  one  occasion  during testing. 
  225.  
  226.  2.6 Sequence Numbers 
  227.  
  228. Sequence  numbers  are  managed  as recommended in [Mills 84a]. Single send and receive sequence numbers are maintained for each neighbor.  The  send  sequence number  is  initialized  to  zero  and is incremented before each new Poll (not repoll) is sent and at no other time. The send sequence number is used  in  all commands.  The  receive  sequence  number is maintained by copying the sequence number of the last Request, Hello, or Poll command received  from  a  neighbor. This  sequence  number  is  used  in outgoing Updates. All responses (including Error responses) return the sequence number of the message just received. 
  229.  
  230.  2.7 Treatment of Excess Commands 
  231.  
  232. If more than 20 commands are received from a neighbor in any  8  minute  period the  neighbor  is  considered  bad,  Ceased and reacquisition prevented for one hour. 
  233.  
  234. At most one repoll (same sequence number) received before the poll interval has expired (less a 4 second margin for network delay variability) is responded  to with  an  Update,  others are sent an Error response. When an Update is sent in response to a repoll the unsolicited bit is not set,  which  differs  from  the recommendation in [Mills 84a]. 
  235.  
  236.  2.8 Inappropriate Messages 
  237.  
  238. If  a Confirm, Hello, I-H-U, Poll or Update is received from any gateway (known or unknown) that is in the unacquired state, synchronization has probably  been lost  for  some  reason. A Cease(protocol violation) message is sent to try and reduce unnecessary network traffic. This action is an option in [Mills 84a]. 
  239.  RFC 911                                                                       9 
  240.  
  241.  
  242.  
  243.  2.9 Default Gateway 
  244.  
  245. A  default gateway may be specified in EGPINITFILE. The default route (net 0 in Unix 4.2 BSD) is used by the kernel packet forwarder if there  is  no  specific route for the destination network. This provides a final level of backup if all known EGP neighbors are unreachable. This is especially useful if there is only one available EGP neighbor, as in the ISI case, Section 5.2.2. 
  246.  
  247. The  default route is installed at initialization and deleted after a valid EGP Update message is received. It  is  reinstalled  if  all  known  neighbors  are acquired  but  none  are  reachable,  if routes time out while there are no EGP neighbors that are acquired and reachable, and prior to process termination. 
  248.  
  249. It is deleted after a valid EGP Update message is received because the  default gateway will not know any more routing information than learned via EGP.  If it were  not deleted, all traffic to unreachable nets would be sent to the default gateway under Unix 4.2 forwarding strategy. 
  250.  
  251. The default gateway should normally be set to a full-routing core gateway other than the known EGP neighbor gateways to give another backup in case all of  the EGP gateways are down simultaneously. 
  252.  RFC 911                                                                      10 
  253.  
  254.  3. TESTING 
  255.  
  256. A few interesting cases that occurred during testing are briefly described. 
  257.  
  258. The   use   of  sequence  numbers  was  interpreted  differently  by  different implementers. Consequently some implementations  rejected  messages  as  having incorrect  sequence numbers, resulting in the peer gateway being declared down. The main problem was that the specification was solely in narrative form  which is  prone  to  inconsistencies, ambiguities and incompleteness. The more formal specification of [Mills 84a] has eliminated these ambiguities. 
  259.  
  260. When testing  the  response  to  packets  addressed  to  a  neighbor  gateway's interface  that  was  not  on  the  shared net a loop resulted as both gateways repeatedly exchanged  error  messages  indicating  an  invalid  interface.  The problem  was that both gateways were sending Error responses after checking the addresses but before the EGP message type was checked.  This was  rectified  by not  sending  an  Error response unless it was certain that the message was not itself an Error response. 
  261.  
  262. On one occasion a core gateway had some  form  of  data  error  in  the  Update messages  which  caused  them to be rejected even though reachability was being satisfactorily conducted. This resulted in all routes being  timed  out.    The solution  was  to  count  the  number of successive Polls that do not result in valid Updates being received and if this number reaches  3  to  Cease  EGP  and attempt to acquire an alternative gateway. 
  263.  
  264. Another  interesting idiosyncrasy, reported by Mike Karels at Berkeley, results from having multiple gateways between MILNET and ARPANET. Each ARPANET host has an assigned gateway to use for access to MILNET. In cases where the EGP gateway is a host as well as  a  gateway,  the  EGP  Update  messages  may  indicate  a different  MILNET/ARPANET  gateway from the assigned one. When the host/gateway originates a packet that is routed  via  the  EGP  reported  gateway,  it  will receive  a  redirect to its assigned gateway.  Thus the MILNET gateway can keep being switched between the gateway reported by EGP and the assigned gateway.  A similar thing occurs when using routes to other nets reached via MILNET/ARPANET gateways. 
  265.  RFC 911                                                                      11 
  266.  
  267.  4. FUTURE ENHANCEMENTS 
  268.  
  269. 4.1 Multiple Autonomous Systems 
  270.  
  271. The  present  method  of  acquiring  a  maximum  number of EGP neighbors from a trusted list implies that all the neighbors are in the same AS.  The  intention is  that  they all be members of the core AS. When updating the routing tables, Updates are treated independently with no distinction made as  to  whether  the advised  routes  are  internal  or  external  to  the peer's AS.  Also, routing metrics are compared without reference to the AS of the source. 
  272.  
  273. If EGP is to be  conducted  with  additional  AS's  beside  the  core  AS,  all neighbors  on  the  list  would  need  to  be  acquired in order to ensure that gateways from both AS's were always acquired. This results  in  an  unnecessary excess  of  EGP  traffic if redundant neighbors are acquired for reliability. A more desirable approach would be to have separate lists of trusted EGP gateways and the maximum number to be acquire, for each AS. Routing entries  would  need to  have  the  source AS added so that preference could be given to information received from the owning AS (see Section 5.1.2) 
  274.  
  275.  4.2 Interface Monitoring 
  276.  
  277. At present, interface status is only checked immediately prior to  the  sending of  an  Update  in response to a Poll.  The interface status could be monitored more regularly and an unsolicited Update sent when a change is  detected.  This is  one  area where the slow response of EGP polling could be improved. This is of particular interest to networks that may  be  connected  by  dial-in  lines. When such a network dials in, its associated interface will be marked as up but it  will not be able to receive packets until the change has been propagated by EGP. This is one case where the unsolicited  Update  message  would  help,  but there  is still the delay for other non-core gateways to poll core EGP gateways for the new routing information. 
  278.  
  279. This  was  one  case  where  it  was  initially  thought  that  a  kernel   EGP implementation  might  help.  But  the kernel does not presently pass interface status changes by interrupts so a new facility would need to  be  incorporated. If  this was done it may be just as easy to provide a user level signal when an interface status changes. 
  280.  
  281.  4.3 Network Level Status Information 
  282.  
  283. At present, network level status reports, such as IMP  Destination  Unreachable messages,  are  not used to detect changes in the reachability of EGP neighbors or other neighbor gateways. This information should  be  used  to  improve  the response time to changes. 
  284.  RFC 911                                                                      12 
  285.  
  286.  4.4 Interior Gateway Protocol Interface 
  287.  
  288. At  present  any  routing  information that is interior to the AS is static and read from the initialization file. The internal route management functions have been written so that it should be reasonably  easy  to  interface  an  IGP  for dynamic  interior  route  updates. This is facilitated by the separation of the exterior and interior routing tables. 
  289.  
  290. The outgoing EGP Updates will be correctly prepared from the  interior  routing table by rt_NRnets() whether or not static or dynamic interior routing is done. Functions  are  also  provided  for  looking  up, adding, changing and deleting internal routes, i.e. rt_int_lookup(), rt_add(),  rt_change()  and  rt_delete() respectively. 
  291.  
  292. The  interaction  of an IGP with the current data structures basically involves three functions: updating the interior routing table using a  function  similar to rt_NRupdate(), preparing outgoing interior updates similarly to rt_NRnets(), and timing out interior routes similarly to rt_time(). 
  293.  RFC 911                                                                      13 
  294.  
  295.  5. TOPOLOGY ISSUES 
  296.  
  297. 5.1 Topology Restrictions and Routing Loops 
  298.  
  299.  
  300.  
  301. 5.1.1 Background 
  302.  
  303. EGP  is  not  a  routing  algorithm.  it  merely  enables exterior neighbors to exchange routing information which is likely to  to  be  needed  by  a  routing algorithm.  It does not pass sufficient information to prevent routing loops if cycles exist in the topology [Rosen 82]. 
  304.  
  305. Routing loops can occur when two gateways think there are alternate  routes  to reach a third gateway via each other. When the third gateway goes down they end up  pointing  to  each  other  forming a routing loop.  Within the present core system, loops are broken by counting to "infinity" (the  internet  diameter  in gateway  hops).  This  (usually)  works  satisfactorily  because GGP propagates changes fairly quickly as routing updates are sent as soon  as  changes  occur. Also  the  diameter of the internet is quite small (5) and a universal distance metric, hop count, is used. But this will be changed in the future. 
  306.  
  307. With EGP, changes are propagated  slowly.  Although  a  single  unsolicited  NR message  can  be  sent,  it  won't  necessarily  be passed straight on to other gateways who must hear about it  indirectly.  Also,  the  distance  metrics  of different  AS's  are  quite  independent  and  hence  can't be used to count to infinity. 
  308.  
  309. The initial proposal was to prevent routing loops by restricting  the  topology of  AS's to a tree structure so that there are no multiple routes via alternate AS's.  Multiple routes within the same AS are allowed as  it  is  the  interior routing strategies responsibility to control loops. 
  310.  
  311. [Mills  84b]  has  noted that even with the tree topology restriction, "we must assume that transient loops may form within the core system from time  to  time and  that  this  information  may escape to other systems; however, it would be expected that these loops would not persist for very long and would  be  broken in  a  short  time  within the core system itself. Thus a loop between non-core systems can persist until the first round of Update messages sent to the  other systems  after  all traces of the loop have been purged from the core system or until the reachability information ages out of  the  tables,  whichever  occurs first". 
  312.  
  313. With the initial simple stub EGP systems the tree topology restriction could be satisfied. But for the long term this does not provide sufficient robustness. 
  314.  
  315. [Mills  83]  proposed a procedure by which the AS's can dynamically reconfigure themselves such that the topology restriction is always met, without  the  need for  a  single  "core" AS.  One AS would own a shared net and its neighbor AS's would just conduct EGP with the owner. The owner would pass on such information indirectly as the core system does now. If the  owning  AS  is  defined  to  be closest  to  the  root  of the tree topology, any haphazard interconnection can 
  316.  RFC 911                                                                      14 
  317.  
  318.  form  itself  into  an appropriate tree structured routing topology. By routing topology I mean the topology as advised in routing updates. There may  well  be other  physical  connections  but if they are not advised they will not be used for routing. Each AS can conduct EGP with at most one AS that owns one  of  its shared nets. Any AS that is not conducting EGP over any net owned by another AS is  the  root of a subtree. It may conduct EGP with just one other AS that owns one of its shared nets. This "attachment" combines  the  two  subtrees  into  a single  subtree  such  that  the  overall  topology  is still a tree.  Topology violations can be determined because two different AS's will report  that  they can reach the same net. 
  319.  
  320. With  such  a  dynamic  tree,  there may be preferred and backup links. In such cases it is necessary to monitor the failed link so that routing can be changed back to the preferred link when service is restored. 
  321.  
  322. Another aspect to consider is the possibility of detecting  routing  loops  and then  breaking  them. Expiration of the packet time-to-live (TTL) could be used to do this. If such a loop is suspected a diagnostic packet, such as ICMP echo, could be sent over the suspect route to confirm whether it is a loop. If a loop is detected a special  routing  packet  could  be  sent  over  the  route  that instructs  each gateway to delete the route after forwarding the packet on. The acceptance of new routing information may need to be delayed for  a  hold  down period.  This approach would require sensible selection of the initial TTL. But this is not done by many hosts. 
  323.  
  324.  
  325.  
  326. 5.1.2 Current Policy 
  327.  
  328. Considering the general trend to  increased  network  interconnection  and  the availability of alternative long-haul networks such as ARPANET, WBNET (wideband satellite  network),  and public data networks the tree topology restriction is generally unacceptable. A less restrictive topology is  currently  recommended. The following is taken from [Mills 84b]. 
  329.  
  330. EGP topological model: 
  331.  
  332.    - An  autonomous  system  consists  of  a  set of gateways connected by      networks.  Each gateway in the system must be  reachable  from  every      other  gateway in its system by paths including only gateways in that      system. 
  333.  
  334.    - A gateway in a system may run EGP with a gateway in any other  system      as  long  as the path over which EGP itself is run does not include a      gateway in a third system. 
  335.  
  336.    - The "core system" is distinguished from the others by the  fact  that      only  it  is  allowed  to  distribute  reachability information about      systems other than itself. 
  337.  
  338.    - At least one gateway in every system must have a net in common with a      gateway in the core system. 
  339.  RFC 911                                                                      15 
  340.  
  341.     - There  are  no  topological  or  connectivity restrictions other than      those implied above. 
  342.  
  343. A gateway  will  use  information  derived  from  its  configuration  (directly connected  nets),  the  IGP of its system, called S in the following, (interior nets) and EGP (interior and exterior nets of neighboring systems) to  construct its routing tables. If conflicts with respect to a particular net N occur, they will be resolved as follows: 
  344.  
  345.    - If  N  is  directly connected to the gateway, all IGP and EGP reports      about N are disregarded. 
  346.  
  347.    - If N is reported by IGP as  interior  to  S  and  by  EGP  as  either      interior  or  exterior  to  another  system,  the  IGP  report  takes      precedence. 
  348.  
  349.    - If N is reported by EGP as interior to one  system  and  exterior  to      another, the interior report takes precedence. 
  350.  
  351.    - If  N  is  reported  as  interior by two or more gateways of the same      system using EGP, the reports specifying the smallest hop count  take      precedence. 
  352.  
  353.    - In all other cases the latest received report takes precedence. 
  354.  
  355. Old information will be aged from the tables.  The   interim   model  provides  an  acceptable  degree  of  self-organization. Transient routing loops can occur between systems,  but  these  are  eventually broken by old reachability information being aged out of the tables.  Given the fact  that  transient  loops  can occur due to temporary core-system loops, the additional loops that might occur in the case of local nets homed  to  multiple systems does not seem to increase the risk significantly. 
  356.  
  357.  5.2 Present ISI Configuration 
  358.  
  359. A  simplified  version of the ISI network configuration is shown in Figure 5-1. ISI-Hobgoblin can provide a backup gateway function  to  the  core  ISI-Gateway between  ARPANET and ISI-NET. ISI-Hobgoblin is a VAX 11/750 which runs Berkeley Unix  4.2.  The  EGP  implementation  described  in  this  report  is  run   on ISI-Hobgoblin. 
  360.  
  361. ISI-Troll  is part of a split gateway to the University of California at Irvine network (UCI-ICS). The complete logical gateway consists of ISI-Troll, the 9600 baud link and UCI-750A [Rose 84]. ISI-Troll runs Berkeley Unix 4.1a  and  hence cannot  run  the  EGP  program.  It  is  therefore  a non-routing gateway.  The existence of UCI-ICS net must be advised to the core AS by ISI-Hobgoblin.  This can be done by including an appropriate entry in the EGPINITFILE. 
  362.  
  363. Hosts on ISI-NET, including ISI-Troll, have  static  route  entries  indicating ISI-Gateway as the first hop for all networks other than UCI-ICS and ISI-NET. 
  364.  RFC 911                                                                      16 
  365.  
  366.            -------------------------------------------------          /                                                 \         /                      ARPANET                      \         \                        10                         /          \                                                 /           -------------------------------------------------              |                    |                    |              |                    |                    |              |                    |                    |       +-------------+      +-------------+      +---------------+       | ISI-PNG11   |      |             |      |               |       | Arpanet     |      | ISI-GATEWAY |      | ISI-HOBGOBLIN |       | Address     |      |             |      |   Vax 11/750  |       | logical     |      |  Core EGP   |      |   Unix 4.2    |       | multiplexer |      |             |      |               |       +-------------+      +-------------+      +---------------+              |                    |                    |              |                    |                    |              |                    |                    |       ---------------          ----------------------------      /               \        /                            \     / 3 Mb/s Ethernet \      /           ISI-NET            \     \     net 10      /      \            128.9             /      \               /        \                            /       ---------------          ----------------------------                                       |                                       |                                       |                                +--------------+                                |  ISI-TROLL   |                                |  Vax 11/750  |                                |  Unix 4.1a   |                                |  Non-routing |                                |      |       |                                |      | 9600  |   ISI-TROLL, UCI-750A                                |      | baud  |   and the link form a                                |      | link  |   single logical gateway                                |      |       |                                |  UCI-750A    |                                |  Vax 11/750  |                                |  Unix 4.2    |                                +--------------+                                       |                                       |                                       |                             ----------------------                            /                      \                           /        UCI-ICS         \                           \        192.5.19        /                            \                      /                             ---------------------- 
  367.  
  368.                Figure 5-1:   Simplified ISI Network Configuration 
  369.  RFC 911                                                                      17 
  370.  
  371.  EGP can either be conducted with ISI-Gateway across ARPANET or ISI-NET. 
  372.  
  373.  
  374.  
  375. 5.2.1 EGP Across ARPANET 
  376.  
  377. ISI-Hobgoblin  will  advise  ISI-Gateway  across  ARPANET,  and  hence the core system, that it can reach ISI-NET and UCI-ICS. 
  378.  
  379. Packets from AS's exterior to ISI and destined for UCI-ICS will be  routed  via ISI-Gateway,  ISI-Hobgoblin  and  ISI-Troll.  The extra hop via ISI-Gateway (or other core EGP gateway) is because the core gateways do not currently  pass  on indirect-neighbor   exterior   gateway   addresses   in   their   IGP  messages (Gateway-to-Gateway Protocol).  Packets originating from UCI-ICS  destined  for exterior  AS's will be routed via ISI-Troll and ISI-Gateway.  Thus the incoming and out going packet routes are different. 
  380.  
  381. Packets originating from ISI-Hobgoblin as a host and destined for exterior AS's will be routed via the appropriate gateway on ARPANET. 
  382.  
  383. UCI-ICS can only communicate with exterior AS's if ISI-Troll, ISI-Hobgoblin and ISI-Gateway are all up. The dependence on ISI-Gateway could  be  eliminated  if ISI-Troll  routed  packets via ISI-Hobgoblin rather than ISI-Gateway.  However, as ISI-Hobgoblin is primarily a host and not a gateway it  is  preferable  that ISI-Gateway route packets when possible. 
  384.  
  385. ISI-Hobgoblin  can  provide a back-up gateway function to ISI-Gateway as it can automatically switch to an alternative core EGP peer if ISI-Gateway goes  down. Even  though  ISI-Hobgoblin  normally advises the core system that it can reach ISI-NET the core uses its own internal route  via  ISI-Gateway  in  preference. For hosts on ISI-NET to correctly route outgoing packets they need their static gateway  entries  changed  from  ISI-Gateway to ISI-Hobgoblin.  At present this would have to be done manually. This would only be appropriate  if  ISI-Gateway was going to be down for an extended period. 
  386.  
  387.  
  388.  
  389. 5.2.2 EGP Across ISI-NET 
  390.  
  391. ISI-Hobgoblin   will  advise  ISI-Gateway  across  ISI-NET  that  its  indirect neighbor, ISI-Troll, can reach UCI-ICS net. 
  392.  
  393. All exterior packet routing  for  UCI-ICS  will  be  via  ISI-Gateway  in  both directions   with   no  hops  via  ISI-Hobgoblin.    Packets  originating  from ISI-Hobgoblin as a host and destined for  exterior  AS's  will  be  routed  via ISI-Gateway, rather than the ARPANET interface, in both directions, thus taking an additional hop. 
  394.  
  395. UCI-ICS  can  only  communicate with exterior AS's if ISI-Troll and ISI-Gateway are up and ISI-Hobgoblin has advised  ISI-Gateway  of  the  UCI-ICS  route.  If ISI-Hobgoblin   goes   down,  communication  will  still  be  possible  because ISI-gateway (and other core gateways)  do  not  time  out  routes  to  indirect 
  396.  RFC 911                                                                      18 
  397.  
  398.  neighbors.  If  ISI-Gateway  then  goes  down,  it will need to be readvised by ISI-Hobgoblin of the UCI-ICS route, when it comes up. 
  399.  
  400. Conducting EGP over ISI-NET rather than ARPANET should  provide  more  reliable service  for  UCI-ICS  for  the  following reasons: ISI-Gateway is specifically designed as a gateway, it is expected to be up more than ISI-Hobgoblin,  it  is desirable  to  eliminate  extra  routing  hops where possible and, the exterior routing  information  will  persist  after  ISI-hobgoblin  goes   down.      If ISI-Hobgoblin  is to be used in its back-up mode, EGP could be restarted across ARPANET after the new gateway routes  are  manually  installed  in  the  hosts. Therefore, EGP across ISI-NET was selected as the preferred mode of operation. 
  401.  
  402.  
  403.  
  404. 5.2.3 Potential Routing Loop 
  405.  
  406. Because  both  ISI-Gateway and ISI-Hobgoblin provide routes between ARPANET and ISI-NET there is a potential routing loop. This topology in fact  violates  the original  tree  structure  restriction. Provided ISI-Hobgoblin does not conduct EGP simultaneously with ISI-Gateway over ISI-NET and ARPANET, the gateways will only ever know about the alternative route from the shared EGP network and  not from  the  other  network.  Thus  a loop cannot occur.  For instance, if EGP is conducted over ISI-NET, both ISI-Gateway and ISI-Hobgoblin will know about  the alternative  routes  via  each other to ARPANET from ISI-NET, but they will not know about the gateway addresses on ARPANET to be able to access  ISI-NET  from ARPANET.  Thus  they have insufficient routing data to be able to route packets in a loop between themselves. 
  407.  
  408.  5.3 Possible Future Configuration 
  409.  
  410.  
  411.  
  412. 5.3.1 Gateway to UCI-ICS 
  413.  
  414. An improvement in the reliability and performance of  the  service  offered  to UCI-ICS  can  be  achieved  by  moving  the UCI-ICS interface from ISI-Troll to ISI-Hobgoblin. Reliability  will  improve  because  the  connection  will  only require  ISI-Hobgoblin  and its ARPANET interface to be up and performance will improve because the extra gateway hop will be eliminated. 
  415.  
  416. This will also allow EGP to be conducted across ARPANET giving  access  to  the alternative  core gateways running EGP. This will increase the chances of being able to reliably acquire an EGP neighbor at all times. It will  also  eliminate the  extra hop via ISI-Gateway for packets originating from ISI-Hobgoblin, as a host, and destined for exterior networks. 
  417.  
  418. This configuration change will be made at sometime in the future.  It  was  not done  initially because ISI-Hobgoblin was experimental and down more often than ISI-Troll. 
  419.  RFC 911                                                                      19 
  420.  
  421.  5.3.2 Dynamic Switch to Backup Gateway 
  422.  
  423. It  was  noted in Section 5.2.1 that ISI-Hobgoblin can provide a backup gateway function to ISI-Gateway between ARPANET and ISI-NET. Such backup gateways could become a common approach to providing increased reliability. 
  424.  
  425. At present the change over to the backup gateway requires the new gateway route to be manually entered for hosts on ISI-NET. This section describes a  possible method  for achieving this changeover dynamically when the primary gateway goes down. 
  426.  
  427. The aim is to be able to detect when the primary gateway is down and  have  all hosts  on  the local network change to the backup gateway with a minimum amount of additional network traffic. The hosts should  revert  back  to  the  primary gateway when it comes up again. 
  428.  
  429. The  proposed  method  is  for  only  the backup gateway to monitor the primary gateway status and for it to notify all hosts of the new gateway  address  when there is a change. 
  430.  
  431.  5.3.2.1 Usual Operation 
  432.  
  433. The backup gateway runs a process which sends reachability-probe messages, such as  ICMP echoes, to the primary gateway every 30 seconds and uses the responses to determine reachability as for EGP.  If  the  primary  gateway  goes  down  a "gateway-address  message"  indicating  the backup gateway address is broadcast (or preferably multicast) to all hosts.  When  the  primary  gateway  comes  up another  gateway  message  indicating the primary gateway address is broadcast. These broadcasts should be done four times at 30 second intervals to avoid  the need for acknowledgements and knowledge of host addresses. 
  434.  
  435. Each  host  would run a process that listens for gateway-address messages. If a different gateway is advised it changes the default gateway entry  to  the  new address. 
  436.  
  437.  5.3.2.2 Host Initialization 
  438.  
  439. When  a  host comes up the primary gateway could be down so it needs to be able to determine that it should use the backup gateway. The  host  could  read  the address  of  the primary and backup gateways from a static initialization file. It would then set its default  gateway  as  the  primary  gateway  and  send  a "gateway-request  message" to the backup gateway requesting the current gateway address. The backup gateway would respond with a gateway-address message.    If no response is received the gateway-request should be retransmitted three times at  30  second intervals.  If no response is received the backup gateway can be assumed down and the primary gateway retained as the default. 
  440.  
  441. Whenever the backup gateway comes up it broadcasts a gateway-address message. 
  442.  
  443. Alternatively, a broadcast (or  multicast)  gateway-request  message  could  be 
  444.  RFC 911                                                                      20 
  445.  
  446.  defined  to  which  only  gateways  would  respond.  The backup gateway-address message needs to indicate that it is the backup gateway so that future requests need not be broadcast. Again, three retransmissions should be used.    But  the primary gateway also needs to broadcast its address whenever it comes up. 
  447.  
  448.  5.3.2.3 When Both the Primary and Backup are Down 
  449.  
  450. If the primary gateway is down and the backup knows it is going down, it should broadcast  gateway-address  messages indicating the primary gateway in case the primary gateway comes up first. 
  451.  
  452. But the backup could go down without warning and the primary come up before it. If the primary gateway broadcasts a gateway-address message when  it  comes  up there  is  no problem. Otherwise, while hosts are using the backup gateway they should send a gateway-request message every  10  minutes.  If  no  response  is received it should be retransmitted 3 times at 30 second intervals and if still no response the backup assumed down and the primary gateway reverted to. 
  453.  
  454. Thus the only time hosts need to send messages periodically is when the primary gateway  does  not  send  gateway-address  messages on coming up and the backup gateway is being used. In some cases, such as at ISI, the  primary  gateway  is managed  by  a  different  organization  and  experimental  features  cannot be conveniently added. 
  455.  
  456.  5.3.2.4 Unix 4.2 BSD 
  457.  
  458. One difficulty with the above is that there is no standard method of specifying internet broadcast or multicast addresses. Multicast addressing  is  preferable as  only those participating need process the message (interfaces with hardware multicast detection are available). In the case of Unix  4.2  BSD  an  internet address  with zero local address is assumed for the internet broadcast address. However, the general Internet Addressing policy is to use an all ones value  to indicate a broadcast function. 
  459.  
  460. On  Unix  4.2  BSD systems, both the gateway and host processes could be run at the user level so that kernel modifications are not required. 
  461.  
  462. A User Datagram Protocol (UDP) socket could be reserved for host-backup-gateway communication. 
  463.  
  464. Super user access to raw sockets for sending and receiving ICMP  Echo  messages requires a minor modification to the internet-family protocol switch table. 
  465.  RFC 911                                                                      21 
  466.  
  467.  6. ACKNOWLEDGEMENT 
  468.  
  469. I acknowledge with thanks the many people who have helped me with this project, but  in  particular,  Dave  Mills,  who  suggested  the project, Jon Postel for discussion and encouragement, Liza Martin for providing the initial  EGP  code, Berkeley  for  providing  the  "routed"  code, Mike Brescia for assistance with testing, Telecom Australia for funding me, and ISI for providing facilities. 
  470.  RFC 911                                                                      22 
  471.  
  472.  7. REFERENCES 
  473.  
  474.  [Berkeley 83]   "Unix  Programmer's  Manual",  Vol.  1,  4.2  Berkeley Software                 Distribution, University of California, Berkeley. 
  475.  
  476. [Kirton 84]     Kirton, P.A., "EGP Gateway Under Berkeley Unix 4.2", University                 of  Southern  California,   Information   Sciences   Institute,                 Research Report ISI/RR-84-145, to be published. 
  477.  
  478. [Mills 83]      Mills,  D.L.,  "EGP Models and Self-Organizing Systems" Message                 to EGP-PEOPLE@BBN-UNIX, Nov. 1983. 
  479.  
  480. [Mills 84a]     Mills, D.L., "Exterior Gateway Protocol Formal  Specification",                 Network Information Center RFC 904, April 1984. 
  481.  
  482. [Mills 84b]     Mills,  D.L.,  "Revised  EGP  Model  Clarified  and Discussed",                 Message to EGP-PEOPLE@BBN-UNIX, May 1984. 
  483.  
  484. [Postel 84]     Postel, J., "Exterior Gateway Protocol Implementation Schedule"                 Network Information Center RFC 890, Feb. 1984. 
  485.  
  486. [Rose 84]       Rose, M.T., "Low-Tech Connection into  the  ARPA-Internet:  The                 Raw-Packet   Split  Gateway",  Department  of  Information  and                 Computer Science, University of California,  Irvine,  Technical                 Report 216, Feb. 1984. 
  487.  
  488. [Rosen 82]      Rosen,  E.C.,  "Exterior Gateway Protocol", Network Information                 Center RFC 827, Oct. 1982. 
  489.  
  490. [Seamonson & Rosen 84]                 Seamonson,  L.J.  and  Rosen,  E.C.,  "Stub  Exterior   Gateway                 Protocol", Network Information Center RFC 888, Jan. 84. 
  491.  
  492. [Xerox 81]      "Internet   Transport   Protocols",  Xerox  System  Integration                 Standard XSIS 028112, Dec. 1981. 
  493.