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

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                  P. Traina, Editor Request for Comments: 1774                                 cisco Systems Category: Informational                                       March 1995 
  8.  
  9.                         BGP-4 Protocol Analysis 
  10.  
  11. Status of this Memo 
  12.  
  13.    This memo provides information for the Internet community.  This memo    does not specify an Internet standard of any kind.  Distribution of    this memo is unlimited. 
  14.  
  15. Introduction 
  16.  
  17.    The purpose of this report is to document how the requirements for    advancing a routing protocol to Draft Standard have been satisfied by    the Border Gateway Protocol version 4 (BGP-4). This report summarizes    the key features of BGP, and analyzes the protocol with respect to    scaling and performance. This is the first of two reports on the BGP    protocol. 
  18.  
  19.    BGP-4 is an inter-autonomous system routing protocol designed for    TCP/IP internets.  Version 1 of the BGP protocol was published in RFC    1105. Since then BGP versions 2, 3, and 4 have been developed.    Version 2 was documented in RFC 1163. Version 3 is documented in    RFC1267.  The changes between versions are explained in Appendix 2 of    [1]. 
  20.  
  21.    Possible applications of BGP in the Internet are documented in [2]. 
  22.  
  23.    Please send comments to iwg@ans.net. 
  24.  
  25. Key features and algorithms of the BGP-4 protocol. 
  26.  
  27.    This section summarizes the key features and algorithms of the BGP    protocol. BGP is an inter-autonomous system routing protocol; it is    designed to be used between multiple autonomous systems. BGP assumes    that routing within an autonomous system is done by an intra-    autonomous system routing protocol. BGP does not make any assumptions    about intra-autonomous system routing protocols employed by the    various autonomous systems.  Specifically, BGP does not require all    autonomous systems to run the same intra-autonomous system routing    protocol. 
  28.  
  29.    BGP is a real inter-autonomous system routing protocol. It imposes no    constraints on the underlying Internet topology. The information    exchanged via BGP is sufficient to construct a graph of autonomous    systems connectivity from which routing loops may be pruned and some 
  30.  
  31.  
  32.  
  33. Traina                                                          [Page 1] 
  34.  RFC 1774                BGP-4 Protocol Analysis               March 1995 
  35.  
  36.     routing policy decisions at the autonomous system level may be    enforced. 
  37.  
  38.    The key features of the protocol are the notion of path attributes    and aggregation of network layer reachability information (NLRI). 
  39.  
  40.    Path attributes provide BGP with flexibility and expandability. Path    attributes are partitioned into well-known and optional. The    provision for optional attributes allows experimentation that may    involve a group of BGP routers without affecting the rest of the    Internet.  New optional attributes can be added to the protocol in    much the same fashion as new options are added to the Telnet    protocol, for instance. 
  41.  
  42.    One of the most important path attributes is the AS-PATH. AS    reachability information traverses the Internet, this information is    augmented by the list of autonomous systems that have been traversed    thus far, forming the AS-PATH.  The AS-PATH allows straightforward    suppression of the looping of routing information. In addition, the    AS-PATH serves as a powerful and versatile mechanism for policy-based    routing. 
  43.  
  44.    BGP-4 enhances the AS-PATH attribute to include sets of autonomous    systems as well as lists.  This extended format allows generated    aggregate routes to carry path information from the more specific    routes used to generate the aggregate. 
  45.  
  46.    BGP uses an algorithm that cannot be classified as either a pure    distance vector, or a pure link state. Carrying a complete AS path in    the AS-PATH attribute allows to reconstruct large portions of the    overall topology. That makes it similar to the link state algorithms.    Exchanging only the currently used routes between the peers makes it    similar to the distance vector algorithms. 
  47.  
  48.    To conserve bandwidth and processing power, BGP uses incremental    updates, where after the initial exchange of complete routing    information, a pair of BGP routers exchanges only changes (deltas) to    that information. Technique of incremental updates requires reliable    transport between a pair of BGP routers. To achieve this    functionality BGP uses TCP as its transport. 
  49.  
  50.    In addition to incremental updates, BGP-4 has added the concept of    route aggregation so that information about groups of networks may    represented as a single entity. 
  51.  
  52.    BGP is a self-contained protocol. That is, it specifies how routing    information is exchanged both between BGP speakers in different    autonomous systems, and between BGP speakers within a single 
  53.  
  54.  
  55.  
  56. Traina                                                          [Page 2] 
  57.  RFC 1774                BGP-4 Protocol Analysis               March 1995 
  58.  
  59.     autonomous system. 
  60.  
  61.    To allow graceful coexistence with EGP and OSPF, BGP provides support    for carrying both EGP and OSPF derived exterior routes BGP also    allows to carry statically defined exterior routes or routes derived    by other IGP information. 
  62.  
  63. BGP performance characteristics and scalability 
  64.  
  65.    In this section we'll try to answer the question of how much link    bandwidth, router memory and router CPU cycles does the BGP protocol    consume under normal conditions.  We'll also address the scalability    of BGP, and look at some of its limits. 
  66.  
  67.    BGP does not require all the routers within an autonomous system to    participate in the BGP protocol. Only the border routers that provide    connectivity between the local autonomous system and its adjacent    autonomous systems participate in BGP.  Constraining the set of    participants is just one way of addressing the scaling issue. 
  68.  
  69. Link bandwidth and CPU utilization 
  70.  
  71.    Immediately after the initial BGP connection setup, the peers    exchange complete set of routing information. If we denote the total    number of routes in the Internet by N, the mean AS distance of the    Internet by M (distance at the level of an autonomous system,    expressed in terms of the number of autonomous systems), the total    number of autonomous systems in the Internet by A, and assume that    the networks are uniformly distributed among the autonomous systems,    then the worst case amount of bandwidth consumed during the initial    exchange between a pair of BGP speakers is 
  72.  
  73.                     MR = O(N + M * A) 
  74.  
  75.    The following table illustrates typical amount of bandwidth consumed    during the initial exchange between a pair of BGP speakers based on    the above assumptions (ignoring bandwidth consumed by the BGP    Header). 
  76.  
  77.    # NLRI       Mean AS Distance       # AS's    Bandwidth    ----------   ----------------       ------    ---------    10,000       15                     300       49,000 bytes    20,000       8                      400       86,000 bytes *    40,000       15                     400       172,000 bytes    100,000      20                     3,000     520,000 bytes 
  78.  
  79.    * the actual "size" of the Internet at the the time of this      document's publication 
  80.  
  81.  
  82.  
  83. Traina                                                          [Page 3] 
  84.  RFC 1774                BGP-4 Protocol Analysis               March 1995 
  85.  
  86.     Note that most of the bandwidth is consumed by the exchange of the    Network Layer Reachability Information (NLRI). 
  87.  
  88.    BGP-4 was created specifically to reduce the amount of NLRI entries    carried and exchanged by border routers.  BGP-4, along with CIDR [4]    has introduced the concept of the "Supernet" which describes a    power-of-two aggregation of more than one class-based network. 
  89.  
  90.    Due to the advantages of advertising a few large aggregate blocks    instead of many smaller class-based individual networks, it is    difficult to estimate the actual reduction in bandwidth and    processing that BGP-4 has provided over BGP3.  If we simply enumerate    all aggregate blocks into their individual class-based networks, we    would not take into account "dead" space that has been reserved for    future expansion.  The best metric for determining the success of    BGP-4's aggregation is to sample the number NLRI entries in the    globally connected Internet today and compare it to projected growth    rates before BGP-4 was deployed. 
  91.  
  92.    In January of 1994, router carrying a full routing load for the    globally connected Internet had approximately 19,000 network entries    (this number is not exact due to local policy variations).  The BGP    deployment working group estimated that the growth rate at that time    was over 1000 new networks per month and increasing.  Since the    widespread deployment of BGP-4, the growth rate has dropped    significantly and a sample done at the end of November 1994 showed    approximately 21,000 entries present,  as opposed to the expected    30,000. 
  93.  
  94.    CPU cycles consumed by BGP depends only on the stability of the    Internet. If the Internet is stable, then the only link bandwidth and    router CPU cycles consumed by BGP are due to the exchange of the BGP    KEEPALIVE messages. The KEEPALIVE messages are exchanged only between    peers. The suggested frequency of the exchange is 30 seconds. The    KEEPALIVE messages are quite short (19 octets), and require virtually    no processing.  Therefore, the bandwidth consumed by the KEEPALIVE    messages is about 5 bits/sec.  Operational experience confirms that    the overhead (in terms of bandwidth and CPU) associated with the    KEEPALIVE messages should be viewed as negligible.  If the Internet    is unstable, then only the changes to the reachability information    (that are caused by the instabilities) are passed between routers    (via the UPDATE messages). If we denote the number of routing changes    per second by C, then in the worst case the amount of bandwidth    consumed by the BGP can be expressed as O(C * M). The greatest    overhead per UPDATE message occurs when each UPDATE message contains    only a single network. It should be pointed out that in practice    routing changes exhibit strong locality with respect to the AS path.    That is routes that change are likely to have common AS path. In this 
  95.  
  96.  
  97.  
  98. Traina                                                          [Page 4] 
  99.  RFC 1774                BGP-4 Protocol Analysis               March 1995 
  100.  
  101.     case multiple networks can be grouped into a single UPDATE message,    thus significantly reducing the amount of bandwidth required (see    also Appendix 6.1 of [1]). 
  102.  
  103.    Since in the steady state the link bandwidth and router CPU cycles    consumed by the BGP protocol are dependent only on the stability of    the Internet, but are completely independent on the number of    networks that compose the Internet, it follows that BGP should have    no scaling problems in the areas of link bandwidth and router CPU    utilization, as the Internet grows, provided that the overall    stability of the inter-AS connectivity (connectivity between ASs) of    the Internet can be controlled. Stability issue could be addressed by    introducing some form of dampening (e.g., hold downs).  Due to the    nature of BGP, such dampening should be viewed as a local to an    autonomous system matter (see also Appendix 6.3 of [1]). It is    important to point out, that regardless of BGP, one should not    underestimate the significance of the stability in the Internet. 
  104.  
  105.    Growth of the Internet has made the stability issue one of the most    crucial ones. It is important to realize that BGP, by itself, does    not introduce any instabilities in the Internet. Current observations    in the NSFNET show that the instabilities are largely due to the    ill-behaved routing within the autonomous systems that compose the    Internet.  Therefore, while providing BGP with mechanisms to address    the stability issue, we feel that the right way to handle the issue    is to address it at the root of the problem, and to come up with    intra-autonomous routing schemes that exhibit reasonable stability. 
  106.  
  107.    It also may be instructive to compare bandwidth and CPU requirements    of BGP with EGP. While with BGP the complete information is exchanged    only at the connection establishment time, with EGP the complete    information is exchanged periodically (usually every 3 minutes). Note    that both for BGP and for EGP the amount of information exchanged is    roughly on the order of the networks reachable via a peer that sends    the information (see also Section 5.2). Therefore, even if one    assumes extreme instabilities of BGP, its worst case behavior will be    the same as the steady state behavior of EGP. 
  108.  
  109.    Operational experience with BGP showed that the incremental updates    approach employed by BGP presents an enormous improvement both in the    area of bandwidth and in the CPU utilization, as compared with    complete periodic updates used by EGP (see also presentation by    Dennis Ferguson at the Twentieth IETF, March 11-15, 1991, St.Louis). 
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  Traina                                                          [Page 5] 
  118.  RFC 1774                BGP-4 Protocol Analysis               March 1995 
  119.  
  120.  Memory requirements 
  121.  
  122.    To quantify the worst case memory requirements for BGP, denote the    total number of networks in the Internet by N, the mean AS distance    of the Internet by M (distance at the level of an autonomous system,    expressed in terms of the number of autonomous systems), the total    number of autonomous systems in the Internet by A, and the total    number of BGP speakers that a system is peering with by K (note that    K will usually be dominated by the total number of the BGP speakers    within a single autonomous system). Then the worst case memory    requirements (MR) can be expressed as 
  123.  
  124.                     MR = O((N + M * A) * K) 
  125.  
  126.    In the current NSFNET Backbone (N = 2110, A = 59, and M = 5) if each    network is stored as 4 octets, and each autonomous system is stored    as 2 octets then the overhead of storing the AS path information (in    addition to the full complement of exterior routes) is less than 7    percent of the total memory usage. 
  127.  
  128.    It is interesting to point out, that prior to the introduction of BGP    in the NSFNET Backbone, memory requirements on the NSFNET Backbone    routers running EGP were on the order of O(N * K). Therefore, the    extra overhead in memory incurred by the NSFNET routers after the    introduction of BGP is less than 7 percent. 
  129.  
  130.    Since a mean AS distance grows very slowly with the total number of    networks (there are about 60 autonomous systems, well over 2,000    networks known in the NSFNET backbone routers, and the mean AS    distance of the current Internet is well below 5), for all practical    purposes the worst case router memory requirements are on the order    of the total number of networks in the Internet times the number of    peers the local system is peering with. We expect that the total    number of networks in the Internet will grow much faster than the    average number of peers per router. Therefore, scaling with respect    to the memory requirements is going to be heavily dominated by the    factor that is linearly proportional to the total number of networks    in the Internet. 
  131.  
  132.    The following table illustrates typical memory requirements of a    router running BGP. It is assumed that each network is encoded as 4    bytes, each AS is encoded as 2 bytes, and each networks is reachable    via some fraction of all of the peers (# BGP peers/per net). 
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  Traina                                                          [Page 6] 
  141.  RFC 1774                BGP-4 Protocol Analysis               March 1995 
  142.  
  143.     # Networks  Mean AS Distance # AS's # BGP peers/per net Memory Req    ----------  ---------------- ------ ------------------- ----------    2,100       5                59     3                   27,000    4,000       10               100    6                   108,000    10,000      15               300    10                  490,000    100,000     20               3,000  20                  1,040,000 
  144.  
  145.    To put memory requirements of BGP in a proper perspective, let's try    to put aside for a moment the issue of what information is used to    construct the forwarding tables in a router, and just focus on the    forwarding tables themselves. In this case one might ask about the    limits on these tables.  For instance, given that right now the    forwarding tables in the NSFNET Backbone routers carry well over    20,000 entries, one might ask whether it would be possible to have a    functional router with a table that will have 200,000 entries.    Clearly the answer to this question is completely independent of BGP.    On the other hand the answer to the original questions (that was    asked with respect to BGP) is directly related to the latter    question. Very interesting comments were given by Paul Tsuchiya in    his review of BGP in March of 1990 (as part of the BGP review    committee appointed by Bob Hinden).  In the review he said that, "BGP    does not scale well.  This is not really the fault of BGP. It is the    fault of the flat IP address space.  Given the flat IP address space,    any routing protocol must carry network numbers in its updates." With    the introduction of CIDR [4] and BGP-4,  we have attempted to reduce    this limitation.  Unfortunately,  we cannot erase history nor can    BGP-4 solve the problems inherent with inefficient assignment of    future address blocks. 
  146.  
  147.    To reiterate, BGP limits with respect to the memory requirements are    directly related to the underlying Internet Protocol (IP), and    specifically the addressing scheme employed by IP. BGP would provide    much better scaling in environments with more flexible addressing    schemes.  It should be pointed out that with only very minor    additions BGP was extended to support hierarchies of autonomous    system [8]. Such hierarchies, combined with an addressing scheme that    would allow more flexible address aggregation capabilities, can be    utilized by BGP-like protocols, thus providing practically unlimited    scaling capabilities. 
  148.  
  149. Applicability of BGP 
  150.  
  151.    In this section we'll try to answer the question of what environment    is BGP well suited, and for what is it not suitable?  Partially this    question is answered in the Section 2 of [1], where the document    states the following: 
  152.  
  153.  
  154.  
  155.  
  156.  
  157. Traina                                                          [Page 7] 
  158.  RFC 1774                BGP-4 Protocol Analysis               March 1995 
  159.  
  160.        "To characterize the set of policy decisions that can be enforced       using BGP, one must focus on the rule that an AS advertises to its       neighbor ASs only those routes that it itself uses.  This rule       reflects the "hop-by-hop" routing paradigm generally used       throughout the current Internet.  Note that some policies cannot       be supported by the "hop-by-hop" routing paradigm and thus require       techniques such as source routing to enforce.  For example, BGP       does not enable one AS to send traffic to a neighbor AS intending       that the traffic take a different route from that taken by traffic       originating in the neighbor AS.  On the other hand, BGP can       support any policy conforming to the "hop-by-hop" routing       paradigm.  Since the current Internet uses only the "hop-by-hop"       routing paradigm and since BGP can support any policy that       conforms to that paradigm, BGP is highly applicable as an inter-AS       routing protocol for the current Internet." 
  161.  
  162.    While BGP is well suitable for the current Internet, it is also    almost a necessity for the current Internet as well.  Operational    experience with EGP showed that it is highly inadequate for the    current Internet.  Topological restrictions imposed by EGP are    unjustifiable from the technical point of view, and unenforceable    from the practical point of view.  Inability of EGP to efficiently    handle information exchange between peers is a cause of severe    routing instabilities in the operational Internet. Finally,    information provided by BGP is well suitable for enforcing a variety    of routing policies. 
  163.  
  164.    Rather than trying to predict the future, and overload BGP with a    variety of functions that may (or may not) be needed, the designers    of BGP took a different approach. The protocol contains only the    functionality that is essential, while at the same time provides    flexible mechanisms within the protocol itself that allow to expand    its functionality.  Since BGP was designed with flexibility and    expandability in mind, we think it should be able to address new or    evolving requirements with relative ease. The existence proof of this    statement may be found in the way how new features (like repairing a    partitioned autonomous system with BGP) are already introduced in the    protocol. 
  165.  
  166.    To summarize, BGP is well suitable as an inter-autonomous system    routing protocol for the current Internet that is based on IP (RFC    791) as the Internet Protocol and "hop-by-hop" routing paradigm. It    is hard to speculate whether BGP will be suitable for other    environments where internetting is done by other than IP protocols,    or where the routing paradigm will be different. 
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  Traina                                                          [Page 8] 
  173.  RFC 1774                BGP-4 Protocol Analysis               March 1995 
  174.  
  175.  Security Considerations 
  176.  
  177.    Security issues are not discussed in this memo. 
  178.  
  179. Acknowledgments 
  180.  
  181.    The BGP-4 protocol has been developed by the IDR/BGP Working Group of    the Internet Engineering Task Force.  I would like to express thanks    to Yakov Rekhter for providing RFC 1265.  This document is only a    minor update to the original text. I'd also like to explicitly thank    Yakov Rekhter and Tony Li for their review of this document as well    as their constructive and valuable comments. 
  182.  
  183. Editor's Address 
  184.  
  185.    Paul Traina    cisco Systems, Inc.    170 W. Tasman Dr.    San Jose, CA 95134 
  186.  
  187.    EMail: pst@cisco.com 
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  Traina                                                          [Page 9] 
  218.  RFC 1774                BGP-4 Protocol Analysis               March 1995 
  219.  
  220.  References 
  221.  
  222.    [1] Rekhter, Y., and T., Li, "A Border Gateway Protocol 4 (BGP-4)",        RFC 1771, T.J. Watson Research Center, IBM Corp., cisco Systems,        March 1995. 
  223.  
  224.    [2] Rekhter, Y., and P. Gross, Editors, "Application of the Border        Gateway Protocol in the Internet", RFC 1772, T.J. Watson Research        Center, IBM Corp., MCI, March 1995. 
  225.  
  226.    [3] Willis, S., Burruss, J., and J. Chu, "Definitions of Managed        Objects for the Fourth Version of the Border Gateway Protocol        (BGP-4) using SMIv2", RFC 1657, Wellfleet Communications Inc.,        IBM Corp., July 1994. 
  227.  
  228.    [4] Fuller V., Li. T., Yu J., and K. Varadhan, "Classless Inter-        Domain Routing (CIDR): an Address Assignment and Aggregation        Strategy", RFC 1519, BARRNet, cisco, MERIT, OARnet, September        1993. 
  229.  
  230.    [6] Moy J., "Open Shortest Path First Routing Protocol (Version 2)",        RFC 1257, Proteon, August 1991. 
  231.  
  232.    [7] Varadhan, K., Hares S., and Y. Rekhter, "BGP4/IDRP for IP---OSPF        Interaction", Work in Progress. 
  233.  
  234.    [8] ISO/IEC 10747, Kunzinger, C., Editor, "Inter-Domain Routing        Protocol", October 1993. 
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258. Traina                                                         [Page 10] 
  259.  
  260.