home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / rfc / rfc1774 < prev    next >
Text File  |  1995-03-17  |  24KB  |  564 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                  P. Traina, Editor
  8. Request for Comments: 1774                                 cisco Systems
  9. Category: Informational                                       March 1995
  10.  
  11.                         BGP-4 Protocol Analysis
  12.  
  13. Status of this Memo
  14.  
  15.    This memo provides information for the Internet community.  This memo
  16.    does not specify an Internet standard of any kind.  Distribution of
  17.    this memo is unlimited.
  18.  
  19. Introduction
  20.  
  21.    The purpose of this report is to document how the requirements for
  22.    advancing a routing protocol to Draft Standard have been satisfied by
  23.    the Border Gateway Protocol version 4 (BGP-4). This report summarizes
  24.    the key features of BGP, and analyzes the protocol with respect to
  25.    scaling and performance. This is the first of two reports on the BGP
  26.    protocol.
  27.  
  28.    BGP-4 is an inter-autonomous system routing protocol designed for
  29.    TCP/IP internets.  Version 1 of the BGP protocol was published in RFC
  30.    1105. Since then BGP versions 2, 3, and 4 have been developed.
  31.    Version 2 was documented in RFC 1163. Version 3 is documented in
  32.    RFC1267.  The changes between versions are explained in Appendix 2 of
  33.    [1].
  34.  
  35.    Possible applications of BGP in the Internet are documented in [2].
  36.  
  37.    Please send comments to iwg@ans.net.
  38.  
  39. Key features and algorithms of the BGP-4 protocol.
  40.  
  41.    This section summarizes the key features and algorithms of the BGP
  42.    protocol. BGP is an inter-autonomous system routing protocol; it is
  43.    designed to be used between multiple autonomous systems. BGP assumes
  44.    that routing within an autonomous system is done by an intra-
  45.    autonomous system routing protocol. BGP does not make any assumptions
  46.    about intra-autonomous system routing protocols employed by the
  47.    various autonomous systems.  Specifically, BGP does not require all
  48.    autonomous systems to run the same intra-autonomous system routing
  49.    protocol.
  50.  
  51.    BGP is a real inter-autonomous system routing protocol. It imposes no
  52.    constraints on the underlying Internet topology. The information
  53.    exchanged via BGP is sufficient to construct a graph of autonomous
  54.    systems connectivity from which routing loops may be pruned and some
  55.  
  56.  
  57.  
  58. Traina                                                          [Page 1]
  59.  
  60. RFC 1774                BGP-4 Protocol Analysis               March 1995
  61.  
  62.  
  63.    routing policy decisions at the autonomous system level may be
  64.    enforced.
  65.  
  66.    The key features of the protocol are the notion of path attributes
  67.    and aggregation of network layer reachability information (NLRI).
  68.  
  69.    Path attributes provide BGP with flexibility and expandability. Path
  70.    attributes are partitioned into well-known and optional. The
  71.    provision for optional attributes allows experimentation that may
  72.    involve a group of BGP routers without affecting the rest of the
  73.    Internet.  New optional attributes can be added to the protocol in
  74.    much the same fashion as new options are added to the Telnet
  75.    protocol, for instance.
  76.  
  77.    One of the most important path attributes is the AS-PATH. AS
  78.    reachability information traverses the Internet, this information is
  79.    augmented by the list of autonomous systems that have been traversed
  80.    thus far, forming the AS-PATH.  The AS-PATH allows straightforward
  81.    suppression of the looping of routing information. In addition, the
  82.    AS-PATH serves as a powerful and versatile mechanism for policy-based
  83.    routing.
  84.  
  85.    BGP-4 enhances the AS-PATH attribute to include sets of autonomous
  86.    systems as well as lists.  This extended format allows generated
  87.    aggregate routes to carry path information from the more specific
  88.    routes used to generate the aggregate.
  89.  
  90.    BGP uses an algorithm that cannot be classified as either a pure
  91.    distance vector, or a pure link state. Carrying a complete AS path in
  92.    the AS-PATH attribute allows to reconstruct large portions of the
  93.    overall topology. That makes it similar to the link state algorithms.
  94.    Exchanging only the currently used routes between the peers makes it
  95.    similar to the distance vector algorithms.
  96.  
  97.    To conserve bandwidth and processing power, BGP uses incremental
  98.    updates, where after the initial exchange of complete routing
  99.    information, a pair of BGP routers exchanges only changes (deltas) to
  100.    that information. Technique of incremental updates requires reliable
  101.    transport between a pair of BGP routers. To achieve this
  102.    functionality BGP uses TCP as its transport.
  103.  
  104.    In addition to incremental updates, BGP-4 has added the concept of
  105.    route aggregation so that information about groups of networks may
  106.    represented as a single entity.
  107.  
  108.    BGP is a self-contained protocol. That is, it specifies how routing
  109.    information is exchanged both between BGP speakers in different
  110.    autonomous systems, and between BGP speakers within a single
  111.  
  112.  
  113.  
  114. Traina                                                          [Page 2]
  115.  
  116. RFC 1774                BGP-4 Protocol Analysis               March 1995
  117.  
  118.  
  119.    autonomous system.
  120.  
  121.    To allow graceful coexistence with EGP and OSPF, BGP provides support
  122.    for carrying both EGP and OSPF derived exterior routes BGP also
  123.    allows to carry statically defined exterior routes or routes derived
  124.    by other IGP information.
  125.  
  126. BGP performance characteristics and scalability
  127.  
  128.    In this section we'll try to answer the question of how much link
  129.    bandwidth, router memory and router CPU cycles does the BGP protocol
  130.    consume under normal conditions.  We'll also address the scalability
  131.    of BGP, and look at some of its limits.
  132.  
  133.    BGP does not require all the routers within an autonomous system to
  134.    participate in the BGP protocol. Only the border routers that provide
  135.    connectivity between the local autonomous system and its adjacent
  136.    autonomous systems participate in BGP.  Constraining the set of
  137.    participants is just one way of addressing the scaling issue.
  138.  
  139. Link bandwidth and CPU utilization
  140.  
  141.    Immediately after the initial BGP connection setup, the peers
  142.    exchange complete set of routing information. If we denote the total
  143.    number of routes in the Internet by N, the mean AS distance of the
  144.    Internet by M (distance at the level of an autonomous system,
  145.    expressed in terms of the number of autonomous systems), the total
  146.    number of autonomous systems in the Internet by A, and assume that
  147.    the networks are uniformly distributed among the autonomous systems,
  148.    then the worst case amount of bandwidth consumed during the initial
  149.    exchange between a pair of BGP speakers is
  150.  
  151.                     MR = O(N + M * A)
  152.  
  153.    The following table illustrates typical amount of bandwidth consumed
  154.    during the initial exchange between a pair of BGP speakers based on
  155.    the above assumptions (ignoring bandwidth consumed by the BGP
  156.    Header).
  157.  
  158.    # NLRI       Mean AS Distance       # AS's    Bandwidth
  159.    ----------   ----------------       ------    ---------
  160.    10,000       15                     300       49,000 bytes
  161.    20,000       8                      400       86,000 bytes *
  162.    40,000       15                     400       172,000 bytes
  163.    100,000      20                     3,000     520,000 bytes
  164.  
  165.    * the actual "size" of the Internet at the the time of this
  166.      document's publication
  167.  
  168.  
  169.  
  170. Traina                                                          [Page 3]
  171.  
  172. RFC 1774                BGP-4 Protocol Analysis               March 1995
  173.  
  174.  
  175.    Note that most of the bandwidth is consumed by the exchange of the
  176.    Network Layer Reachability Information (NLRI).
  177.  
  178.    BGP-4 was created specifically to reduce the amount of NLRI entries
  179.    carried and exchanged by border routers.  BGP-4, along with CIDR [4]
  180.    has introduced the concept of the "Supernet" which describes a
  181.    power-of-two aggregation of more than one class-based network.
  182.  
  183.    Due to the advantages of advertising a few large aggregate blocks
  184.    instead of many smaller class-based individual networks, it is
  185.    difficult to estimate the actual reduction in bandwidth and
  186.    processing that BGP-4 has provided over BGP3.  If we simply enumerate
  187.    all aggregate blocks into their individual class-based networks, we
  188.    would not take into account "dead" space that has been reserved for
  189.    future expansion.  The best metric for determining the success of
  190.    BGP-4's aggregation is to sample the number NLRI entries in the
  191.    globally connected Internet today and compare it to projected growth
  192.    rates before BGP-4 was deployed.
  193.  
  194.    In January of 1994, router carrying a full routing load for the
  195.    globally connected Internet had approximately 19,000 network entries
  196.    (this number is not exact due to local policy variations).  The BGP
  197.    deployment working group estimated that the growth rate at that time
  198.    was over 1000 new networks per month and increasing.  Since the
  199.    widespread deployment of BGP-4, the growth rate has dropped
  200.    significantly and a sample done at the end of November 1994 showed
  201.    approximately 21,000 entries present,  as opposed to the expected
  202.    30,000.
  203.  
  204.    CPU cycles consumed by BGP depends only on the stability of the
  205.    Internet. If the Internet is stable, then the only link bandwidth and
  206.    router CPU cycles consumed by BGP are due to the exchange of the BGP
  207.    KEEPALIVE messages. The KEEPALIVE messages are exchanged only between
  208.    peers. The suggested frequency of the exchange is 30 seconds. The
  209.    KEEPALIVE messages are quite short (19 octets), and require virtually
  210.    no processing.  Therefore, the bandwidth consumed by the KEEPALIVE
  211.    messages is about 5 bits/sec.  Operational experience confirms that
  212.    the overhead (in terms of bandwidth and CPU) associated with the
  213.    KEEPALIVE messages should be viewed as negligible.  If the Internet
  214.    is unstable, then only the changes to the reachability information
  215.    (that are caused by the instabilities) are passed between routers
  216.    (via the UPDATE messages). If we denote the number of routing changes
  217.    per second by C, then in the worst case the amount of bandwidth
  218.    consumed by the BGP can be expressed as O(C * M). The greatest
  219.    overhead per UPDATE message occurs when each UPDATE message contains
  220.    only a single network. It should be pointed out that in practice
  221.    routing changes exhibit strong locality with respect to the AS path.
  222.    That is routes that change are likely to have common AS path. In this
  223.  
  224.  
  225.  
  226. Traina                                                          [Page 4]
  227.  
  228. RFC 1774                BGP-4 Protocol Analysis               March 1995
  229.  
  230.  
  231.    case multiple networks can be grouped into a single UPDATE message,
  232.    thus significantly reducing the amount of bandwidth required (see
  233.    also Appendix 6.1 of [1]).
  234.  
  235.    Since in the steady state the link bandwidth and router CPU cycles
  236.    consumed by the BGP protocol are dependent only on the stability of
  237.    the Internet, but are completely independent on the number of
  238.    networks that compose the Internet, it follows that BGP should have
  239.    no scaling problems in the areas of link bandwidth and router CPU
  240.    utilization, as the Internet grows, provided that the overall
  241.    stability of the inter-AS connectivity (connectivity between ASs) of
  242.    the Internet can be controlled. Stability issue could be addressed by
  243.    introducing some form of dampening (e.g., hold downs).  Due to the
  244.    nature of BGP, such dampening should be viewed as a local to an
  245.    autonomous system matter (see also Appendix 6.3 of [1]). It is
  246.    important to point out, that regardless of BGP, one should not
  247.    underestimate the significance of the stability in the Internet.
  248.  
  249.    Growth of the Internet has made the stability issue one of the most
  250.    crucial ones. It is important to realize that BGP, by itself, does
  251.    not introduce any instabilities in the Internet. Current observations
  252.    in the NSFNET show that the instabilities are largely due to the
  253.    ill-behaved routing within the autonomous systems that compose the
  254.    Internet.  Therefore, while providing BGP with mechanisms to address
  255.    the stability issue, we feel that the right way to handle the issue
  256.    is to address it at the root of the problem, and to come up with
  257.    intra-autonomous routing schemes that exhibit reasonable stability.
  258.  
  259.    It also may be instructive to compare bandwidth and CPU requirements
  260.    of BGP with EGP. While with BGP the complete information is exchanged
  261.    only at the connection establishment time, with EGP the complete
  262.    information is exchanged periodically (usually every 3 minutes). Note
  263.    that both for BGP and for EGP the amount of information exchanged is
  264.    roughly on the order of the networks reachable via a peer that sends
  265.    the information (see also Section 5.2). Therefore, even if one
  266.    assumes extreme instabilities of BGP, its worst case behavior will be
  267.    the same as the steady state behavior of EGP.
  268.  
  269.    Operational experience with BGP showed that the incremental updates
  270.    approach employed by BGP presents an enormous improvement both in the
  271.    area of bandwidth and in the CPU utilization, as compared with
  272.    complete periodic updates used by EGP (see also presentation by
  273.    Dennis Ferguson at the Twentieth IETF, March 11-15, 1991, St.Louis).
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282. Traina                                                          [Page 5]
  283.  
  284. RFC 1774                BGP-4 Protocol Analysis               March 1995
  285.  
  286.  
  287. Memory requirements
  288.  
  289.    To quantify the worst case memory requirements for BGP, denote the
  290.    total number of networks in the Internet by N, the mean AS distance
  291.    of the Internet by M (distance at the level of an autonomous system,
  292.    expressed in terms of the number of autonomous systems), the total
  293.    number of autonomous systems in the Internet by A, and the total
  294.    number of BGP speakers that a system is peering with by K (note that
  295.    K will usually be dominated by the total number of the BGP speakers
  296.    within a single autonomous system). Then the worst case memory
  297.    requirements (MR) can be expressed as
  298.  
  299.                     MR = O((N + M * A) * K)
  300.  
  301.    In the current NSFNET Backbone (N = 2110, A = 59, and M = 5) if each
  302.    network is stored as 4 octets, and each autonomous system is stored
  303.    as 2 octets then the overhead of storing the AS path information (in
  304.    addition to the full complement of exterior routes) is less than 7
  305.    percent of the total memory usage.
  306.  
  307.    It is interesting to point out, that prior to the introduction of BGP
  308.    in the NSFNET Backbone, memory requirements on the NSFNET Backbone
  309.    routers running EGP were on the order of O(N * K). Therefore, the
  310.    extra overhead in memory incurred by the NSFNET routers after the
  311.    introduction of BGP is less than 7 percent.
  312.  
  313.    Since a mean AS distance grows very slowly with the total number of
  314.    networks (there are about 60 autonomous systems, well over 2,000
  315.    networks known in the NSFNET backbone routers, and the mean AS
  316.    distance of the current Internet is well below 5), for all practical
  317.    purposes the worst case router memory requirements are on the order
  318.    of the total number of networks in the Internet times the number of
  319.    peers the local system is peering with. We expect that the total
  320.    number of networks in the Internet will grow much faster than the
  321.    average number of peers per router. Therefore, scaling with respect
  322.    to the memory requirements is going to be heavily dominated by the
  323.    factor that is linearly proportional to the total number of networks
  324.    in the Internet.
  325.  
  326.    The following table illustrates typical memory requirements of a
  327.    router running BGP. It is assumed that each network is encoded as 4
  328.    bytes, each AS is encoded as 2 bytes, and each networks is reachable
  329.    via some fraction of all of the peers (# BGP peers/per net).
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338. Traina                                                          [Page 6]
  339.  
  340. RFC 1774                BGP-4 Protocol Analysis               March 1995
  341.  
  342.  
  343.    # Networks  Mean AS Distance # AS's # BGP peers/per net Memory Req
  344.    ----------  ---------------- ------ ------------------- ----------
  345.    2,100       5                59     3                   27,000
  346.    4,000       10               100    6                   108,000
  347.    10,000      15               300    10                  490,000
  348.    100,000     20               3,000  20                  1,040,000
  349.  
  350.    To put memory requirements of BGP in a proper perspective, let's try
  351.    to put aside for a moment the issue of what information is used to
  352.    construct the forwarding tables in a router, and just focus on the
  353.    forwarding tables themselves. In this case one might ask about the
  354.    limits on these tables.  For instance, given that right now the
  355.    forwarding tables in the NSFNET Backbone routers carry well over
  356.    20,000 entries, one might ask whether it would be possible to have a
  357.    functional router with a table that will have 200,000 entries.
  358.    Clearly the answer to this question is completely independent of BGP.
  359.    On the other hand the answer to the original questions (that was
  360.    asked with respect to BGP) is directly related to the latter
  361.    question. Very interesting comments were given by Paul Tsuchiya in
  362.    his review of BGP in March of 1990 (as part of the BGP review
  363.    committee appointed by Bob Hinden).  In the review he said that, "BGP
  364.    does not scale well.  This is not really the fault of BGP. It is the
  365.    fault of the flat IP address space.  Given the flat IP address space,
  366.    any routing protocol must carry network numbers in its updates." With
  367.    the introduction of CIDR [4] and BGP-4,  we have attempted to reduce
  368.    this limitation.  Unfortunately,  we cannot erase history nor can
  369.    BGP-4 solve the problems inherent with inefficient assignment of
  370.    future address blocks.
  371.  
  372.    To reiterate, BGP limits with respect to the memory requirements are
  373.    directly related to the underlying Internet Protocol (IP), and
  374.    specifically the addressing scheme employed by IP. BGP would provide
  375.    much better scaling in environments with more flexible addressing
  376.    schemes.  It should be pointed out that with only very minor
  377.    additions BGP was extended to support hierarchies of autonomous
  378.    system [8]. Such hierarchies, combined with an addressing scheme that
  379.    would allow more flexible address aggregation capabilities, can be
  380.    utilized by BGP-like protocols, thus providing practically unlimited
  381.    scaling capabilities.
  382.  
  383. Applicability of BGP
  384.  
  385.    In this section we'll try to answer the question of what environment
  386.    is BGP well suited, and for what is it not suitable?  Partially this
  387.    question is answered in the Section 2 of [1], where the document
  388.    states the following:
  389.  
  390.  
  391.  
  392.  
  393.  
  394. Traina                                                          [Page 7]
  395.  
  396. RFC 1774                BGP-4 Protocol Analysis               March 1995
  397.  
  398.  
  399.       "To characterize the set of policy decisions that can be enforced
  400.       using BGP, one must focus on the rule that an AS advertises to its
  401.       neighbor ASs only those routes that it itself uses.  This rule
  402.       reflects the "hop-by-hop" routing paradigm generally used
  403.       throughout the current Internet.  Note that some policies cannot
  404.       be supported by the "hop-by-hop" routing paradigm and thus require
  405.       techniques such as source routing to enforce.  For example, BGP
  406.       does not enable one AS to send traffic to a neighbor AS intending
  407.       that the traffic take a different route from that taken by traffic
  408.       originating in the neighbor AS.  On the other hand, BGP can
  409.       support any policy conforming to the "hop-by-hop" routing
  410.       paradigm.  Since the current Internet uses only the "hop-by-hop"
  411.       routing paradigm and since BGP can support any policy that
  412.       conforms to that paradigm, BGP is highly applicable as an inter-AS
  413.       routing protocol for the current Internet."
  414.  
  415.    While BGP is well suitable for the current Internet, it is also
  416.    almost a necessity for the current Internet as well.  Operational
  417.    experience with EGP showed that it is highly inadequate for the
  418.    current Internet.  Topological restrictions imposed by EGP are
  419.    unjustifiable from the technical point of view, and unenforceable
  420.    from the practical point of view.  Inability of EGP to efficiently
  421.    handle information exchange between peers is a cause of severe
  422.    routing instabilities in the operational Internet. Finally,
  423.    information provided by BGP is well suitable for enforcing a variety
  424.    of routing policies.
  425.  
  426.    Rather than trying to predict the future, and overload BGP with a
  427.    variety of functions that may (or may not) be needed, the designers
  428.    of BGP took a different approach. The protocol contains only the
  429.    functionality that is essential, while at the same time provides
  430.    flexible mechanisms within the protocol itself that allow to expand
  431.    its functionality.  Since BGP was designed with flexibility and
  432.    expandability in mind, we think it should be able to address new or
  433.    evolving requirements with relative ease. The existence proof of this
  434.    statement may be found in the way how new features (like repairing a
  435.    partitioned autonomous system with BGP) are already introduced in the
  436.    protocol.
  437.  
  438.    To summarize, BGP is well suitable as an inter-autonomous system
  439.    routing protocol for the current Internet that is based on IP (RFC
  440.    791) as the Internet Protocol and "hop-by-hop" routing paradigm. It
  441.    is hard to speculate whether BGP will be suitable for other
  442.    environments where internetting is done by other than IP protocols,
  443.    or where the routing paradigm will be different.
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450. Traina                                                          [Page 8]
  451.  
  452. RFC 1774                BGP-4 Protocol Analysis               March 1995
  453.  
  454.  
  455. Security Considerations
  456.  
  457.    Security issues are not discussed in this memo.
  458.  
  459. Acknowledgments
  460.  
  461.    The BGP-4 protocol has been developed by the IDR/BGP Working Group of
  462.    the Internet Engineering Task Force.  I would like to express thanks
  463.    to Yakov Rekhter for providing RFC 1265.  This document is only a
  464.    minor update to the original text. I'd also like to explicitly thank
  465.    Yakov Rekhter and Tony Li for their review of this document as well
  466.    as their constructive and valuable comments.
  467.  
  468. Editor's Address
  469.  
  470.    Paul Traina
  471.    cisco Systems, Inc.
  472.    170 W. Tasman Dr.
  473.    San Jose, CA 95134
  474.  
  475.    EMail: pst@cisco.com
  476.  
  477.  
  478.  
  479.  
  480.  
  481.  
  482.  
  483.  
  484.  
  485.  
  486.  
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506. Traina                                                          [Page 9]
  507.  
  508. RFC 1774                BGP-4 Protocol Analysis               March 1995
  509.  
  510.  
  511. References
  512.  
  513.    [1] Rekhter, Y., and T., Li, "A Border Gateway Protocol 4 (BGP-4)",
  514.        RFC 1771, T.J. Watson Research Center, IBM Corp., cisco Systems,
  515.        March 1995.
  516.  
  517.    [2] Rekhter, Y., and P. Gross, Editors, "Application of the Border
  518.        Gateway Protocol in the Internet", RFC 1772, T.J. Watson Research
  519.        Center, IBM Corp., MCI, March 1995.
  520.  
  521.    [3] Willis, S., Burruss, J., and J. Chu, "Definitions of Managed
  522.        Objects for the Fourth Version of the Border Gateway Protocol
  523.        (BGP-4) using SMIv2", RFC 1657, Wellfleet Communications Inc.,
  524.        IBM Corp., July 1994.
  525.  
  526.    [4] Fuller V., Li. T., Yu J., and K. Varadhan, "Classless Inter-
  527.        Domain Routing (CIDR): an Address Assignment and Aggregation
  528.        Strategy", RFC 1519, BARRNet, cisco, MERIT, OARnet, September
  529.        1993.
  530.  
  531.    [6] Moy J., "Open Shortest Path First Routing Protocol (Version 2)",
  532.        RFC 1257, Proteon, August 1991.
  533.  
  534.    [7] Varadhan, K., Hares S., and Y. Rekhter, "BGP4/IDRP for IP---OSPF
  535.        Interaction", Work in Progress.
  536.  
  537.    [8] ISO/IEC 10747, Kunzinger, C., Editor, "Inter-Domain Routing
  538.        Protocol", October 1993.
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562. Traina                                                         [Page 10]
  563.  
  564.